리소스 팩으로 HUD 요소 숨기기 및 크기 조절하기
핫바, 조준점, 경험치 바는 모두 하나의 텍스처 아틀라스에 있습니다. 이 글에서는 이 중 일부를 투명하게 만드는 방법, 이동할 수 없는 요소, 그리고 사용자 지정 HUD 텍스트를 위한 글꼴 트릭에 대해 설명합니다.
핫바를 숨기는 설정은 따로 없습니다. 대신 텍스처가 있는데, 이 텍스처의 일부를 투명하게 만들면 시각적으로 사라지면서 모든 기능은 그대로 작동합니다.
모든 것이 하나의 파일에 있습니다
assets/minecraft/textures/gui/sprites/hud/
최신 버전에서는 이전 widgets.png 아틀라스를 개별 스프라이트로 분할했습니다: hotbar.png, crosshair.png, experience_bar_background.png, heart/full.png 등. 이 중 하나를 동일한 크기의 완전히 투명한 PNG로 바꾸면 해당 요소가 숨겨집니다.
동일한 크기가 중요합니다. 182x22 핫바가 예상되는 위치에 1x1 투명 PNG를 사용하면 사라지는 대신 늘어나서 번진 띠가 생깁니다.
할 수 있는 것과 할 수 없는 것
할 수 있는 것:
- 스프라이트를 투명하게 만들어 어떤 요소든 숨기기
- 모든 것을 다시 스타일링하기 — 다른 하트, 최소한의 조준점, 테마가 있는 핫바
- 동일한 크기의 캔버스 안에 더 작은 콘텐츠를 그려서 보이는 크기 변경하기
할 수 없는 것:
- 요소를 이동하기. 위치는 하드코딩되어 있으며, 아트워크만 데이터입니다.
- 프레임과 독립적으로 핫바 슬롯을 숨기기 — 이들은 하나의 스프라이트입니다.
- 슬롯의 기능 변경하기. 이것은 외형적인 변경일 뿐이며, 아이템은 여전히 선택 가능합니다.
마지막 요점은 명확하게 말할 가치가 있습니다: 숨겨진 핫바는 여전히 핫바입니다. 이것은 인벤토리 제한이 아니며, 플레이어는 여전히 슬롯을 사용할 수 있습니다.
나인-슬라이스 함정
여러 HUD 스프라이트는 나인-슬라이스입니다 — 모서리는 고정되고 가장자리는 늘어납니다. PNG 옆의 .mcmeta 파일이 테두리를 선언합니다:
{ "gui": { "scaling": { "type": "nine_slice", "width": 200, "height": 20,
"border": { "left": 2, "top": 2, "right": 2, "bottom": 2 } } } }
이러한 스프라이트를 mcmeta와 일치시키지 않고 교체하면 잘못 늘어납니다. 의심스러울 때는 바닐라 .mcmeta 파일을 PNG와 함께 복사하세요.
글꼴을 통한 사용자 지정 HUD 텍스트
정말로 강력한 트릭: 글리프가 이미지인 글꼴 제공자(font provider)를 정의한 다음, /title 또는 보스바(bossbar)로 해당 문자를 출력합니다. 텍스트가 여러분의 아트워크로 렌더링됩니다.
assets/<namespace>/font/default.json
{ "providers": [
{ "type": "bitmap", "file": "my_pack:font/icons.png", "ascent": 8, "height": 9,
"chars": [""] }
] }
실제 텍스트와 충돌하지 않도록 개인 사용 코드 포인트( 이상)를 사용하세요. 그러면 /title @a actionbar {"text":""}이 액션 바에 여러분의 이미지를 그립니다.
이것이 서버에서 클라이언트에 모드 없이 — 오직 리소스 팩만으로 — 사용자 지정 체력 바, 통화 아이콘, 진행률 표시기를 보여주는 방법입니다.
음수 공간 글꼴
음수 advances를 가진 글리프를 정의하면 커서를 뒤로 이동하여 이미지를 서로 겹칠 수 있습니다. 이것이 적절한 인터페이스처럼 보이는 서버 HUD 뒤에 있는 기술입니다. 까다롭지만, 어떤 것이든 배치할 수 있는 유일한 방법입니다.
HUD 커스터마이저 및 글꼴 팩 메이커에서 할당된 코드 포인트를 사용하여 HUD 요소를 숨기거나 다시 스타일링하고 글꼴 제공자를 만드세요.