SubstancePainterでのレイヤ構成を維持しつつUE4で読み込む
「途中スマホを買ったり歯が痛かったりしてテンション下がってたから手間取ったけど、ようやくドーナツをUE4で読み込むことができた」
妹「なんか前に作ってたやつだよね」
「そう。SubstancePainterではちゃんと表示できてても、UE4にもってくるのが目的だったから。そういう場合、通常はテクスチャのエクスポートというのをする。それをUE4側でマテリアルにくっつける」
妹「それでいいのでは?」
「表示するだけならいいけど、その場合、作業中のレイヤとかはいったんなくなってしまう。色とかメタリックとか法線マップとか、それぞれ1枚ずつの画像になるから」
妹「通常じゃない場合はどうするの?」
「SubstancePainterで作業してたsppファイルをそのまま読み込む。そうするとレイヤはそのままだから、その状態でLiveLInkさせれば、元のレイヤのまま塗り直せる。ただそれがなんかエラーとか色々でてうまくいかず、ツイッターでそんな話をもにゃもにゃとしていたら有力な情報を教えてもらえた」
UE4のクラッシュはよくありまして、自分の方でのクラッシュの原因はインポートしたFBXにWorldGridMaterialが割り当たっている状態でSend to SSPを行うと確定で落ちる感じです。UE4.20で試してみましたがやはり落ちました。
— まる (@dlab_maru) December 27, 2018
「sppの上書きが失敗したのかと思ってたけど、まさかマテリアルが設定されてないからクラッシュしてたとは思わなかった。今回Blender上ではマテリアルなんにも作ってなかったから、UE4上で適当なマテリアルを作って割り当てたけど、それで上手くいくようになった」
「まず、SubstancePainterで塗ってる時点で、(Blenderからエクスポートした)FBXファイルと、塗った色とかを保存してあるSPPファイルの2つがある。同じFBXをUE4にインポートすると、同じSPPファイルが使えるようになる」
妹「コンテンツブラウザに入れたらいいのかな」
「それができたら良いんだけど、SPPファイルはコンテンツブラウザから見えない場所にある。エクスプローラで開かないと見えない。コンテンツフォルダ内の適当なフォルダを右クリックすればエクスプローラで開けるはず」
「通常のアセットはContentフォルダにあるけど、SPPファイルは.spというフォルダにある。一度SubstancePainterとLiveLInkさせると対応したSPPファイルができる。先日ドーナツを塗ってた時に、このレイヤ情報とかどこに保存されてるんだろうなあ、と思ったわけだけど、テクスチャファイルとは別に、この.spフォルダに元データがあったからだった。そんなわけで、ここにSubstancePainterで塗ってた時のSPPファイルを上書きする」
妹「んー、でもそれってどうなるの? コンテンツフォルダの中は一緒だよね? また新しいSPPファイルができちゃうのでは」
「SPPファイルがなければ作るけど、そこにあった場合は信用してくれるから。こっちがすり替えたとは思わない。LiveLinkすればコンテンツフォルダ内のテクスチャも新しいのに書き換わる。普通にSubstancePainterで大幅に塗り直しがあったんだなあ、としか思われてない」
妹「ちょっとめんどくさいね」
「たくさんのテクスチャをインポートして、それをマテリアルブループリントで設定してってやるよりは簡単だと思う。ただSubstancePainterのLiveLinkプラグインは、必要に応じてファイルをどんどん作るので、ごちゃごちゃする欠点はある。名前とかも自動生成だし、テクスチャを別フォルダにとかできなさそう。LiveLinkで塗るならメッシュごとに別フォルダにしておくのが管理しやすいかなと思う」