機械学習 (ML) デフォーマー は、ランタイム時にキャラクターとオブジェクトの忠実度の高いメッシュ変形を取得するために使用できる Unreal Engine のフレームワークです。目的のメッシュ変形データ セットを含む Alembic ファイル (.abc
) を使用して、ランタイム時にこのようなパフォーマンスに優れた高品質のメッシュ変形に近づくように Unreal Engine の ML デフォーマー モデルのいずれかをトレーニングできます。
ML デフォーマーのトレーニング プロセスは、次の 3 つの入力に依存します。
- スケルタルメッシュ アセット。
- 幅広い動きをカバーする、さまざまな位置でポーズを取ったキャラクターの アニメーション シーケンス アセット。
- それらのポーズの目的のメッシュ変形を含む ジオメトリ キャッシュ アセット。
ML デフォーマー フレームワークは、これら 3 つの入力を使用して、キャラクターのブループリントの ML デフォーマー コンポーネント と組み合わせて使用することでランタイム時にメッシュ変形を選択できる、トレーニング済みの ML デフォーマー アセットを出力します。
ML デフォーマー エディタには、ランタイム時に高品質のメッシュ変形を行えるようにトレーニング プロセスを微調整してテストするために使用できる、一連のツールと設定が含まれています。
次のドキュメントは、ML デフォーマー アセット、ML デフォーマー エディタ、ML デフォーマー コンポーネントの参考資料を含む、Unreal Engine の ML デフォーマー フレームワークの概要です。このドキュメントには、ニューラル モーフィング モデル や 最近接モデル など、ML デフォーマー システムのトレーニングに使用される各種の ML デフォーマー モデルに関する情報も含まれています。
前提条件
- ML デフォーマー フレームワーク は プラグイン であり、使用する前に有効にする必要があります。Unreal Engine メニューで [Edit (編集)] > [Plugins (プラグイン)] に移動し、[Animation (アニメーション)] セクションで ML Deformer Framework (ML デフォーマ フレームワーク) を見つけて有効にします。プラグインを有効にしたら、エディタを再起動する必要があります。

- Unreal Engine と Autodesk Maya の両方で使用できる、メッシュとスケルトンを含むキャラクター モデルがあること。
ML デフォーマーのセットアップ ガイド
ML デフォーマー フレームワークを使用してランタイム時に高品質のメッシュ変形を選択する方法がわかる包括的なセットアップ ガイドについては、ML デフォーマーの使用 に関するドキュメントを参照してください。
ML デフォーマー エディタ
ここでは、ML デフォーマー エディタの概要とともに、そのパネルとツールの詳細を示します。

-
[Visualization (ビジュアライゼーション)] パネル:データを調査するために使用します。このパネルの設定はトレーニング済みのモデルには影響せず、視覚化と調査だけを目的としたものです。
-
シーケンサー タイムラン:制御とトレーニングまたはテスト アニメーション シーケンス再生を通じたスクラブ再生のために使用します。
-
[Details (詳細)] パネル:ML デフォーマーのトレーニングに関連するすべての設定が含まれています。
ツールバー
次の表では、ML デフォーマー エディタのツールバーと各ツールの機能について説明します。
名称 | ツール | 説明 |
---|---|---|
Train Model (モデルをトレーニング) | ![]() |
このボタンを選択すると、ML デフォーマー エディタの [Details] パネルのプロパティを使用して、キャラクターのメッシュ変形のモーフ ターゲットを生成するためのモデルのトレーニングが開始されます。 入力が不足しているかその他のエラーが原因でトレーニングを実行できない場合、このボタンは無効になります。また、UI で正確なエラーが報告されます。 |
Model Selection (モデル選択) | ![]() |
ここでは、使用する ML デフォーマー モデルを選択できます。ドロップダウン メニューの使用可能なオプションから ML デフォーマーをトレーニングするモデルを選択できます。選択したモデルを変更すると現在のセッションは消去されるため、新しい ML デフォーマー アセットを作成したすぐ後にのみこれを変更することをお勧めします。 使用可能な ML デフォーマー モデルは、有効にしているモデル プラグインによって異なります。モデル タイプごとに独自のプラグインがあります。 |
Editor Mode (エディタ モード) | ![]() |
ここでは、ML デフォーマーを Training (トレーニング) モードか Testing (テスト) モードに切り替えることができます。
|
Tools (ツール) | ![]() |
ここでは、ML デフォーマー エディタのツールにアクセスできます。ドロップダウン メニューでツールを選択し、各ツールのプロパティを調整して演算を実行できるオプションを開きます。[Tools (ツール)] メニュー ボタンを使用して次のツールにアクセスできます。 現在のところ、このメニューに含まれるツールは主に 最近接 ML デフォーマー モデルを使用して作業するときに適用できます。 各ツールとそれらのプロパティの詳細、および各ツールの機能の説明については、後述の各セクションを参照してください。 |
Debug Actor (アクタをデバッグ) | ![]() |
ここでは、デバッグするアクタを選択することが可能です。ドロップダウン メニューでアクタを選択することにより、アクティブなプレイインエディタ (PIE) セッションでアクタの変形を表示できます。アクタとワールドを選択すると、ML デフォーマー エディタのビューポートのアクタは PIE セッションと同じポーズを示します。選択してデバッグできるのは、現在開いている ML デフォーマー アセットを使用しているアクタのみです。 プロジェクトでは、多くの場合にいくつかのアニメーションがブレンドされ、IK などのプロシージャルな変更が行われます。ML デフォーマー エディタでは、デバッグしていないときに単一のアニメーション シーケンスでしかテストを行えないため、デバッグが役に立つことがあります。 デバッグに使用可能なアクタのリストは、ツールバーの [Refresh (リフレッシュ)] ボタンを使用してリフレッシュできます。 ![]() |
[Key Pose Extraction] ツール
最近接 ML デフォーマー モデルを使用している場合、[Key Pose Extraction] ツールを使用してキャラクター トレーニング アニメーション シーケンスからキー ポーズ データを抽出するとともに、ジオメトリ キャッシュ データを生成できます。プロパティを調整したら、ウィンドウの下にある [Extract (抽出)] ボタンを使用して演算を開始します。

