チュートリアル / Mayaプロフェッショナルモデリング
第5回:テクスチャーの制作とレンダリング

  • Maya
  • ゲーム
  • コラム
  • チュートリアル
  • モデリング
  • 学生・初心者
  • 映画・TV
ハイモデルの制作

皆さんこんにちは、SAFEHOUSEの坂田です。

前回は【ハイモデル制作】の記事でMayaとZBrushを使ったハイモデルの制作フローと解説をさせて頂きました。読んで頂いた皆様ありがとうございます。
今回のコラムではMayaと Substance 3D Painterを使ったテクスチャーの制作とArnoldを使った簡単なレンダリングを解説していきます。

今回でこのコラムのシリーズ最終回となります。最後までよろしくお願いします!

テクスチャー制作の前に

前回のコラムではZBrushでハイモデルを制作してMayaへインポートするところまで解説しました。
現在Mayaのシーンにはハイモデルと前々回制作したミッドモデルの二つがある状態です。

現在Mayaのシーンにはハイモデルと前々回制作したミッドモデルの二つがある状態

今回は最初に、前々回制作したミッドモデルを簡単に減ポリしつつ最適化したローモデルを用意してUVを展開し、テクスチャーを制作する前の準備を行なっていきます。

まずはミッドモデルを見てみましょう。

現在シーン内にあるミッドモデルはまだ多角形が多数存在し、ポリゴン数も決して最適といえる状態ではありません。そのため今回はまずそれらの最適化を行なったローモデルを用意する必要があります。

ミッドモデルはまだ多角形が多数存在し、ポリゴン数も決して最適といえる状態ではありません

今回はローモデルを制作してハイモデルでベイクすることで、ハイモデルのディテールや法線の情報をローモデルに焼き付け、テクスチャーとして使うことで軽いデータでクオリティーを担保したモデルを制作していきます。
しかし、ハイモデルのディテールや法線を焼き付けたからと言っても、それはあくまでテクスチャーデータとしてのことで、モデルの形状がローモデルから変化する訳ではありません。
そのためローモデルはポリゴンの最適化を行ないつつも、ハイモデルと比較して形状が乖離し過ぎない程度に減ポリして行く必要があります。

今回はカメラ内に銃本体が収まる距離でポリゴンの角つきが見えない程度にポリゴンの最適化を行なってみます。

ポリゴンの最適化1
ポリゴンの最適化2

ポリゴンの最適化を行ってみました。緩やかな曲面はポリゴンの角つきが分かり辛いのでポリ割りを少なく、シルエットや急な形状の変化がある部分はポリ割りを多めに調整しています。

曲面部分の最適化が終わったところで、次は多角形を修正していきます。
多角形ポリゴンはゲームエンジンや、他のレンダリングツールにモデルをインポートした際にエラーが起きることの多いポリゴンです。
ほとんどのエンジンやツールには多角形を自動で三角形化する機能が備わっていますが、そのような機能は完全に想定通りに動作するわけではありません。

そこでベイクするにあたってエラーを起こしそうなポリ割りを修正していく必要があります。

ポリ割りを修正していく必要がある

例えば上の画像のように、曲面において極端に細いフェースが集中している状態はあまり良い状態ではありません。
このような状態は法線の操作が難しく、ベイクの際にエラーの原因となりやすいです。
ベイクは基本的に法線ベースで行われるので、綺麗にベイクを行う為にはローモデルの法線処理に気をつける必要があります。

綺麗にベイクを行う為にはローモデルの法線処理に気をつける

モデルが三角形化できたら、Mayaには標準で選択対象の条件を指定できるPolygon Selection Constraint があるので、それらの機能を使って見逃した多角形ポリゴンが無いかをチェックしておきましょう。

見逃した多角形ポリゴンが無いかをチェック

今回は Polygon Selection Constraint を使用しましたが、Mayaには便利なエラーチェックツールが多数配布されています。
データの受け渡しの際にそれらのツールを使って確認しておくことで、修正回数を減らすことにも繋がります。

Polygon Selection Constraint

