【初心者入門】FinalIK(VRIK)を使って3Dキャラクターを自由自在に動かすには?

Unityの大人気アセット、FinalIK。FinalIKを使うことでUnityで自由にキャラクターを動かせるようになります。Oculus Rift や HTC Vive などのVR機器を使ってキャラクターを動かすこともできるので、多くのバーチャルYouTuber(VTuber)・バーチャルライバーさん達が使っているアセットです。

Final-IKのダウンロードは、Unity Asset Store からできます。年に数回半額セールなどもやっているので、セールのタイミングで購入するとかなりお得に手に入ります。

Unityアセットストアで購入後、アセットストアページから「インポート」ボタンを押すことで、Unityプロジェクトにインストールができます。

Final IK がどんなものかとりあえず使ってみたい場合は、以下の4ステップが簡単です。

  1. キャラクターモデルに、Full Body Biped IK か、 VR IK コンポーネントをアタッチする。(※Final IKがインストールされていないと使えません)
  2. IK を有効にしたい部位の Position WeightRotation Weight を 1 にする。
  3. 再生ボタンを押す。
  4. Full Body Biped IKを組み込んだ場合、シーンでキャラクターを選択すると、IK を有効にした部位に青い立方体が表示されるので、そのオブジェクトを動かすと、オブジェクトを起点に体全体が動きます。
  1. Full Body Biped IK
  2. VRIK
  3. FABRIK

など多数。

OculusRift の ヘッドトラッキングと、Touch コントローラで手の位置を取得し、その情報を使って、VRIKでキャラクターの各部位を動かしている様子。OculusRift + VRIKで3Dモデルキャラクターを動かすには、Unity+OculusRiftでMMDキャラクター(初音ミク)の頭・上半身・手・全身を動かす方法を参考に。

VRIKコンポーネントを、キャラクターモデルにアタッチすれば、準備は完了。

VRIKコンポーネントをアタッチし再生すると、足が開いた状態になることがある。この修正方法は、Locomotion の FootDistance のパラメータを調整する。標準では0.3だが、これを0にすると、足の開く幅が狭まる。また、Locomotion の Weight の値を小さくしたり、 Solver の IK Position Weight を小さくしたりすることでも、調整ができる。

Final IK アセット内にある、Rotation Limit Hinge コンポーネントを、肘のボーンにアタッチして調整できる。Rotation Limit Hinge に関する公式サイトの解説は、 Rotation Limitsを参考に。

VRIKで思いどおりにキャラクターを動かすには、以下の順序でパラメータ調整をしていくとよい。

  1. Solver の IK Position Weight は全身の挙動に影響を与える。
  2. 各部位の Position Weight, Rotation Weightは、対象部位を動かしたときに影響を与える。
  3. Locomotion の Weight は、全身の物理演算に影響を与える。

メッセージ:
H P T T C