執筆バージョン: Unreal Engine 4.26
|
はじめに
マテリアルインスタンスの管理は非常に難しく、インスタンス側で値を上書きしていたり、Switchパラメーターの有無で反映されていなかったりなど、階層内の影響箇所も考慮すると全体を把握するのが複雑になってきます。
また、Marketplaceなどの外部アセットを使う場合も、プロジェクトへの導入にあたって中身の精査や組み直しが必要なものも多かったりします。
その際、各アセットの参照を辿り、ひとつずつ確認していくのは手間がかかりますのでMaterial Analyzerという機能が役に立ちます。
Material Analyzer とは
Material Analyzerは4.22から追加された機能でDeveloper Tools > Miscellaneousに登録されています。
![](https://historia.co.jp/wp/wp-content/uploads/2021/02/blog_202001_1.png)
Material Analyzerを使うと指定したマテリアルを分析し、そこに含まれるインスタンスやオーバーライドしているパラメーターなどを一覧できます。
![](https://historia.co.jp/wp/wp-content/uploads/2021/02/blog_202001_2.png)
では、早速使ってみましょう。
ここでは試しにMarketplaceのアセットに含まれるM_base_animeというマテリアルを対象としました。
![](https://historia.co.jp/wp/wp-content/uploads/2021/02/blog_202001_3.png)
このマテリアルには6つのインスタンスがあり、各インスタンスで[BLEND_Translucent]の値がオーバーライドされています。
![](https://historia.co.jp/wp/wp-content/uploads/2021/02/202001a_2-300x279.png)
また、Static Switch Parametersも3つ[ifGlay, maskInv, useMask]持っており、それぞれのインスタンス上で用途に応じてTrue/Falseが設定されています。
![](https://historia.co.jp/wp/wp-content/uploads/2021/02/202001a_1.png)
※別のマテリアルになりますがStatic Component Mask Parameterが含まれる場合も、同様に確認することができます。
![](https://historia.co.jp/wp/wp-content/uploads/2021/02/blog_202001_6-300x278.png)
各アセットをひとつずつ開かなくとも、こうした情報を一度に得ることができるのがMaterial Analyzerの便利な点です。
さらに、ウィンドウ下部のSuggestionsでは、同じStatic Switchの設定を持つものがリストアップされています。
![](https://historia.co.jp/wp/wp-content/uploads/2021/02/rapture_20210119160916.png)
右にある[+Create Local Collection]ボタンをクリックすると該当アセットだけをローカルコレクションへとまとめることが可能です。
整理できるアセットがはっきりとわかるので最適化の際には重宝します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/02/rapture_20210119161047.png)
なお、Static Switchは便利なパラメーターですが運用には注意が必要で、管理方法や仕組みなど下記スライドに非常に良くまとめられており参考になります。
マテリアルとマテリアルインスタンスの仕組みと問題点の共有(Epic Games Japan 篠山 様)
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~(com044 様)
また、Collectionについては過去の記事にもありますので、そちらも併せてご覧下さい。
おわりに
ここでは画像の掲載は控えますが、実際にプロジェクトで使用しているマスターマテリアルを分析してみると色々と発見があり、運用や最適化にあたっての指標になりました。
マテリアルアセットをひとつずつ開いて確認する前に、ぜひMaterial Analyzerを試してみて下さい。