次はオブジェクトネームを確認していきます。先ほど用意したローモデルとハイモデルは、サフィックスを利用したベイクを行うためにオブジェクト数やオブジェクトネームが同一である必要があります。
今回使用するSubstance 3D Painterでは初期設定でオブジェクトネームの末尾に_lowでローモデル、_highでハイモデルとしてサフィックスが定義されているので、Maya側で上の画像のようにそれぞれサフィックスとオブジェクトネームを設定しておきます。

Maya側で上の画像のようにそれぞれサフィックスとオブジェクトネームを設定

今回のP38のポリゴン数は△28474になりました。減らそうと思えばまだ減ポリできますが、実際にゲームで使うデータではないので見栄え重視でこの辺にしておきます。

これでメッシュの処理はほぼ完了です。次はUVの展開に入っていきます。

UVの展開

今回はあくまでリアルタイム用のGame Readyモデルとして制作しているので、テクスチャーの解像度はあまり贅沢には使えません。
TPSゲーム用アセットということであれば良くてマテリアル2つ、基本的には1つ以下でUVを収める必要があります。もちろんUDIMは無しです。
FPSゲーム用であれば最近はパーツごとにマテリアルを分けることが多いようですが、それでも4Kテクスチャー1枚に収まるように、2K2枚、1K2枚、512px2枚、といったレイアウトが多い印象です。

カメラの距離とテクスチャー解像度については弊社 鈴木のコラム【第3回:命を吹き込むためのUV展開】で詳しく解説されています。
今回は最終的に静止画でアップのレンダリングを行いたいので、少し贅沢にUVサイズを設定して下の画像のようにマテリアル4つでUVを展開していきます。

マテリアル4つでUVを展開

早速UVを展開していきたいところですが、今回のようなハイ/ローメッシュでベイクを行う前提のモデルはUVの展開方法に少し注意する必要があります。
基本的にUV展開では歪みが少ないのを前提として、UVの繋ぎ目(シーム)がより少ない方が良いのですが、今回のローモデルでは少し異なります。

正常にハイ/ローメッシュのベイクを行うためには、基本的にUVシェルが分かれていてシームのあるエッジ以外を全てソフトエッジに設定する必要があります。
そのためシームを少なめにUVを展開すると、その分多くのエッジをソフトエッジに設定することになります。

多くのエッジをソフトエッジに設定

本来はそれでも問題ないのですが、鋭い角度のエッジにソフトエッジを適用してSubstance 3D Painterでベイクを行った場合、エラーが発生する可能性が極めて高くなります。
またSubstance 3D Painterは法線の向きでポリゴンの向きを判断するという特性上、ペイント作業中に思わぬ不具合に遭遇することがあります。

ペイント作業中に思わぬ不具合に遭遇することがある

他にはPainter側では問題無くても、一部のレンダラでは稀にソフトエッジにアーティファクトが発生する場合があります。

なので今回は比較的鋭いエッジや、ソフトエッジを適用したときにエッジのノーマルが丸くなり過ぎる部分には基本的にハードエッジを適用して、シームを入れることでUVシェルを分けていきます。

シームを入れることでUVシェルを分ける

そんな感じでUVを展開してみました。基本的には前回ハイモデルを制作する前に分けたUVシェルをそのまま活用するかたちで、歪みなく展開出来るようにシームをいくつか追加して展開しています。
また、画像のように歪んでるUVシェルはできる限り四角形化しておきます。
テクスチャーはピクセルデータなので、UVシェルをキレイな四角形にすることでピクセルのジャギーが出にくくなり、ベイク結果もよりキレイなものになります。

次はUVのレイアウト作業です。正直言って僕は3DCGにおいてこの作業が今のところダントツで苦手です。
なので普段は自動レイアウトツールやスクリプトを使って短時間で終わらせるのですが、プロジェクトによってはUVのレイアウトは仕様が細かく決まっており、他人にデータを渡してテクスチャー制作を進めてもらう場合などは、分かりやすい整理されたレイアウトで渡すのが望ましいでしょう。

今回は特に制限が無いため、基本的には標準のLayout UVs ツールを使用して自動レイアウトを行ったあとに若干調整するなどしてUVをレイアウトしていきます。
また、密接するなどして完全に見えないUVはフェースを削除したり、UVサイズを小さくして、見える部分の解像度を重視したレイアウトで進めていきます。

見える部分の解像度を重視したレイアウトで進める

