装飾は着色テクスチャではなく、グレースケールのステンシルとパレットスワップです

模様が形状を決め、素材は塗られる8色のみを決定します。だからこそすべての素材があらゆる模様と連携でき、装飾によって防具のシルエットが変わることもないのです。
防具の装飾は198種類もの個別テクスチャがあるように見えますが、実際は違います。ゲーム内には防具レイヤーの模様ごとに1枚のグレースケール画像のみが含まれており、実行時に素材ごとの8ピクセルパレットを使って着色されます。この仕組みを理解すれば、装飾に関するほとんどの疑問が解けます。
2つのファイル、2つの役割
完成した装飾に必要なのは正確に2つだけで、それらが直接干渉することはありません:
| パーツ | 概要 | 制御する要素 |
|---|---|---|
| 模様 | 防具レイヤーごとに1枚のグレースケールPNG | 形状と配置 |
| 素材 | 8ピクセルのパレット画像 | 色のみ |
模様のテクスチャは8階調のグレーを使用しています。各階調がインデックスです。描画時、ゲームはそのインデックスを読み取り、素材パレットの該当する位置の色を参照します。グレーレベル0はパレット色0になり、グレーレベル7はパレット色7になります。
すべての組み合わせが機能する理由
模様自体には色が保持されないため、色が衝突することはありません。 18種類の模様 のいずれも、 11種類の素材のどれとでも組み合わせることができます。ゲーム側は組み合わせごとにテクスチャを用意する必要がなく、198枚の画像ではなく18の模様と11のパレットだけで済みます。19番目の模様が追加されても、追加のグラフィックなしで実装当日に全11種類の素材と連携します。
装飾が防具の輪郭を変えられないのもこれが理由です。ステンシルは防具テクスチャ自体の境界内に描かれ、追加のジオメトリやモデル、厚みなどは一切ありません。沈黙の装飾が付いたネザライトのチェストプレートは、装飾のないものと全く同じピクセルを占有します。
同素材防具の暗色化ルール
パレット1つだけでは不十分です。鉄の防具上の金装飾と金の防具上の金装飾では、後者が下地の金属と同化して見えなくなってしまいます。そのため、各素材には装飾素材と防具素材が一致したときに使われる2つ目のパレットが用意されています。同じ8つのインデックスがより暗い色セットを指すため、金防具に金装飾を施すと、貼り付けた線ではなく彫刻された線のように見えるのです。
これはブレンドではなく、パレットの参照切り替えです。不透明度や乗算、色調補正の計算などは介在しません。そのため装飾はどの解像度でもくっきり表示され、リソースパックでパレットを任意の8色に置き換えても綺麗に反映されます。
見た目をコーディネートする際のポイント
- まずは1つの素材で模様を選びましょう。 重要なのは形状の決定です。色は独立した次のステップです。両方を同時に選び直そうとすると、延々とスクロールし続けることになります。
- 実際に装備する防具で確認しましょう。 同素材暗色化ルールがあるため、ダイヤモンド防具で気に入った組み合わせがネザライト防具では全く違って見えることがあります。
- 4部位すべてを合わせて確認しましょう。 模様はレイヤーごとに切り分けられています。チェストプレートでは目立つモチーフでも、ブーツでは単なる1本の線になることがあります。
3Dビューアはまさにこのために存在します。実際のプレイヤーモデル上で本物のパレットスワップを適用するため、平面プレビューの近似値ではなく、ゲーム内で実際に描画される通りの見た目を確認できます。