次の表では、[Key Pose Extraction] ツールの各プロパティとそれらの機能について説明します。
プロパティ | 説明 |
---|---|
Nearest Neighbor Model Asset (最近接モデル アセット) | クラスタリングに使用される MLDeformer アセットを表示します。 |
Section Index (セクション インデックス) | クラスタ化済みポーズを生成するために使用されるトレーニング済みデータのセクションを設定します。 |
Num Clusters (クラスタ数) | 生成されるポーズ クラスタの数を設定します。 |
Extract Geometry Cache (ジオメトリ キャッシュを抽出) | 有効になっている場合、[Key Pose Extraction] ツールでもジオメトリ キャッシュ データが抽出されます。 |
Inputs (入力) | 次のオプションからキー ポーズを抽出するデータを設定します。
キャッシュのフレームの数は、ポーズのキーの数と一致している必要があります。
|
Extracted Poses (抽出されたポーズ) | ここでは、ポーズ クラスタも抽出するアニメーション シーケンス アセットを割り当てることができます。プロジェクトの既存のアセットを上書きすると同時に、抽出されたポーズ クラスタを保存するために [New Poses (新しいポーズ)] ボタンを使用して新しいアセットを作成することもできます。 ![]() |
Extracted Cache (抽出されたキャッシュ) | Extract Geometry Cache プロパティが有効になっている場合、ここで抽出されたジオメトリ キャッシュ データの保存先となるアセットを割り当てることができます。プロジェクトの既存のアセットを上書きすると同時に、抽出されたジオメトリ キャッシュ データを保存するために [New Geometry Cache (新しいジオメトリ キャッシュ)] ボタンを使用して新しいアセットを作成することもできます。 ![]() |
[Get Neighbor Stats]
[Get Neighbor Stats] を使用することにより、キャラクターの最近接のトレーニング済み ML デフォーマー アセットに関するデータを生成できます。プロパティを調整したら、ウィンドウの下にある [Get Stats (統計データを取得)] ボタンを使用して演算を開始します。

