AnimDynamics を使用して物理ベースのセカンダリ アニメーションを作成する方法を説明します。
Choose your operating system:
Windows
macOS
Linux
SkeletalControls (スケルタル制御) ( SkelControls とも呼ばれます) を使用すると、 Skeleton アセット内のボーンを直接制御することができます。 Animation ブループリント 内でスケルタル制御を使って、個々のボーンの制御、IK チェーンの作成などを行うことができます。基本となるスケルトンを直接制御することで、プロシージャルな動的に動くアニメーションを作成することができます。あるボーンの トランスフォーム を使って、他のボーンを操作したり、歩行アニメーションの再生中に、キャラクターの足と地面を 同調させることができます。何らかの変更を加えて アニメーション シーケンス で適用したボーンのトランスフォームを微調整したり、完全にオーバーライドすることができます。
共通のピンとプロパティ
利用可能なプロパティは主にノード自体によって決まりますが、以下のように一部のピンやプロパティはすべてのスケルタル制御で共通になっています。
ピン |
説明 |
|
---|---|---|
入力ピン |
||
Component Pose |
トランスフォームさせる入力ポーズです。 |
|
Alpha |
スケルタル制御で適用されるトランスフォームの重み付けを決定するためのアルファ値として使用する [0.0, 1.0] 範囲の浮動小数点値です。値 0.0 は入力ポーズに最大限の重み付けをし、値 1.0 は制御の計算をしたトランスフォームに対し最大限の重み付けをします。 |
|
出力ピン |
||
Pose (Blank) |
トランスフォーム適用後の最終ポーズです。 |
プロパティ |
説明 |
---|---|
LOD Threshold |
このノードで実行が認められている最高 LOD (Level of Detail) です。例えば、LOD Threshold を 2 に設定すると、LOD 2 になるまでは実行しますが、コンポーネントの LOD が 3 になると無効になります。 |
コンポーネント空間
ポーズは、ローカル空間またはコンポーネント空間のいずれかにあります。Animation ブループリントの AnimGraph にある Convert Spaces ノードは、 ローカル空間とコンポーネント空間の間でポーズを変換する機能を提供します。ローカル空間では、 ボーンの変換がボーンに対して相対的であることが前提です。コンポーネント空間では、ボーンの変換が SkeletalMeshComponent に対して相対的であることが前提となっています。
通常 Animation ブループリントでのポーズ処理は、ローカル空間で行われます。しかし、特定のブレンド ノード、 そして SkeletalControls についてはすべて、コンポーネント空間で処理されます。これは、入力ポーズがこれらのいずれかのノード タイプに渡される前に、 変形が必要であることを意味します。入力ポーズが、ローカル空間にあるポーズを出力するノードから渡される場合、 対象となるポーズは、SkeletalControl が処理を実行する前に、正しい空間へ変換されなくてはいけません。 SkeletalControl が処理を実行し、結果として生じるポーズは、 追加のブレンドの入力ピンまたは Result ピンとしてローカル空間へ戻されなくてはいけません。
コンポーネント空間へ、もしくはコンポーネント空間からのそれぞれの変換には負荷が発生するため、 例えば SkeletalControls などのコンポーネント空間で動作するノードをグループ化すると良いでしょう。 これにより連続してすべて実行され、変換の必要数を制限することができます。
SpaceConversion (空間変換) ノードに関する詳細は、 Convert Spaces ノード をご覧ください。
Skeletal Control ノード
以下は、AnimGraph 内の各 Skeletal Control ノードについての情報を示したページへのリンクです。