Sprucians

모딩 이야기/엔티머의 모드 공방 7건이 검색되었습니다.

마인크래프트 모딩 튜토리얼:기본적인 아이템 만들기



엔티머입니다. 이번엔 내 모드에 아주 간단한 아이템을 만들어 볼겁니다. 아무런 기능도 없는 기타 아이템이죠.


자 그럼 기본적인 아이템 추가 과정을 간단히 요약해 보죠.


1. Item클래스를 상속받는 기반 클래스를 만든다. 이 클래스는 아이템의 이름, 리소스 경로 등 정보를 저장한다.

2. 아이템 객체를 생성하고 게임에 등록하는 함수를 가진 클래스를 만든다.

3. 게임에 아이템을 등록해주는 함수 일부를 모드 메인 클래스 preInit()에서 호출한다.

4. 게임에 아이템을 등록해주는 함수 일부를 proxy클래스에서 호출한다. 당연히 프록시도 모드 메인 클래스에서 호출되어야 한다.

5. 해당 아이템의 json파일과 텍스쳐 파일을 특정 경로에 저장한다.

6. ㄲㅡㅌ!


일단은 이정도입니다. 복잡해보여도 그리 복잡하지 않습니다. 제가 장황하게 늘어놔서 그래 보일 뿐. 사실 마인크래프트 모딩은 체계가 잘 잡혀있어서 기능없는 아이템, 블록 추가쯤은 자바를 몰라도 따라만 하면 만들수 있는 수준입니다.



자 그럼 먼저 텍스쳐를 준비하겠습니다. 테스트용 아이템으로 한번 철 막대(Iron Stick)을 만들어 보죠. 마크의 텍스쳐 크기는 16의 배수여야 합니다. 16*16, 32*32, 64*64 처럼 말이죠. 기본적으로 16*16이니 저도 16*16을 쓰겠습니다. 뭐 고급 텍스쳐를 원한다면 얼마든 높여도 상관 없습니다.



위 그림처럼 텍스쳐가 완성되었습니다. 참고로 무조건 png 파일이여야 합니다. 이건 그냥 추천인데 전 텍스쳐를 pain.net이란 프로그램으로 그립니다. 무료고 투명배경 등 기능도 적절해서 사용합니다. 아무튼 만든 텍스쳐는 "모드폴더/src/main/resources/assets/모드ID/textures/items"에 저장합니다. 없는 폴더는 만드세요. 저같은 경우 "Tutorial Mod/src/main/resources/assets/tutorialmod/textures/items"가 되겠네요.


자 그럼 위의 스크린샷처럼 아이템 기반 클래스를 만들어야 합니다. 아이템 클래스는 Item을 상속받아야 하고 현지화되지 않은 이름(Unlocalized Name)과 등록이름(Registry Name)을 설정해야 합니다. 이름 설정은 this.setUnlocalizedName(), this.setRegistryName()함수로 해결합니다. 마지막으로 우리는 크리에이티브 탭이 있으니 this.setCreativeTab()으로 크리탭을 정해 줍니다.


그럼 이제 아이템을 게임에 등록하는 함수를 가진 클래스를 만들어 봅시다. 이 클래스는 init(), register(), registerItem(Item item), registerRenders(), registerRender(Item item)이렇게 총 5개의 함수로 이루어집니다. 주석 1과 init()은 아이템의 객체를 생성하는 부분입니다. register()는 게임에 등록할 아이템들을 registerItem(Item item)에다 넘기는 부분이고요. registerRenders()는 registerRender(Item item)에 넘겨 모델을 불러오는 부분입니다.


이제 실제 추가를 해봅시다. 먼저 "public static Item 아이템이름"으로 아이템 객체를 생성해줍니다. 그리고 init() 안에서 ironStick객체를 초기화 해줍니다. 이때 우리가 만든 아이템 기반 클래스(ItemBase)를 사용합니다. 왜냐면 철막대는 기능없는 일반 아이템이고 ItemBase는 그런 아이템을 위한 클래스이니까요. 그 다음 register()안에서 registerItem()을 호출하는데, 매개면수로 ironStick을 넘깁니다. 그럼 게임 ironStick이란 아이템이 등록되죠. 마지막으로 registerRenders()에서 registerRender()를 호출하며 ironStick을 매개변수로 넘겨줍니다. 그럼 아이템의 모델도 등록됩니다.


