バグ #503
完了lilToon家具マテリアルの反射(Reflection)設定を見直す(大理石カウンター・木枠などが鏡面になっている)
説明
症状¶
ベイク後のスクリーンショットで以下の見た目の不具合を確認した(docs/image.png, docs/image copy.png):
- キッチンカウンター(大理石)が赤みがかって見える
- ダイニング側ドア横の木枠が「汚れた」ように見える
原因¶
Blender側のモデリング/UVでもUnityのライトマップベイク解像度でもなく、lilToonマテリアルの反射(Reflection)設定が原因。
Assets/mcp-world/Materials/MAT_Counter_Stone.mat と MAT_Wood_Oak.mat が、どちらも以下の「ほぼ完全な鏡」設定になっていた:
_UseReflection = 1-
_Smoothness = 1(最大値) -
_ReflectionColor = 白(1,1,1,1)(減衰なし)
ベースカラーのテクスチャ・色自体は正常(白 1,1,1,1 の乗算のみ)。各部屋には128×128の低解像度Reflection Probeが配置されており(例: ReflectionProbe_Kitchenはカウンターのすぐそば)、これが周辺の色(カウンター上の赤い小物、暖色化した室内の雰囲気)を拾って鏡面反射としてカウンター・木枠に映し込んでいた。低解像度ゆえに輪郭がボケてブロッチ状の「汚れ」に見える。ドア枠の白飛びしたスジは廊下の明るい光がそのまま鏡面反射している部分。
直近の照明調整(Skybox/Ambientの暖色化、バーライト強化)でReflection Probeが拾う周辺環境がより暖色になったため、既存の「鏡面すぎる」マテリアル設定の副作用がより強く出たと考えられる。ただし根本原因(Smoothness=1・反射ONそのもの)は、以前のlilToon変換作業(refs #501 前後のコミット群)の時点から存在していたと見られる。
横断調査結果¶
Assets/mcp-world/Materials/ 配下を _UseReflection: 1 かつ _Smoothness: 1 (ReflectionColor白) で横断調査したところ、同じ設定ミスと思われるマテリアルが他に5件見つかった:
-
MAT_Counter_Stone.mat(大理石カウンター) -
MAT_Wood_Oak.mat(木枠・ドア枠) -
MAT_Wood_Walnut.mat(ウォールナット材) -
MAT_Rug.mat(ラグ) -
MAT_Linen.mat(リネン) -
MAT_Fabric_Accent.mat(ファブリック アクセント) -
MAT_Fabric_Sofa.mat(ソファーファブリック)
合計7件。ラグ・リネン・ファブリック系は本来ほぼ艶なしの布地のはずが、同じく鏡面設定になっている。
なお、プロジェクト全体(サードパーティ購入・配布アセット含む)で _UseReflection: 1 を持つ .mat は94件あるが、その大半は植物・棚セット・ベッドセット・ソファーセット・TV STAND・PhotoFrame等のインポート済みアセットパックに同梱されたマテリアルで、オリジナル制作者の意図した質感の可能性があり本チケットのスコープ外とする。
対応方針¶
上記7件の Assets/mcp-world/Materials/ 配下マテリアルについて、用途に応じて _Smoothness を下げる(石材は艶あり0.4〜0.6程度、木材はサテン〜マット0.2〜0.35程度、布地・ラグはほぼ艶なし0.05〜0.15程度)。Blender側の作業やライトマップの再ベイクは不要、Unityのマテリアル設定変更のみで解決見込み。
残課題(本チケットのスコープ外)¶
- プロジェクト全体で
_UseReflection: 1を持つ94件のうち、mcp-world配下以外(サードパーティアセット)は本チケットでは未調査・未修正。必要であれば別チケットで一つずつ見た目を確認しながら対応する。