Final IKとは
Final IKはUnityでIK(Inverse kinematics:逆運動学)を行うための有料Aseetです。
デモシーンを勉強したのでメモをまとめました。
Aim IK デモシーンでお勉強
Aim IKコンポーネント
今回は、AimIKのAim Weaponシーンで勉強。実行すると、こういう感じです。銃の先がボールを向きます。
このシーンのAimIKのコンポーネントは以下の通り
TargetとAim Transform
Aim IKコンポーネントでは、まずTargetとAim Transformを設定します。
"Target"は向けさせたい目標。このシーンではボールです。
"Aim Transform" は、目標に向けさせたいもののTransformです。このシーンでは銃です。銃そのもののTransformが的に向けるときの軸の上に来ない時もあるので、その際は空の子オブジェクトを配置し、それを適切な位置に移動させる。この際、たとえば下図のようにAim Transformの-Y軸を的に向けさせたいなら、Axisの設定を(0,-1,0)にします。
なお、この軸は、Aim TransformのLocalの軸を基準にするので注意しましょう。
表示設定が上記のようにLocalなっていることを確認してください。
実行すると、下のように見えます。
紫色の矢印がAim Transformの方向で、それが的へ向かっています。
ボーンの設定
Bonesで、Aim IKを使って動かしたいボーンを指定します。このシーンでは、腕は固定で体幹の湾曲や回転で銃を目標へ向けます。そのため、ボーンはSpine1-3,Neckを指定します。
ボーンは、ヒエラルキーの上から下の順番に合わせて指定します。
動かしたいボーンだけ指定しましょう。
Pole Axis
Pole axisは方向の微調整、例えば銃の握りに捻りを加えるのに使います。そのため、Axisの方向とは別の軸に設定する必要があります。
例えば、最初の図では-YをAxisにしたが、ZをPole axisにすれば、Aim Transformの-Y軸を回転軸に、Z軸(青色)をPole Target(コンポーネントで設定できる。何も指定しないと勝手に作られるみたい)に向かうようにひねろうとします。Pole Weightを調整してみましょう。
こちらは、Aim TransformのZ軸をPole Targetに向けようとしている様子。
Pole Axisは(0,0,1)
このように、姿勢の微調整に便利です。
最後に
とりあえず、Aim IKがわかれば、たとえばユニティちゃんの腕を動かして対象の方向に向ける、といった動作もできるでしょう。皆さんもいろいろ試してください。