メインコンテンツまでスキップ

sRGB とインポート設定

このページを読むと マスクが「挿入したのにエフェクトがおかしい」という最も一般的な原因であるインポート設定を整理できます。

sRGB をオフにする理由​

sRGB(Color Texture)は Unity に対して**「このテクスチャは人間の目で見た色だ」**と告げるチェックボックスです。オンになっていると Unity がガンマ補正を適用し、保存されたピクセル値とシェーダーが読む値が異なります。

色であればそれは正しいです。しかしマスクは数字です。0.5 で焼き込まれたグレーはシェーダーで 0.5 として読まれるべきです。

テクスチャ種別sRGB理由
マスク(白黒、値)オフ値がそのまま読まれるべき
グラデーション結果物(カラー)オン実際に目に映る色
ペイント — マスクモードオフリニアで保存
ペイント — カラーモードオンsRGB で保存
コンバイナー パック テクスチャオフ4 チャンネル全て値
Mask Maker が焼き込んだものは既に正しく設定されています

Mask Maker は保存時点で正しい設定を適用します。直接確認が必要なのは外部から作成して持ち込んだマスクです。

確認・修正手順​

  1. プロジェクトウィンドウでテクスチャを選択します。
  2. Inspector で sRGB (Color Texture) チェックをオフにします。
  3. Apply をクリックします。クリックしないと反映されません。

あわせて確認するインポート設定​

設定マスク推奨理由
sRGB (Color Texture)オフ上記参照
Alpha Is Transparencyオフマスクチャンネルとしてアルファを使用する場合、Unity が値に触れないように
CompressionNone または High Qualityブロック圧縮はチャンネルを潰します。特にパック済みパックテクスチャではチャンネルが相互に出血します
Generate Mip Maps任意オンにすると遠方で境界が柔らかくなり、薄いマスクはぼやけます
Wrap ModeClampUV 外で繰り返す理由がありません
Max Size512~1024マスクは境界のみが重要です
パックテクスチャは圧縮に特に弱いです

DXT/BC 系圧縮はチャンネルを独立して扱いません。R チャンネルの境界が G チャンネルに出血して見える現象がここから生じます。チャンネルパッキングしたテクスチャがおかしい場合は、圧縮を最初に疑ってください。

UV が正しいか​

マスクは本体テクスチャと同じ UV マップに基づいて読まれます。マスクを挿入したのに完全に予期しない場所にエフェクトが表示される場合、そのスロットが UV1 ではなく別の UV チャンネルを使用するように設定されている可能性があります。

Mask Maker はロードしたメッシュの UV をそのまま使用して焼き込むため、ツール内で作成したマスクは常に本体と同じ UV を使用します。

関連ドキュメント​