プレイヤーの回転について

FPS視点での操作でCharacterを継承して作成したプレイヤーの回転をAddControllerYaw(Pitch)Inputで行いました。

また、移動はAddMovementInputを使用しています。

そしてゲーム内でプレイヤーの向きを強制的に変えたい状況が起こったので、プレイヤーにSetActorRotationノードを追加して向きを変えようとしたり、PlayerControllerの回転を変更させたりしましたが、できませんでした。


Use Controller Rotation Yawのチェックを外すと出来るとどこかの記事でみかけたので試してみると、カメラの向いている方向に移動できなくなりました。

C++のクラスを作成していろいろ試してみましたが上手くいきません。


どなたかAddControllerYaw(Pitch)Inputを使用した状態で強制的に回転させる方法を教えてください。

よろしくお願いします。

tickノード

を使えばできますよ

回転に限った話ではないですが、

Actorが持っている値とControllerが持っている値は異なります。

今回のようにFirst Person Templateを使用した場合、

Controllerの値を変更すると望んだ挙動になるかと思います。


今回のように

Set Actor Rotationと同じような挙動にしたいのであれば、

下記の画像のようなノードをFirst Person Character BPの中に追加してください。
241090-

他の方が答えているように、

Add Controller Yaw Inputでも回転は可能ですが、

瞬間的な回転かつ現在の回転から加算をする回転の場合は

Add Controller Yaw Inputに直接値を渡した方が扱いやすいかと思います。

241092-キャフチャ.png

コントローラーの回転をセットするノードがあったんですね!
実行ピンからだと出てこなかったので気が付きませんでした。

ありがとうございました。