窓やドアをデカール素材に変換してみる

窓やドアをデカール素材に変換してみる

始めに

株式会社ボーンデジタルさん主催で、2025年 10月 16日 (木)に「3ds Max & V-Ray 探検隊(建築VIZ)Part 2!!」のウェビナーに参加させて頂きました。
その中で「デカールの活用方法」として紹介した「ドアや窓をデカール化する」方法の詳細をこちらに記載致します。

このチュートリアルは主に 3dsMax版を使いますが、同じ理屈でMaya、CINEMA4D版のV-Rayで利用可能です。
(SketchUp/Rhino版ではDepthが正しく出力するのが難しいので、ディスプレイスメントマップ無しの場合は可能です)

物理ベースマテリアル

V-RayマテリアルやOpenPBRマテリアル等、いわゆる「物理ベース(PBR)マテリアル」は1つのマテリアルで「ガラス」「金属」「ゴム」「プラスチック」等の多様な質感表現が可能な事は既にご存じかと思います。

V-Rayマテリアルにも「プリセット」が用意されていて、選択するとマテリアルの「パラメーターだけが」変更されて質感が出来上がります。
この「プリセット」はパラメーターだけの変更でテクスチャーを使わない点が特徴です。(テクスチャーを伴うプリセットはChaos Cosmosから取得できます)

V-Rayマテリアルのパラメーター型プリセット
V-Rayマテリアルのパラメーター型プリセット

またマテリアルのパラメーターの殆どは「マッピング可能」になっていますね。つまり、テクスチャ(UVマップ)を使えば1つのマテリアルの中で「ここは金属」「ここはプラスチック」「ここはガラス」等の様にパラメーターを指定できる訳です。

ピンと来る方なら、オブジェクト全体の質感を1つのテクスチャセット(BPRチャンネルのセット)にベイクできる事に気づくでしょう。V-Rayのレンダーエレメントを使えば、PBRマテリアルパラメーターを抽出する事ができるのです!

実際にやってみましょう

Chaos Cosmos から好みのドア、窓等をダウンロードしてシーンに配置します。
(デカール用なので、ドア、窓などの薄いオブジェクトに限ります)

また、とりあえずシーンにドームライトを1つシーンに追加しておきます。

Chaos Cosmos から好みのドア、窓等をダウンロードしてシーンに配置します。
Chaos Cosmos から好みのドア、窓等をダウンロードしてシーンに配置します。

 

ドアの前にカメラを作成します。オブジェクトに対して垂直にカメラを配置したいので、トップビューでスナップを有効化してVRayPhysicalCameraをドラッグして作成します。

 

レンダリング解像度を カスタム にして、2k サイズ(2000 x 2000 pixel)にセットします。
またビューポートを VRayCam001 にして、レンダリングビューを VRayCam001 にロックします。

レンダリング解像度とレンダリングカメラの固定
レンダリング解像度とレンダリングカメラの固定

 

VRayCam001のビューポートでセーフレームを表示して、解像度 一杯にモデルを表示します。

セーフフレームを表示
セーフフレームを表示

 

レンダリングすると、こんな感じになります。暗いのはドームライトのデフォルトの明るさがフィジカルカメラのデフォルト露出では、非常に暗い為です。

レンダリングすると真っ黒です
レンダリングすると真っ黒です

 

レンダリング設定>V-Rayタブ>”カメラ” を開き “自動露出” を有効化しレンダリングします。
レンダリングが明るくなりました。また当然ですが、モデルにパースが付いている点に注目してください。

自動露出でレンダリング
自動露出でレンダリング

 

デカール用のベイクレンダリングなのでパース表示は不要です。
V-Rayタブのカメラの種類で「正投影」を選択してレンダリングします。これでパースが無くなりました。

正投影でパースを無効化
正投影でパースを無効化

 

まず、ディスプレイスメントマップ用のチャンネルを作ります。
VRayZDepth レンダーエレメントを追加してレンダリングして、ZDepthを見ると真っ黒ですね。

デフォルトのZDepthは何も見えない
デフォルトのZDepthは何も見えない

 

フィジカルカメラ(VRayCam001)を選択して、”クリッピング”を有効化します。添付図の様に近距離クリップ平面を扉の手前、遠クリップ平面を扉の奥になるように配置します。(赤い枠が動きます)
また、VRayZDpthエレメントで「Zdepthでカメラクリップの境界を使用」にチェックしてレンダリングしてみてください。ZDepthチャンネルにディスプレイスメントマップ用のグレースケールが出力されているのが確認できます。

カメラのクリッピング範囲を使ってZDepthの範囲を視覚的に指定できます
カメラのクリッピング範囲を使ってZDepthの範囲を視覚的に指定できます

 

後はPBRマテリアル用のチャンネルを追加するだけです。
以下がVRayMtlとレンダーエレメントの対応表です。(コート/Sheenレイヤー、フォグ&SSSは考慮していません)
反射にグロシネスを使うか、ラフネスを使うかで異なっています。

VRayMtlのレンダーエレメント対応表
VRayMtlのレンダーエレメント対応表

 

