이번 시간에는 블록벤치를 이용하여
무기 모델을 만들고 서버에 적용하는 시간을 가져봅시다
sword 모델과 이미지가 들어있습니다 따로 경로를 수정하여 리소스팩에 적용해 보세요
현재 rpg서버를 구상 중인 개발자분들은 아마 퀄리티 좋은 무기들을 서버에 추가하고 싶을 겁니다
하지만 따로 무기 리소스팩을 구매할 돈이 부담되거나
내가 직접 만들어 퀄리티 좋은 무기가 나오지 않는다면 이 강좌를 참고해 보세요!
직접 원하는 무기.png 이미지를 이용하여 블록벤치에서 쉽게 작업하여 서버에 적용하실 수 있습니다
추가로 해당 무기 리소스팩은 1.12.2 말고 더 높은 버전에서도 적용이 가능합니다!
Claymore Shivering Isles Weapon Sword The Elder Scrolls V : 스카이 림, 엘더 스크롤, 비디오 게임, 무기, 장로
www.pngwing.com
전 이 사이트를 이용해서 원하는 무기를 골라봤습니다
제가 올린 파일을 블록벤치에 드래그해보세요
현재 Edit 부분에서는 이미지를 추가 및 삭제하는 기능만 사용하시면 됩니다
기존에 이미지를 제거하고 이런 식으로 원하시는 무기.png 이미지를 가져와서 import 해주시면 됩니다
주의사항 : 무기.png는 가로 x 세로 길이가 같아야 합니다
ex) 500x500
적용 후 Edit에서 무기가 이상하게 보일 수 있는데
해당 부분은 Display 부분에서 설정해 주시면 서버에서 예쁘게 보일 겁니다
그다음 오른쪽 상단부분에서 Display 항목으로 넘어오세요
여기서 1~7번까지 무기 위치와 크기 조절만 해주시면 블록벤치에서 해주는 작업이 끝나게 됩니다
1번 : 오른손
2번 : 왼손
3 : 오른손으로 들었을 때 시점
4 : 왼손으로 들었을 때 시점
5 : 바닥에 아이템을 버릴때
6 : 아이템 액자
7 : GUI 부분
작업이 끝나셨으면 File > Export > Export Block / Item Model
파일을 내보내줍니다
저장된 파일은 models > sword 폴더 안에 넣어줬습니다
무기.png는 textures > sword 폴더 안에 넣었습니다
(sword 폴더는 제가 임의로 만든 거라 여러분들은 원하시는 폴더명으로 생성하시면 됩니다)
적용할 때 경로를 정확하게 입력해 주세요
지난 체력바 강좌를 보고 오시면 적용하는데 문제없으실 겁니다
마인크래프트 1.12.2 체력바 리소스팩을 구현해보자! [ 1 ]
안녕하세요 무사 입니다 작년에 작성한 랜덤무기 서버팩에서 리소스팩을 추가하여 더 퀄리티 있는 서버를 개발해 봅시다 ( 공부 목적으로 작성된 글이라 잘못된 점이 있더라도 양해 부탁드립니
mu-sa.tistory.com
이제 item 폴더에 들어가서 내구도별로 해당 무기 아이템 모델을 적용해 봅시다
전 다이아몬드 괭이로 설정했습니다
해당 다이아몬드 괭이 내구도가 1이 달면 sword 모델 아이템이 보이게 됩니다
{ "predicate": { "damaged": 0, "damage": 0.001280409731114 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.001920614596671 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.002560819462228 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.003201024327785 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.003841229193342 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.004481434058899 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.005121638924456 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.005761843790013 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.00640204865557 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.007042253521127 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.007682458386684 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.008322663252241 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.008962868117798 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.009603072983355 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.010243277848912 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.010883482714469 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.011523687580026 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.012163892445583 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.01280409731114 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.013444302176697 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.014084507042254 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.01472471190781 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.015364916773367 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.016005121638924 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.016645326504481 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.017285531370038 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.017925736235595 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.018565941101152 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.019206145966709 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.019846350832266 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.020486555697823 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.02112676056338 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.021766965428937 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.022407170294494 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.023047375160051 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.023687580025608 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.024327784891165 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.024967989756722 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.025608194622279 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.026248399487836 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.026888604353393 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.02752880921895 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.028169014084507 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.028809218950064 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.029449423815621 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.030089628681178 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.030729833546735 }, "model": "" },
{ "predicate": { "damaged": 0, "damage": 0.031370038412292 }, "model": "" },
따로 내구도 더 필요하시면 참고하세요
맨 위부터 2,3,4,5.....입니다
이렇게 내구도 1이 단 다이아몬드 괭이 모델이 sword 무기 모델로 변한 걸 확인할 수 있습니다
여기서 내구도별로 무기 모델을 계속 추가하면 해당 모델을 확인하기 힘들 텐데
그거는 명령어를 이용해서 내구도별로 아이템을 뽑아올 수 있습니다
/give 닉네임 diamond_hoe 1 1 {Unbreakable:1b}
플레이어에게 내구도가 1이단 다이아몬드 괭이를 1개 주겠다는 의미이고,
뒤에 {Unbreakable:1b}는 nbt 태그로 내구도 바를 숨기겠다는 의미입니다.
( 앞에 1 = 개수, 뒤에 1 = 내구도 )
현재 괭이 아이템에 모델을 입힌 거여서 우클릭이 불가능할 겁니다
(따로 다이아몬드 검에 내구도로 추가하면 가능합니다)
1.12.2 에서는 각 도구에 내구도를 계산해야 돼서 불편한데
1.13 부터는 커스텀 데이터로 모델을 입힐 수 있어 더 쉽게 리소스팩을 만들 수 있습니다
이거는 추후 강좌 글에서 설명해 드리겠습니다!