第6回:3ds MaxからUnreal Engine4へのマテリアル検証

こんにちは、スタジオ・デジタルプラスの磯野です。
前回は色々なライトをDatasmithを使って3ds MaxからUnreal Engine4にインポートする検証をしました。
今回は前回と同じ手順でマテリアルをUnreal Engine4にインポートしてみましょう。
あまりUnreal Engine4側でマテリアルの設定を変更せずに、どの程度V-Rayの結果を再現できるか見ていきます。

今回の検証では3ds Max 2019、V-Ray 3.6、Unreal Engine4 4.21を使用しています。

検証の前に、V-RayのマテリアルをUnreal Engine4にインポートした時、MasterのマテリアルにおいてV-Rayのマテリアルの項目がUnreal Engine4の項目に当てはめられますので、覚えておくと便利です。

3ds MaxからUnreal Engine4への変換(Datasmith使用)
3ds MaxからUnreal Engine4への変換(Datasmith使用)
V-Ray for 3ds Max Unreal Engine4
Diffuse map ベースカラー(Base Color)
Reflect map スペキュラ(Specular)・メタリック(Metallic)
H Glossiness ラフネス(Roughness)
R Glossiness ラフネス(Roughness)
Refract map オパシティ(Opacity)
Bump ノーマル(Normal)
IOR リフラクション(Refraction)
Opacity オパシティマスク(Opacity Mask)
Displacement ワールドディスプレイスメント(World Displacement)
Self illumination エミッシブルカラー(Emissive Color)

Datasmithマテリアル変換一覧

それでは検証していきましょう。

金属系マテリアル

左から、真鍮・クローム・アルミニウムの3種類を検証します。

3ds Maxでのレンダリング結果
3ds Maxでのレンダリング結果

V-Rayのパラメータは以下のように設定しています。

真鍮
クローム
アルミニム

では、この3つをDatasmithを使用してUnreal Engine4にインポートしてみます。

ビルドすると以下のようになりました。

ビルドした結果

Unreal Engine4でのマテリアルを見てみましょう。

配置されたオブジェクトに当たっているマテリアルは、全てインスタンスマテリアルになっているようです。
※Unreal Studio 4.20までは、インポートしたマテリアルは全てMasterマテリアルになっていました。

インスタンスマテリアル

では、インスタンスマテリアルとはどういったマテリアルなのでしょうか。

真鍮のマテリアルを例に見てみましょう。

インスタンスマテリアル(真鍮)はこのようになっています。

インスタンスマテリアル(真鍮)

Diffuse(1)・Reflaction(2)・Reflaction Glossiness(5)の3つのパラメーターがありますね。

このインスタンスマテリアルの元になっているMasterのマテリアルを見てみましょう。

マテリアル

インスタンスマテリアルにもあった3つの項目がパラメーター化されていますね。

インスタンスマテリアルでは、このパラメーター化された項目のみが変更できるようになっています。

親切にV-rayの項目名のままパラメーター化してくれているようです。

インポート時に自動でパラメーター化してくれているので、あまりMasterを変更しなくても大丈夫そうですね。

インスタンスマテリアルに戻り、少しパラメーターを調整してみましょう。

パラメーターを調整

「Reflection(2)」と「Reflection Glossiness(5)」を変更しました。

アルミニウムのインスタンスマテリアルも調整してみます。

変更前
変更前
変更後
変更後

クロームのインスタンスマテリアルはパラメーターを調整しても変わらなかったのでMasterから変更、又は新規に作成した方がよさそうです。
マテリアル作成方法はUnreal Engine4の公式ドキュメント【光沢のあるマテリアルの作成方法】をご覧ください。

パラメーターを調整したので、もう一ビルドして見比べてみます。

3ds Maxでのレンダリング結果
3ds Maxでのレンダリング結果
Unreal Engine4インポート時
Unreal Engine4インポート時
Unreal Engine4パラメーター調整後
Unreal Engine4パラメーター調整後

ライトやその他の要因でかなり変わると思いますが、インスタンスマテリアルのみで調整する場合はこのくらいが限界のようです。

では、他のマテリアルも見ていきましょう。

よく使うマテリアル その1(プラスチック・ガラス・木目)

この3つは建築CGにおいて頻繁に使用するのではないでしょうか。

よく使うマテリアル その1(プラスチック・ガラス・木目)
3ds Maxでのレンダリング結果

V-Rayのパラメータは以下のように設定しています。

プラスチック
ガラス
木目

Unreal Engine4にインポートしてみます。

よく使うマテリアル その1(プラスチック・ガラス・木目) UEへインポートした結果

ガラスと木目のインスタンスマテリアルを調整してみます。

ガラス

変更前
変更前
変更後
変更後

ガラスマテリアルはReflection(2)・Refraction(6)・Refraction IOR(7)を変更しました。

木目のマテリアルも調整してみます。

木目

変更前
変更前
変更後
変更後

Fresnel IOR(9)・Reflection Glossiness(4)・Reflection(2)を変更しました。

それぞれパラメーターを調整したので、もう一ビルドしてみます。

3ds Maxでのレンダリング結果
3ds Maxでのレンダリング結果
Unreal Engine4インポート時
Unreal Engine4インポート時
Unreal Engine4パラメーター調整後
Unreal Engine4パラメーター調整後

このようになりました。
ガラスのマテリアルは、パラメーター変更だけで3ds Maxと同じ表現にするのは難しそうです。

よく使うマテリアル その2(Car Paint・タイヤ・レザー)

建築CGでよく使用するマテリアルその2です。

よく使うマテリアル その2(Car Paint・タイヤ・レザー)
3ds Maxでのレンダリング結果

V-Rayのパラメータは以下のように設定しています。

V-RayのVRayCarPaintMtlはDatasmithに対応していませんので、今回はFalloffを使用したらどうなるのか検証してみます。

Car Paint
Car Paint

タイヤとレザーはテクスチャを使用しています。

タイヤ
タイヤ
レザー
レザー

Unreal Engine4にインポートしてみます。

UEへインポートした結果

3つとも調整してみましょう。

Car Paint

変更前
変更前
変更後
変更後

タイヤ

変更前
変更前
変更後
変更後

レザー

変更前
変更前
変更後
変更後

それぞれパラメーターを調整したので、もう一ビルドしてみます。

パラメーター調整後にもう一度ビルドした結果

3ds Maxと見比べてみましょう。

3ds Maxでのレンダリング結果
3ds Maxでのレンダリング結果
Unreal Engine4インポート時
Unreal Engine4インポート時
Unreal Engine4パラメーター調整後
Unreal Engine4パラメーター調整後

Car PaintのマテリアルにはFalloffを使用しましたが、パラメーターの調整だけでは難しいようです。

今回は9種類のマテリアルを見ていきました。

インポートしたマテリアルはインスタンスマテリアルが自動で作成され、またパラメーター化されているので、初心者の方でも扱いやすいようになっています。

インスタンスマテリアルで希望の表現ができない時、Masterのマテリアルを変更するか新規にマテリアルを作成になりますが、DatasmithでインポートしたMasterのマテリアルはノードが複雑になっている事があるので、苦手な方は新規にマテリアルを作成した方が早いかもしれません。

インスタンスマテリアルについての詳しい内容はUnreal Engine4公式ドキュメントをご覧ください
マテリアル インスタンスの作成と使用方法

マテリアルについては第3回目のコラムUE4のマテリアルをさわってみようでもふれています。

次回はRevitにも対応したUnreal Studio 4.21を検証してみます。

最後まで読んでいただきありがとうございました。