【UE】Mover で移動している Pawn がガクガクしたときのメモ

Unreal Engine

はじめに

Character Movement Component の後継システムである「Mover」を使用して移動させている Pawn が添付動画のようにガクガクしてしまったので、そのときの対象法をメモしておきます。

この記事では UE 5.8.0(ランチャー版)を使用しています。

再現手順と対処法

再現手順

  1. Mover プラグインを有効化してエディタを再起動する
  2. Pawn を親クラスとするブループリントクラスを作成する
  3. CapsuleCollisionComponent を追加してルートコンポーネントにする
  4. CapsuleCollisionComponent の Capsule Half Height や Capsule Radius を調整する
  5. CapsuleCollisionComponent の Collision Preset を「Pawn」にする
  6. SkeletalMeshComponent を追加して CapsuleCollisionComponent にアタッチする
  7. SkeletalMeshComponent の Skeletal Mesh Asset に SKM_Manny_Simple などをアサインしたり、Yaw を -90° 回転させたり、Capsule Half Height の分だけ下げたりする
  8. SpringArmComponent を追加して CapsuleCollisionComponent にアタッチする
  9. CameraComponent を追加して SpringArmComponent にアタッチする
  10. DefaultCharacterMoverComponent を追加する
  11. 「Class Settings > Implemented Interfaces」から MoverInputProducerInterface をそのブループリントクラスに実装する
  12. [Mover]Minimal implements to move forward in blueprint」という投稿にあるノードを ProduceInput() にコピペする

ここまでで準備完了です。
以下の画像のような状態になっていればOKです。

最後に適当なレベルの GameMode にその Pawn をアサインして PIE すると見事にガクガクします。

    対処法

    対処法を非常にシンプルです。
    SpringArmComponent を CapsuleCollisionComponent(ルートコンポーネント)ではなく、SkeletalMeshComponent にアタッチします。

    この状態で PIE するとガクガクすることなく、移動してくれるようになりました。

    ちなみに Mover Examples で使用されている BaseAnimatedMannyPawn という Pawn の SpringArmComponent は、初めは SkeletalMeshComponent にアタッチされていますが、これをルートコンポーネントにアタッチすると以下のようにガクガクするようになります。

    まだソースを追えていないので正確な原因はわかりませんが、Mover では SpringArmComponent と CameraComponent はルートコンポーネントに直接アタッチするのではなく、Mover Examples の Pawn のように SkeletalMeshComponent にアタッチした方がいいのかもしれません…

    最後に

    参考

    お問い合わせ

      タイトルとURLをコピーしました