レイアウトしてみました。今回は最初から最後までSubstance 3D Painterを使ってテクスチャーを制作するということで、UVシェルの向きや配置関係はかなり無茶苦茶です。
正直人に渡せるようなレイアウトではありませんが、Photoshopなどの2Dペイントツールと異なり、Substance 3D Painterなどの3DペイントツールではUVの配置関係を無視したテクスチャー作業ができるので、このようなレイアウトでも基本的には問題になりません。

UVのレイアウトが終ったところで、次は通常のモデルとは別にテクスチャーペイント用のモデルを用意していきます。

P38をその状態のままSubstance 3D Painterに読み込むと、マガジンや内部パーツなどの通常では見えない部分のテクスチャーの制作が非常に行ないづらいです。
そこである程度パーツを分解したペイント用モデルを用意することで、見えない部分のテクスチャー制作をスムーズに行うことができます。

見えない部分のテクスチャー制作
基本的には塗りたい部分や、アニメーションで可動するパーツが見えるように配置できていればOKです。

最後にハイモデルには素材や質感毎に異なるカラーのマテリアルをアサインしておきます。素材ごとにカラーを分けておくことで、ベイクの際にマテリアルカラーをIDマップとして書き出すことができます。
このIDマップはテクスチャー制作の際にマスクとして使うことができるので、素材や質感毎にマスクを設定する際にとても便利です。特に注意するべき点はありませんが、ある程度見分けやすいカラーで設定しておくと良いでしょう。

ある程度見分けやすいカラーで設定

これでモデルの準備ができました。

早速Substance 3D Painterにモデルをインポートしたいところですが、最後にMaya側でエラーの原因となりやすい部分を確認しておきます。
例えばUV Setに複数のUVが存在していると正常にテクスチャー制作を行うことが出来ません。またオブジェクトに複数の頂点カラー情報がある場合でも正常にツールが機能しないことがあるので、Color Set Editorで確認しておきます。

これらで問題が無ければ用意したモデルをそれぞれFBXで書き出していきます。

Substance 3D Painterにインポート

それではSubstance 3D Painterにモデルを読み込んでいきます。今回使用するバージョンは9.1.2です。
第1回のコラムでは異なるバージョンを記載していますが、今回はPC側の不具合で変更しました。

Painterを起動できたら、まず最初に先程用意した通常のローモデルをインポートします。
今回のプロジェクトは4K解像度で作業を進めていきます。Substance 3D Painterは後から非破壊でテクスチャー解像度を変更できるのが強みですが、解像度を変更するとフィルターやジェネレーターの効果に若干の差異が発生するので気を付けましょう。

解像度を変更するとフィルターやジェネレーターの効果に若干の差異が発生する

次にDisplay settingsのEnvironment settingsを確認していきます。
Substance 3D Painterでは標準のEnvironment MapがPanoramaになっていますが、Panoramaにはライトの情報以外にも空や草原などのカラー情報が含まれているので、テクスチャーの正確な色合いが分かり辛いです。Panoramaは最終的なイメージをチェックするには有用ですが、最初はStudio Tomocoなどのカラー情報が少ないスタジオライトを用いるのがいいと思います。

カラー情報が少ないスタジオライトを用いる

次にTone mappingの設定です。こちらは標準ではLinearになっていますが、この状態は全体的にテクスチャーが淡い色合いで表示されていて他のツールでレンダリングした際の印象と異なって見えることが多いです。
プロジェクトや環境にもよると思いますが、今回はACESで作業を進めます。

次はShader SettingsのSpecular qualtyを見ていきます。こちらは標準でLow(16spp)になっていると思いますが、Low(16spp)では反射の情報がかなり抜け落ちて表示されているので正確なRoughnessマップを制作することができません。下の画像のように実際よりマットな質感に見えていると思います。

設定を上げても大きくパフォーマンスに影響するものではないので、可能な限りHigh(64spp)以上で作業するのが望ましいです。

High(64spp)以上で作業

また、同じくシェーダー設定のAO Intencityのパラメータは標準の状態より下げた方がいいでしょう。こちらは実際のレンダリングイメージより、ビューポートの方がディテールがよく見える現象の原因の一つだと思います。
このAO強度は実際にレンダリングされたAOではなく、ベイクした際に作成されたAOマップをモデルに乗算で適用している疑似的なAOなので、実際に制作したテクスチャーマップには基本的に適用されません。

