あらゆるベベルを生き残るGUIの色替え:単色塗りではなく明度で
Minecraftのインベントリに単色を塗り重ねると、影もハイライトも消えてしまう。GUI Colorizerは、明度からグラデーションを駆動することでそれらを保つ。対象はインベントリ、チェスト、かまど、ホットバー、経験値バー。
手作業で編集されたGUIパックは、どれも同じ失敗の仕方をする。誰かがインベントリのテクスチャを開き、灰色の背景を単色で塗りつぶす。すると結果はシールを貼ったように見える。スロットは内側の影を失い、ホットバーの選択枠は縁を失い、XPバーは無地の帯と化す。GUI Colorizerは、ピクセルを置き換えるのではなく明度を通して色を変えることで、それを避ける。
なぜ単色塗りがGUIを破壊するのか
Minecraftのインターフェーステクスチャは、単色+輪郭線ではない。各スロット、ボタン、パネルは小さなグレースケール画像であり、各ピクセルの値が奥行きを表している。スロットは窪んでいて、左上の縁に沿って暗く、右下に向かって明るくなる。一方でパネルやボタンは浮き上がっており、左上が明るく照らされ、右下に影が落ち、本体は中間調になる。18x18のスロットスプライトは324ピクセルで、そのほとんどは隣のピクセルと数段階しか違わない。
その324個すべてを1つのRGB値に置き換えれば、ベベルを運んでいた唯一のチャンネルを捨て去ったことになる。必要なのは、輝度の関係を保ったまま、その下の色相を入れ替えることだ。
グラデーションの駆動源としての明度
このツールは各ピクセルの明度を読み取り、その明度を選んだグラデーションにマッピングし、結果を書き戻す。スロット上部の暗いピクセルは暗いまま——ただ、暗い灰色ではなく暗い青になる。ハイライトはハイライトのままだ。
だからこそ短いグラデーションで十分なのだ。このツールはパネルには3つのストップを、セレクターとXPバーには2つを使う。
| 明度帯 | 元テクスチャでの正体 | 変換後 |
|---|---|---|
| 低 | ベベルの影、スロットの窪み | 最も暗いストップ |
| 中 | パネル本体、ボタン表面 | ランプの中間点 |
| 高 | ハイライト、ホバー時の縁 | 最も明るいストップ |
暗い色から明るい色へと向かうストップを選べば、ベベルは生き残る。輝度が近いストップを選べば、元のあらゆる階調がほぼ同じ色に落ち着く——つまり、逆方向から単色シール問題が戻ってくる。
この方法で色を変えられるもの、変えられないもの
ツールが対応する範囲:インベントリ画面、チェストとかまどのコンテナ、ホットバー、そしてXPバー。これらはプレイヤーが常に眺めている面であり、だからこそ下手な色替えがこれほど目立つのだ。
対応しておらず、何かを約束する前に知っておく価値があるもの:ワールドのテクスチャ。レッドストーンのリソースパック、防具のテクスチャパック、エリトラのテクスチャパックは別の作業だ。それらは独自のレイアウト規則を持つブロックとエンティティのアトラスであり、明度ランプではずれた防具の縁取りを直せない。
JavaとBedrockはここで分岐する
どちらのエディションもリソースパック内にGUIテクスチャを同梱しているが、パックのレイアウトに互換性はない。Javaのパックはassets/minecraft/textures/gui/を使い、pack.mcmetaでそのフォーマット範囲(26.xではmin_format/max_format)を宣言する。Bedrockは異なるフォルダルートと独自のマニフェストJSONを使う。一方向けに作られたパックはもう一方では読み込まれないので、グラデーションを調整し始める前に対象エディションを決めておくこと。
実践的な作業順序
- 最終的な色ではなくグラデーションを選ぶ:暗いストップ、明るいストップ、そしてその間の色相。
- 適用し、パックをダウンロードし、リソースパックフォルダに入れる。
- 1回のセッションでインベントリ、チェスト、かまど、ホットバーを確認する——インベントリで正しく見えるランプが、かまどの燃料矢印を白飛びさせることがある。
- それからようやく、ベベルがきつく見えすぎるなら幅を狭め、平坦に見えすぎるなら広げる。
グラデーションを一度作れば、あとは明度に陰影を任せよう。GUI Colorizerで。