LoginSignup
3
3

More than 1 year has passed since last update.

IK Rigを使って接地IKを実装してみました

Posted at

UE5にてアニメーション回りの機能が充実して、IK Rigもその内の1つです。
オフィシャルドキュメントが用意されたとはいえ、EpicからはIK Rigをアニメーションのリターゲット用途についてチュートリアルを出しましたが、IK Rigを使ってキャラクターのIKの実装については触れてなかったのでIKリグを使ってキャラクターの足接地用IKを実装してみました。

実装環境

UE 5.02を使用して実装を行いました。
ThirdPersonテンプレートで提供されたBP_ThirdPersonCharacterを対象にIKを実装しました。

デフォルトのIKの無効化

UE5のThirdPersonテンプレートではデフォルトでキャラクターの足接地IKが実装されておりますので、IK Rigの実装を行う前にはこのデフォルトのIKを外す必要があります。

デフォルトのIKはプロジェクトフォルダーの「ABP_Manny」のアニメーションBPのアニムグラフで実装されております。
default ik.jpg
こちらの画像の黄色枠で囲まれた部分がIKを行う処理です。
IKの処理を外すとこうなります:
no ik.jpg

これで実装の準備を整いました。

# IK Rigの実装
公式ドキュメントを参考して、接地IK用のIK Rigを作成しました。
ik rig setup.jpg
尻の位置補正を行うための「トランスフォームを設定」ソルバーと足の位置を補正する「手足IK」ソルバー2個で構成されます。
まだソルバーの挙動をアニメーションBP側で制御できるようにソルバーのIK目標のExpose Positionのチェックを入れます。
expose position.jpg
次はアニメーションBPの方にIK Rig用の処理を実装していきます。
実装はHistoriaさんのチュートリアルを参考にして足の補正位置を計算します。
UE4のマネキンと違って、UE5のマネキンのスケルトンの中には最初から足IK用の補助ボーンが入っていますのでそちらを使用してライントレースの位置を決めていきます。
event graph.jpg
Foot Trace関数の中身:
foot trace.jpg
AnimGraph:
anim graph.jpg
IK Rigノードの各Goalの設定は「Manual Input」にして、Position Spaceの設定は「Additive」にしています。
実装した結果はこちら:
foot ik.jpg

問題点

IK Rigの実装をABP_Mannyで実装してもデフォルトのBP‗ThirdPersonCharacterにIKを適用できなかった。
色々探した結果、どうやらIK Rigノードは継承されたアニメーションBPに正しく適用されないようです。
animation BPs.jpg
左側がIK Rigを実装したアニメーションBP、右側がそれを継承したアニメーションBPです。BP‗ThirdPersonCharacterはデフォルトで右側のアニメーションBPを設定している。ただし右側のBPは自分で一切ロジックを持っていなくて、AnimGraphで再生されるアニメーションをオーバーライドするためだけのBPのため、エンジン側の不具合の可能性が高いです。
現状はキャラクターのアニメーションBPを「ABP_Manny」に設定したら正しく動作してくれますのでそれで回避しています。

感想

IK Rigを使用してゲーム内のIKを実装してみましたが、コントロールリグで実装すると比べて計算処理をIKリグの内部で完結できないのが不便と感じました。
まだIK Rigはスケルトンを参照しているため、コントロールリグとは違って違うスケルトンの間での流用が難しいので、ゲーム内IKを実装する場合はスケルトンの構成によって複数のIK Rigを作成して複数のアニメーションBPにそれぞれ実装する必要が出てきます。
まだ前述した継承したアニメーションBPでの挙動の問題も含めて、採用できないケースもあると思います。

将来は期待できるかもしれませんが、現状でゲーム内のIKを実装するならコントロールリグの方がおすすめです。

参考資料

公式ドキュメント:https://docs.unrealengine.com/5.0/ja/unreal-engine-ik-rig/
HistoriaさんのIK実装チュートリアル:
https://historia.co.jp/archives/3421/
https://historia.co.jp/archives/3434/
https://historia.co.jp/archives/3518/

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3