今回のテーマ
- IK (Inverse Kinematics)
学習環境のセットアップ
Unity 2020 以降を想定しています。
- Unity のプロジェクトを用意する
- Package Manager から ProBuilder をインストールする
- Asset Store から Basic Mostions Free アセットをインポートする
- アセット パッケージ LearnIK.unitypackage をダウンロード・インポートする
IK とは
IK の機能を使うと、手・足・目線を「ある地点」に合わせることができます。アニメーションやポーズが既に設定されている時でも、IK による体の動きで上書きし、アニメーションやポーズにバリエーションを加えることができます。
参考資料
- IK - Unity マニュアル
- Unity ゲーム プログラミング・バイブル - 02:3D RUN&射撃ゲーム
(※) 01 ~ 03 で 3D キャラクター アニメーションを扱っています
IK の基本
まずは IK でどんなことができるのかを見ていきましょう。
解説動画
学習手順
- IK の効果を確認する
- アニメーションを変えてみる
- Animator Controller のステートに設定された Motion を変えて、変えたモーションでも IK が有効になっていることを確かめる
- IK ターゲットを銃に変更してみる
- 自分の好きなモデルに対して同じ IK を設定してみる
- Animator Controller の IK Pass を有効にすることを忘れないように
IK のサンプル
実際のゲームで IK がどのように使われているか、一つの例を見てみましょう。この例では「ブロックを押す時に手を前に出して押す」ということをやっています。
解説動画
学習手順
- IK の効果を確認する
- 自分の好きなモデルに対して同じ IK を設定してみる
- Animator Controller の IK Pass を有効にすることを忘れないように
- モデルに銃を持たせて歩き回らせてみる
Humanoid ではない場合
今回の方法はモデルの Animation Type が Humanoid の場合にしか使えませんが、Animation Type が Generic の場合は Animation Rigging パッケージを使うことで IK の機能を使うことができます。