이제 CommonProxy클래스에 registerRenders()란 함수를 만든 뒤, ClientProxy에선 그걸 오버라이드 해서 아이템 등록 클래스의 registerRenders()를 호출합니다.


그 다음 모드 메인 클래스에의 preInit()안에 아이템 등록 클래스(TMItems)의 init()과 register()를 호출합니다. init이 꼭 앞에 와야 합니다. 그리고 프록시의 registerRenders()도 마지막 부분에 호출합니다.



이제 실행해서 보면 텍스쳐가 없고, 이름이 현지화되지 않은 ironStick을 볼수 있습니다. 이름이야 아직 현지화를 하지 않았으니 그렇다 치고 왜 텍스쳐가 없을까요? 1.8버전 이상의 마크는 텍스쳐를 바로 찾지 않고 json파일을 찾아가기 때문입니다. 우리는 json파일을 만들지 않았으니 찾지 못한 것이고 미싱 텍스쳐가 뜨는 거죠.


그럼 "모드폴더/src/main/resources/assets/모드ID/models/item"에다가 ironStick.txt파일을 만드세요.models 폴더는 json파일들이 들어갈 곳이고 item엔 아이템 모델들이 들어갈 곳입니다. 그리고 텍스트 파일에 아래와 같이 적으세요.


{

    "parent": "item/generated",

    "textures": { "layer0": "tutorialmod:items/ironStick" }

}

"parent"는 이 모델이 어떻게 보여질 것인가를 결정한다고 보면 됩니다. item/generated는 일반적인 아이템처럼 보이게 되고, block/block은 블록처럼 보이죠.

"textures"는 텍스쳐의 경로입니다. "layer"는 텍스쳐 레이어죠. 여러개의 레이어를 쓸 일은 거의 없으니 대부분 layer0만 쓸겁니다. 그리고 텍스쳐 경로는 "모드id:텍스쳐 경로"가 됩니다. textures부터 시작하는 상대경로이니 여기서는 items/ironStick이면 됩니다. 참고로 모드id를 안쓰면 바닐라로 인식합니다. 만약 바닐라의 설탕 텍스쳐를 쓰려면 "items/sugar"만 쓰면 되겠죠.


텍스트 파일에 내용을 다 적었으면 확장자를 json으로 변경합니다.



이제 정상적으로 텍스쳐가 불려져 오는 것을 볼수 있습니다!


이제 이 이후로 아이템 추가하는건 단순 작업이 됩니다. 만약 ironPlate를 추가한다 가정하죠.

1. TMItems에 ironPlate객체를 생성하고 초기화한 뒤 registerItem(ironPlate), registerRender(ironPlate)를 적는다.

2. 텍스쳐와 json파일을 알맞게 만들어둔다.

3. 끝!

마인크래프트 모딩 튜토리얼:크리에이티브 탭 만들기



안녕하세요 엔티머입니다. 오늘은 모딩을 본격적으로 시작해 아이템 블록 등을 추가하기 앞서서 크리에이티브 탭부터 만들어 보겠습니다. 크리에이티브 탭을 먼저 만들어두면 내가 추가한 것들을 한눈에 보기 편하니까요. 그래서 먼저 해보도록 하겠습니다.


크리에이티브 탭 만들기는 다음과 같이 진행됩니다.


1. 크리탭 클래스를 만든다.

2. 모드 메인 클래스에서 인스턴스를 만들어 준다.

3. 끝.


매우 간단한 작업입니다. 만약 여러개를 만들 생각이면 이걸 여러번 반복하면 되겠죠.



Step 1. 크리에이티브 탭 클래스

먼저 크리에이티브 탭의 정보가 정의된 클래스를 만들어야 합니다. 전 TMCreativeTab이란 이름으로 만들었습니다.


그리고 CreativeTabs클래스를 상속받도록 하고, 생성자와 필수적으로 필요한 함수(getTabIconItem())를 추가해 줍니다. 상속받은 뒤 클래스 이름에 빨간줄 쳐지는 것에 마우스 가져다 대고 나오는 목록중 선택해 누르는 것으로 간단히 추가 가능합니다. 아니면 그냥 손수 만들어도 되고요. 아직은 만들어두기만 해서 내용은 없습니다.

