[戦国武将20] MARIでテクスチャーを描くPart3 -衣装のテクスチャーを作成する-

こんにちは、越智光進です!
前回までで、信玄の肌の制作を完成させておりましたが、お仕事の都合制作の方を少しストップせざる得ない状況で、前回から大変長く期間が空いてしまいました。大変申し訳ございませんでした!
また再開しましたので引き続きよろしくお願い致します。
 
今回は金属系の質感の説明をしつつ衣装側のテクスチャー作成をいたします。
※かなり長編で話きれない内容なので2回に分けます。
 
 
 

 
今回もガッツリMARIを使って制作していきますが、
テクスチャーを作成するうえで私は大まかに考えるなら基本的に、金属&肌、もしくはそれ以外か?という考え方で要素を作成しています。
肌に関しましては前回幾分ご説明をしていますが、金属の質感をつけるには色々なプラスアルファの要素が存在していてすこし難しい設定がありますが、それ以外の質感に関してははある程度スタンダードなやり方で問題はないという事です。
大体キャラクターを制作していると、
・肌
・布、皮
・金属(ダイヤ等の原石の質感も含む)
・たまにゴム系?
というような質感のジャンルに分かれると思います。
もちろん水っぽい質感やレンズっぽい質感等、例外もありますがほぼ上記の種類で収まるのではないかと思います。
大まかに必要な要素は
 
◆金属、肌以外のベースマップは
・diffuse(albedo)
・specularcolorもしくはweight(vrayの場合はreflectionもしくはamount)
・rouphness(vrayの場合はglossness)
・nomal(bump)
 
◆金属の場合は、
・diffuse(albedo)
・specularcolorもしくはweight(vrayの場合はreflectionもしくはamount)
・rouphness(vrayの場合はglossness)
・metalness(もしくはIOR)
・normal(bump)
・anisotorophy
・anisotorophy rotation
 
主には上記になります。
これに必要ならdisplacementMapやその他maskMap等も加わるという感じでしょうか。
1番難しいのはやはり肌なのですが、金属の表現も同じくらい考えないといけないことがありますので今回はその辺の質感の付け方も踏まえてご説明致します。
使用するソフトは主に
MARI
Photoshop
Quixel(sweet&megascan)
私の場合この3つです。
mariで全て描ききりますが、素材を作成するのにQuixelとPhotoshopを使います。
Photoshopはプロシージャルな素材を作成する時や最終的なテスクチャーをほんのちょっと変える時などに使用してます。
それでは描いていきたいところではあるのですが、その前に、、
まず、金属の質感を作成する際に考えておかないといけないことが2つあります。
 
◆1つ目は、IOR(Index of Refraction屈折率)を使った要素の作成をするかしないか?
最近はArnoldの普及率が高いので皆さんmetalnessを使用して鉄感をだす方が増えていると思います。
もちろんその方が楽ですのでゴールドの質感等、金属に色が付いた質感もdiffuseマップにそのまま描きこんで使用できるのも利点です。
ではIORを使った方法はどうするのか?ということが今回のキーなのですが、IORの場合はより物理に沿った考え方で作成することになります。
例えば世の中にある物質のすべてにはそれぞれに屈折率の数値が存在しており、IORにその数値を設定することでより現実的な質感を追求しようという考えです。
初めて聞く人にはちんぷんかんぷんな文面かもしれませんが、ネットなどでまずはIORとはなんぞや?と検索して屈折表をみることをお勧めします。
もちろん現実とCGの中の違いもありますので屈折率の数値がそのままに再現されるということはありません、例えばGoldの屈折率は0.6くらいなのですが、この数値はゴールド自体の元素の数値なので、
実際にゴールドっぽく?みえる質感のほとんどは金属っぽい反射をしたりしていますので、もっと数値は高くてもよいはず、、といったようにこの辺りはどうしてもレンダリングしてみての塩梅になってくるので多少試行錯誤しながらIOR設定を繰り返し数値を調整していくという流れになります。
と、あまり深く考えると面倒な説明になりますので、要するに金属やレンズ、水系、以外はだいたいIORの数値は基本数値(1.52-1.6)と考えてもらって構わないと思います。
そういう意味ではmetalnessと変わらずより見た目でリアル感を追求していくというフローになります。
 
