ちょっと詳しい Mutable
Tags:この記事では、Mutable の基本的な概念とCustomizable Object の作成方法...はすっ飛ばして、コンパイル、デバッグ、クック、パッケージングについて解説します。
Mutable とは
基本的な Mutable の説明や使い方は、公式ドキュメントがとても丁寧に解説してくれています。 なので、ここでは超ざっくりとしたことを書いておきます。
Mutable は、実行時に動的にスケルタルメッシュやマテリアル、テクスチャを生成する Unreal Engine のプラグインです。 UE5.5から正式にサポートされました。 主に、カスタマイズ可能なキャラクターやアイテムを作成するために使用されます。 それらを作成する際にMutable を使用することで、メモリの使用量を抑えたり、ドローコールを減らしたりと、より効率的で柔軟なキャラクターやアイテムのカスタマイズが可能になります。
Customizable Object とリソースのマージ
Customizable Object は、 Mutable で扱う主なアセットです。 オブジェクトに適用できるすべての要素が含まれており、実行時に制御可能なパラメータと、そのパラメータがオブジェクトにどのように適用されるかを定義します。
もっともシンプルな Customizable Object
Customizable Object のもっともシンプルな構成は、以下のようになります。
画像の例では、JacketA の SK_MeshComponent を持つオブジェクトを定義しています。
定義する過程で特に操作をおこなっていないため、元の SK_MeshComponent と同じ見た目になります。
マテリアルとメッシュのマージ
Mutable では、アセットを組み合わせることで新たなスケルタルメッシュを生成できます。
ノードグラフを使用してスケルタルメッシュの生成を制御できます。 一見同じ見た目のメッシュが生成されていても、グラフの組み方によって含まれるマテリアルやスケルタルメッシュの内訳が異なることがあります。
例として、マテリアルやスケルタルメッシュのマージを見てみます。作成したいオブジェクトを以下の画像のような「 BaseBody が JacketA と Pants を着用しているキャラクター」としましょう。
マージをおこなわない場合
まず、メッシュのマージをおこなわない場合は、以下のようなノードグラフになります。
この場合、このオブジェクトは BaseBody(Head) とBaseBody(Body) と JacketA と Pants の3つのスケルタルメッシュを持つことになります。
スケルタルメッシュのマージをおこなう場合
次に、メッシュのマージをおこなう場合は、以下のようなノードグラフになります。
同じ Mesh Componentに Mesh Section を追加するか、 Add To Mesh Component ノードを使用して、 Mesh Component を追加することで、メッシュのマージをおこないます。
結果として、このオブジェクトは BaseBody と JacketA と Pants の3つのメッシュをマージしたスケルタルメッシュを持つことになります。