UE4でカメラが向いている方を前方ベクトルにした移動処理について

Actorの前後左右上下の座標キーボード移動のサンプルBP(※添付画像)を
作ってみたのですが、現状の処理だとカメラ(視点)が後ろ(反対)を向いた時に前移動設定キーを押すと
カメラの前方ベクトルは考慮されていない為、見た目は後ろに進みます。

なので題名の通りカメラが向いている方を前方ベクトルにして移動する処理を追加しようと
試行錯誤したのですが上手くいかず苦慮しています。

調べたところFind Look at RotationとかGet Actor Forward Vectorを使えば
実装できそうと感じているのですがBPの組み方が分からず詰まっている状態です。

ご教授の程、宜しくお願い致します。

<環境>
Windows10
UE4 Ver 4.21

<画像の説明>
Axis MoveForward:前後(X軸)移動
Axis MoveUD:上下(Z軸)移動
Axis MoveLR:左右(Y軸)移動

1 Like

ThirdPersonTemplateまたはFirstPersonTemplateの各CharacterのBPを参照してください

添付画像はThirdPersonTemplateにある、ThirdPersonCharacterの該当部分のBPです
ControlRotationがCameraの向きになります
このTemplateでは、地面に対して水平に移動するため、PitchとRollを排除しています

なお、対象がPawnではない場合は、ControlRotationを直接取ることができないので、GetPlayerControllerでIDを指定してControllerを特定し、そのControlRotationを取る必要があります

1 Like

ご返答ありがとうございます。

教えて頂いた2枚目のGetPlayerControllerを使用する方法で
目的の挙動を実装する事が出来ました。

1点質問があるのですが今回のケースでの[絶対値で動かす]と[差分で動かす]の違いは
絶対値で動かす:Actorの座標を動かす

差分で動かす:カメラのVectorを動かす
で合っているでしょうか?

違います

絶対値で動かす方は、移動先の座標を直接指定します

差分で動かす方は、移動する距離を指定します

全く違いました。。

教えて頂きありがとうありがとうございます。