SubstanceDesigner – WSnormalMap & PositionMap

SubstanceDesignerのMask Generatorsには入力に基づいたマップとパラメータで各種マスクを生成することができます。
こう書くと分かりにくいのですが、適切な汚しをつけるためのマスク、要するに部分を抽出することが出来る。ということです。

 

SubstanceDesignerを使うに当たって、最も重要な基本概念は、テクスチャをモデリングして作る。
というような感覚になるかと思います。
なので、ハイトマップを作ることが最も重要で、始まりでもあります。
ハイトマップ自体は、ZBrushでいうところのDisplacementMapなので、そう考えるとより分かりやすいのかと思います。

 

ちょっと話がずれましたが、今回はZBrushのプラグイン、TerreinToolsから出力した情報を元に、
SubstanceDesigerのMask Generatorsのものを使えないか、とやっている時に発見したものを備忘録で書いておきます。

 

まずは分かりやすいように一軸、SubstanceDesignerでは画像なので、グレースケールという意味になりますが、
一軸の情報入力が必要なノード、「GroundDirt」を例にとってみます。
この場合、必要とされるノードは基本一つで、グレースケールのポジションマップを要求されます。
その場合は出力したハイトマップを入力すれば済みます。
2017_03_29_6077
こんな感じです。

 

しかし、カラーのポジションマップやワールドスペースのノーマルマップを要求される場合はどうしたら良いのだろうか、
ということで、今回やってみました。
個人的にマスク生成でよく使うノードは「Mask Builder」です。
最もパラメータが多く、色々なマスクを生成することが可能なのですが、入力を要するマップも多いです。
「AO」「Curvature」「WSnormal」「Position」(カラー)が必要となります。
特定のパラメータを使わなければ、それに関するマップを入力しなくても使えますが、
全てのパラメータを使いたい場合は、マップが必要になります。

 

で、調べてみてわかったのですが、プレーンである場合、ハイトマップさえあれば、
全てのマップを生成することが出来る、ということがわかりました。
ポジションマップは、
Redチャンネルに「Rotation」「90°」のグラデーション
Greenチャンネルにハイトマップ
Blueチャンネルに「Rotation」「180°」のグラデーション
アルファは白のベタ

WSノーマルマップは、タンジェントのノーマルを分解し、
RedチャンネルにRedチャンネル
GreenチャンネルにBlueチャンネル
Blueチャンネルに元のGreenチャンネルを反転したものを入力
アルファは白のベタ

にすれば、生成できるようです。
2017_03_28_6073
こんな感じです。

 
で、それを一つのノードとして作り、Mask Builderで使ってみると、
2017_03_29_6074
こんな感じになります。

 

SplatMapとHeightMapを入力すればカラーとラフネスを生成するノードもできそうだなぁ。
2017_03_29_6082

ZBrush – TerrainTools – SplatMap

2017_03_28_6071
ちょっと忘れないうちに備忘録です。
Zbrushのプラグイン、TerrainToolsですが、Zbrush上でマスクを作成可能です。
Cavity、SlopeなどはSubstanceDesignerでも作る事が出来るからいらないかなぁ、などと思っていたのですが、
ちょっと違うようでした。

 

作成したマップはそのままグレースケールでいつも通りにエクスポート可能ですが、SplatMapという名前の付いた
画像で出力可能です。
この画像は各チャンネルに生成したグレースケールを入れて出力できるもので、ただの便利機能かと思っていたのですが、
ちょっと違うようでした。
なぜだか、どういった原理なのかよくわからないのですが、グレースケールで出力したものとは結果が異なります。
それはそれでまずいように思うのですが、グレースケールの方が情報量が多く出せるだろう。と、しばらくそれでやっていたのですが、
どうにも情報を膨らませることができずに、SubstanceDesignerでノイズを追加して情報を増やしておりました。

 

そんな時にチュートリアルを見つけ、見てみるとSplatMapでの出力があったので、見ながらやってみると、
いい具合に情報が増えたものが出力されました、、釈然としないのですが、今のところはまぁ、増えたから良いだろう。という感じです。

 
1.まずは、デフォルトの値で「SlopeMap」を生成
2.「WetMap」を「Duration」「437」、「Rain」「191」に変更して生成
3.「AntMap」を「Droplets」「2398」、に変更して「FitAntMap」で生成
3.「CavityMap」を生成

できたマップを
A 「SlopeMap」
B 「WetMap」
G 「AntMap」
R 「PASMap」※Cavity生成時に生成される
を入れて出力。

 

できたものをSubstanceDesignerで分解して使用すれば色々とマスクを作ることが出来る。
後はもっと狙ったような地形が出来るように、TerrainToolsのパラメータを理解しないとなぁ。

SubstanceDesigner – GrungeMap

2017_03_26_6068
随分と前の話ではあるのですが、Substance ShareでGrungeCollection1というのが公開されておりました。
マスクを作る際にベースの汚しに便利に使えるマップ集、という感じだと思います。
ただ、8bitの画像なので、ハイトマップとして使用するにはちょっと物足りず、そのままノーマルに変換すると
ジャギジャギとした汚いノーマルが出来上がります。

 

そんなときは、基本ブラーを掛けて情報量を膨らませるのですが、一口にブラーといっても色々と種類があります。
凹凸として使用する情報がほしい時、よく使用されるのがSlopeBlurかと思います。
そんなSlopeBlurを重ねがけして、いい具合に手早く情報を増やしてくれる、というノードがこちら

