jaijai’s blog

Cities Skylinesアセット作成に関するメモ・考察

メッシュの境界

Blender上では現れることのない境界のような線がインゲームで出現することがあります。この記事はその正体についての解説です。

線?

おそらく気がついていない人のほうが多いと思います。次の絵はバニラの木材運搬トレーラーです。

f:id:jaijai_lt:20210904143510p:plain

荷台後端に着目します。

f:id:jaijai_lt:20210904143850p:plainf:id:jaijai_lt:20210904144118p:plain

よくみると中央に境界線のようなものが見えます。左右で光の反射具合が若干異なり中央にその境界があることがわかります。

ダンプして確認してみると、このトレーラーはX軸ミラーの作りになっておりメッシュとテクスチャは左右対称です。また、この荷台はフラット面で完全に平坦です。よって、本来ならばこの線が出現することはないはずです。

f:id:jaijai_lt:20210904151947p:plain

わかりやすい事例

拙作EF66でも同様の現象を見ることができます。

f:id:jaijai_lt:20210904153131p:plain

よく観察すると中央付近に筋があることがわかります。

わかりやすくするために光源を移動すると・・・

f:id:jaijai_lt:20210904153347p:plain

明るい面と暗い面がはっきりと現れました。全体像を見るとこうなっています。

f:id:jaijai_lt:20210904161036p:plain

Blenderで最終形のFBXをインポートして確認してみると境界は現れずなめらかに遷移していることがわかります。

f:id:jaijai_lt:20210904162713p:plain

原因はUVマップ

結論から言うとUVマップが原因でこの問題は起こります。隣接する面同士でUVマップ上で軸の向き(角度)が異なるほどこの境界は現れます。

Blender上で先ほどのトレーラーのテクスチャを変更して確認してみるとこうなります。

f:id:jaijai_lt:20210904170613p:plain

ミラーしているのでテクスチャも線対称になっています。つまりUVマップはX軸原点を中心に180度回転しています。

次にEF66のディフューズテクスチャを示します。

f:id:jaijai_lt:20210904171829p:plain

テクスチャ面積を稼ぐため1エンドと2エンドでUVマップは共有化されています。

f:id:jaijai_lt:20210904172940p:plain
1エンド側

f:id:jaijai_lt:20210904172956p:plain
2エンド側

よって、UVマップ上では1エンド側と2エンド側ではこれもX軸が180度回転しています。EF66ではテクスチャ解像度をいかに抑えるかということも1つのテーマにしていたのでこの問題については妥協しました。

まとめ

この問題はさほど気にする必要はありません。場合によっては目立つといったところです。実際、EF66には同様な箇所が他にも複数ありますが注意深く観察しないと気が付かないレベルです。

頭の片隅に置いておくと妙な現象に悩まなくてよいかもしれません。