わかゲームスタジオ

ゲーム制作初心者専門学生の備忘録

UE4 ラグドール化してから元に戻す方法

かなり前に作成したゲームで、ダメージ表現にラグドール化を使い一定時間後に復帰する仕様を実現しました。

その時に少し悩んだことがあったので備忘録として残しておきます。

使用したゲームはこちら↓

wakagamestudio.hatenablog.jp

 

↓今回できること↓

 

ではやっていきます。

①通常通りラグドール化、復帰を書く

f:id:WakaiGames:20201205023539p:plain

すると

復帰した時に軸が曲がっていたりCapsuleComponentがずれていたりと不具合が多いです。

これを解消していきます。

②CapsuleComponentの位置を調整する

f:id:WakaiGames:20201205021803p:plain

  • Bool変数を追加し、現在ラグドール化しているかを保存します。
  • Tickでラグドール化中ならCapsuleComponentの位置をpelvisの位置に上書きし続けます。

こうすることで、CapsuleComponentがメッシュに付随するようになりました。

③復帰後のメッシュのずれを解消する

f:id:WakaiGames:20201205024452p:plain

  • ラグドール時、メッシュのRotataionとLocationをCapsuleComponentの値から代入し続けます。

この方法はきっと非効率なので、もっと良い方法を知っている方がいれば教えてください。

これでラグドール化してから非ラグドールに戻っても問題なく動作するようになりました。

以上です。

ラグドール化から戻ってもメッシュがCapsuleComponentに付随しない原因はわからず。何か知っている方がいらっしゃれば教えていただけると幸いです。