【UE4】銃を持った時の左手の位置調整
UE4で、プレイヤーや敵などに銃を持たせるとき、たいていは右手に銃をアタッチしているかと思います。
片手で持って撃つモーションだったらそれで終わりでいいのですが、両手で構えるタイプのモーションでやりたい場合、左手も銃の適切な位置に合わせないと不自然な見た目になってしまいます。
既に先人たちがたくさん資料を書いていますが、HandIKを使うことで対応ができます。
しかし、これだけだとなかなか左手が意図通りの位置に行きません。
そこで、
武器のスケルトンに「左手のアタッチ先」(名前は任意のものでok)のソケットを追加
AnimationBPにて、キャラクターの武器のソケット位置を取得。(GetSocketTransformノード)
Transformを分解して、Locationを変数化。
AnimGraphで、TwoBoneIKノードを作成。
プロパティで、IKBoneに左手にあたるボーン名を指定。
エフェクタはWorldSpace
先ほど変数化したLocationを、TwoBoneIKノードのEffectorLocationに繋ぐ。
こんな感じ。
ロケランはモーションも違うんですが、上のライフル系の武器は同じモーションで左手位置になるソケットがそれぞれ違う位置になってます。
今まで苦労してたのが嘘みたいに簡単にできました。