個人的にはより正確なテクスチャー表現を行なうためには、AO Intencityのパラメータを下げた方がいいと思います。

ここまで確認した環境設定は、その他のMore save optionsSave template…から環境設定を保存することで、New projectのTemplateから起動時のデフォルト設定にすることができます。

環境設定を確認したところで、インポートしたモデルをベイクしていきます。

最初に左上のクロワッサンみたいなアイコンからベイクモードに切り替えます。
ここでまずベイクの設定を確認していきます。画面左に表示されているMesh map settingsを見てみると、上にはまずメッシュマップのOutput Sizeの項目があります。なにか特別な理由が無い限りは4K以上に設定しておきます。

Output Size

Output Sizeの下にはHigh poly parametersの項目があるので、High Definition Meshesに用意したハイモデルを読み込みます。

High poly parameters

次はその下の項目のMax Frontal Distanceのパラメーターを調整します。これはベイク用のケージのサイズを操作するパラメーターですが、基本的にはハイモデルが収まるギリギリのサイズがベストです。
ハイモデルがケージからはみ出ると赤色で表示されるので、赤色の部分が無いようにパラメーターを調整していきます。

次にその下のMatchの項目を確認すると、Alwaysという表示になっています。今回はベイク用にオブジェクトネームを揃えたのでBy Mesh Nameに変更しておきます。
これでネーム毎にオブジェクトがベイクされるので、AOが他のオブジェクトに滲んだり、Curvtureが干渉するような現象を回避することができるようになります。

しかし、これではまだベイクが他のオブジェクトに干渉する状態のままなので、メッシュマップベイカーのタブからAmbient occlusionを選択して、Self Occlusionの項目を確認します。

Self Occlusion

こちらも先程と同様にAlwaysになっているので、Only same Mesh Nameに変更することで他のオブジェクトからのAOの滲みを回避することができます。

下のCurvtureのSelf Intersectionの項目もAlwaysになっているので、同様にOnly same Mesh Nameに変更しておきます。

設定ができたらBake selected texturesをクリックしてベイクを開始します。

Bake selected textures

ベイクができたら、Edit→Project configurationのFileから、ベイク用のローモデルをペイント用のモデルに差し替えておきます。

ベイク用のローモデルをペイント用のモデルに差し替え

これでテクスチャー制作の準備は完了です。

Substance 3D Painterでテクスチャー制作

それではテクスチャーの制作に入っていきます。まず最初は刻印やグリップの滑り止めなどの立体的な凹凸のあるディテールを作っていきます。

刻印の細かな凹凸やグリップの立体的なディテールなどは、ベースカラーやラフネスなどのテクスチャー情報に影響を与え、プロップに高い説得力を持たせることに繋がります。
これはZBrushでは制作しなかった細かな凹凸のモデリングということになります。テクスチャー制作というよりはハイモデル制作の一部として考えた方がいいかもしれません。

まずは資料などを参考にPhotoshopで刻印のアルファをいくつか制作してみました。

テクスチャー制作の準備は完了

用意したアルファはSubstance 3D Painterにalphaとして読み込み、適当な塗りつぶしレイヤーを用意してマスクに投影するなどして描き込んでいきます。

適当な塗りつぶしレイヤーを用意してマスクに投影する

刻印を全てモデルに描き込みましたが、このままではノーマル感が強くイマイチ立体感がありません。

打刻した際にフチが少し変形したような表現を追加してより刻印の立体感を上げる

そこでフィルターを使って刻印の窪みに丸みや、打刻した際にフチが少し変形したような表現を追加してより刻印の立体感を上げていきます。

次はグリップの滑り止めを制作していきます。
P38のグリップの滑り止めは特徴的な形状をしています。いくつか種類はあるようですが、今回制作するものは横向きの直線で構成されています。

P38のグリップ

このようなディテールを2Dペイントツールで描こうとすると、かなり綺麗にUVを展開する必要がありますが、Substance 3D Painterであれば最低限のUV展開で歪みなく制作できます。

今回はグランジでベースの直線を制作してペイントやフィルターを使って形状を整え、刻印と同じようにフィルターで丸みやベベルを表現して立体感を出す方法で制作していきます。