じゃぁもうmetalnessでいいやという方は今回のブログは無意味なので読む必要はないと思います。
 
 
 
◆もう1つはIORを使う時、金属に色がついている場合はreflectionMapに着色をするということです。
金属の原石はもともとは黒で、その原石を研磨して環境に反射して初めて色がついて見えるという考え方を持つことが重要で、シルバーなどの質感はグレートーンで大丈夫なのですが、そこにゴールドといった質感をつける場合はrflection側に着色をして
diffuse側には黒(5パーセントから15パーセント)の設定をしてあげることでよりリアルな質感を追求します。
※MARI内のリアルタイム表示にはかなわないフローなのでこの場合レンダリング時の見栄えを予想してMARI内で描いていくということになります(より経験者向けです)。
 
鉄感の説明をするときはいつも前置きが非常に長くなってしまうのですがとても重要なことですのでお許しください、、、
というわけで、まずは兜に質感をつけていきつつご説明できればと思います。
 

兜に関してはカメラが寄る顔まわりという事でこのパーツで1シェーダーという考えでUDIMを取っています。
また衣装全体に使ったUDIMの数がとても多いので、テクスチャー情報を加味した上で各シェーダー1つに対して1プロジェクトという分け方で仕上げていきます。
まずはmari内にレベル3くらいのオブジェクトをインポート、オクルージョンは前回までにとりましたのでAOテクスチャーとしてをインポートします。
またスクラッチ系などのマスクマップを作成する際に必要なマップをそれぞれ用意します。
 
・curvetureMap
・cavityMap
・AOMap
etc
各種サポートマップはMARIのModeRenderや、substance、3dCoat、migthybake、Quixel、他、からとることが可能です、もちろん良し悪しはあるのですが、
例えばMAYAで作成したモデルからだけマップを取るならModoRenderで十分だと思います。
AOmapは前回作成したやり方でもいいですし、CuvetureMapもModoRenderでもいいと思いますが、
ModoRenderの注意点は4KベースでUDIMに多くUDIMの展開を施しているとbakeにかなり時間がかかります。(展開がおおいと当然ですが・・・)
逆にスカルプトベースからマップを取る場合は私はQuixelsweetもしくはmigthybake等から各種サポートマップを書き出しています。↓
 
 
各種マップの使用用途は、スクラッチなどのマスクマップとして使います。
サポートマップを用意したら次はNodeGraphに移動して質感分けを簡単編集するためのマスクマップを用意します。
今回は
 
Gold-2
fabric-1
その他のマスク等の質感-1
 
の計4種類存在しました。
作成したそれぞれのマップをRatioTransmitterを設定してバックドロップに収めておきます。↓
 
次に質感別のmaskMapをUVモードなどを利用して作成します。
この時しっかりselectionGroupを設定していると楽です、また、gradeでトーン調整できるようにしておきます。↓
 
それぞれ作成したらこちらもRatioTransmitterを設定してバックドロップに収めておき、RatioNodeを作成→misc→Connect toTransmitterでマスク用の単一Nodeを作成しておきます。
このNodeを作成する理由は、頻繁に使用する各種マスクマップを単一Node化することでGraph内の複雑化を軽減させるためです。↓
サポートマップ設定が完了したらVrayもしくはarnoldのマテリアルを用意して
要素別にアサインさせておきます。
※Vrayベースで作成しますが、arnoldでチェックする場合はrouphnessのマップだけ反転させて調整できるようにしておきます。
私はいつも両方で設定できるように2つ作成してつないでいます。↓
 
ここまでが描いていくまでの準備段階です!
この作業を毎回テクスチャーを描く前に設定しておき、コピー&ペーストで流用していくと他の要素作成の際も少しだけ楽になります。
 