먼저 자바를 안다면 TMCreativeTab()은 생성자라는 것을 아실테고, 여기서는 크리탭의 이름을 설정합니다.

getTabIconItem()은 크리탭의 아이콘을 설정하는 부분입니다.

전 예시로 탭 이름은 tmtab, 아이콘은 황금 사과로 해보겠습니다.


이렇게 만들어 주면 됩니다. 만약 아이콘을 블록으로 하고싶으면 조금 다르게 해야합니다. 예시로 모루를 아이콘 지정 해보죠.


블록은 Item.getItemFromBlock(블록)으로 지정해줘야 합니다.

물론 내 모드의 아이템, 블록으로 아이콘 지정이 가능하고 대부분 모드가 그렇게 합니다. 하지만 지금은 아이템이나 블록이나 하나도 만든게 없으니 바닐라의 것으로 지정해준 것이죠.




Step 2. 인스턴스 생성하기

클래스는 만들었으니 메인클래스에 선언해줄 일만 남았습니다. 간단히 모드 메인 클래스 맨 아래로 가서 아래의 내용을 추가하세요.

그럼 끝났습니다. 이제 실행해서 확인해 보죠.




성공했습니다. 이름이 itemGroup.tmtab인 이유는 아직 현지화를 안해준 상태라 그렇고, 탭에 아무것도 없는건 추가한게 없으니 당연히 없는겁니다.

현지화에 대해서도 나중에 따로 다루도록 하죠.


마인크래프트 모딩 튜토리얼:세팅하기



안녕하세요 엔티머입니다. 요새 잉여로워서 모딩 튜토리얼을 써볼까 합니다. 일단 이 튜토리얼의 목표는 당연하게도 간단한 모드 제작이고요. 마인크래프트 버전은 1.10.2로 진행합니다.


마인크래프트 모드를 만드려고 할 정도면 마인크래프트를 이미 잘 아는 플레이어라는 의미이고 따라서 자바는 기본적으로 설치되어 있을것이라 가정합니다. 또한 마인크래프트 모드는 JAVA로 프로그래밍 해서 만들어집니다. 기본적인 자바 지식과 개발 준비물(JDK, Eclipse)는 이 글에서 설명하지 않습니다.



Step1:MDK(Mod Development Kit)

마인크래프트 모드, 그 중에서도 forge 모드를 개발하려면 mdk가 필요합니다. 구글에 Minecraft Forge라고 검색해서 포지 사이트로 들어가 1.10.2버전을 찾아내세요.


Latest든 Recommended든 버전은 큰 상관 없습니다. 다만 자신이 사용할 버전이 모드가 요구할 최소 포지 버전이 됩니다. 만약 1.10.2-12.18.3.2239버전을 써서 개발하면 사용하는데 그 버전 이상의 포지가 필요하게 됩니다. 그러니 그냥 Recommended 쓰는게 편합니다. 저도 튜토리얼에 추천 버전을 사용하겠습니다.



mdk를 받았으면 일단 압축을 해제합니다. 저기 있는 Screenshot폴더는 이 글 쓰는데 필요한 스샷 넣어둔 폴더니 무시하세요.

그럼 이제 내 모드의 폴더를 하나 만듭니다. 전 Tutorial Mod라고 하겠습니다. 그리고 압축 푼 포지 mdk의 내용물을 전부 복사해다가 내 모드 폴더에 붙여넣습니다.



지금까지 따라하면 이렇게 되어있을 겁니다. 이제 여기다가 텍스트 문서 2개를 만들겁니다. 하나는 Setup Workspace 하나는 Start Build입니다. 그리고 각각 한줄씩 적어야 하는데요 아래와 같습니다.


Setup Workspace.txt 파일 내용: gradlew setupDecompworkspace && gradlew eclipse

Start Build.txt 파일 내용: gradlew.bat build


위와 같이 적은 후에 두 파일 모두 확장자를 .bat으로 변경하세요.



그럼 현재까지 이렇게 되어있을겁니다. 참고로 Setup Workspace.bat 파일은 해당 폴더를 워크스페이스, 그러니까 작업장으로 만들어주는 것이고, Start Build는 내 모드를 빌드하기 위한 파일입니다. 빌드에 대해서는 나중에 설명하도록 하고, 지금은 워크스페이스부터 셋업하도록 합니다.

Setup Workspace파일을 실행하세요.