グリップの滑り止めが完成しました。傷やぶつけた凹みなんかも立体的なディテールですが、それらのディテールを詰めていく前にベーステクスチャーを制作していきます。

テクスチャーのベースを作るにあたって、写真素材をベースにするのが最もシンプルで効果的です。写真素材を使う理由として、現実世界の絶妙な色むらや質感のランダム感をそのまま流用できるというのがあります。

しかし、ある程度カメラに対して距離がある背景モデルと異なり、今回のようなヒーロープロップは画面に対してアップで映る機会が多いです。
そういった場合は先述のような色むらやランダム感を、違和感が無いようにオブジェクトの形状に沿ったものに変更しなくてはなりません。
そのような場合はより適切で高解像度の写真素材を探してくる必要がありますが、ぶっちゃけそのような写真は相当レアです。なので画像をPhotoshopなどである程度加工する手間が発生してしまいます。

そこで、今回はフォトリアルな質感を目指してベースのマテリアルはSubstance 3D Painterの標準素材を使って一から制作してみます。

ベースを一から制作するにあたってより自然なテクスチャーを作るために、まず対象をよく観察してみます。検索した画像をここに載せる訳にはいかないので、別の実銃の画像を用意しました。

別の実銃の画像

今回のP38は基本的に金属製で、グリップがベークライト樹脂製です。

画像の銃の金属パーツを見てみると、エッジ側から順に傷などで塗装や表面処理が剥がれ、下地が見えている部分、その次には中央より少し彩度が低くグレーの部分があります。この部分は中央に向かって少し暗い色を挟んだグラデーションになっています。
その次は恐らく元の質感が残っている部分で、青っぽい表面処理が残っています。そして中央には表面が酸化したのか、色が淡く曇っている部分があります。

このように単一のパーツでも、複数の質感とカラーのグラデーションで構成されていていることが分かると思います。この色合いがテクスチャー制作では重要になってきます。
とりあえず傷や汚れなどのディテールは後から追加していくとして、まずは色合いを再現していきます。

ついでに動画では触れなかったメタルネスの数値に関して軽く解説しておきます。
今制作しているマテリアルは金属パーツ用なので、メタルネスも1に設定したいところですが、今回のような銃器は製造したパーツを薬液で煮るなどして黒色に変化させることで、表面を酸化被膜で覆って劣化を防ぐ処理を行っています。
つまり今回の金属パーツの表面は元はこの酸化被膜(黒錆)で覆われているということです。
では皮膜で覆われている部分はメタルネスを0にするべきなのかと言うと、そうではありません。

物理的に正確な処理を行なうのであれば、メタルネスは1か0のどちらかで設定するのが適切ですが、解像度に制限のあるテクスチャーで金属と非金属のトランジションを再現する場合は、今回のような「金属を酸化皮膜が薄く覆っていて、部分的に剥がれている」という表現のために小数点以下で数値を設定しても問題ありません。
そもそも僕はルックが良くなるのであれば物理的に正確ではない数値も3DCGでは許されると思っているので、その辺は結構フィーリングで設定しています。

そもそもメタルネスマップは物理的に正確な表現ではありません。ですがより物理的に正確なスペキュラーマップに比べて直感的で分かりやすく、データも軽くシンプルです。
そもそもメタルネスマップは物理的に正確な表現ではありません。ですがより物理的に正確なスペキュラーマップに比べて直感的で分かりやすく、データも軽くシンプルです。

今回は酸化皮膜で覆われている部分のメタルネスを0.6くらいの数値にして、そこから皮膜が剝がれるにつれ徐々に数値を上げていくという感じで制作していきます。

先ほど作ったベースマテリアルを全ての金属パーツに割り当てて調整してみました。

場所ごとに適切な調整

ベースマテリアルはジェネレーターで制御していますが、パーツによっては先程作ったグラデーションが崩れて不自然な表現になってしまうので、場所ごとに適切な調整をしておきます。

全体のベースができたとろで、次は金属パーツを製造した際に出来た切削痕や研磨痕を制作していきます。
これらはかなり細かいディテールですが、パーツ全体の印象に大きく関わるものの一つです。切削痕や研磨痕はパーツ表面にできた小さな凹凸ですが、これはライティングの角度によってパーツの表情を大きく変える要因でもあります。