以下の様にとりあえず使う使わないに関係なく全部のレンダーエレメントを追加しておくと良いでしょう。(ラフネス/グロシネスどちらでも対応可能です)

PBRマテリアルのベイクに必要なレンダーエレメント
PBRマテリアルのベイクに必要なレンダーエレメント

 

最後にレンダリング設定>V-Rayタブ>フレームバッファ>V-Ray RAWイメージファイル から ***.vrimg ファイルとしてレンダリングを保存設定します。

vrimgで保存すると後の管理が簡単
vrimgで保存すると後の管理が簡単

 

レンダリングしましょう。 指定した場所に ***.vrimg ファイルが出力されましたね。

レンダリングしてvrimg を得ます
レンダリングしてvrimg を得ます

(3dsMaxシーンをベイク用シーンとして保存しておくと後で活用できます)

 

PhotoShop (ProEXR)での作業

PhotoShopに ***.vrimg ファイルをドラッグ&ドロップして開きます。

※PhotoShopで .vrimg を開くには ProEXRプラグイン(無償)が必要です。https://www.fnord.com/ からダウンロードしてインストールしてください。

図の様にVRayのレンダーエレメントがレイヤーとして読み込まれます。RGBレイヤーを非表示にして Alphaチャンネルレイヤーを選択し イメージ>トリミング を実行します。左上(右下)ピクセルカラーを基準にトリミングを実行します。

ProEXRプラグインを使ってvrimgを読み込みトリミングします。
ProEXRプラグインを使ってvrimgを読み込み、余白をトリミングします。

 

最後にファイル>書き出し>ProEXR Layer Export… を実行し、32bit float 形式でエクスポートします。

ProEXRのレイヤー書き出しで各レイヤーを個別に保存します
ProEXRのレイヤー書き出しで各レイヤーを個別に保存します

 

エクスポートしたフォルダに、以下の図の様に各レンダーエレメントのEXRファイルが生成されているのを確認してください。
以上でマッピング素材のベイク作成は完了です。

PBRマテリアルの各チャンネルにベイクされたテクスチャーが生成できました
PBRマテリアルの各チャンネルにベイクされたテクスチャーが生成できました

 

デカールとして使う

3dsMaxで新規シーンを作成します。
マテリアルエディタを開き、レンダーエレメントのEXRをドラッグ&ドロップしてマテリアルエディタに読み込みます。
Tips: Changsoo Eun氏の cs_sme_drop を C:\Program Files\Autodesk\3ds Max\scripts\Startup フォルダに入れておくと、現在のプロダクションレンダラーネイティブのビットマップローダーでビットマップがマテリアルエディタにロードされます。(V-RayならVRayBitmap)

マテリアルエディタにドラッグ&ドロップしてロード
マテリアルエディタにドラッグ&ドロップしてロード

 

後は、以下の図を参考にマップを接続するだけです。

 

接続の注意点
・VRayMtlの 反射のフレネルIORのロック[L]は外してください。これでガラスの屈折率は屈折の IORでコントロールできます。
・自己発光しないオブジェクトではSelfIlluminationは不要です。背景が見えないオブジェクトをベイクした場合 Alpha (Opacity)も不要です。
・VRayBumpNormalsはVRayNormalマップ経由で接続し、グリーンを反転してください。

VRayBumpNormalsはVRayNormalマップ経由で接続し、グリーンを反転してください
VRayBumpNormalsはVRayNormalマップ経由で接続し、グリーンを反転してください

・3dsMaxでOCIO(ACEScg)カラー管理を使用している場合、VRayRawDiffuseFilterを読み込んだビットマップローダーで ACEScgプライマリに指定してください。

OCIO(ACEScg)カラー管理を使用している場合、ビットマップのプライマリ色空間をACEScgにします
OCIO(ACEScg)カラー管理を使用している場合、Diffuseビットマップのプライマリ色空間をACEScgにします(他のチャンネルはRAWです)

 

最後のステップです。V-Rayデカールオブジェクトを作成して、VRayデカールに対して作成したマテリアルを割り当ててください!
レンダリングするとどうでしょうか? 右がオリジナルのChaos Cosmosオブジェクト、左がデカールです。
ディスプレイスメント量が強い場合はディスプレイスメントの量を調整してください。

デカールでレンダリング
デカールでレンダリング

 

デカールのディスプレイスメントはマテリアルのディスプレイスメントなので、分割レベルはレンダリング設定>設定タブ>”デフォルトのディスプレイスメント”のエッジの長さで指定します。(この設定はレンダリング解像度を引き上げると分割数が増加するので十分に注意して設定してください)

デカールのディスプレイスメント詳細さはここで調整
デカールのディスプレイスメント詳細さはここで調整

 

別のウィンドウをデカール化したサンプル。右が本物、左がデカールです。
このドアデカールのmaxファイルはこちらよりダウンロードできます。(3dsMax 2023以降)

別のウィンドウをデカール化したサンプル。右が本物、左がデカールです。
別のウィンドウをデカール化したサンプル。右が本物、左がデカールです。

以上です!

おまけ

以下に、ウェビナーの時間の都合上、お見せできなかった「お手軽フェイクコースティクス」のビデオも掲載しておきます。