그럼 검은 창에서 뭐가 막 진행되고 끝나고 폴더를 보면 뭐가 많아진것을 확인할수 있습니다. 자 그럼 작업장이 세팅되었습니다. 이제 시작해봐야죠.



이클립스를 실행하고 워크스페이스를 내 모드 폴더의 eclipse폴더로 지정한 뒤 확인을 누르세요.




Step 2:필수 클래스 작성하기



들어가보면 이렇게 되어있을겁니다. 저기 com.example.examplemod란 패키지가 보이는데, 우리에겐 쓸일이 없는 패키지입니다. 저 패키지를 삭제한 뒤, 나만의 패키지를 만드세요. 전 entimer.tutorialmod라고 하겠습니다. 그리고 그 패키지 안에 3개의 클래스를 만들어야 합니다. 바로 "모드의 메인 클래스", "서버사이드 프록시", "클라이언트 사이드 프록시" 3개입니다. 전 각각 "TutorialMod", "CommonProxy", "ClientProxy"라고 이름붙이겠습니다.


그리고 ClientProxy클래스는 CommonProxy 클래스를 상속받도록 합니다.


그리고 모드의 메인 클래스로 돌아와 모드id, 모드이름, 모드버전, 마인크래프트버전, 클라이언트프록시, 서버프록시에 대한 문자열 변수를 만들어줍니다.

이때, 마인크래프트 버전은 []사이에 들어가있어야 하며, 프록시는 각 프록시 클래스의 경로를 나타내는 것입니다.


그 다음 다음과 같이 내용을 채워줍니다. 이 부분들에 대해서는 저도 정확히 알지 못합니다. 그래서 설명하긴 좀 어렵습니다.


그 다음 mcmod.info파일을 수정해 봅니다. 참고로 이건 scr/main/resources 아래에 있습니다. 대충 보면 뭐가 뭔지 알수 있을겁니다. 제가 적은 것들만 적어도 충분합니다.



이제 박스 쳐둔 부분의 버튼을 누르면 내 모드가 적용된 마크를 실행해볼 수 있습니다.



실행된 뒤 모드 리스트를 보면 내 모드가 들어가 있고, mcmod.info에 적은 내용이 보입니다.



자 기본 세팅이 완료되었습니다. 본격적으로 뭔가 만드는 것은 다음부터!


하이요 엔티머입니다.


며칠만에 개발근황을 쓰게 됬는데, 잠시 모딩에 회의감을 느꼈었습니다. "내가 무슨 대단한 모드를 만들겠다고" 하는 생각을 하고 있었죠. 제가 뭔가에 빠졌을 때 중간에 한번쯤 오는 흔한 일입니다. 아무튼 이런저런 생각을 해보면서 "너무 목적없이 만든다", "소박하게 만들자"란 생각을 했습니다. 그래서 소박하게 새로 하나 만들어서 천천히 확장해 나가자는 결론을 내렸죠. 그렇게 결정한 컨셉은 "무기모드".  1.7.10버전이긴 하나 갑옷모드도 만들어본 경험도 있고 해서 이번엔 무기를 만들어보자 결정한 겁니다.


그 다음으론 구분을 좀 해두자고 생각했습니다. 그래서 4가지 등급으로 분류했죠. 일반(normal), 고급(advanced), 마법(magical), 전설(legendary)입니다. 각 등급에 대해 설명하자면,

일반:아무 능력이 없는 일반적인 무기가 들어가는 카테고리입니다. 쉽게 구할수 있는 재료로 간단히 조합하는 무기들이 들어가고 바닐라의 무기와 성능상 큰 차이가 없습니다. 흰색으로 표기됩니다.

고급:일반 등급의 상위 등급으로, 재료가 좀 비싸고 다양하며 조합이 조금 더 복잡한, 대신 성능이 바닐라보다 좋은 무기들을 넣어둘 카테고리입니다. 하늘색으로 표기됩니다.

마법:어떤 등급의 상위등급 이런건 아니고, 일반적인 무기가 아닌 무언가 특수한 효과가 부여된 무기들을 넣어둘 카테고리입니다. 보라색으로 표기됩니다.

전설:최상위 등급의 카테고리입니다. 특별한 기준을 정하진 않았지만, 일단 엄청 좋은 것들을 넣을겁니다. 노란색으로 표기됩니다.

