機械学習クロス シミュレーション システムの概要
機械学習 (ML) クロス シミュレーション は、パフォーマンスに優れた高忠実度のリアルタイム クロス シミュレーションを Unreal Engine で提供するシステムです。
このシステムでは、リアルタイムで使用可能なトレーニング済みのデータセットを使用することで、従来の物理ベース モデルよりも高い忠実度を実現し、以前はオフライン シミュレーションのみで達成可能であった品質の結果を生成することができます。
機械学習を使用することの利点
従来のゲーム開発環境では、物理ソルバを使ってキャラクターのクロス (衣服) をシミュレートします。しかし、弾性の更新に時間がかかることや、クロスとボディの複雑なインタラクションが原因で、このプロセスの演算処理は高負荷になる可能性があります。
機械学習システムを利用することで、事前に生成した高品質のシミュレーション データを使用して、ユーザーによるモデルのトレーニングを支援することができます。このシステムでは、メモリ使用の面で効率よく、迅速に処理を行いつつ、事前にシミュレートされたデータと同じような品質のクロス メッシュを生成することができます。
技術的な実装
ML クロス シミュレーション システムでは、フレームごとにキャラクターのスケルタル ポーズを入力として受け取り、線形ブレンド スキニングを使ってベース クロス メッシュを変形することで、最終的なクロス ポーズを予測します。変形には 2 つの主要なコンポーネントがあります。
最初のコンポーネントは 低周波変形 と呼ばれるもので、ニューラル モーフィング モデルに似ていますが、頂点のデルタを出力するのではなく、このネットワークでは一連の主成分分析 (PCA) 係数が出力されます。
この技法では PCA デルタが次の式で算出されます。
pca_delta = mean_delta + pca_coeff * pca_basis
このコンポーネントは、スケルタルメッシュ ポーズを入力として使用して PCA 係数を予測する多層パーセプトロン (MLP) ネットワークによってモデル化されます。このコンポーネントをトレーニングするには、ランダムなポーズのデータセットを準備して、それぞれのポーズに設定するクロスをシミュレートする必要があります。このコンポーネントでは、ヒューマノイド キャラクター用に 5000 個のポーズが推奨されます。
2 つ目のコンポーネントは 最近接 (Nearest Neighbor) 検索を使って計算される 高周波変形 です。
このコンポーネントでは、最初のコンポーネントから PCA 係数を受け取り、最近接データセットで最近接検索を適用します。このコンポーネントでは、小規模ながらも一連の多様なポーズを準備して、それぞれのポーズに設定するクロスをシミュレートする必要があります。これらのポーズは、ゲーム内アニメーションのキーフレームから選ぶことが理想的です。最適な結果を得るには、ヒューマノイド キャラクター用に 50 ~ 100 個のポーズが推奨されます。
この技法では頂点のデルタが次の式で算出されます。
vertex_delta = pca_delta + nearest_neighbor_delta
トレーニング済みのデータセットについては、Unreal Engine の ML デフォーマー エディタ の Chaos クロス ジェネレータ を使って、それぞれのポーズの最終的なクロス位置を生成できます。これにより、クロスがシミュレートされ、リアルタイムで使用できるジオメトリ キャッシュが生成されます。
または、外部のクロス シミュレーション ソルバ (Houdini Vellum など) を使用することもできます。それぞれのポーズについては、最も適した位置が見つかるまでクロスをシミュレートして、確定したクロスをジオメトリ キャッシュに保存します。このキャッシュは、Alembic ファイルとして Unreal Engine にインポートすることができます。
Unreal Engine 内でジオメトリ キャッシュを生成する方法については、「ML クロス生成チュートリアル」を参照してください。
最適な結果を得るには、データセットに最も関連性の高いポーズを手動で選択してください。ただし、KMeans Pose Generator を使ってポーズを自動的に選択することも可能です。このジェネレータでは、アニメーション シーケンスを受け取って KMeans アルゴリズムを実行し、最近接データセット用の一連のエントリを生成します。
現在の制限事項
現在のシステムの実装には、大きな制限事項として「クロスは準静的である」と想定されていることがあります。これは、このシステムではしわやひだといった形状の詳細は予測できますが、スイングやドレーピングといった動的な動きは予測できないことを意味します。
現時点で、このシステムはパンツや T シャツといったタイトフィットの衣服には最適ですが、ドレスやケープなどのルーズな衣服には向いていません。
ML クロス システムの使用方法については、Epic Developer Community の「 ML Deformer - Nearest Neighbor Model (ML デフォーマー - 最近接モデル)」のチュートリアルを参照してください。