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

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

【SP】【SD】IDMap作成のための頂点カラーについて

f:id:sinocof:20170225000149p:plain

IDMapの作成を楽にする方法を色々考えてみました。

 

よくあるのはハイモデルにマテリアルで素材分けする方法ですが、

ZbrushとMayaからハイモデルを書き出して使用する場合、Zbrushからのデータはマテリアルカラーを持てないので頂点カラーで指定する必要があります。

 

MayaとZbrushそれぞれで頂点カラーでの指定する方法について調べてみたので、

まとめておきます。

 

今回例で使用するのはこの椅子のモデルですが、クッション部分はZbrushで加工し、それ以外はMayaでハイモデルを作成したものになります。

 

Mayaで頂点カラーを指定

Mayaで頂点カラーを指定する方法は正直なんでもいいと思いますw

 

以前はVertexCameleonを使用していたのですが、

現在使用しているMaya2016では使用できないので、別のものを今回探してみました。

 

IDMap用に頂点カラーを指定するのに便利だなと思ったスクリプトはこちら。

 

○CG自習部屋さんのAriVertexColorEditor

 

具体的な使い方はCG自習部屋さんのところにあるのでそちらを参考に。

 

まだそんなに沢山使ったわけではないですが、

頂点カラーの表示非表示がスクリプト内にあること、

また色の履歴を残しておけるという2点が個人的にいいなと思っています。

 

個人的な好みですが、頂点カラーON,OFFは選択オブジェクトだけではなく、

シーン全体で適用されるといいなと思ったり。。。

f:id:sinocof:20170225000210p:plain

BonusToolsにあったVertex Color Displayみたいな感じがいいのですが、

あれはViewport2.0には未対応なのでそこが非常に残念です。

 

Zbrushで頂点カラーを指定

Zbrushで頂点カラーを指定する時にこれは便利だなーと思った方法について。

椅子のクッション部分について説明していきます。

f:id:sinocof:20170225000224p:plain

自分の基本的なフローはこんな感じです。

 

 

  1. 素材毎にSubToolを分ける。
    今回だと革とビスしかないので説明としては数が足りないですが、こんな感じです。

    f:id:sinocof:20170225000239p:plain

  2.  

    頂点カラーを塗る前にPolygroupを整理します。
    基本的にはTool>Polygroups>GroupVisibleで1つのPolygroupにしてしまいます。

    f:id:sinocof:20170225000247p:plain

  3.  

    Tool>Polypaint>Polypaint From Polygroupをクリックする。
    これはPolygroupの色を頂点カラーを塗ってくれる機能なので、特に色の指定にこだわりが無ければこれをポチとします。

    f:id:sinocof:20170225000258p:plain

    f:id:sinocof:20170225000304p:plain

ここからマージして一つのSubtoolにしてもいいですし、このままで書き出してもいいと思います。それは各自のフローにそってもらえればよいかと。

 

 

SubToolが多い時は・・・

上記の方法の問題はSubtoolが多い場合に面倒です。

で、見つけたのがMaskPlugというプラグインです。

 

 

このプラグインは大きく3つ機能ありますが、ここで使用するのはFill with random Colorの機能のみ。全Subtoolに対してランダムに色を塗り分けてくれます。

f:id:sinocof:20170225000317p:plain

予め素材毎にSubtoolを分けておけば、ワンクリックで頂点カラーの設定は完了になるという優れものです。

 

MaskPlugを使って一括でベタ塗り、Polygroupで塗り分けしたいやつだけ、Polypaint From Polygroupを割り当て直すという感じで使っていこうかなと思っています。

 

 

管理の仕方も書き出し方も人それぞれのフローだったりモデルによって向き不向きがあるので、これがいい!というのを出すのは難しいですが、これらの機能の組み合わせだけでもかなり楽に作業はできるかなと思いました。

 

 

そもそも頂点カラーの指定がいらない???

最後にコレを言うのもアレなんですが、SubstancePainterでIDMapを書き出すときにColor SourceをPolygroup/Submesh IDにしておくと頂点カラーの指定をしてなくてもSubtool単位で自動的に着色してくれます。

f:id:sinocof:20170225000328p:plain

椅子のモデルで試してみるとこのような感じで、Mayaから持ってきたハイモデルもメッシュ単位で色を塗り分けしてくれてます。

f:id:sinocof:20170225000339p:plain

製作時はクッションの部分をノーマルマップベイクのために、革とビスのメッシュは同じ名前にする必要があり、Subtoolをマージして書き出ししていました。

しかし、後々ためしてみるとZbrushは、同じ名前をSubtool内でつけることもできるので、もしかしたらこれだけで十分かもしれませんね^^;

 

やっぱり頂点カラーが必要だというケースが今のところあまり思い浮かんでこないのですが、素材毎に色分けをしっかりしておけば、色指定の作業が少なくて済むなどの利点はあるかと思います。

 

どっちがいいかはお好み…って感じでしょうか。