バグ #536
完了機能 #524: 「脱AI感」見た目総合改善(建物ディテール・夜景3D化・生活感)
バルコニーから見た窓ガラス(Balcony_Glass)が真っ黒に見える
説明
問題¶
#530(P6 ライティング再設計)のベイク結果確認中、バルコニー側からリビングを振り返るアングルで Balcony_Glass(chill_world.fbx, MAT_Glass)が透過も反射もせず真っ黒な板に見えることに気付いた。室内側からは Window_Living_E/S 等は問題なく見えているため、バルコニー視点・Balcony_Glass 固有の現象の可能性がある。
再現状況¶
- カメラ位置: バルコニー側 (-4.6, 1.6, 1.3) 付近からリビング方向 (-7.5, 1.5, 0.2) を見たアングル
-
Balcony_Glassが画面の大部分を覆い、透過・反射どちらも見えず単色の黒 - スクリーンショットは Unity Editor 上で一時カメラ(
Camera.Render+RenderTexture手動読み出し)を使って撮影したもので、PostProcessVolume / PostProcessLayer を経由していない(ACES トーンマッピング等が掛かっていない生の Camera 出力)。これが黒潰れの一因である可能性があるため、実際のゲーム内カメラ(Post Process 適用)での見え方の再確認が必要。
調査してほしい点¶
-
MAT_Glassのシェーダー設定(透明度・両面描画・反射プローブ参照)がBalcony_Glassに対して他の窓ガラスと同じに効いているか -
ReflectionProbe_Rooftop(バルコニー担当)の bakedTexture・Blend Distance・配置がこのアングルをカバーしているか - Post Process 込みの実機/Game view での再現有無(Editor 一時カメラのアーティファクトではないか切り分け)
備考¶
エージェント ちゃん さんが約1時間前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
制作に着手しました。
- ブランチ:
feature/536 - 対応方針: MAT_Glass(Mochie Glass / GrabPass モード)はブレンドが One Zero で背景を GrabPass テクスチャに置き換えるため、GrabPass が機能しない手動 Camera.Render では黒板化する疑いが濃厚。Scene view / Game view(Post Process 込み)での再現有無を切り分けた上で、ReflectionProbe_Rooftop のカバー範囲・マテリアル設定に実害があれば修正する。
エージェント ちゃん さんが約1時間前に更新
調査完了・修正コミット済み(feature/536 / 1c910ee)
根本原因¶
MAT_Glass(Mochie Glass)に BAKERY_SH キーワードが有効(_BakeryMode: 1)だった一方、シーンのベイクは Bakery の Dominant Direction モード(*_dir.tga のみ出力、SH 係数テクスチャ _RNM0〜2 は未生成・未割り当て)。シェーダーの BakerySHLightmapAndSpecular は null テクスチャ(黒)から nL1 = -1 を復元し、lightMap = L0 * (1 - 2*(nx+ny+nz)) が法線が正軸方向を向く面で負になる。負の間接光が linearstep(-0.5, 0.5, x) で 0 に潰れ、最終色(GrabPass 透過 + 反射)へ乗算されて真っ黒になっていた。
ガラスは SV_IsFrontFace で法線を反転するため、室内側からは正常・バルコニー側からは真っ黒という完全にビュー依存の症状になる(観測と一致)。
調査依頼への回答¶
-
MAT_Glass の設定: 透明度・両面描画・反射プローブ参照は全窓共通で問題なし。黒の原因は上記のキーワード不整合(全 MAT_Glass 面共通だが、見る向きで発症)。なお黒く見えていた板の実体は
Balcony_GlassではなくWindow_Living_S。 - ReflectionProbe_Rooftop: 箱範囲は z ≤ 0.35 / x ≥ -7.8 で、バルコニー南側・西側の帯(カメラ位置含む)は箱外。ただし renderer の bounds 交差でプローブ自体は適用されており、黒の原因ではない。バルコニー全域をカバーしたい場合は別チケットで箱の拡張を推奨。
- Post Process / スクショ手法: 無関係。Play モード(実行時レンダリング経路・単一カメラ)でも同様に黒を再現。GrabPass も正常動作を確認済み(全画面クアッドで grab 内容を可視化して検証)。実機でも黒く見えていたはずの実バグ。
修正内容¶
-
MAT_Glass.mat:m_ValidKeywordsからBAKERY_SHを除去、_BakeryMode: 1 → 0 - これによりベイク済み
*_dir.tgaに合致するDIRLIGHTMAP_COMBINED経路へ戻る。再ベイク不要 - 副次効果: 一部の面で間接光が最大3倍に過大評価されていた歪みも解消
- Editor 上でバルコニー視点・室内視点の両方で正常な透過・反射を確認済み
備考¶
-
BAKERY_SHは初回インポート(7/1, 9af1d18)から存在した既存の設定ミスで、#530 のリグレッションではない - 他マテリアルに同種の不整合が無いことを確認済み(
BAKERY_SHキーワードが有効なのは MAT_Glass のみだった)
エージェント ちゃん さんが26分前に更新
- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
対応が完了しました。
概要¶
バルコニー側からリビングを見ると窓ガラス(実体は Window_Living_S)が透過も反射もせず真っ黒に見える問題を修正。MAT_Glass に残っていた BAKERY_SH キーワードとベイクデータ(Dominant Direction モード)の不整合が原因で、再ベイク不要の設定修正で解消。
変更点¶
-
Assets/mcp-world/Materials/MAT_Glass.mat-
m_ValidKeywordsからBAKERY_SHを除去 _BakeryMode: 1 → 0
-
確認¶
- Play モード(実行時レンダリング経路)で
BAKERY_SH無効化により黒が消えることを実証、修正後は屋外・室内両視点で正常な透過・反射を確認済み。他マテリアルに同種の不整合が無いことも確認済み。
関連 MR¶
- !31 (feature/536 → main)