
モーフィングアニメーションシステム
はじめに
この新しいリリースで、Evergineはモデルアセットにおけるモーフィングアニメーションのサポートを追加しました。また、サポートされているレンダリングプラットフォームでコンピュートシェーダーを使用します。これにより、驚異的な並列性能により、CPUモーフィングよりも4倍高速であることが証明されました。
モーフィングアニメーションの理解
モーフィングアニメーションは、ブレンドシェイプやシェイプキーとしても知られるモーフターゲットに基づいています。これらは、リアルな表情やアニメーションを作成するために3Dコンピューターグラフィックスで使用される技術です。これらは基本的に、異なる顔や身体の表情を表す一連の事前定義された3Dモデルです。各モーフターゲットは、ベースポーズ(通常はニュートラルなポーズ)に対する頂点変位を定義します。これにより、それぞれ異なるウェイトを持つ複数の表情を組み合わせることができ、キャラクターの顔や身体がある形状から別の形状へスムーズに遷移できます。この補間プロセスにより、複雑で生き生きとした動きが可能になり、モーフターゲットはキャラクターアニメーションにとって貴重なツールとなります。

コンピュートシェーダー
CPUの代わりにコンピュートシェーダーを介してモーフィングを使用すると、GPUの高度な並列処理とスケーラビリティを活用できます。また、CPU負荷の軽減にも役立ちます。ただし、アプリのレンダリングAPIがコンピュートシェーダーをサポートしていない場合や、アプリケーションがCPUの使用を強制する場合(UseComputeSkinning プロパティを無効にする)、Evergineは自動的にCPUモードに切り替わります。
Evergine Studioでのモーフターゲットの使用
3Dモデルをインポートする
3Dモデルをインポートします。モーフターゲットを使用する前に、モーフターゲットを持つ3Dモデルが必要です。通常どおり、3Dモデルを目的のフォルダにドラッグアンドドロップしてEvergineにインポートしてください。現在、モーフターゲットはGLTF、FBXおよびColladaファイルでサポートされています。
3Dモデルを開く
インポートした3Dモデルを開き、Model Viewerを表示します。アセットにモーフターゲットが含まれている場合、右側のMorph Targetsパネルに一覧表示されます。また、各ポーズのデフォルトのウェイトも表示されます。

シーンでポーズを編集する
モデルをシーンにインスタンス化する(シーンビューアーにドラッグアンドドロップする)と、通常のモデル階層のエンティティが作成されます。モーフターゲットを持つエンティティを選択すると、SkinnedMeshRendererコンポーネントに新しいパネルが表示されます。そのパネルでは、エディター内で直接すべてのモーフターゲットを制御できます。
変更したいポーズを検索し、そのスライダーを調整します。
これにより、モデルのすべてのモーフターゲットのウェイトが保存されます。
コードからのモーフターゲットの使用
C#のEvergineプロジェクトでは、前のセクションと同様に、メッシュのモーフターゲットのウェイトを制御することで、メッシュのモーフィングを制御できます。SkinnedMeshRendererコンポーネント内で、次のプロパティを使用してそれらを変更できます。
- float[] MorphTargetWeights。このプロパティがnullまたは空の場合、メッシュにモーフターゲットが存在しないことを意味します。それ以外の場合、この配列にはモーフターゲットごとに1つのfloat値が含まれます。その順序は、Model ViewerおよびSkinnedMeshRendererのエディターパネルで確認できるものと同じです。