今回は標準素材のAnisotropic NoiseAnisotropic Radialを使って、面毎にマスクを分けることで制作してみました。

それぞれの面に適した切削痕を制作

上記の素材をPlaner projectionやUV projectionで投影しながら、それぞれの面に適した切削痕を制作しています。

次は表面に発生した傷を制作していきます。

今回制作していく傷は塗料が剥がれて、金属のシルバーの下地が見えているような物です。
傷には色々種類がありますが、基本的にはぶつけたり強く削れたりしてできたコントラストが強くてラフネスの低い物と、徐々に擦れたりしてできたコントラストが低くラフネスの高い物があります。
今回はこの2つの質感で塗装のレイヤー感を出しながら傷を制作していきます。

前回のハイモデル編でも書きましたが、このような傷のディテールは発生しやすい場所と、必ず理由があります。全てのエッジやフェースに傷が発生するわけではありません。
例えばCurvtureを割り当てただけのような、エッジに大して均等に入った傷はよほど特殊な原因がない限り発生しません。基本的に直線的なエッジでも傷は均等に入るのではなく、ある程度の規則性とランダム性があります。

傷のディテール

なぜその場所にどうやってそのような傷が発生したのか、考えながらディテールを制作していくことが大切です。

今回であれば銃の使用者を右利きだと想定して銃の右側を下に置いたり、ぶつけることが多いと思うので、左側に比べて右側の方が傷が多くなると思います。
また、P38の左側は右側に比べて凹凸が少なく平らなので、擦り傷のようなコントラストの低い傷も付きやすいでしょう。
逆にコントラストの高い傷は銃の先端や角張ったような、持った時にぶつけやすい部分に多く発生します。

エッジが軽く削れたような表現はある程度プロシージャルで再現できますが、コントラストの高い傷はユニークな物が多いので、ステンシルを使ってモデルに直接描き込んでいきます。

次は表面の劣化を作っていきます。といっても今まで制作していたものが劣化している部分なので、正確には元の塗料や質感が強く残っている部分の制作になります。

基本的には窪んでいたり、パーツの内側に元の質感は残ります。なのでAmbient Occlusionジェネレーターを使って、ベースのグラデーションを作った方法を流用しながら制作していきます。

金属パーツのディテールは完成

これで金属パーツのディテールは完成です。

銃本体のテクスチャーはほとんど完成しました。次はグリップのマテリアルを制作していきます。
グリップは先述のように金属製ではなくベークライト樹脂製です。大戦末期でキビシイ状況になるとベークライト樹脂でも混ぜ物が含まれた、色合いも少し異なるものになっていきます。
他にも黒色の樹脂製の物や木製のグリップも存在していますが、今回は時代や用途に合わせて少し劣化した使用感のあるベークライト樹脂製のグリップを目指してテクスチャーを制作していきます。

基本的な流れは金属製のパーツのときと同じです。まずは色合いの変化やムラ感を付けていき、最後に傷などのディテールを入れていきます。

色合いの変化やムラ感を付けていき、最後に傷などのディテールを入れる

最後に全体の汚れのディテールを描き込んでいきます。
銃の汚れには、埃や泥汚れ、染み出したガンオイルなどがあります。泥や埃っぽい表現は使用感が出ますがモデルの用途や場面が限られたり、汚し過ぎると長期間放置されたような、逆に使用感の無いテクスチャーになってしまうので注意が必要です。
今回は第1回で言ったように、実戦で兵士が使っているような雰囲気の物にしたいので軽く砂埃っぽいディテールを軽くのせていきます。

今回はマテリアルを四つに分けているのでそのままでは全体を同時に作業できませんが、任意のレイヤーやフォルダにInstantiate across Texture Setsを適用することで、テクスチャーセットを跨いで同時に作業することができるようになります。
ただし、ペイントレイヤーはテクスチャーセットを跨げないので注意です。

より使用感を出す

今回のような銃であれば砂埃はパーツの窪みであったり、隅の方に溜まっていきます。また手で触れたりするような部分にも多少砂が擦れた痕があったりすると、より使用感を出すことができます。

一方ガンオイルは可動パーツの隙間から染み出しています。基本的に軽い粘性のある液体なので、埃などのゴミを巻き込んだり可動パーツに擦れたりして銃の隙間にこびりついているイメージで制作していきます。

