V-Ray for 3ds Max と ZBrush、 Substance 3D Painter ワークフロー 「UV Tile」編
UVタイルベースのワークフロー
前回は「マテリアルIDベースのワークフロー」を紹介しました。今回は「UVタイルベース」のワークフローを行います。
(前回の記事を読んでいる事を前提に続いていますのでご了承ください。)
「UVタイルベース」のワークフローはSubstance 3D Painterで比較的最近サポートされた機能で、あまり馴染みが無い方もおられるかもしれません。しかし「UVタイルベース」を使うと、複数のUV(オブジェクト)にまだがってシームレスにペイントできるという大きな特徴があります。
なお、UVタイル方式はホストアプリケーション側がUVタイルをサポートしていないと利用できない点に注意してください。V-Ray for 3dsMax, Maya, CINEMA4D等では同じ方法でご利用いただけます。(V-Ray 6 SketchUp/Rhino/Revit/Chaos Vantage では残念ながらUV Tileがサポートされていません。)
ZBrush でモデリング
今回はZBrushで、”手作りされた古い和家具”をモデリングしてみました。Substance 3D Painterはウェザリング(使用感、マイクロディテール)で威力を発揮するので、どうしても新品家具よりは年期が入ったモデルを作りたくなりますね。この時点ではポリゴン数はまったく気にしていません。
ZRemesher等でハイポリモデルからローポリゴンモデルを生成します。その後、UV MasterやGoZで3Dアプリに渡してUVを作成しておきます。
UV付きのローポリゴンモデルモデルを FBX形式で保存しておきます (low.fbx)
UVTileワークフローでは、モデルはできる限りSubToolに分解しておく事をオススメします。(SPでペイント時に重なるモデルは別SubTool化してFBXに出力した方がいいです)
次に、オリジナルのハイポリゴンモデルにDecimationMasterでポリゴンを削減します。IDマップを作成する為にパーツに個別のポリグループを割り当てておきます。
ハイポリモデルをFBXでエクスポートします。(High.fbx)
FBXエクスポートでは”Export Polygroups as Mats”のオプションを有効化しておきましょう。
3ds Maxでの作業
ZBrushでは UVのタイリング設定ができない為、ローポリゴンモデル(low.fbx) を一旦3dsMaxに読み込みます。
3dsMax標準のUV Editorでもタイル設定できますが、3d-io GmbH より、無償で配布されている「UV-Packer」を使用します。パッキングアルゴリズムがとても優秀で隙間なくUV島を配置してくれます。UVタイル作成も一発なのでとても便利ですね。クリエイティブでない場所ではとことん楽しましょう。
FBXから来たローポリモデル(UVセット済みパーツ)全てを選択して、UV-Packerモディファイヤを割り当てます。UV Tiles でタイル数をセットしてPack UV Mapボタンを押すだけです。今回は UV 1-3 の3タイルを作成してみました。再度FBXで書き出す前に、3dsMax上で「ローポリゴンモデル全体に1つのマテリアルのみ割当て」されている事を確認します。Substance 3D Painterではマテリアル毎にテクスチャセットが分かれてしまう為です。なおZBrushからのFBXを読み込んだままの場合、マルチサブオブジェクトマテリアルがTopに割当てられているので、特に変更していなければそのままFBXに再出力しても大丈夫です。
Substance 3D Painterでの作業
Substance 3D PainterでUVタイルワークフロープロジェクトを開始します。
VrayMtl Metalic Rougnessテンプレートを選択し、3dsMaxで保存したローポリFBXファイル、ドキュメントの解像度をセット(2K以上オススメ)、UVタイル設定を有効化し「マテリアル毎にUVタイルのレイアウトを保持し、タイル間でペイントを有効」を選択して開始します。
1つのテクスチャセットに複数のUV Tileがあるプロジェクトが開始されます。全てのオブジェクト(パーツ)が1つのテクスチャセット内にあるので、全てのオブジェクトにまたがってシームレスにペイントできる状態になります。
テクスチャセットの設定から「メッシュマップをベイク」に入ります。
出力サイズを設定し(2K以上推奨)、ZBrushから書き出したハイポリ(High.fbx)をセットします。IDマップのカラーソースを「メッシュID/ポリグループ」にセットしておきます。テクスチャをベイクしましょう。
ZBrushのハイポリFBXのエクスポートで”Export Polygroups as Mats”のオプションを有効化したので、ハイポリのポリグループ情報がIDマップとしてベイクされています。
Substance 3D Painterでは「カラー値でマスクを追加」でマスクを作成する事で、IDマップ(ZBrushでのポリグループ)単位でのマスキングが簡単に作成できます。
IDマップでパーツ単位の塗り分けもできます。
込み入った場所をペイントしたい場合は、ジオメトリマスクを使います。
マスクタイプをメッシュ名にするとZBrushでのサブツール(3dsMaxでのオブジェクト)単位でマスクを追加できます。
ペイント時に除外されたジオメトリマスクを非表示にする事で、他のパーツを隠してペイントできます。
こちらではSubstance 3D Painterの使い方は詳しく解説しませんが、上記設定等を駆使してUVTileワークフローでペイントを完了させます。
ペイントが完了しましたらテクスチャを書き出します。基本的には前の「マテリアルID」ワークフローの場合と同じです。
出力テンプレートとして「V-Ray Next (Metalic Roughness)」をベースに使用します。
Ambient occlusionの出力を追加します。チャンネル名はAOとします。
ファイル名は 「$textureSet_チャンネル名(.$udim)」の様にセットします。(プロジェクト名等は好みで追加してください。)
今回作成したカスタムテンプレートでは、BaseColor, Roughness, Metallic, Normal, ID, AO, Transmissive の7つのチャンネルを出力します。
カスタムしたテンプレートを使ってテクスチャーを書き出します。ビットマップのデプスは 16bitでも構いませんが、リアルタイム用途でも使う場合8bitでも十分かもしれません。
UV Tile毎に7つのテクスチャーのセットが出力されます。「マテリアル名_チャンネル名.UVTile番地.拡張子」になっている事に注目してください。
3ds Max + V-Ray でレンダリング
ローポリゴンモデル(low.fbx) を 3dsMaxで読み込みます。
まず、スレートマテリアルエディタで VRayMtl と5つの VRayBitmap (BaseColor, Metallic, Normal, Roughness, Transmissiveのチャンネル用)を作成し、とりあえず1つの任意のオブジェクト用のBaseColor, Metallic, Normal, Roughness, Transmissiveマップを読み込みます。(今回のサンプルモデルでは透明マテリアルを使わないのでTransmissiveマップは不要です。)
※3dsMax標準のビットマップ読み込みはここでは使用しません、必ずVRayBitmap経由でテクスチャを読み込んでください!
また VRayNormalMapも作成し、以下の図の様にNormalを接続してください。
VRayMtl の Reflectionカラーを「白」、BRDFのモードを“Use rouphness”モードにセットし、VRayNormalMapを接続したBumpの量を初期値の30から100に変更する点に注意してください。
作成したVRayMtl をローポリゴンモデル全てのオブジェクトに割り当てます。つまりローポリゴンモデル全てで同じ1つのマテリアルを使います。
適当な照明を作成してレンダリングすると、当然ながらまだUVの範囲0~1しか読み込んでいないのでマップが正しくない状態で表示されます。
VRayBitmap にセットしてあるテクスチャの4桁の数値部分を <UDIM> と入力して置き換えます。
例えば kagu_BaseColor.1001.png が kagu_BaseColor.<UDIM>.png の様に指定します。
これで、V-Rayがレンダリング時にUVの0~1以外の部分をシェーディングする際に、UV番地からテクスチャが引用される様になります。
レンダリングしましょう。テクスチャが正しく配置されレンダリングされます。
必要であれば BaseColorとAO をVRayCompositTexで乗算(Multiply A*B)して利用しましょう。
UV Tileワークフローの基本は以上です。
こちらの記事で使用したモデルデータを以下で配布致します。ぜひ手元のV-Rayで簡単にPBR用テクスチャセットできる事をご確認ください。収録内容は和家具のローポリゴンFBXと、Substance 3D Painterで出力した2Kテクスチャーセット(UDIM用)、Zip圧縮でおよそ52MBです。なおデータは商用で無償でご利用いただけます。(3Dデータの再配布はご遠慮ください。)
株式会社オークでは Adobe社リセラーとして 法人向けAdobe Creative Cloudグループ版、Substance 3D Collection (Substance 3D Painter含む) グループ版の販売も行っています。Adobe Substance 3D Collection の導入をご検討されている法人様はぜひお問合せいただけますと幸いです。
V-Ray Maya, CINEMA 4D でも可能
<UDIM>タグはV-Ray Mayaはもちろん V-Ray for CINEMA 4D でも利用いただけます。
CINEMA 4Dでは必ず VRayBitmap経由でテクスチャを読み込んでください。
V-Ray CINEMA 4DでもUVTileでレンダリングできます。
最新記事 by Yamauchi (全て見る)
- V-Ray 7 for 3ds Max パブリックベータ - 2024-10-07
- Chaos Unboxed ロードマップをアナウンス - 2024-02-28
- MaterialX と V-Ray: 3Dクリエイティビティの次世代ワークフロー - 2024-02-26