그 밖에 크리에이티브 전용 등급이 있는데 당연하게도 크리에이티브 전용 아이템만이 해당되고 초록색으로 표기됩니다.



이 아이템인데요. 크리전용 템인만큼 조합법따위 없고 성능은 사기입니다. 뭔가 테스트를 해볼게 있으면 여기다 먼저 해보려고 해요.



자 그럼 현재까지의 일반등급 무기를 소개하겠습니다.

1. 환도



환도. 옛날 흔히 우리나라에서 도(외날인 칼)를 칭하는 말이였죠. 처음으로 뭘 만들까 하다 만든겁니다. 제가 한국인이기도 하고 해서 넣었죠. 근데 그냥 칼에 고급진 성능을 주긴 뭐해서 일반등급 무기로서 추가했습니다. 재료도 그리 비싸지 않고 공격력은 6.5.



2. 카타나



환도를 만들면서 일반등급은 여러가지 보통 칼들을 추가하자 결정했고 추가하게 된 무기입니다. 제가 모델링을 아주 잘하는 편이 아니다보니 그냥 환도 모델과 텍스쳐를 살짝 변형해서 만들었죠. 가격과 성능은 환도와 완벽하게 일치합니다. 조합법만 조금 다를 뿐.



3. 글라디우스



세번째 일반등급 무기. 고대 로마에서 사용하던 글라디우스입니다. 재료는 환도, 카타나에 비해 철주괴 2개 비싸지만, 공격력은 0.5 더 높은 7로 해뒀습니다.


일단 만들어둔 일반 등급은 여기까지. 그 밖에 일반등급으로 생각중인건 아밍 소드, 바이킹 소드, 츠바이헨더, 정도. 혹시 아이디어 주시면 감사히 써먹겠습니다.



그럼 고급등급.


1. 에너지 블레이드



다이아몬드를 4개 먹는 무기입니다. 이름처럼 손잡이 끝에서 에너지 형태의 검날이 나오는 모습을 상상하면서 모델링 했습니다. 공격력은 10.


아직 고급 등급은 얘 하나입니다. 사실 일반등급만 여러개지만...



이번엔 마법등급입니다.


1. 유리조각



갑자기 뜬금없이 웬 유리조각이냐 할수 있겠지만, 제가 위에서 마법등급은 특별한 기능이 있으면 부여된다고 했었죠. 이 유리조각 무기는 유리 1개로 2개가 만들어지는 값싼 가격과 그런 주제 공격력이 6인(철검과 동일) 장점이 있으나, 2번 쓰면 부서지고 사용자에게도 4(하트 2개)의 데미지를 먹이는 무기입니다. 이 자해능력 때문에 마법등급을 주었죠.

이렇게 거의 쓸모가 없는 무기를 추가한 이유는 단순히 제 아이디어가 딸려서입니다... 사신의 낫이란 무기를 생각해두긴 했지만, 아직 구현을 못해서.



아직 전설등급은 없습니다.

3D things에서 이번엔 무기들을 좀 추가해 봤습니다.




일단은 바닐라의 기본 무기들을 3D로 만들어 봤습니다. 성능도 바닐라와 완벽하게 똑같고, 조합법도 그냥 조합대에 해당 무기를 올리는 것... 일단 이정도로 3D가 잘 적용된다는 것을 확인했고, 다음으로 제 모드만의 조합법을 가진 무기를 만들기로 해서, 6번째 무기인 마쿠아후이틀(Macuahuitl)을 만들었습니다. 참고로 마쿠아후이틀은 나무 몸통에 날카로운 흑요석을 박아둔 원시적 무기입니다. 흑요석이 날카로우니 공격력은 다이아몬드와 동일하지만 내구도가 나무와 돌 사이로 되도록 만들었습니다. 몸통은 나무니까요!




그 다음으론 고급진 무기를 만들어보자 해서 특수효과를 가진 전설급 무기를 만들었죠. 월드 오브 워크래프트 시리즈의 일리단이 쓰던 무기, 아지노스의 전투검입니다. 쌍검으로 쓰고 싶으시면 양손에 끼시면 되겠습니다. 부가효과는 없겠지만...




위의 착용샷에서도 알수 있듯 들고있으면 5가지 버프를 걸어주는 사기 무기입니다. 게다가 공격력은 34죠. 




