バグ #505
完了壁・パーティションの継ぎ目でライトマップの色ズレ(縦線)が発生する(Blender側でメッシュ結合/UV連続化が必要)
説明
症状¶
ライトベイク後、壁の角に明るい縦線・暗い縦線が見える(docs/image copy 2.png)。
原因¶
本ワールドの壁は Wall_North / Wall_South / Wall_East / Wall_West と、室内パーティション(Partition_Bedroom_S, Partition_Bedroom_W, Partition_Entry)が**方向ごとに別々のメッシュ(別GameObject)**に分かれている。それぞれが独立したUVチャートを持ち、Bakeryのライトマップもオブジェクトごとに独立してベイクされるため、別メッシュ同士が接する境界(部屋の角、壁とパーティションの接続部)で明るさ・色が微妙にズレ、縦線状の継ぎ目として見える。
stitchLightmapSeams は各オブジェクトで有効になっているが、この機能は同一オブジェクト内のUVチャート間の縮合には効くが、別オブジェクト同士の境界には効かない。これがUnity/Bakeryの設定だけでは根本解決しにくい理由。
対象箇所(座標はUnityワールド座標、yは床からの高さ目安)¶
部屋の4つの角(周囲壁同士):
-
Wall_North×Wall_East@ およそ (-9, 1.2, -6.08) -
Wall_North×Wall_West@ およそ (0, 1.2, -6.08)(docs/image copy 2.pngで指摘された箇所) -
Wall_South×Wall_East@ およそ (-9, 1.2, 0.08) -
Wall_South×Wall_West@ およそ (0, 1.2, 0.08)
パーティションの接続部(T字接合・L字接合):
5. Partition_Bedroom_S × Wall_East @ およそ (-9.05, 1.2, -3.6)
6. Partition_Bedroom_S × Partition_Bedroom_W @ およそ (-5.6, 1.2, -3.6)
7. Partition_Bedroom_W × Wall_North @ およそ (-5.6, 1.2, -6)
8. Partition_Entry × Wall_North @ およそ (-3.8, 1.2, -6)
合脈8箇所。なお Ceiling_Main / Floor_Main / Crown_Molding / Baseboard はそれぞれ単一メッシュ(分割なし)であることを確認済みで、同様の問題はない。
対応方針(Blender側作業)¶
上記8箇所の境界で、以下のいずれかを実施:
- 接するメッシュ同士を1つに結合(根本解決、推奨)
- または境界のUVを連続させてBakeryのSeam Fixが機能する形にする
修正後はFBXを再エクスポートし、Unityで再インポート・Bakeryで再ベイクが必要。
関連¶
#503 の調査中に発見。同じセッションでBakeryのテクセル解像度(20→4 0)を上げたところ、木枠の別問題(テクセル不足による光漏れ)は改善したが、本件(別メッシュ同士の境界)は解像度では解決しない。
重要¶
Wall_East みたいな凹型になっているやつは内部でメッシュが分かれている可能性があるので、単体での見直しも必要。
説明上は8か所になっているが、実際はもっとたくさん境界があると思われる。
説明文は信用せず、自信で改めて調査すること。
エージェント ちゃん さんが4日前に更新
- 説明 を更新 (差分)
エージェント ちゃん さんが4日前に更新
(記述訂正)本文中の「Bakeryのテクセル解像度(20→4 0)を上げた」は誤字です。正しくは 20→40 です(別チケット#503の作業中に変更済み)。
エージェント ちゃん さんが4日前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
制作に着手しました。
- ブランチ:
feature/505 - 対応方針: 継ぎ目で色ズレを起こしている壁・パーティション7オブジェクト(
Wall_North/South/East/West,Partition_Bedroom_S/W,Partition_Entry)を1つのメッシュに結合し、境界の頂点をWeld、UV0/UV1を再生成してBakeryが単一オブジェクトとして一括ベイクできる状態にすることで、記載の8箇所に加えオブジェクト内部の方立/まぐさ境界も含めて根本解決する。
エージェント ちゃん さんが4日前に更新
進捗 : スコープを拡張してトリム/外構系9オブジェクトも修正¶
壁・パーティション(7オブジェクト)の統合・Weld・UV再生成をコミット後、ユーザーから「連続面が分割されている箇所での縦線」の具体例(Blender上のスクリーンショット)を指摘された。
確認したところ、本チケットの説明文にあった「Crown_Molding / Baseboard は単一メッシュで問題ない」は誤りで、実際は壁と同じ remove_doubles を一度も呼ばない未溶接ボックス結合パターンで作られていた(チケットの「説明文は信用せず自信で調査」の注記どおり)。
シーン全体(Architecture/Interior_Fixtures/Exterior)をスキャンし、以下9オブジェクトに同様の未溶接頂点を発見: Window_Sashes / AC_Unit / Window_Casings / Balcony_Rail / Baseboard / Crown_Molding / Door_Casings / Facade_WindowHeads / Entrance_Canopy。
ユーザーの方針確認のうえ、本チケットのスコープを拡張し、9オブジェクト全てを同方式(1mm Weld + UV0/UV1再生成)で修正し、2つ目のコミットとして feature/505 に反映済み。修正後の全スキャンで未溶接オブジェクトは0件。FBXも再エクスポート済み。
エージェント ちゃん さんが4日前に更新
- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
対応が完了しました。
概要¶
壁・パーティションの継ぎ目でライトマップの色ズレ(縦線)が発生する問題を修正。原因は、壁/パーティション/トリム類が方立・まぐさなど複数のボックスから溶接(Weld)せずに結合されていたため、接触箇所が頂点を共有しない別々のUV1アイランドとしてBakeryにベイクされ、色がズレて見えていたこと。
変更点¶
-
Wall_North/Wall_South/Wall_East/Wall_West/Partition_Bedroom_S/Partition_Bedroom_W/Partition_Entryの7オブジェクトを単一メッシュWall_Shellに統合し、頂点をWeld(1mm)、UV0/UV1を再生成。 - 同じ未溶接ボックス結合パターンを持っていた
Window_Sashes/AC_Unit/Window_Casings/Balcony_Rail/Baseboard/Crown_Molding/Door_Casings/Facade_WindowHeads/Entrance_Canopyの9オブジェクトも同様にWeld + UV再生成(ユーザー指摘によりスコープ拡張)。 - 成果物:
blend/chill_world.blend/export/chill_world.fbx - 追加スクリプト:
scripts/505_wall_seam_fix.py,scripts/505_trim_seam_fix.py
確認¶
- Blender シーン: 修正後、シーン全体(Architecture/Interior_Fixtures/Exterior)で未溶接の頂点グループは0件。対象外オブジェクトへの影響なし。
- ジオメトリ: 全対象オブジェクトで境界エッジ(穴)0・縮退面0を確認。
- エクスポート規約: Scale 1.0 /
-Z Forward・Y Up/ Transform適用済み / UV0・UV1展開済み。
関連 MR¶
- !19 (feature/505 → main)
残課题 / 補足¶
- Blender内ではライトマップ色ズレの解消自体は目視確認できない(BakeryのベイクはUnity側)。Unity再インポート → Bakery再ベイクでの実地確認をお願いします。