次の表では、[Get Neighbor Stats] ツールの各プロパティとそれらの機能について説明します。
プロパティ | 説明 |
---|---|
Nearest Neighbor Model Asset (最近接モデル アセット) | 統計データの計算に使用される MLDeformer アセットを表示します。 |
Test Anim (テスト アニメーション) | ここでは、近接統計データを生成するアニメーション シーケンス アセットを選択できます。アセット選択ドロップダウン メニューを使用してプロジェクトからアセットを選択することが可能です。 |
Section Index (セクション インデックス) | サンプリングするアニメーション シーケンス アセットのセクションのセクション インデックス値を設定します。 |
[Visualization] パネル
次の表では、ML デフォーマー エディタの [Visualization] パネルの各プロパティとそれらの機能について説明します。
プロパティ | 説明 |
---|---|
Draw Labels (ラベルを描画) | 有効になっている場合、Linear Skinned Mesh (リニア スキン メッシュ) または Animation Sequence (アニメーション シーケンス) (緑色)、ML Deformed Mesh (ML デフォーマー メッシュ) (赤色)、Comparison Actor (比較アクタ) (黄色)、Ground Truth Mesh (グラウンド トゥルース メッシュ) または Geometry Cache asset (ジオメトリ キャッシュ アセット) (青色) というテキストを含むラベルが ML デフォーマー エディタのビューポートでレンダリングされます。 |
Label Height (ラベルの高さ) | デバッグ ラベル描画の高さを センチメートル (cm) 単位で設定します。 |
Label Scale (ラベルのスケール) | デバッグ ラベル描画のスケールを設定します。 |
Mesh Spacing (メッシュ間隔) | ビューポートでのメッシュの間隔を Unreal 単位 で設定します。 |
Test Anim Sequence (テスト アニメーション シーケンス) | ビューポートのスケルタルメッシュで再生されるアニメーション シーケンス アセットを設定します。再生中の ML デフォーマーの実行状況を確認できるようにトレーニング アニメーション シーケンス以外のアニメーション シーケンスを設定するには、このプロパティを使用します。 このプロパティは、ML デフォーマー エディタが [Testing] モードに設定されているときにのみビューポート メッシュに影響します。 |
Deformer Graph (デフォーマー グラフ) | ML デフォーマー エディタの変形済みテスト アクタで使用するデフォーマー グラフ アセットを設定します。デフォーマー グラフ アセットは、グラフ ベース システムでデフォーマーを定義するものであり、ランタイム時に法線のスキニング、モーフィング、再計算などを実行できます。ここでは、ランタイム時にキャラクターで使用するデフォーマー グラフ アセットを設定して結果を観察することが可能です。プロジェクトでランタイム時にデフォーマー グラフとこの ML デフォーマー アセットを組み合わせて使用する場合は、スケルタルメッシュ コンポーネントの Mesh Deformer プロパティでもデフォーマー グラフ アセットを指定する必要があります。ML デフォーマー アセットのビジュアライゼーション設定でデフォーマー アセットを変更しても、それが自動的にスケルタルメッシュ コンポーネントに追加されることはありません。 ニューラル モーフィング ML デフォーマー モデルを使用しているときは、デフォーマー グラフの Morph Target ノードを使用する出力がモデルのデルタになります。デフォーマー グラフと Deformer Graph ノードの詳細については、デフォーマー グラフ のドキュメントを参照してください。 |
Ground Truth (グラウンド トゥルース) | テスト アニメーション シーケンス の グラウンド トゥルース メッシュを表示するために使用される、ジオメトリ キャッシュ アセットを設定します。テスト アニメーション シーケンスとグラウンド トゥルース両方のアニメーション、フレーム数、フレーム レートが同じであることが重要です。 |
Compare Actors (アクタを比較) | ここでは、ビューポートでの ML デフォーマー エディタのデバッグ描画に比較アクタを追加できます。比較アクタを追加するには、(+) [Add (追加)] を使用し、アセット選択ドロップダウン メニューから ML デフォーマー アセットを選択します。デフォルトでは、[Name (名前)] プロパティには割り当てられた ML デフォーマー アセットの名前が入りますが、プロパティのフィールドで手動で名前を割り当てることが可能です。 |
Weight (ウェイト) | ビューポートの ML 変形済みメッシュに適用されるメッシュ変形デルタのスケール係数を設定します。値を ![]() |
Anim Play Speed (アニメーション再生速度) | ビューポートでのテスト アニメーション シーケンスの再生速度を設定します。アニメーションのデフォルトの再生速度にするには、値 1.0 を使用します。 |
Training Frame Number (トレーニング フレーム番号) | ここでは、トレーニング アニメーション シーケンス の再生のフレーム番号を手動で設定できます。この値は、シーケンスの再生コントロールでアニメーションを再生またはスクラブ再生するときに自動的に更新されます。 このプロパティは、ML デフォーマー エディタのモードが [Training] に設定されているときにのみアクセスできます。 |
Testing Frame Number (テスト フレーム番号) | ここでは、テスト アニメーション シーケンスの再生のフレーム番号を手動で設定できます。この値は、シーケンスの再生コントロールでアニメーションを再生またはスクラブ再生するときに自動的に更新されます。 |
Draw Deltas (デルタを描画) | 有効になっている場合、ビューポートでリニア スキン メッシュとグラウンド トゥルース メッシュ間の頂点デルタ値のデバッグ ビューがレンダリングされます。 このプロパティは、ML デフォーマー エディタのモードが [Training] に設定されているときにのみアクセスできます。 |
XRay Deltas (XRay デルタ) | Draw Deltas プロパティが有効になっている場合、通常メッシュによって遮られるデルタを頂点デルタ デバッグ描画でも表示するかどうかを切り替えることができます。 このプロパティは、ML デフォーマー エディタのモードが [Training] に設定されているときにのみアクセスできます。 |
Show Heat Map (ヒート マップを表示) | 有効になっている場合、リニア スキン メッシュと ML デフォーマーの補正済みの結果間の変化のデルタを示すヒート マップは、ビューポートの ML 変形済みメッシュでレンダリングされます。寒色は小さい値を意味し、暖色は大きい値を示します。グレーは値がないことを意味します。 ![]() |
Heat Map Mode (ヒート マップ モード) | ここでは、ヒート マップのモードを設定してさまざまなデータを観察できます。ドロップダウン メニューで次のモードを選択することが可能です。
|
Heat Map Max (ヒート マップ最大) | ここでは、ヒート マップの最も暖かいカラーを表す値をセンチメートル単位で設定できます。これは、ML デフォーマーの使用とスケルタルメッシュ キャラクターに適用する予定の誤差か補正の量を含むプロジェクトの目標に依存します。たとえば、値を 3.0 にすると、ヒート マップの赤色は Activations (アクティベーション) ヒート マップ モードを使用したときに ML 変形済みメッシュに適用される補正が 3.0 cm 以上であることを表します。グラウンド トゥルース ヒート マップ モードを使用している場合、値を 3.0 にすると、赤色はグラウンド トゥルース メッシュと ML 変形済みメッシュ間の誤差が 3cm 以上であることを表します。 |
Ground Truth Lerp (グラウンド トゥルース線形補間) | ヒート マップ使用時の線形補間係数、または ML 変形済みメッシュかグラウンド トゥルース メッシュからの影響を設定します。たとえば、値を 0.0 にすると ML 変形済みメッシュが完全に優先される一方、1.0 の場合はグラウンド トゥルース メッシュが完全に優先されます。中間の値を使用すれば、両方の影響を考慮するようにヒート マップを設定できます。 |
Draw Morph Targets (モーフ ターゲットを描画) | ML デフォーマー モデルをトレーニングしたら、このプロパティを有効にしてビューポートでスケルタルメッシュのモーフ ターゲットのデバッグ描画を確認できます。このプロパティは、生成されたモーフ ターゲットがどれだけまばらなのかを観察するのに役立ちます。 このプロパティは、ML デフォーマー モデルのトレーニングの直後に同じエディタ セッションで、またはトレーニング済みの ML デフォーマー アセットを開いている場合にのみ使用できます。 |
Morph Target Number (モーフ ターゲット番号) | ここでは、ビューポートでレンダリングされる生成済みのモーフ ターゲットのインデックス値を設定できます。 このプロパティは、ML デフォーマー モデルのトレーニングの直後に同じエディタ セッションでのみ使用できます。 |
Num Active Morphs (アクティブ モーフ数) | ここでは、ML デフォーマー LOD ごとのキャラクター用として生成されたアクティブなモーフ ターゲットの数を参照できます。 |
Highlight Debug Actors in PIE (Play in Editor) (デバッグ アクタを PIE (プレイ イン エディタ) で強調表示) | 有効になっている場合、アクタの境界のデバッグ描画がビューポートでレンダリングされます。有効になっていたとしても、このデバッグ描画はアクティブな PIE セッション中にのみレンダリングされます。 |
Debug Bounds Color (デバッグ境界カラー) | [Highlight Debug Actors in PIE] プロパティが有効になっている場合、ここでデバッグ描画のカラーを設定できます。 |
Draw Linear Skinned Actor (リニア スキン アクタを描画) | 有効になっている場合、ビューポートにリニア スキン メッシュが表示されます。 |
Draw ML Deformed Actor (ML 変形済みアクタを描画) | 有効になっている場合、ビューポートに ML 変形済みメッシュが表示されます。 |
Draw Ground Truth Actor (グラウンド トゥルース アクタを描画) | 有効になっている場合、ビューポートにグラウンド トゥルース メッシュが表示されます。 |
Draw ML Compare Actors (ML 比較アクタを描画) | 有効になっている場合、ビューポートにすべての ML 比較メッシュが表示されます。 このプロパティは、[Compare Actors] プロパティで ML デフォーマー アセットの追加と設定を行った後にのみアクセスできます。 |
Mask Viz Mode (マスク ビジュアライゼーション モード) | ここでは、メッシュ マスクのビジュアライゼーション モードを設定できます。それぞれのボーン、カーブ、ボーン グループ、カーブ グループには、メッシュ上に特定のマスク領域があります。このマスクは、生成されたモーフ ターゲットをアクティブにできる領域を定義します。それらを使用して、望ましくない領域での変形を除外できます。たとえば、左腕を回転させる場合に、右腕が変形するのは望ましくありません。左腕の領域の周りの頂点だけを含めてこれが適用されるように、左腕に対してマスクを設定できます。 このプロパティのドロップダウン メニューを使用してマスク ビジュアライゼーション モードを選択できます。選択可能なオプションは次のとおりです。
|
CPU Performance (CPU パフォーマンス) | ここでは、CPU での ML デフォーマー コンポーネントの更新に費やされる平均、最小、最大時間を参照できます。この時間は使用しているモデルの直近の 100 フレームで測定され、単位はマイクロ秒 (µs) となります。 |
Estimated Memory Usage (推定メモリ使用量) | ここでは、モデルのメイン システムのメモリと GPU に固有のメモリの使用量 (メガバイト (mb) 単位) を参照できます。 ニューラル モーフィング モデルを使用している場合、メイン システムのメモリ使用量に含まれるのは主にニューラル ネットワークです。Num Neurons Per Layer、Num Hidden Layers、Num Morph Targets などのプロパティは、この値に影響します。モデルの [Mode (モード)] を [Global (グローバル)] に設定すると、システム メモリの使用量も増加します。 GPU メモリは、主にシステムで生成される圧縮されたモーフ ターゲットで使用されます。Num Morph Targets、Delta Zero Threshold、Compression Level、Num Iterations、Max Number of LODs などのプロパティは、この値に影響します。 |
Estimated Asset Sizes (推定アセット サイズ) | ここでは、モデルのクック済みサイズと未クック サイズの推定値 (メガバイト (mb) 単位) を参照できます。 この推定値には圧縮されていない頂点デルタが含まるため、モデルの未クック サイズの推定値はクック済みモデルよりはるかに大きくなります。 |
[Details] パネル
次の表では、複数の ML デフォーマー モデルで表示される一般的な ML デフォーマー エディタの [Details] パネルの各プロパティとそれらの機能について説明します。[Details] パネルには、ランタイム時にモデルに影響を与える設定が含まれています。これには、入力、トレーニング設定、圧縮設定が含まれます。
プロパティ | 説明 |
---|---|
Skeletal Mesh | トレーニングしているキャラクターのリニア スキン スケルタルメッシュ アセットを設定します。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Training Input Anims | 選択した ML デフォーマー モデルのトレーニングに使用されるトレーニング入力のリストを設定します。各リストには、メッシュ ポーズを含むアニメーション シーケンスのペアとメッシュ変形データを含むジオメトリ キャッシュ アセットを含める必要があります。各ペアの両方のアセットは同じフレーム レートで実行する必要があります。また、これらのアセットには同じ数のフレームが含まれており、それぞれのアセットの各フレームには同じポーズが含まれている必要があります。さらに、各アセットのメッシュにも同じ数の頂点が含まれている必要があります。 たとえば、頭ではなく胴体のメッシュ変形のみをトレーニングする場合、スケルタルメッシュの一部のみが含まれるジオメトリ キャッシュでモデルをトレーニングできます。 新しい入力インデックスを作成するには、(+) [Add] を使用します。入力 インデックスを作成したら、各インデックスの設定を展開して次のプロパティにアクセスできます。
ML デフォーマー モデルをトレーニングするには、少なくとも 1 つのトレーニング入力のインデックスが必要です。たとえば、特定のポーズが適切に変形していないことに気付いたときは、トレーニング入力を追加してメッシュ変形の結果をさらに向上させることができます。これらのポーズに関するターゲット データを含む追加データにより、結果が向上する可能性があります。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Target Alignment Transform | ここでは、スケルタルメッシュでジオメトリ キャッシュの位置を調整するためのトランスフォーム値を設定できます。ジオメトリ キャッシュ アセットとアニメーション シーケンス ポーズが正しく揃っていないことに気付いた場合は、このプロパティを使用します。ジオメトリ キャッシュ メッシュの頂点がアニメーション シーケンス メッシュの頂点と重なっていない場合は、このプロパティを使用してスケールと回転を調整することをお勧めします。このトレーニング プロセスの目的は、変形が行われたときにメッシュの各頂点間の距離を計算することにあるため、良好な結果を得るには、頂点が正しく揃っていることがきわめて重要です。[Visualization] の [Details] パネルの [Mesh Spacing] の間隔設定では、今もなおリンク スキン メッシュとジオメトリ キャッシュが区別されるということを覚えておいてください。[Mesh Spacing] が このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Network Inputs | ここでは、ML デフォーマー モデルのトレーニング時に考慮されるボーンとカーブを設定できます。キャラクターのスケルタルメッシュ アセットからボーンかカーブを追加するには、(+) [Add] を使用し、[Add Bone (ボーンを追加)] または [Add Curve (カーブを追加)] を選択して単一のボーンかカーブを追加するか、[Add All Animated Bones (アニメートされたすべてのボーンを追加)] か [Add All Animated Curves (アニメートされたすべてのカーブを追加)] を選択してキャラクターの使用可能なアニメートされたボーンかカーブのすべてをインポートします。最初にアニメートされたすべてのボーンかカーブを追加してから、ヘルパー ボーンを削除するなどして縮小することをお勧めします。 追加されたボーンは、キャラクターのポーズを定義するために使用されます。このモデルは、各ポーズでのボーンの向きをモデルが出力する補正変形に関連付けます。たとえばすべてのヘルパー ボーンを除外するなど、最善の結果を得るために引き続きキャラクターの必要な動きのすべてをキャプチャしながら、設定するボーンを可能な限り少なくすることをお勧めします。[Add All Animated Bones] 関数を使用すると、エディタはアニメーション データを含むリストにすべてのボーンを自動的に追加します。このプロセスでは、後で削除する可能性が最も高いボーンにツイストを追加できます。 ニューラル モーフィング モデルを使用しており、モードをローカルに設定している場合は、リストにボーンを追加してから、選択したボーンを右クリックして [Edit Bone Mask (ボーン マスクを編集)] オプションを選択することにより、ボーン マスクにボーンを含める必要がある場合に編集を行えるウィンドウを開くことができます。デフォルトでは、ボーン マスク内のボーンにスキニングされるすべての頂点がボーン マスクに含められます。ボーン マスクのボーンを編集したら、ボーンのリスト内を右リックして [Reset All Bone Masks (すべてのボーン マスクをリセット)] オプションを選択することにより、すべてのボーン マスクをデフォルト設定に設定できます。 追加されたカーブは、ウェイト、アルファ、フェイシャル コントロール、マッスル アクティベーションなどの多くのことを表すことが可能なアルファ値を使用してモデルに影響を与えるために使用できます。[Add All Animated Curves] オプションを使用すると、アニメートされた値によって変化する値を持つアニメーション シーケンス アセットに含まれるすべてのカーブが追加されます。 アイテムを選択して右クリックし、[Delete Selected (選択項目を削除)] を選択することにより、リストからそれぞれのボーンまたはカーブを削除できます。また、リストを右クリックして [Clear List (リストをクリア)] オプションを選択することにより、ボーン リストまたはカーブ リストを完全にクリアすることも可能です。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Max Training Frames | 入力プロパティの割り当て済みのアセットからモデルをトレーニングするときに使用するフレームの最大数を設定します。この数を減らすことにより、トレーニング データの小さいセクションを使用してモデルをトレーニングできます。取得されるサンプルは入力アニメーション間で切り替わります。トレーニング フレームの最大数に達するかサンプリングするフレームがなくなるまで、最初に有効になった入力アニメーションのサンプルを取得してから次の入力アニメーションのサンプルを取得するといったようになります。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Delta Cutoff Lengths | トレーニング中に考慮されるデルタ値の最大長を設定します。指定された値より長いデルタ値はすべて無視され、長さがゼロに設定されます。このプロパティは、非常に長いデルタ値に起因する問題を減らすのに役立ちます。ML デフォーマー エディタのモードが Training に設定されているときに [Visualization] パネルの [Draw Deltas] を有効にすることにより、ビューポートでデルタ長のデバッグ レンダリングを表示できます。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Batch Size | ML デフォーマー モデルをトレーニングするときのバッチあたりのフレーム数を設定します。値を大きくするとトレーニング中に使用される GPU メモリは増えますが、トレーニング プロセスの所要時間を短縮できます。バッチ サイズも結果の品質に影響を与える可能性があります。バッチ サイズとイテレーション数を組み合わせると品質に影響が及びます。バッチ サイズを半分にする場合は、同じ品質になるようにイテレーションの数を倍にする必要があります。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Learning Rate | ML デフォーマー モデルのトレーニング中の最適化プロセスの最初のステップ サイズを設定します。値を大きくするとトレーニング中にすばやく結果を得られますが、重要なデータが見落とされて最適な結果にならない可能性があります。値を小さくすると高品質の結果を得られますが、トレーニングに膨大な時間がかかる可能性があります。このプロパティに関しては、非常に長いトレーニング時間を必要とすることなく、トレーニング プロセスで十分なデータをキャプチャする最適な値を見つけることを目標にします。プロジェクトのニーズに合った損失レベルになるように、大きい値から開始して徐々に減らしていくことをお勧めします。値が同じでも ML デフォーマー モデルによって結果は異なるため、モデルごとにアプローチを変えることをお勧めします。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Max Number of LODs | ML デフォーマー LOD を生成するために使用されるスケルタルメッシュ LOD レベルの最大数を設定します。値が ML デフォーマーは、使用可能なスケルタルメッシュ LOD の ML デフォーマー LOD のみを生成するため、このプロパティの値が |
ML デフォーマー モデル
ML デフォーマー フレームワークは、トレーニングされた ML デフォーマー モデルに依存して、ランタイム時のスキン メッシュ変形の選択を操作します。各モデルには用途別の強度があります。