幾つかのsbsを公開されている方で、良く参考にさせてもらっています。
そのマテリアルで使用されているノードに、HBNoisePolisherというものがあります。
これはSlopeBlurを重ねがけして、情報量を増やしてくれます。
その結果が、上図のものになります。
因みに上のものはIRayで、同じものをOpenGLで表示するとこうなります。
2017_03_26_6069
HBNoisePolisherでハイトマップを作成し、そこからAO、ノーマルを作成し、ノーマルから曲率を生成し、
それを元にラフネスを作りました。後、ラフネスにはスロープ具合から抽出した情報を加味しました。
カラーはニュートラルグレーよりも少し明るいグレー単色です。

 

コレクションというだけあって、35枚あります。
その一つ一つを試すのは結構骨が折れます。
なので、一つのノードで切り替えるノードを作ってみました。ピクセルプロセッサーを使って作ったのは良いのですが、
肝心のsbsを無くしました、、おかしいなぁsbsarと同じディレクトリに入れておいたのになぁ、、
まぁ、用は足りるので良いです。
簡単に作成できるノードではあるのですが、35個分なので、面倒くさいです。
こんな時やはり、GUIのノードベースよりもテキストベースの方がfor文一回で済むから楽だなぁ。などと思ってしまいます。

 

で、環境を整え、色々と比べてみましたが、割りと偏ってはいるのかなぁ、という印象です。
まぁ、使うとしても混ぜ合わせて使うので、問題はないのですが、やはり手持ちのライブラリの量、というのは重要になってきますねぇ。

Substance Designer – ディライティング

うーん、以前ディライティングの事を記事にしたような気もしますが、また書きます。
えーと、こんなものがありました。

 

移動したページの真ん中よりも少し下に、「Click here to download it」という文字があり、「here」がリンクになっています。
そのリンクをクリックするとsbsファイルとsbsarファイルがzipに入ったものがダウンロードできます。
カラーマップと、AOマップをノードに指すと、いい具合にAOを除去してくれます。
落影がきつく入っている場合は無理ですが、大抵の場合はなんとかなりそうです。
SubstanceDesignerも5.6になり、優秀なAO作成ノードが加わり、ハイトマップがあれば、きれいなAOを作成してくれます。
もし、カラーマップしかない場合は、B2Mなんかでハイトを作り、それを元にAOを作るといい具合になります。

 

というか、このノード、SubstanceShareに入れるべきなのでは無いでしょうか、、
もっと早くに知りたかった、、

 
それはそうと、ちょっと実験。
2017_03_08_6051
少ない手数で岩肌を作れないか、という事で作ってみました。
元はSubstanceShareにあるGrungeMapで、カラー情報として、適当な画像から色情報をもらってます。
よくあるのが、ハイトの情報を元にカラーをグラディエントで乗せる、という手法がありますが、どうも個人的に好きになれません。
大理石ならまだしも、そう中々高さに沿って年輪のように色は変わらないですよねぇ。
なので、ノーマルマップを分解した情報を元に色を乗せてみました。

ZBrush – Terrain Tools

TerrainToolsというZBrushのプラグインを買いました。
gumroadではいつも無料のものばかりをダウンロードするのですが、今回は2.5ドルの有料ツールを買ってみました。

 

WorldMachineを使わずに、侵食がきれいにできるか、疑問だったのですが、中々です。
しかも速い、、
そして、各種マップも出力でき、それらをSubstanceDesignerで合成すると
2017_03_15_6064
こんな感じです。

 

これがたった3百円程度のプラグインで生成できるって、凄いですぇ、、
因みにZBrushでは、
2017_03_15_6066
こんな感じに生成され、SubstanceDesignerで見るのとほぼ同じようにできます。
あぁ、2年前にあれば、だいぶ助かったのに、、

 

そんなかんなで、驚いていたら、
こんなものを見つけましたが、
何なのでしょうか?
リンク元を忘れましたが、Unityで動いていたような気もするのですが気のせいでしょうか。

 

それはそうと、今後テクスチャはフォトスキャンが主流になるだろうなぁ、などと思っていたのですが、
SubstanceDesigerではScanProcessingというカテゴリが追加され、一つの素材を4から8方向の照明で取った写真を元に、
各種情報を再現させる、という方向性を提示し、どちらも一長一短の手法のように思います。
特にフォトスキャンの場合は、取ってきた素材が、現像した後に使い物にならないことがわかるとゲンナリしますし、
Substanceの手法の場合は、特殊な自作装置でも作らない限りは、スキャンするのが難しそうです。
そんなことを思っていると、こんなものがありました。
Nvidiaが作ったようですが、Unity上でフォトスキャン、という感じでしょうか?
ノートパソコンを持ち歩いて、その場で現像出来るようなので、これは中々良さそうです。

 
と、思ったら、さらにこんなのもあります。
トラッキングツールのようですが、下の方におまけのような形で、メッシュの出力、各種マップの出力が出来る。というようなことが書いてあります。
ああ、これが最強ですね、、
以前シーグラフで、撮影した動画を元に、陰影を抜いたアルベドとメッシュ形状を生成する。というようなものがありましたが、あのテクノロジーなのでしょうか?

 

いやー、進化がはやいですねぇ。
進化と言えば、MayaのUV編集、とてつもなくパワーアップしていて、ビックリでした、、うーんMODOより便利かも、、

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です