概要
2つの Surface を重ねて、1つの Surface にまとめるノードです。
画像だけを重ねるのではなく、高さ、法線、発光、ざらつき、素材ID、面IDも一緒に合成できます。たとえば、床のサーフェースに汚れパーツを重ねたり、壁の上に金属パーツを置いたり、アイソメ面の一部に別の面パーツを足したい時に使います。
出力サイズは常に base のサイズです。overlay は offset_x / offset_y で置く位置を決めます。
使い方のポイント
- 通常画像の
blendに相当するSurface版。ライティング前に部品を重ねるのが正しい 順序(ライティング後の画像を重ねると光の整合が崩れる) - SolidとModelを立体として交差させる時は、両方のRenderでカメラ角と
pixels_per_unitを揃え、order_mode=ContractDepthを選ぶ。各ピクセルで手前のAlbedo・ Normal・Height・AO・Emission・Roughness・Curvature・IDがまとめて採用される - Iso Sceneの
depth_maskや外部深度を使う時は、Image to Surface.depth_mapへ接続してorder_mode=ManualDepthを選ぶ。まず両倍率1・基準0で確認し、全体位置は0.1ずつ、 同一面のちらつきだけはdepth_bias=0.001〜0.01を目安に調整する - ドット絵では
depth_feather=0が基本。煙や半透明エフェクトの境界だけ0.01前後から試す。 Material IDとFace IDはフェザー中も混ざらず、前後のどちらか一方を保つ - 高さの扱いが鍵:
height_modeで「下地より高く置く」等を選び、重ねた部品が 出っ張るのか埋まるのかを決める - 重ねた後に
rebuild_normal_from_heightをONにすると、段差の法線が作り直されて 光の当たりが自然になる - 確認はサブマッププレビュー(H=高さ、N=法線)を切り替えながら行う
よくある失敗
- 契約深度でエラーになる: Renderのカメラ角または
pixels_per_unitが異なるか、 Image to Surface由来で深度契約がない。設定を揃えるか、意図を確認して手動深度へ切り替える - Isoと立体の前後が逆: 手動深度の倍率が逆。該当側の
depth_scale=-1を試し、depth_offsetで基準面を揃える。高さと深度を同じ0〜1という理由だけで自動比較しない - 重ねたのに光で浮き上がらない: 高さを上げていない(height_mode/offset)か、 法線を再構築していない。画像として重なっても、光は高さ・法線を見ている
- overlayが切れる: 出力サイズは常にbase基準。overlayはoffsetで位置決めし、 はみ出しは切れる
使用例
Grid Patternで作った床サーフェースをbaseにし、汚れや水たまりのサーフェースをoverlayにして重ねる。Surface Planeで作った壁に、別の小さな金属パーツのサーフェースを重ね、id_policy=OverlayVisibleで金属IDも一緒に入れる。- 壁に窓枠を貼る時は、
height_mode=下地より高くする、height_offset=0.05〜0.15、rebuild_normal_from_height=ONにする。Surface Light Previewで落ち影を強めると、窓枠が壁より少し出ているように見えます。 - 見た目だけステッカーのように貼りたい時は、
map_policy=AlbedoOnly、id_policy=KeepBaseにする。 - タイル素材として端をまたいで重ねたい時は、
wrap_xやwrap_yをONにする。
確認方法
Solid RenderとModel Renderを同じカメラ角・密度・64×64固定キャンバスにし、order_mode=ContractDepthで重ねる。SurfaceプレビューのA/N/H/D/C/ID/Fを切り替え、交差境界で全マップの勝者が一致するか確認する。- 片方のカメラ角を変え、暗黙合成されず互換エラーになることを確認してから元へ戻す。
- Iso Sceneのimageとdepth_maskを
Image to Surfaceへ渡し、手動深度で上の結果へ加える。 depth_biasを前後に動かし、Iso部品が交差面の前後を連続して移ることを確認する。Surface Light Previewにつなぎ、境界をまたいでも法線・素材ID・面IDが色と食い違わないか確認する。
関連ノード
blend— 通常画像の重ね合わせ(Surfaceでなくてよい場合)surface_light_preview— 合成結果のライティングsurface_rebuild_normal— 法線の再構築を単独で行うsurface_set_map— サブマップの個別差し替え