最近接モデル
最近接モデルは、衣服などの複雑なメッシュやオブジェクトの変形に最適な設計となっています。このモデルはまだ、開発の実験的段階にあるとみなされているため、その機能や安定性に依存するプロダクションでは使用しないことをお勧めします。

リファレンス
次の表では、最近接モデルに固有の各プロパティとそれらの機能について説明します。
プロパティ | 説明 |
---|---|
Import Dim | ネットワーク入力サイズを設定します。 |
Hidden Layers Dim | ネットワークの非表示レイヤーのサイズを設定します。非表示レイヤーを設定するには、(+) [Add] を使用してインデックスの値を非表示にするレイヤーの値に設定します。 このプロパティは空のままにできません。 |
Output Dim | ネットワーク出力サイズを設定します。 |
Num Epochs | トレーニング セットを通してイテレートするサイクルの最大数を設定します。 |
Early Stop Epochs | 精度が向上しない場合にトレーニングを停止するエポックの数を設定します。 |
Include Normals | 有効になっている場合、トレーニング プロセス中にモデルのモーフ ターゲットに法線が含められます。このプロパティを有効にすると、法線を再計算する場合よりパフォーマンス結果が高くなる一方、低品質のメッシュ変形の結果に伴うコストが発生し、格納されるモーフ ターゲットのメモリのコストが高くなる可能性があります。 |
Delta Zero Threshold | ここでは、モーフ ターゲットのデルタ値のカットオフを決定する値を設定できます。このしきい値以下のデルタ値は無視され、 ML デフォーマー アセットを使用する際のプロジェクトのランタイムのパフォーマンスとメモリに最も大きな影響を与えるのは、このプロパティの機能値です。 |
Compression Level | 生成されるモーフ ターゲットの圧縮レベルを設定します。値を大きくすると圧縮レベルは高くなりますが、メッシュにビジュアル アーティファクトが生じる可能性があります。値を小さくすると圧縮レベルは低くなり、高品質の結果を得られますが、必要なメモリの量は増加します。最適な結果を得るには、値を [Compression Level] プロパティを調整する前に、まずはプロジェクトの [Delta Zero Threshold] プロパティを適切に設定することをお勧めします。 |
Mask Channel | デルタ マスク乗数を表すチャンネル データを設定します。このプロパティを使用すれば、キャラクターの首や肩といった動きの多いジョイントの継ぎ目をターゲットにするなど、特定の領域で ML デフォーマーに対する影響を小さくしたり分散したりできます。ペイントされた頂点のカラー値は、その頂点に適用される ML デフォーマーのデルタの重み乗数のように使用されます。このプロパティのドロップダウン メニューを使用してマスク チャンネルを選択できます。選択可能なチャンネルは次のとおりです。
このプロパティは、独自の設定を使用してメッシュ全体をトレーニングするのではなく、その設定でメッシュ変形を改善したいメッシュの特定の領域でトレーニング プロセスをターゲットにするのに役立ちます。 |
Invert Mask Channel | 特定の頂点カラー マスク チャンネルを使用するように [Mask Channel] プロパティが設定されている場合、このプロパティを有効にして影響を反転させることができます。たとえば、赤頂点カラー マスクを使用してメッシュの領域をペイントする場合、[Vertex Color Red (頂点カラー赤)] を使用するように [Mask Channel] を設定してこのプロパティを有効にすると、ペイントした領域は動かなくなります。 |
Use Dual Quaternion Deltas | 有効にすると、ML デフォーマー モデルはデュアル クォータニオン デルタ値を使用するようになります。デフォルトでは、LBS デルタ値が使用されます。 |
Decay Factors | 現在のフレームのデルタに追加される前のフレームのデルタの比率を設定します。値を大きくするとくっつき合うメッシュのしわが長くなります。 |
Nearest Neighbor Offset Weight | 最近接デルタに乗算されるウェイトを設定します。値を 0.0 にすると最近接デルタが完全に削除され、1.0 にすると最近接デルタが完全に重み付けされます。 |
Use RBF | 有効になっている場合、ML デフォーマーは滑らかな結果を生成するために放射基底関数を使用して複数の最近接をブレンドします。 |
RBFSigma | Use RBF プロパティが有効になっているときに、ブレンドする最近接の範囲をポイント単位で設定します。値を大きくすると結果は滑らかになりますが、プロジェクトのパフォーマンスが低下する可能性があります。 |
Sections | ここでは、キャラクターの各メッシュ コンポーネント用に最近接モデルのトレーニング プロセスを分割するためのセクションを追加できます。各セクションには、元のスケルタルメッシュの頂点のセットが含まれます。そうすると、各セクションで個別に最近接検索が実行されます。たとえば、キャラクター アセットにシャツとパンツ両方のメッシュがある場合、各メッシュで個別に最近接トレーニングを実行するために、各メッシュを個別のセクションとして定義できます。[+Add (+追加)] を使用してセクション インデックスを追加してからセクション プロパティを展開することにより、次の設定にアクセスできます。
|
Network State | ここでは、ネットワーク ステートの状態を参照できます。 |
Network Architecture | ここでは、ネットワーク アーキテクチャの状態を参照できます。 |
Morph Target State | ここでは、モーフ ターゲット ステートの状態を参照できます。 |
Inference State | ここでは、推論ステートの状態を参照できます。 |
Use File Cache (Advanced) | 有効になっている場合、ML デフォーマーはコンピュータのハード ドライブに中間結果をキャッシュします。 手動でキャッシュをクリアしなければ、予期しない結果が生じる可能性があります。 |
File Cache Directory | コンピュータのハード ドライブに中間キャッシュの結果を保存するときに使用するファイル パスを設定します。保存データのリストをリフレッシュするには、このプロパティ セクションの下部にある [Refresh] ボタンを使用します。 |
Cached Deltas | ここでは、保存されている中間キャッシュ デルタを参照できます。このデータは、[Delete (削除)] ボタンでクリアすることが可能です。 |
Cached PCA | ここでは、保存されている中間キャッシュ PCA (主成分分析) データを参照できます。このデータは、[Delete (削除)] ボタンでクリアすることが可能です。 |
Cached Network | ここでは、保存されている中間キャッシュ ネットワーク データを参照できます。このデータは、[Delete (削除)] ボタンでクリアすることが可能です。 |
Use Input Multipliers | 有効になっている場合、ML デフォーマーは入力乗数を使用します。このプロパティは、問題のあるネットワーク入力をデバッグするのに役立ちます。 |
Input Multipliers | [Use Input Multipliers] プロパティが有効になっている場合、適用する入力乗数を設定できます。新しい入力乗数を作成するには、[+Add (+追加)] を使用してモディファイア値を設定します。 |
ニューラル モーフィング モデル
ニューラル モーフィング モデルは、手足と連動したスキンと筋肉の動きや大きいボディ モーションの計算など、キャラクター モデルの変形に最適な設計の一般用途の ML デフォーマー モデルです。