可動パーツに擦れたりして銃の隙間にこびりついているイメージで制作

全体のテクスチャーが完成しました。最後に何種類か環境マップを使ってレンダリングすることで、違和感のある部分がないかよくチェックしておきます。このとき、同じ方向からライトを当て続けるのではなく、環境マップを回転させたりしてどの角度から見ても問題ないか確認しておきましょう。

テクスチャーを書き出し

テクスチャーを書き出していきます。今回はArnoldでレンダリングする予定なのでArnold用プリセットのArnold (AiStandard)を使います。

テクスチャーのフォーマットはpngを選択します。ゲーム系のプロジェクトではよくtargaを使うイメージですが、これはPhotoshopを使ってpngを書き出す際に標準ではアルファチャンネルが正常に書き出されないため、ヒューマンエラー防止を兼ねてtargaを使うことが多いようです。
今回アルファチャンネルを使わないのでpngでも問題ありません。

テクスチャー解像度は静止画でかつアップでレンダリングしたいので、今回は4096で書き出します。

よくArtstationなどでは制作したゲームモデルが実績としてアップされてたりしますが、多くのモデルはインゲームのテクスチャーを使っておらず、制作段階で使用した高解像度のテクスチャーを割り当てた状態でレンダリングされていることが多いです。

実装データではメモリやストレージの関係でテクスチャー解像度を落とす必要がありますが、単体のレンダリングをリールやSNSに載せる場合は変に制限をかけるのではなく、よりよく見えるテクスチャーやモデルを使用したほうが、多くの人の目に留まりやすいでしょう。

よりよく見えるテクスチャーやモデルを使用

そんな感じでテクスチャーを書き出したので、次はMayaに移動します。

Arnoldでレンダリング

Mayaに戻ってきたところで、レンダリング用にローモデルのみのシーンを用意しました。

書き出したテクスチャーをaiStandardSurfaceに割り当てていく

まずは書き出したテクスチャーをaiStandardSurfaceに割り当てていくのですが、書き出したテクスチャーをArnoldで割り当てるといった内容のチュートリアルは溢れていると思うので、今回は省略させていただきます。

aiStandardSurfaceのパラメーターやテクスチャーのカラースペース設定についてはこちらのコラム【第4回:命を吹き込む - 質感、テクスチャー制作】で触れているので、是非ご覧ください。

シェーダーにテクスチャーを割り当てたところで、次はレンダリング用のライトを準備していきます。
今回は白背景にスタジオライトを当てるだけの非常にシンプルな構成でレンダリングしてみます。

そのようなシンプルな構成はモデルをライティングなどで誤魔化しづらく、モデルやテクスチャーのディテールが素の状態で出てしまいます。
特に今回のような白背景にライトを当てるだけというのは、キーライトとバウンスの照り返しでモデルのシルエットやテクスチャーのカラーの情報をハッキリと確認できるライティングです。

このライティングは誤魔化しが効きませんが、モデルとテクスチャーのクオリティーがしっかり確保できていると、写真のような非常にフォトリアルで説得力のあるレンダリング画像を作ることができます。
またモデルとテクスチャーのクオリティーがハッキリ確認できるので、ポートフォリオやリールでも使えるライティングの一つだと思います。

簡単な背景をモデリング

まずは簡単な背景をモデリングしました。少しモデルの影がほしいので、画像のように地面と壁を作って大きめにベベルを入れることで境界をぼかしています。
このような背景は実際の商品撮影などでもよく使われています。ライティングではそのような商品撮影の写真やプロダクト系のレンダリング画像が非常によく参考になります。

カメラとライトを置いてみました

次にカメラとライトを置いてみました。ライトはaiSkyDomeLightにSubstance 3D painterのstarter_assetsに含まれるStudio White Umbrellaを割り当てて使っています。

Studio White Umbrella

Studio White Umbrellaは1つのアンブレラライトと撮影用背景のみのシンプルなHDRiです。ライトが単体なので向きや露出が調整しやすく、背景も暗すぎないちょうど良い明るさなので僕はよく使っています。
エリアライトを配置してレンダリングしても良いのですが、個人的にはHDRiの環境情報が欲しいので今回はHDRiを使います。