各種マップをここから描いていくのですが、私の場合はまずはdiffuseマップをすべて完成させてそのnodeを利用して他のマップを作成しています。
そうしないと色情報が別々の描き方になってしまいイメージのズレが必ず生じるからです。
前回までにあらかじめ描いていたdiffuseのベースマップをまずはアサイン、そのほかもマップも仮入れの状態で、ある程度作成しておきます。
また、4.5から入っているベースマテリアルも使用する場合はこの段階でベースマテリアルとして設定しておくとやりやすいと思います。
マテリアルを使用する場合は、megascanなどからいろいろなプロシージャルなマテリアルを読み込み作成しておくととても制作の助けになるので便利です。
今回必要な要素として、fabric系の素材と、ゴールドや、メタル系の素材が必要でしたのでmegascanから読み込みました。↓
※4.5以降でマテリアルを使用する場合は最初の段階で設定しておくことをお勧めします。
次にTextureSetを利用して必要なマップをImageManegerに格納していきます。
テクスチャーマップは個人的に作成したものや、こちらでもmegascanを利用しています。
プロシージャルな素材としては素材自体画像をバンバン使うのはさけたいのですが、スクラッチ系は非常に役にたちますのでtiledイメージで好んで使用しています。↓
描いていく上のコツとしては、まずは各質感別のマスクを用意しましたが、それを利用してGroupeにマスクを設定その中にサポートマップをうまくカラーマスクとして利用して
そこの上にtiledテクスチャーをmultiplyやscreen等で被せていくのが理想的です。
 
 
 
主に形状の突起にだけに必要な場合はedgeマスク、へこみの部分にはcavityマスク、そのどちらでも活用できるcurvetureマスクといった認識で
マスクを使用する場合はmisc→Connect To Transmitterでノードを作成してそのノードをマスクの中に活用すると便利です。(ratio設定したのはそのためです)↓
 
 
ピンポイントで入っている傷などはリファレンスをしっかり見ながらどういった箇所に必要なのか?把握しながら描いていきます。
描くというよりはマスクを作成してさらにそのマスクの上に必要ないパートを黒で塗りつぶして情報を追加していく感じです。↓
 
 
この作業を各質感別に作成して色を載せていけばdiffuseマップの完成です。↓
 

このdiffuseマップをコピーして基本要素のリフレクッションとgloss(rouphness)マップを作成していきます。
作成はそんなに難しく考えません。
各質感の最下層のカラーをグレースケールにし、その上にのっかっている傷などの要素のパラメーターを調整して見え方の塩梅を調整していきます。
基本はグレースケール40-60%くらいをベースに設定してそこから暗い部分明るい部分をリアルタイムで見ながら調整していくといいです。↓
 
ベースの設定が完成したら一度MAYAへエクスポートし、それぞれテクスチャーをアサインしてチェックをします。
 
ここで重要なポイントがあるのですが、エクスポートする前に1つ追加の調整があります。
前置きでも少し話しましたが、
IORを使った金属の質感をつける場合(=metalnessを使わない場合)は金属の色設定はreflectionマップで行います。
MARI内でのリアルタイム表示の場合は仕方ないのですが、レンダリングをする場合はよりリニアに沿った計算をされますので、物理的な考えとして金属の場合は原石は黒に近い色で、それが研磨されて環境色が写りこむと考えることが重要な考え方です。
ですのでreflectionのカラーマップはdiffuseと同じでSRGBで描くことと、ゴールドのような色が載っている金属もreflectionマップに色を載せてエクスポートします。
今回金属系のdiffuseはblack8-15%くらいで設定しています(スチール系の場合はもう少し明るいです)
調整上のポイントですが、
今回の鎧のような金粉が塗られているような質感はゴールドなのか?そうでないような質感でしたので、試行錯誤のうえ、black25%くらいの明るさで少しだけイエローを被せて調整しました。
こういった質感が確定しない要素はレンダリングを繰り返してどこに何が足りないのか?見極めることが重要です。
下記の図にあるように、鉄に色がついていたらReflectionMapに配色してDiffuseMapにはグレーを配色していますが、例えばもしその鉄に錆がついていたら、その錆自体は鉄が酸化してできた鉄以外の質感になりますのでDiffuseMapに色を載せるということになります。↓
 
 

同じ要領で別シーンからfabric系の衣装関係のテクスチャーも描いていきました。
もちろん金属ではありませんので、基本はdiffuseに色をのせてグレースケールのトーンでreflectionとglossを作成しています。
 
 
長くなりましたので今回はここまでにしますが、次回は
引き続き要素の作成で、IORやanisotrophyの要素を作成をしてレンダリング、防具、衣装関連の質感をすべて完成させます。
 
読んでくださいましてありがとうございました!