マスクテクスチャとは
このページを読むと シェーダーがマスクをどのように読むのか、なぜ白黒なのか、なぜ sRGB をオフにする必要があるのかが分かります。ツール内では、ヘッダーの ? ボタンで同じ内容を確認できます。
色ではなく数字を保存する画像
マスクテクスチャは色を保存する画像ではなく『数字』を保存する画像です。シェーダーはこの画像の明度(0~1)をピクセルごとに読み取り、**「この部分にどの程度エフェクトを適用するか」**を決定します。
| マスク値 | 意味 |
|---|---|
| 黒(0) | 適用なし — 元のまま |
| グレー(0.5) | 半分適用 |
| 白(1) | 完全適用 |
そのため、マスクに「きれいな色」は必要ありません。必要なのはどこがどの程度明るいかだけです。
テクスチャ 1 枚にマスク 4 枚
テクスチャ 1 枚のピクセルは R / G / B / A 4 つのチャンネルを持ち、マスクは通常そのうちの1 チャンネルのみを使用します。グレースケール画像は R=G=B であるため、どのチャンネルを読んでも値は同じです。
ここから最適化が生まれます — マスク 4 枚をそれぞれ R、G、B、A に 1 つずつ格納すれば、ファイル 1 枚にマスク 4 個が入ります。その作業を行うのが コンバイナー タブです。 → チャンネルとパッキング
保存時に必ず確認すること
マスクは色ではなく数字です。sRGB チェックがオンになっている場合、Unity はガンマ補正を適用し、数字値が歪みます。 0.5 で焼き込まれたグレーがシェーダーで 0.5 として読まれません。
テクスチャを選択 → Inspector で sRGB (Color Texture) をオフ → Apply。
Mask Maker は焼き込む時点で既に正しい設定で保存します — マスクはリニア、カラー(グラデーション・ペイントカラーモード)は sRGB。外部から持ち込んだマスクを使用する場合のみ、直接確認する必要があります。 → sRGB とインポート設定
解像度
通常は 512~1024px で十分です。マスクは形状の境界のみが重要で、細部の描写は不要です。境界が階段に見える場合は、解像度を上げる前に dilate(アウトライン拡張)値を最初に大きくしてみてください。 → トラブルシューティング
どのタブでどのマスクを作成するか
| タブ | 作成するもの | 主な用途 |
|---|---|---|
| MatCap グロス | マットキャップハイライト(グロスモード)またはメッシュの凹部分(AO/キャビティモード)の白黒マスク | グロス/スペキュラー/リムマスク、金属部位の指定 |
| グラデーション | ワールド方向グラデーションカラーテクスチャ | 高さベース色のティント(オンブレ染色) |
| ブリッジ+領域マスク | ランダム束モード:ランダムに選択された束の白黒マスク / 手動選択モード:クリックした束だけが白いマスク | ブリッジ(ハイライト)染色用 2nd/3rd レイヤー、特定部位のみを指定するスタッキングレイヤーマスク |
| スロット分割 | マスクではなくメッシュそのものを異なるスロットに分離 | 完全に異なるシェーダーを適用する部位の分離 |
| ペイント | ブラシで直接描画したマスク | 自動生成ができない任意の形状すべて |
| コンバイナー | 複数のマスクを R/G/B/A に合成した 1 枚 | ファイル数削減、マスク合成/チャンネル分離 |
シェーダーがマスクをどこで読むか
シェーダーごとにマスクを受け取るスロット(プロパティ)が異なります。同じ「グロスマスク」でも、lilToon は MatCap ▸ Mask、NiloToon は MatCap Additive ▸ Mask Map で読みます。