プロパティのリファレンス
次の表では、ニューラル モーフィング モデルに固有の各プロパティとそれらの機能について説明します。
プロパティ | 説明 |
---|---|
Mode | ML デフォーマーのニューラル ネットワークの動作モードを設定します。次のオプションから選択できます。
このモードは、個々のジョイント周囲の変形を学習するように最適化されており、必要なトレーニング データの量は最小限です。またこのモードは、メモリ使用量を減らすまばらなモーフ ターゲットを生成するうえ、GPU ですばやく処理できます。さらに、Local モードを使用すると、スケルトン全体を同時に評価するのではなく、ボーンの評価が細かく分割されるため、CPU のパフォーマンスも向上します。 トレーニング データの再ビルドが困難な場合を除き、このオプションをデフォルトで使用する必要があります。各ボーンまたはカーブは、このモデル内に一連のモーフ ターゲットを作成します。生成されるモーフ ターゲットの総数は次のようになります。
最後の
このモードでは、複数のジョイントの協調動作から変形を学習しますが、より多くのトレーニング データが必要です。このモードは Local モードと同様に動作しますが、すべてのボーンが 1 つの大きなボーン グループ内にあるかのように動作します。これは、トレーニング データとしてランダム化されたポーズを使用する場合に最適に機能します。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Num Morph Targets | この値は、トレーニング中にメッシュに対して生成されるモーフ ターゲットの数を表します。値が大きいほど高品質の結果がもたらされますが、必要なメモリとパフォーマンスが増えます。変形の品質を維持しながら可能な限りこの値を小さく設定することをお勧めします。 [Mode] が [Local] に設定されている場合、この値は各ボーン、カーブ、ボーン グループ、カーブ グループに対して生成されるモーフ ターゲットの数を表します。Local モードを使用している場合は、求められる品質をしながら可能な限り小さい値を入力することをお勧めします。この値を [Mode] が [Global] に設定されている場合、この値はメッシュに対して生成されるモーフ ターゲットの総数を表します。この値を このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Num Iterations | モデルをトレーニングするイテレーションの回数を設定します。テスト目的のプロジェクトと開発中のプロジェクトの場合、 損失が減り続けない場合、イテレーションの回数を増やしても結果が向上し続けることはないと思われます。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Num Hidden Layers | ニューラル ネットワーク モデルで使用される非表示レイヤーの数を設定します。値が大きいほどプロジェクトのパフォーマンスは低下しますが、より複雑なメッシュ変形が可能になります。Local モードを使用している場合、設定する値は通常 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Num Neurons Per Layer | 非表示レイヤーあたりのユニット/ニューロンの数を設定します。値が大きいほどパフォーマンスは低下しますが、より複雑なメッシュ変形が可能になります。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Regularization Factor | モデルの一般化に役立つトレーニング データの正則化係数を設定します。値を大きくするとモーフ ターゲットがまばらになるため、GPU メモリの使用量を減らして GPU のパフォーマンスを向上させることができます。このプロパティのデフォルト値は このプロパティとそのエフェクトは、モデルのスケールによって決まります。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Smoothing Loss Beta | スムージング L1 損失関数のベータ パラメータを設定します。このプロパティは、生成される変形の結果を滑らかにするものであり、メッシュのスケールによって決まります。値が小さいほど、適用されるスムージングは抑えられます。標準サイズのキャラクター メッシュの場合、一般的には値を 誤差がこのベータ値以上になる場合は、代わりに L1 損失関数を使用します。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Enable Bone Masks | [Mode] プロパティが [Local] に設定されている場合、このプロパティを有効にすると、スキニング情報に基づいてボーンごとに影響マスクを生成し、ボーンおよびボーン グループごとのマスクを使用できます。その結果、ジョイント周辺に局所的な変形が発生します。このプロパティを有効にすると、局所的なジョイント変形の品質が上がって GPU メモリの使用量を減らすことができるうえ、GPU のパフォーマンスが向上します。 このプロパティに何らかの変更を加えると、モデルの再トレーニングが必要になります。 |
Clamp Morph Weights | 有効になっている場合、生成されるモーフ ターゲットのウェイトはトレーニング中に表示される範囲にクランプされます。このプロパティにより、トレーニング中に表示されていなかった方法でキャラクターのポーズが取られているときに変形の結果を向上させることができます。またこのプロパティは、モーフ ターゲットのウェイトがトレーニング中に表示される値の範囲を超えないようにしておかしい変形を防ぐことにより、トレーニング データに近接参照ポーズが含まれないようにします。 |
Include Normals | 有効になっている場合、トレーニング プロセス中にモデルのモーフ ターゲットに法線が含められます。このプロパティを有効にすると、法線を再計算する場合よりパフォーマンス結果が高くなる一方、低品質のメッシュ変形の結果に伴うコストが発生し、格納されるモーフ ターゲットのメモリのコストが高くなる可能性があります。 |
Delta Zero Threshold | ここでは、モーフ ターゲットのデルタ値のカットオフを決定する値を設定できます。このしきい値以下のデルタ値は無視され、 ML デフォーマー アセットを使用する際のプロジェクトのランタイムのパフォーマンスとメモリに最も大きな影響を与えるのは、このプロパティの機能値です。 |
Compression Level | 生成されるモーフ ターゲットの圧縮レベルを設定します。値を大きくすると圧縮レベルは高くなりますが、メッシュにビジュアル アーティファクトが生じる可能性があります。値を小さくすると圧縮レベルは低くなり、高品質の結果を得られますが、必要なメモリの量は増加します。最適な結果を得るには、値を [Compression Level] プロパティを調整する前に、まずはプロジェクトの [Delta Zero Threshold] プロパティを適切に設定することをお勧めします。 |
Mask Channel | デルタ マスク乗数を表すチャンネル データを設定します。このプロパティを使用すれば、キャラクターの首や肩といった動きの多いジョイントの継ぎ目をターゲットにするなど、特定の領域で ML デフォーマーに対する影響を小さくしたり分散したりできます。ペイントされた頂点のカラー値は、その頂点に適用される ML デフォーマーのデルタの重み乗数のように使用されます。このプロパティのドロップダウン メニューを使用してマスク チャンネルを選択できます。選択可能なチャンネルは次のとおりです。
このプロパティは、独自の設定を使用してメッシュ全体をトレーニングするのではなく、その設定でメッシュ変形を改善したいメッシュの特定の領域でトレーニング プロセスをターゲットにするのに役立ちます。 |
Invert Mask Channel | 特定の頂点カラー マスク チャンネルを使用するように [Mask Channel] プロパティが設定されている場合、このプロパティを有効にして影響を反転させることができます。たとえば、赤頂点カラー マスクを使用してメッシュの領域をペイントする場合、[Vertex Color Red (頂点カラー赤)] を使用するように [Mask Channel] を設定してこのプロパティを有効にすると、ペイントした領域は動かなくなります。 |
頂点デルタ
頂点デルタ モデルは、純粋な GPU ベースのデフォーマーの一例です。Global モードのニューラル モーフィング モデルを簡素化して実装したものですが、完全に GPU で動作します。エンジン モーフ ターゲットを使用しませんが、それに伴って圧縮やその他の最適化も使用しないため、より低速になってメモリの負荷が大きくなります。プロダクション中には使用せず、GPU でニューラル ネットワークを実行するモデルのリファレンスとしてのみ使用するようにしてください。
注:頂点デルタ ML デフォーマー モデルは、GPU ベースのサンプル モデルであり、プロダクションでは使用しないでください。[Mode] プロパティを [Global
] に設定したニューラル モーフィング モデルを使用すると、プロダクションで同様のより安定した結果を得られます。

