Gashin
(Gashin)
1
BP上でForwardの向きを変更する方法を教えて頂きたいです。
以下詳細です:
特定区間(Trigger Box内)に入った時「Set target view with Blend」を使用して、レベル内に配置されたカメラに視点を切り替えることで、TPSビューから横スクロールビューに切り替えるという実装をしています。
この時、奥行きの移動は制限したいので、Add Mapping Contextで前進後退しかできないマッピングに切り替えています。
このような実装の場合、左右移動ではなく前進でTriggerBoxに進入すると、意図通りに前進、で右に移動してくれてステージを進めることができるのですが、左右移動でTriggerBoxに進入した場合は、前進後退は奥行きへの移動になるので進めなくなってしまいます。
恐らくForwardの向きを変えることができればこういった不都合を解決できると思うので、教えて頂きたい次第です。
どうぞよろしくお願いいたします。
T_Sumisaki
(T_Sumisaki)
2
Forwardの向きを変えることはできませんが、AddMovementInputのDirectionの計算方法を変えることで解決可能です
デフォルトのThirdPersonTemplateを使っている場合、ControlRotationからForwardVectorを取り、AddMovementInputのDirectionを決めていますが
この部分を横スクロール時に、ViewTargetとしているCameraのWorldRotationを基準にするよう変更すればよいです
Cameraから見て右方向が進行方向なら、GetWorldRotationからのGetRightVector、で良いかと
1 Like
Gashin
(Gashin)
3
教えていただきありがとうございます!3rdPersonキャラのBPからレベル内のカメラをGetする方法がまだわからないですが、とりあえずGetせずに値を直接入力してDirectionの計算方法を変えたら意図通りの挙動になりました。
ただこれだと汎用性がないので(横スクロール用の床がワールドに対して斜めになったりしたら対応できない)、レベル内のカメラをGetする方法を探したいと思います。
Gashin
(Gashin)
4
Get Actor Of Classを使用してカメラアクタをGetでき、助言いただいた内容で実装できました。
ただ、右から左に進むパターンと、左から右に進むパターンの両方に対応しないといけないことに気づき、次はそれについて考えようと思います。
Gashin
(Gashin)
5
右から左に進むパターンと、左から右に進むパターンの両方に対応しないといけないことに気づき、次はそれについて考えようと思います。
別のTriggerBoxで左側から進入したかどうかを判定し、それによって左→右用のキーマップにするか右→左用のキーマップにするか分岐するように実装することで、こちらの件も解決できました。
1 Like