メッシュの境界
Blender上では現れることのない境界のような線がインゲームで出現することがあります。この記事はその正体についての解説です。
線?
おそらく気がついていない人のほうが多いと思います。次の絵はバニラの木材運搬トレーラーです。
荷台後端に着目します。
よくみると中央に境界線のようなものが見えます。左右で光の反射具合が若干異なり中央にその境界があることがわかります。
ダンプして確認してみると、このトレーラーはX軸ミラーの作りになっておりメッシュとテクスチャは左右対称です。また、この荷台はフラット面で完全に平坦です。よって、本来ならばこの線が出現することはないはずです。
わかりやすい事例
拙作EF66でも同様の現象を見ることができます。
よく観察すると中央付近に筋があることがわかります。
わかりやすくするために光源を移動すると・・・
明るい面と暗い面がはっきりと現れました。全体像を見るとこうなっています。
Blenderで最終形のFBXをインポートして確認してみると境界は現れずなめらかに遷移していることがわかります。
原因はUVマップ
結論から言うとUVマップが原因でこの問題は起こります。隣接する面同士でUVマップ上で軸の向き(角度)が異なるほどこの境界は現れます。
Blender上で先ほどのトレーラーのテクスチャを変更して確認してみるとこうなります。
ミラーしているのでテクスチャも線対称になっています。つまりUVマップはX軸原点を中心に180度回転しています。
次にEF66のディフューズテクスチャを示します。
テクスチャ面積を稼ぐため1エンドと2エンドでUVマップは共有化されています。
よって、UVマップ上では1エンド側と2エンド側ではこれもX軸が180度回転しています。EF66ではテクスチャ解像度をいかに抑えるかということも1つのテーマにしていたのでこの問題については妥協しました。
まとめ
この問題はさほど気にする必要はありません。場合によっては目立つといったところです。実際、EF66には同様な箇所が他にも複数ありますが注意深く観察しないと気が付かないレベルです。
頭の片隅に置いておくと妙な現象に悩まなくてよいかもしれません。