RealityCapture:複数枚テクスチャをUE4で扱う|書き出し編


RealityCaptureから書き出したフォトグラメトリモデルは、UE4で読み込むとこの画像の様にテクスチャが歪んでしまう事があります。

そもそもモデルが歪んでいるので、そのせいでは…と思わなくもないですが、実際には、広域フォトグラメトリなど規模の大きいモデルに複数枚のテクスチャを使用した場合に起こってしまいます。

RealityCaptureからの書き出し

主な原因は、RealityCaptureから書き出す際のUVマッピングの設定によるものです。

RealityCaptureから書き出す際の設定を見てみるとTile typeと言う項目があり、これがUVマッピングの種類を表しています。

デフォルトでは**“_u1_v1”**となっていて、通常はデフォルトの状態で問題なくRealityCaptureのヘルプにもそう書かれています(なのでそれを普通は信用するのですが…)

Tile typeの違い

しかしUE4では**“_u1_v1”と”UDIM”**を使用すると表示の問題が起こってしまいます。
以下に、各Tile typeの違いを並べてみました。

_u1_v1_u1_v1

UDIMUDIM

(u,v)(u,v)

この中では**“(u,v)“**だけがUE4で複数枚テクスチャを使用する場合には問題なく表示されるUVマッピングとなっています。

そもそもなぜUE4では表示の問題が起こってしまうのかと言うと、ざっくりと言えば**“_u1_v1”と”UDIM”**のUVマッピングタイプにUE4が対応していないからという単純な理由になるのですが、細かいことは別の記事で。

なお、UE4で作られたTwinmotionでも同様の問題が起きますが、上記の様に(u,v)で書き出すことで回避することが出来ます。

まとめ

RealityCaptureのモデルをUE4で使う場合には、Tile typeを”**(u,v)“**にする。