🎮
【UE5】RootComponent以外のコリジョンを使う(回転したCapsuleComponentをコリジョンにしたい)
横向きのカプセルのコリジョンを持つPawnを作成しようとしてちょっと詰まったのでまとめます。
問題
普通にRootComponentにCapsuleCollisionを持たせると回転させることができません。
そこで今度はSceneComponentをRootにして、子階層にCapsuleComponentを持たせると、例えば重力を働かせたいときにCapsuleComponentの Simulate Physics をオンにすると、コンポーネントだけが落下してPawnの座標が更新されません。
Actorの位置にSphereをデバッグ表示しています。Actorは位置が変わらずコンポーネントだけ落下しています。
解決策
こちらを参考にしました。
まずダミーとなる適当なコリジョンをRootComponentにしてできるだけ小さくします。
- Add > BoxCollision でコリジョン作成
- BoxCollisionをRootComponentにドラッグしてRootにする
- サイズを小さい値にする(例 (1,1,1))
- Simulate Physics をオンにする
そしてその子階層に実際に使う CapsuleCollisionを作成します。
回転やスケールも自由に設定します。
今度はActorの位置がコリジョンに追従しています。
まとめ
UEにおけるコリジョンと親子階層のまとめです
- RootComponentの位置がActorの位置になる
- Simulate Physics はRootComponentに設定する
- 複数のコリジョンを使う時は、RootComponentに重力設定をして、その他のコリジョンは子階層に追加していけばOK
Discussion