이렇게 두니 엄청 작네요... 뭐 수정은 귀찮아서... 암튼 엄청 비쌉니다.




아 그리고 또 한가지 바뀐게 있는데, 드디어 오어 딕셔너리를 적용하는 법을 알았습니다. 위의 아지노스의 검 조합법도 그렇고 마쿠아후이틀도 오어 딕셔너리가 오어 딕셔너리가 적용되서 같은 종류의 재료를 가져다 쓸수 있습니다. 사실 대체품이래봐야 원목밖에 없어보이긴 하지만.





다음으로 무기가 아닌 블록입니다. 바로 쓰레기통! 이 블록은 설치하고 아무거나 들고 우클릭하면 들고있던 아이템을 지워버립니다.

비교적 난이도가 쉬울거 같아 어떻게 만들지 며칠 생각했었는데, 우클릭을 하면 실행되는 함수에다가 플레이어 손에 든 아이템을 null로 만드는 코드를 작성해 만들었습니다.

추가로 채팅창에 tip이 나오는데 이건 블록이 설치될때 실행되는 함수에다 메세지를 출력하도록 만들어 두었죠.

그리고 얜 타일엔티티로 만들지 않았습니다. 타일엔티티로 등록하지도 않았고, 실제로 타일엔티티 클래스를 작성하지도 않았거든요.




아 그리고 제 모드 아이템과 블록들에 툴팁을 추가했습니다. 좀 더 나아가서 lang파일과 연동(?)해서 언어에 따라 바뀌죠.





이 둘은 아직 미완성된 것들. 위의 캠프파이어는 불을 붙이고 끄고 할수 있도록 만들 예정인데, 풀어야 하는 과제가 아직 해결이 안됬습니다. 바로 block state랑 관련있는 건데, 상태에 따라 다른 모델을 불러오게 하기 위해 필요합니다. 저같은 경우 불이 꺼진 모델(위의 스샷), 불이 붙은 모델(스샷엔 없음)을 왔다갔다 할수 있어야겠죠. 근데 이거 시도하다 크래시나서 일단 어떻게 할지 알아보고 있는 중입니다.

아래쪽의 것은 전에도 나온적 있는 대장간 양동이죠. 이걸 개조해서 플루이딕을 적용한 다음 온갖 액체를 담을수 있게 만들자는 제안을 들어서 해볼 생각인데, 아직 감도 안옵니다.

예 반갑습니다. 엔티머입니다.

오늘도 돌아온 개발근황! 이번엔 쓸게 그리 많지 않아요. 오늘은 3D Things 모드만 만지작거렸거든요.




아무튼 오늘의 주인공 대장간 용광로(Forge Smelter)! 사실 전 근황을 보면 알겠지만 원래 철을 넣으면 달군 철을 내뱉는 녀석이였는데, 갈아엎었습니다.




자, 첫번째로 쉬프트+맨손으로 우클릭하면 정보를 출력하게 만들었어요! 채팅 출력하는건 매우 쉽더군요.

암튼 GUI를 안만들겠다 하면서 어떻게든 정보를 알게해주고 싶어서 만든 기능이죠.


그런데 정보를 보면 알겠지만, inventory, tank, progress라는 3가지를 알려주죠. 예 그렇습니다. 예전의 기능은 다 버렸어요. 이젠 갈아엎은 새 기능을 가지고 있습니다. 바로 금속 녹이기!

먼저 철이나 금을 집어넣으면 내부 인벤토리가 차오릅니다. 최대 개수는 8개죠. 즉, 한번에 8개이상 못넣습니다. 일단 주괴를 넣어두고 나면 녹이기가 진행되죠. progress가 바로 그것입니다. 일정 시간당(철은 400틱, 금은 350틱) 1개씩 녹여서 tank에다가 1씩 저장해둡니다. 참고로 탱크의 최대용량은 16.


아 그리고 다른 모드랑 호환따위 불가능합니다. 애초에 실제 인벤토리를 가지는 블록이 아니라 내부 정수 변수 7개를 가지고 노는 거거든요!




그리고 새로운 블록! 바로 대장간 양동이(Forge Bucket)입니다. 사실 용도로는 아이템이여도 무방하지만 '멋'을 위해 블록으로 만들어 봤어요. 이렇게 한두개 설치해두면 멋있지 않겠어요?




