PlayerPawnの動的なRotationの設定方法

PlayerPawnとしてPlayerControllerに所有されているアクタにゲーム中で動的にSetActorRotation等でRotationの値を設定しても、受け付けてくれなくて困ったことがあります。理由が分からず「あーでもない、こーでもない」と多くの時間を使ってしまいましたが、分かってしまえばどうってことは無かったです。

下の画像は、PlayerPawnのブループリントから、直接回転値を設定しようとした様子です。一見これで良さそうですが、実際にテストプレイしてみると回転値が適用されないのが分かります。

←​デフォルトで画像の方向を向いていたが

 1を押しても回転しない

解決法①

クラスのデフォルト設定から、PawnのUseControllerRotationYawを見るとチェックが入っているので、このチェックを外します。

すると、回転値が適用されました。しかしこの方法だと、PlayerControllerからの回転値を受け付けなくなってしまうので、AddControllerYawInput等のノードでの回転値の操作が出来なくなってしまいます。

プレイヤーキャラクターとして操作したい場合はオススメしません。

解決法②

別の方法として、状況に合わせた表示にチェックを入れた状態で、GetPlayerControllerからノードを引っ張ると候補に出てくるSetControlRotationノードを使用すると良いです。PlayerControllerが管理する回転値を直接設定できます。

© 2019 Kazuki Shiroma