ML デフォーマーのデバッグ
ここでは、Unreal Engine における ML デフォーマーの結果とパフォーマンスのデバッグとトラブルシューティングについて説明します。
アクタのデバッグ
トレーニングを終了したら、キャラクターのアニメーション シーケンスを再生してモデルをテストできます。これにより、トレーニング データとは少し異なることがある、ポーズでの変形がどのようになるのかをテストすることが可能です。
指定された入力がトレーニング中に使用される値と大きく異なる場合、ML デフォーマーでは低品質な結果が出力される可能性があります。そのため、トレーニング データで幅広いポーズをカバーすることが非常に重要です。
実際のプロジェクトでは、ポーズは通常、再生される単一のアニメーションではなく、複数のソースを使用してブレンドされます。ポーズのブレンドに加えてプロシージャルな変更を使用し、インバース キネマティクス (IK) のような処理を行うこともあるため、何らかのゲーム出力をキャプチャしていなければ、単一のアニメーションでのテストは必ずしもうまくいくとは限りません。
ML デフォーマー エディタでアクタ デバッグ ツールを使用すれば、プロジェクトのフル アニメーション システムで ML デフォーマーの結果を表示できます。プレイインエディタ (PIE) セッションに接続し、現在開いているのと同じ ML デフォーマー アセットを使用する ML デフォーマー コンポーネントがあるキャラクターを選択すると、ML デフォーマー エディタは PIE セッション内のキャラクターのポーズをコピーし、ML デフォーマー エディタのビューポート内に変形を適用します。
ML デフォーマー エディタで PIE アクタのデバッグを開始するには、デバッグするキャラクターが使用している ML デフォーマー アセットをコンテンツ ブラウザでダブルクリックして開きます。その後、PIE コントロールの [Play (再生)] ボタンをクリックして PIE セッションを開始します。
セッションが始まったら、[ML Deformer Editor (ML デフォーマー エディタ)] タブをクリックします。そうすると、周囲にバウンディング ボックスがレンダリングされた、デバッグ可能なアクタのすべてが PIE ビューポート内に表示されます。デフォルトでは、このバウンディング ボックスは紫色になっており、アクタの名前が白色で表示されます。