이 양동이들의 용도는 바로 녹은 금속 퍼내기입니다. 양동이를 들고 녹은 금속이 담긴 용광로를 우클릭하면 뿅 하고 액체가 담긴 양동이가 튀어나오죠. 역시 이 양동이들도 설치가 가능합니다. 게다가 녹은 금속이 담긴 양동이에선 연기도 나오게 만들었어요!

액체 텍스쳐는 대충 이미지 에디터 열어서 단색으로 덮은 다음에 브러쉬 들고 이리저리 문질렀어요. 꽤 볼만하게 나온듯.



아직 이 녹은 금속들의 사용처는 없습니다. 아직 제 머리속에서만 있죠. 대충 주형틀에 부어서 이리저리 만들게 해볼 생각인데... 암튼 또 언제 올라올지 모르는 개발근황, 오늘은 여기까지입니다!

[개발근황] 자작모드들 소개

반갑습니다 엔티머입니다.


글을 뭘 써볼까 하다가 요새 하고있는 마인크래프트 모드개발을 올리자 해서 올립니다.

옛날처럼 의욕적으로 블로그를 하지 않기도 하고 개발 자체가 만들고자 한게 얼마나 걸릴지 잘 모르기도 하고 그래서 비주기적으로 모드 만들기에 관한걸 올릴 생각입니다.


아무튼간에 첫 글! 첫 글인만큼 지금까지 만든 모드들과 성과에 대해 좀 써볼까 해요.



1. Entimer's Utilities


마인크래프트 버전 1.7.10

모드 버전 build15r


eutilities-build15r-mc1.7.10.jar


모딩을 시작한지 얼마 되지 않았을 때 (사실 지금도 얼마 안됬지만) 만든 모드로, 처음엔 1.10.2로 개발하려 했으나 제가 몸을 담고 있는 스프가 1.7.10으로 회귀하면서 1.7.10으로 방향을 튼 모드입니다. 현재는 스프 시즌7에 들어갈 모드 목록중 하나로 자리하고 있습니다.


모딩을 시작한기 극초창기에 만든 모드인만큼 고급진건 못만들고 그냥 이것저것 잡것을 만들어 보기 위해 특별한 컨셉을 잡지 않고 유틸리티로 만들었죠.

이런저런 아이템을 만들다 보니 그냥 블록과 아이템부터, 음식, 작물, 무기, 면마다 텍스쳐가 다른 블록 등을 만들게 됬습니다.



현재는 모드의 크리에이티브 탭을 만들어서 다 집어넣어 두고 있죠.

참고로 아이템/블록들 중 일부는 연습용으로만 만들고 실제 기능은 아무것도 없고 조합도 할수없는 것이 조금 있습니다. 없애기 귀찮아서 냅두는 중...




2. Entimer's Custom Armor Mod


마인크래프트 버전 1.7.10

모드 버전 1.1.5


customarmor-1.1.5_mc1.7.10.jar


두번째 모드는 커스텀 아머 모드로, 갑옷을 추가해보자 해서 시작된 모드입니다. 근데, 그냥 갑옷 추가하긴 밋밋해서 3D 모델을 써보잔 생각에 techne라는 프로그램으로 모델링해서 몇가지 갑옷을 만들었죠.



그렇게 추가된 4종의 갑옷.


맨 위 왼쪽의 종이갑옷은 사실 나무갑옷이였습니다. 갑옷을 연습하잔 생각에 3D모델 안쓰고 마크 자체 갑옷 모델을 사용했죠. 나중에 다른 갑옷 만들며 종이로 변경해서 현재의 종이갑옷이 되었죠. 성능은 재활용 쓰레기입니다.

상단 오른쪽의 초록빛 갑옷은 바이킹 갑옷. 투구의 뿔과 왼팔의 방패가 포인트죠.

셋째는 하단 왼쪽의 기사 갑옷입니다. 이번엔 등의 망토가 달려있어요.

마지막으로 왕의 기사 갑옷. 가장 많이 신경써서 모델링한 갑옷입니다. 다이아몬드 갑옷보다 성능이 좋죠.


이렇게 갑옷을 만들다 보니 이것만으론 부족하다 생각이 들었습니다. 안그래도 갑옷 조합도 기존 갑옷들보다 복잡하고 귀찮은데 별 특징도 없이 만들 이유는 딱히 없단 말이죠. 그래서 보석 강화란 시스템을 만들었습니다.



