はじめに
概要
当記事では VR でカメラの高さ(HMD の高さ)に合わせてキャラクターを自動的に屈伸させる方法を解説します。

前提条件
- キャラクターの Skeletal Mesh や Skeleton 等を既にインポートしている事
- Pawn か Character のブループリントを既に作成してある事
テスト環境
- UE 5.4.4(ランチャー版)
- Meta Quest 3S
手順
IK Rig の作成
手順1
コンテンツドロワー内で右クリックして「Animation > Retargeting > IK Rig」を選択し、IK Rig を作成する。

手順2
作成した IK Rig をダブルクリックして開き、「Details > Preview Mesh > Preview Skeletal Mesh」に対象のキャラクターの Skeletal Mesh をアサインする。

手順3
「Solver Stack > Add New Solver > Set Transform」を選択する。
手順4
作成した Set Transform の Solver を選択している状態で「Hierarchy」から腰のボーンを選択して右クリックし、「New IK Goal」を押す。


手順5
「Solver Stack > Add New Solver > Limb IK」を選択する。

手順6
作成した Limb IK の Solver を選択している状態で「Hierarchy」から右足のつま先のボーンを選択して右クリックし、「New IK Goal」を押す。


手順7
作成した Limb IK の Solver を選択している状態で「Hierarchy」から右足の付け根のボーンを選択して右クリックし、「Set Root Bone on Selected Solver」を押す。


手順8
同様にして Limb IK の Solver の作成と IK Goal の作成、ルートボーンの設定を左足でも行う。

手順9
腰の IK Goal を選択して「Details > Exposure > Expose Position」にチェックを入れ、アニメーションブループリントから IK Goal の座標を変更できるようにする。


手順10
腰の IK Goal を動かした際にしっかり足が曲がる事を確認する。

アニメーションブループリントの作成
手順11
コンテンツドロワー内で右クリックして「Animation > Animation Blueprint」を選択し、適切な Skeleton を選択してアニメーションブループリントを作成する。


手順12
作成したアニメーションブループリントをダブルクリックして開き、AnimGraph 内で右クリックして「ik」等と検索して IK Rig ノードを追加する。

手順13
追加した IK Rig ノードを選択して「Details > Rig Definition > Rig Definition Asset」に先ほど作成した IK Rig をアサインする。

手順14
IK Rig の Goal Position を設定する処理を追加してコンパイルする。

アニメーションブループリントの適用とデバッグ
手順15
Pawn や Character のブループリントを開き、Skeletal Mesh Component を選択して「Details > Animation > Anim Class」に先ほど作成したアニメーションブループリントをアサインしてコンパイルする。

手順16
VR Preview で動作確認してカメラの高さに応じて腰が下がる事を確認する。
