リソースパックでHUD要素を非表示・サイズ変更する方法
ホットバー、クロスヘア、XPバーはすべて1つのテクスチャアトラスに収まっています。その一部を不可視にする方法、移動できないもの、そしてカスタムHUDテキストのためのフォントトリックを解説します。テクスチャはhudフォルダにまとまっています。
ホットバーを非表示にするための設定項目はありません。あるのはテクスチャであり、その一部を透明にすれば、すべてが機能したまま視覚的に消すことができます。
すべては1つのフォルダに入っている
assets/minecraft/textures/gui/sprites/hud/
現代のバージョンでは、かつてのwidgets.pngアトラスが個別のスプライトに分割されています: hotbar.png、crosshair.png、experience_bar_background.png、heart/full.pngなどです。いずれかを同じ寸法の完全に透明なPNGに置き換えれば、それを非表示にできます。
何かを描く場合、同じ寸法であることが重要です。 スプライトはデフォルトで自分のスロットを埋めるように引き伸ばされるため、見える絵が入った小さめのキャンバスは滲んだ仕上がりになります。完全に透明なスプライトはどんなサイズでも非表示になります — 滲ませるものが何もないからです。
できることとできないこと
できること:
- スプライトを透明にして任意の要素を非表示にする
- すべてを装飾し直す — 異なるハート、ミニマルなクロスヘア、テーマ付きのホットバー
- 同じサイズのキャンバス内に小さめの内容を描くことで見かけのサイズを変える
できないこと:
- 要素を移動する。位置はハードコードされており、データなのはアートワークだけです。
- ホットバーのスロットをフレームとは独立して非表示にする — それらは1つのスプライトです。
- スロットの機能を変える。これは見た目だけのもので、アイテムは依然として選択可能です。
最後の点ははっきり述べておく価値があります。非表示のホットバーは依然としてホットバーです。これはインベントリの制限ではなく、プレイヤーはスロットを引き続き使用できます。
ナインスライスの罠
一部のGUIスプライトはナインスライスです — 角は固定、辺は引き伸ばされます。HUDではロケーターバーの背景だけがこれに該当しますが、gui/sprites/の他の場所にあるほとんどのボタンやボックスは該当します。PNGの隣にある.mcmetaが境界を宣言します:
{ "gui": { "scaling": { "type": "nine_slice", "width": 200, "height": 20,
"border": { "left": 2, "top": 2, "right": 2, "bottom": 2 } } } }
mcmetaを一致させずにそのようなスプライトを置き換えると、誤って引き伸ばされます。迷ったときは、PNGと一緒にバニラの.mcmetaをコピーしてください。
フォントによるカスタムHUDテキスト
本当に強力なトリック: グリフが画像であるフォントプロバイダーを定義し、それらの文字を/titleやボスバーで表示します。テキストがあなたのアートワークとしてレンダリングされます。
assets/minecraft/font/default.json
minecraft名前空間に置けば、プロバイダーはバニラのデフォルトフォントと統合されます。独自の名前空間を使う場合は、それを使うすべてのテキストコンポーネントが"font":"my_pack:default"でそれを指定しなければなりません。
{ "providers": [
{ "type": "bitmap", "file": "my_pack:font/icons.png", "ascent": 8, "height": 9,
"chars": [""] }
] }
私用コードポイント(以上)を使えば、実際のテキストと衝突しません。そして/title @a actionbar {"text":""}がアクションバーにあなたの画像を描画します。
これが、クライアントにMODを入れずに、リソースパックだけでサーバーがカスタム体力バー、通貨アイコン、進行メーターを表示する方法です。
ネガティブスペースフォント
負のadvancesを持つグリフを定義すると、カーソルを後ろに動かして画像を重ね合わせることができます。これが、本格的なインターフェースに見えるサーバーHUDの背後にある技術です。扱いは面倒ですが、何かを配置する唯一の方法です。
HUD要素を非表示または装飾し直し、HUD Customizer & Font Pack Makerであなたのために割り当てられたコードポイントを使ってフォントプロバイダーを構築しましょう。