만들다보니 지금은 9종이 된 광물입니다.

8종은 보석, 1종은 금속으로 만든 광물들이죠.


모든 보석은 낮은 좌표에서 낮은 확률로 생성되고 캐면 원석 아이템이 1~3개씩 떨어지게 만들었습니다. 그리고 원석 5개를 조합하면 다듬어진 특별한 보석이 나오게 되죠.

특별한 보석들은 각각 능력을 지녔습니다. 알맞은 갑옷 부위와 조합하면 능력을 부여하죠. 예를들어 가장 사기 보석인 천리안의 오팔은 투구와 조합하면 야간투시 효과를 주죠. 단, 보석을 여러개 박지는 못하게 만들었습니다.


그리고 가장 오른쪽의 광물은 별철(Starium)입니다. 가상의 금속이죠. 이름은 소설 '눈물을 마시는 새'에서 따왔습니다. 사실 따왔다기도 뭐한게 이름이 똑같으니... 그래도 문제가 없을거라고 믿습니다. 제 모드가 뭐 그리 대단한것도 아니고...

아무튼 이 별철은 80이상의 높은 좌표에서만 생성되죠. 게다가 캐면 원석이 아닌 쬐그만 조각들이 여러개 떨어집니다. 이걸 구워 너겟으로 만든 뒤 9개를 조합하면 주죄가 되죠.

이렇게 얻기 힘들게 만든 이유는 4티어 갑옷의 재료이기 때문. 갑옷이 다이아보다 좋은데 재료를 어떻게 할까 생각하다 만든 광물입니다.


이 모드도 스프 시즌7에 추가됩니다. 근데 오팔은 너프를 먹었죠.




3. 3D Things


마인크래프트 버전 1.10.2

모드 버전 testing(아직 빌드 1번도 안했습니다)


빌드를 안해서 다운용 파일도 없습니다.


이 모드는 최근 만들기 시작한 모드입니다. 1.7.10만 개발하다 보니 이건 너무 오래된 버전이다란 생각이 들어서 한번 만들어보기 시작한 모드죠.

근데 하다보니 3D 만들기가 1.7.10보다 훨씬 쉬워진 느낌이다란 생각이 들게 됬죠.


마크가 1.7.10에서 1.8이상으로 넘어가면서 큰 변경점중 하나가 json이란 것인데요. 이 json이란걸 잘만 짜주면 3d모델은 별다른 코딩 없이 추가가 되게 됩니다.

근데 Mrcrayfish라는 가구모드 제작자가 1.8넘어오면서 직접 개발한 모델링 프로그램이 json을 자동으로 짜 주거든요. 전 자동으로 만든 json에다가 입맛대로 조금만 수정하면 되는 겁니다.


암튼 결론적으로 3D작업이 1.7.10보다 10배는 쉬워진 느낌이 들더라구요. 그래서 컨셉을 잡은게 '3D 투성이인 모드를 만들자' 입니다.


이 모드는 사실 만들기 시작한지 얼마 되지도 않았고 있는게 없는 모드입니다. 하지만 요새 가장 많이 만지는 모드이기도 하죠.



먼저 3D로 된 망치 아이템을 만들었습니다. 육면체 2개짜리 모델이다 보니 1분만에 만든 듯...




그리고 모드 자체 모루를 만들기 위해 대장간 모루 블록을 추가했죠. 아직은 아무 기능도 없는 블록이지만 차차 기능을 가지게 될 블록입니다.




그리고 이 모드에서 가장 많이 개발된 것. 바로 대장간 용광로입니다.


이 블록은 철을 달궈진 철로 바꿔주는 블록인데요, 철을 들고 우클릭하면 내부로 들어가지는데, 10초가 지나면 달궈진 철을 뱉습니다.


그리고 이 블록은 제게 큰 의미가 있는데 바로, 제가 만든 최초의 기능성 타일엔티티라는 것이죠. 지금까진 우클릭하면 메세지나 내보내는게 전부였지만, 이제 특별한 기능을 할수 있게 됬습니다.




그럼 제가 지금까지 만든 모드는 이정도고요, 앞으로도 뭔가를 만들면 개발근황을 올리도록 하겠습니다.

Prev 1 Next