次に、ML デフォーマー アセット エディタ内でツールバーの [Debug Actor] ツールのドロップダウン メニューを使用してアクタの組み合わせを選択します。そうすると、この ML デフォーマー アセットを使用するアクタのリストが表示されます。目的のアクタがそのリストにない場合は、右側のドロップダウン メニューの横にある [Refresh] ボタンを使用してから、デバッグするアクタを選択します。または、F8 キーを押してリストをリフレッシュすることもできます。選択したアクタは、プロジェクトのレベル ビューポートで (デフォルトでは緑色のボックスと黄色の名前で) 強調表示されます。


これで、PIE でキャラクターのフル アニメーション システムを使用して、ヒート マップなどの [Visualization] パネルのプロパティで ML デフォーマーの結果をデバッグできます。
ゲーム内にライブ グラウンド トゥルースはないため、機能するのは Activations ヒート マップ モードのみとなります。

デバッグ セッションを終了するには、PIE セッションを停止するか、ドロップダウン メニューを使用して ML デフォーマーの [Debug Actor] ツールで [Disable Debugging (デバッグを無効にする)] を選択します。
Unreal Insights
記録されたセッションの GPU セクションの モーフ ターゲット アイテムを使用し、Unreal Insights で ML デフォーマー アセットのパフォーマンスを調べることができます。CPU のパフォーマンスを表示してデバッグするには、CPU プロファイラの MLDeformerComponent セクションを使用します。GPU のパフォーマンスを確認するには、GPU 情報の モーフ ターゲット セクションを使用します。
トラブルシューティング
ここでは、トラブルシューティングの結果と Unreal Engine で ML デフォーマーを使用したときに発生する可能性があるパフォーマンスの問題について説明します。
ニューラル モーフィング モデル
問題 | 考えられる解決法 |
---|---|
変形の結果が最適でない: |
|
ランタイムのメモリまたはパフォーマンスが最適でない: | GPU のパフォーマンスが低い場合は、モーフ ターゲットの数を減らしてみます。キャラクター全体に対して生成されるモーフ ターゲットの総数を Local モードを使用している場合、[Num Morph Targets] の値は設定したボーン/カーブ/グループの単位になります。
|
詳細情報
ここでは、Unreal Engine での ML デフォーマーの使用方法について詳しく学ぶためのサンプル コンテンツ プロジェクトやデベロッパー向けの講演など、ML デフォーマーのその他のリソースについて説明します。
ML デフォーマー セットアップ ガイド
Autodesk Maya でランダム化されたポーズやジオメトリ変形データの Alembic ファイルを生成する方法についてのウォークスルーなど、ニューラル モーフィング モデルを使用した ML デフォーマーのセットアップ方法の詳細については、次のハウツー ガイドを参照してください。
ML デフォーマーのサンプル コンテンツ
さらに、機械学習 (ML) デフォーマーのサンプル プロジェクト をダウンロードして、ML デフォーマー システムを使用したキャラクターのフル ボディのメッシュ変形を確認できます。このサンプル プロジェクトには、コントロールリグ によって制御されるアニメートされたキャラクターのインタラクティブなシネマティックが含まれているため、リニア スキン メッシュを再生して ML デフォーマーによって生成された変形と比較できます。さらに、代替アニメーションを使用してキャラクターを操作したり、コントロール リグ を編集したり、衣服やスキンの表示を切り替えたり、メッシュに対する変更の確認や ML デフォーマー システムと機能の学習を行うためにさまざまな ML デフォーマー モデルのエフェクトを見たりできます。
ML デフォーマーのサンプル プロジェクト は、Unreal Engine マーケットプレイスの [UE Online Learning (UE オンライン ラーニング)] タブからダウンロードできます。

ゲーム デベロッパー カンファレンスでの ML デフォーマーのデモ
ML デフォーマー システムの詳細と、ML デフォーマーの機能を紹介するライブ デモを見るには、「State of Unreal | GDC 2023」の講演をご覧ください。