🧉

UE5.1でMaterialXを使う

2022/12/25に公開

UEアドカレ2022 その4、12/20の枠の記事です。
今回は MaterialX です。
https://materialx.org

UE5.1のリリースノートによると、新しいインポートフレームワーク が提供され、その中でMaterialXが読めるようになったと書かれています。
https://docs.unrealengine.com/5.1/ja/unreal-engine-5.1-release-notes/#新しいインポートフレームワーク

プラグインを確認

「MaterialX」 みたいなプラグインがあるのかなと思っていたのですが、

ありませんでした。
あくまでもインポートフレームワークがMaterialXに対応した、ということで
USDのように固有のプラグインがあるみたいなことではありません。

MaterialXを読み込む

リリースノートによると、現状は次のような制限があるようです

  • インポート専用
  • standard_surface のみに対応

MTLXマテリアルを用意

AMDがMaterialXのライブラリを公開しているので、そこからダウンロードしてきます。
今回はその中から 「Iberian Blue Ceramic Tiles」 というのを使いました。

https://matlib.gpuopen.com/main/materials/collections/543fc8e7-eaeb-40db-954a-5a1f2d387cb6?material=2040cac4-6488-462d-9e75-ed755cb1ae7f

読み込み

テクスチャやFBXと同じように、 .MTLX ファイルをドラッグアンドドロップで読み込めます。

「Import Textures」ONにしておくことで、使われているテクスチャもまとめて読み込まれます。

tangentとnormalはサポートされていないというメッセージが出ていますが、normalテクスチャは読めていますしtangentはそういうテクスチャがあるわけではないので、mtlx内の記述の話かと思います。追々サポートされるものと思います。

読み込まれたマテリアルの確認


このようなノードグラフのマテリアルが作られました。 「MX_StandardSurface」 というマテリアルファンクションに集約される形で組まれています。

当該マテリアルファンクションはこちらに置かれています。

/Interchange/Functions/MX_StandardSurface

MX_ からはじまるマテリアルファンクションがいくつかあり、これらはMaterialXで使われるものなのかなと思います。

ちなみにこのFunctionsと同じ並びにあるMaterialsフォルダには、標準的に使えそうなマテリアルがいろいろおかれています。

▼マテリアルインスタンスしてみたところ

パラメータ名「A11」「B10」「B8」とかありますが、 .mtlx ファイルの記述を見てもそういうパラメータ名が書かれているわけでもなく、自動的につけられた模様。
準備中なのか、あるいは適した記述の仕方があるのか。

再読み込み

現状はインポート専用とのことなので「読み書き」はできないと思いますが、再読み込みはどうでしょうか。外部ツールでmtlxを更新してそれを適宜読み直しできるならフロー的にはありがたいことです。


マテリアルを開いて詳細をみてみても、テクスチャアセットにあるような 「再インポート」 はありません。


mtlx読み込み時に読み込まれたテクスチャアセットには「再インポート」があります。

テクスチャアセットもファイルパスは mtlx を見ているようでした。
なので、テクスチャを再インポートしたらマテリアルも更新されないかな、なんて期待するんですが…


試しに手書きで mtlx を改変してから(テクスチャの)再インポートを実行してみましたが、
マテリアルには特に何も起きませんでした。

まとめ

現状は「最初の対応」ということで読み込みのみで、再読み込みや書き出しは使えませんでした。
そのうち対応してくると思うので、そうするとほかのMaterialX対応ツールとより密な連携ができるようになり世界が広がるかなと思います。
楽しみに待ちたいと思います。

Discussion