このHDRiは今回テクスチャー制作でも使ったものなので、Substance 3D painterのレンダリング画像と比較してテクスチャーの修正なども行ないやすいと思います。

カメラはFocal Lengthを85に設定して望遠よりのカメラにしました。広角でプロップを撮影すると、パースがかかってプロップが歪んで見えてしまうので基本的に望遠寄りのカメラに設定するのが良いと思います。
実際の商品撮影などでは主に100mm前後で撮影することが多いようです。

aiSkyDomeLightを回転させてキーライトが銃本体を照らすように調節し、レンダリングします。今回レンダリング解像度は4K UHDTV (3840×2160)でレンダリングしますが、まずはチェック用にHDTV(1280×720)でレンダリングしてみます。

一度試しにレンダリング

一度試しにレンダリングしてみました。
少し暗いのでaiSkyDomeLightのExposureを一段階上げます。設定するたびにレンダリングし直すのは少し面倒なので、今回はWindow→Display Settingsからpostを有効にして、後からレンダリングイメージに対して簡単な調整を行なえるようにしておきます。

再度レンダリング

再度レンダリングし直してみました。

モデルのシルエットがよく分かるレンダリングイメージで、テクスチャーのクオリティーもそこそこ良い感じだと思います。

これでP38は完成です。

まとめとダウンロードデータ

今回の「Mayaプロフェッショナルモデリング」はプロップ単体に焦点を当てたコラムとなりましたが、いかがだったでしょうか?

僕はまだ新卒で入って3年ほどしか業界にはいませんが、かなり多くのモデルを見る機会がありました。僕自身もそれなりの物が作れるようになったと思いたいところですが、やはり上を見るとクオリティーの上限にキリが無く、まだまだであると強く実感します。

モデリングもソフトの使い方に関するチュートリアルが増えているので、だいぶ取っつきやすくなってると思いますが、クオリティーを詰めるとなると途端に情報が少なくなりがちです。
特にテクスチャーやディテールの表現に関するチュートリアルや情報はまだ少なく、モデリングと比較してもフローのテンプレートが決まっていないので、自身で研究しながら制作していくことになると思います。

今回のコラムはそういったモデルのクオリティーを詰めるためのフローや考え方の足掛かりになれば幸いです。

最後のライティングとレンダリングに関してはモデリングとあまり関係が無いように思えるかもしれませんが、僕は自分でモデリングしたアセットをカッコよく魅せるまでがモデラーの腕の見せ所だと思っています。
特にポートフォリオやリール、SNSなどに載せる場合はより人の目を引くものでなくてはなりません。たとえプロップ単体だとしてもそれは同じです。
そのためにもライティングやレンダリングまで行なって、1つの作品として成立させることが大切だと僕は思っています。

今回はプロップ単体の記事で時間もあまり取れなかったので背景は作れませんでしたが、できればP38に合った簡単な背景を用意できるとなお良いでしょう。

コラムでは半年以上にわたって解説することになりましたが、実際にこのクオリティーのモデルを用意するとなると、モデリングからテクスチャーまで通して、3週間(15日)少しくらいの作業になるかと思います。
事前に資料をしっかり集めれてさえいれば、それほど時間がかかるものではないので是非皆さんもチャレンジしてみてください。

今回は最後にレンダリングで使用したシーンデータを用意しました。

最後にレンダリングで使用したシーンデータ
今回レンダリングで使用したHDRiはSubstance 3D Painterのアセットなので、sourceimagesからは抜いています。

ライティングシーン以外にもコラム内で制作した各種モデルデータとテクスチャーデータも入っているので、参考にしていただけると幸いです。

僕自身このようなコラムを書くのは初めての経験だったので、無駄な文章が多かったり読み辛い部分が多々あったと思います。僕自身も読み返して「?」となった部分が何度かあったので、ご覧いただいた皆様は解読にさらに苦労したのではないかと内心かなり心配になっております。笑
とは言え、自分自身で作業内容やモデリングにおける考え方を振り返るいい機会になったと思います。

SNSなどでも何度か反応を頂き、僕としては嬉しい限りです。
これまでご覧になって頂いた皆様にはお付き合い頂き誠にありがとうございました!

また機会があれば、どこかでお会いしましょう。

ご覧いただきありがとうございました!


製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。