Substance Painter で.fbxファイルを読み込めないときの対処法
Substance Painter に.fbxファイルなどの3Dモデルを読み込もうとすると、度々エラーが出てインポートできないことがあります。
この記事では、実際の例を参照しながらSubstance Painter で3Dモデルをインポートできない時の対処法について考えていきます。
目次
事のあらまし
先日 Substance Painter を用いてテクスチャペイントをするために、Blenderで作成した3DモデルをSubstance Painter に読み込もうとしたところ、以下のようなエラーメッセージが出てしまい、読み込むことができませんでした。
普段であれば、エラーメッセージ内にその理由が表示されるはずですが、今回はそういった文言がないまま「3D シーンの読み込みに失敗しました。Loading failed」というメッセージだけが表示されました。
これだけだと.fbxをインポートできない理由がわかりません。どうしよう。
仮説:Substance Painter 側ではなくUVに問題があるのでは?
とはいえ、当該.fbxファイルは3Dビューアなど他のソフトでは開けたので、Substance Painter でだけインポートができないとなると、結局UV展開が上手くいっていないのでは?という仮説が生まれました。
実際3DモデルのUVマップを見てみると、かなり酷い有様であったことがわかります。
今回はUDIMを用いてUV展開を行ったのですが、適当にやりすぎた結果、上の画像のようにUVが重複している状態になっていました。
UDIMとは、座標をオフセットしてタイル化したUVマップを使ってオブジェクトに対して複数のテクスチャを扱えるシステムのことです。これによって効率的なテクスチャの管理・運用が可能になり、結果として使用するシェーダの数が少なくなることでレンダリングにかかる時間を減らすことにもつながります。
https://cgworld.jp/feature/201610-cgw218t2-3dpaint-3.html
Substance Painter で色塗りをする場合、当然ですがUV座標を基に着色などがなされます。そのため、エラーの内容がどうであれ、UV展開がしっかりなされていないといずれにせようまく色を塗れません。
よって、とりあえずUVマップを調整してみることにしました。
UV座標を調整することでエラーメッセージが復活
複数のタイルにまたがっている箇所を中心に、一部だけUV座標を修正した上でもう一度Blenderから.fbxをエクスポートし、Substance Painter にインポートしようとしました。
一部直っていない部分があったので結果インポートには失敗してしまいましたが、あら不思議、先ほどまでは表示されなかったエラーメッセージの理由部分が表示されています。
ここで表示されたエラーメッセージは以下の通りです。
[Scene 3D] Errors have been found while splitting meshes per UV tile: Mesh 'Wall_Blackboard' has a face spanning across multiple tiles: UV tile 3, 3(UDIM 1034) with vertex at U%3D3449,V%3D2.99609 Mesh 'Wall_Blackboard' has a face spanning across multiple tiles: UV tile 3, 3(UDIM 1034) with vertex at U%3D3,65004,V%3D2.9961 Mesh 'Plane.015' has a face spanning across multiple tiles: UV tile 0,4 (UDIM 1041) with vertex at U=0.50225, V=33,99783 [Scene 3D] Loading failed [Scene 3D] 3D シーンの読み込みに失敗しました。 Loading failed [Mesh import] ファイルの読み込みに失敗したため、前のシーンに戻ります [Scene 3D] Errors have been found while splitting meshes per UV tile: Mesh 'Wall_Blackboard' has a face spanning across multiple tiles: UV tile 3, 3(UDIM 1034) with vertex at U%3D3.65004,V%3D14,00074 Mesh 'Wall_Blackboard' has a face spanning across multiple tiles: UV tile 3, 3(UDIM 1034) with vertex at U%3D3449,V%3D4,00073 Mesh 'Plane.015' has a face spanning across multiple tiles: UV tile 0,4 (UDIM 1041) with vertex at U=4.36795e-08,V=33.98828
めちゃくちゃ長いですがこれを要約すると、「UVが複数タイルにまたがってるから読み込めないゾ!」という意味になります。
したがって、他のタイルにはみ出ているUVを調整して、一つのタイル内に収めればエラーが解消されると考えられます。
先の事例でこのエラーメッセージが出てこなかった理由は分かりませんが、もしかしたらUVエラーが多すぎてソフト側で処理し切れなかったからかもしれません。
表示されたエラーメッセージを全て直すことで、問題なく.fbxファイルを読み込めました。
Substance Painter を使う際はUVのはみ出しに注意
Substance Painter でテクスチャペイントをする際に注意したい点はUV展開です。
UVが重なっていたり、タイルからはみ出したりすると、Substance Painter 側で.fbxなどの3Dモデルをうまく認識できない場合があります。
そのため、UV展開は以下の点に気をつけながら行うことが重要です。
- タイルの外にUVがはみ出ていないか
- (UDIMの場合)他のタイルにまたがっていないか
なんとかSubstance Painter に持っていくことができたので、次回以降はテクスチャペイントをやっていきます。
他の3DCGに関する記事はこちら
この記事を書いた人:ichiineki