背景アーティストのぶろぐ

UE4やら、Substanceやら、Zbrushやらいろんなソフトを触ったことについて色々書く。

【SP】ローメッシュを編集し、差しかえても手書きペイント箇所がついてくる【reprojection】

※2016/5/29 

一番下に2Dビューでペイントした場合にUV Reptojectionができない件について追記してあります。

 

SubstancePainterを使ってると途中でローモデルのUVを変更したい、

調整したくなることがあります。

 

そのようなときにローモデルを差し替えても、

ペイントした情報がちゃんとついてきてくれるのですが、

どの程度まで編集しても大丈夫なのかよくわからなかったのでテストしてみました。

 

ここで重要なのは”手書き”による箇所がついてくるかどうかです。

ジェネレーターやブロシージャルで描かれてる箇所は

ベイクしたテクスチャが更新されればついてくるので問題はありません。

 

 

まず、スタートはこのような感じでUV展開されている本に

わかりやすく「てすと」と書いてみました。

f:id:sinocof:20170224232556p:plain

 

①頂点に編集はせずにUVの位置を変更する 

UVの位置だけを変更する分には問題なくついてきてくれてるようですね。

多少ウェザリングのかかり方が変わっているのは、

プロシージャルに生成されてるノイズによるものですのでこれは問題なし!

f:id:sinocof:20170224232625p:plain

 

②頂点を追加したり、削除したりする 

同じUVの位置で頂点数を増減させることも問題なさそうです。

カバー部分にエッジを追加しています。

紙の部分のメッシュは完全に削除しています。

 

編集量が少なかったのかもしれませんが、この程度の変更なら大丈夫ということですね。

f:id:sinocof:20170224232648p:plain

 

③UVを展開しなおしたメッシュ 

完全にUVをボックス形状でUVを展開しただけのものに差し替えても

ちゃんと手書き部分がついてきます。

 

これは流石にダメじゃないかと思ったのですが、全然大丈夫でした!

f:id:sinocof:20170224232710p:plain

 

④ペイントしてる箇所の一部を削除したメッシュ 

本の背表紙部分のポリゴンを削除すると、

背面にあった手書きの文字が表の方に移動してきています。

 

流石に、これには対応しきれなかったようですが、

それ以外の部分は問題なくついてきてるようです。恐るべしサブスタンスペインター。

f:id:sinocof:20170224232731p:plain

今回はローモデルだけ変更を加えてみましたが、

ローモデルだけの変更ならば思っていた以上についてきてくれてると感じます。

 

しかし、ローモデルだけではなく、ハイモデルも修正するとなるとまた異なった結果になるかもしれません。

どのように位置情報を把握してるのかわかりませんが、これはなかなかすごいと思いました!

 

追記1

Blender使いの方からの情報で、FBXのバージョンが異なるもので差し替えるとうまくいかないそうです。

Mayaで FBX2014バイナリ → FBX2016アスキー → FBX2012バイナリ で試したところ成功したので、Blender使いの方はご注意を!

 

(らりほまさん情報ありがとうございます!)

 

 

追記2 (5/29追記)

3Dビューでペイントした場合はついてくるけど、2Dビューでペイントした場合は付いてこないという情報をTwitterで拝見しましたので私も試してみました。

 

赤字3DViewでペイントしたもの。白字2Dビューでペイントしたものです。

f:id:sinocof:20170224232813p:plain

UVを切り分けて、レイアウトし直してみると以下のように赤字は新しいUVについてきてますが、

白字は2Dビューの描いた場所にとどまっています。

f:id:sinocof:20170224232829p:plain

教えてくれたシイタケさん(@shiitake000)曰く、

 

 

確かに!

ここは注意しておかなければいけなそうですね。

 

非常に有用な情報なので追記させていただきました。ありがとうございます。

 

追記3 (5/29追記)

さらに、もんしょさん(@monsho1977)より追記2の内容を受けて、Polygon Fill機能(ポリゴンを選択してマスクする機能)を使った場合の注意点についてツイートされてました。

 

 

 

 

 

 

Polygon Fillを使ったマスクは私も壊れた経験があるので、これが原因だったんだなと納得しました。

SubstancePainterを出来る限り非破壊で使いたいと思うなら、IDマスクを作成し、そこからレイヤーをマスクするほうがPainterの利点を活かせそうですね。

 

 

さらに一言…。

 

 

(だよねー、私もほとんど使ってない…)

 

2Dビューのペイント情報がローモデル差し替えた時についてこないのはバグなのでは?という意見もあるので調べてみたところ、公式ドキュメントにはこのように記載がありました。

 

公式ドキュメント UV Reprojection

 

以下Google翻訳+私の意訳

2Dビューで行われたすべてのストロークがUV空間で実行されているので、変更を加えたメッシュ再インポート後の場合には、適切にメッシュ変更のUVを、それを再投影する方法はありません。

プロジェクトの再投影を正しく行うための最善の方法は、IDマップと選択の他の種類によってマスキングし、代わりに3Dビューで描くことに依存することです。

 

 

うーむ、現在はUV空間で描かれた内容を再投影する術がないということですね。

とは言いながらもSteamのCommunityで開発者の方が『我々は方法を見つけるだろう!』とコメントを残されているので、今後のアップデートで対応される日を楽しみにしたいと思います!

 

Steam Substande Painter Community : UV Reprojection not featured in 2D mode. Why?!