視点の高さ変更を実装する

Unreal Engine 5のVRテンプレートでは、テレポート移動が標準設定になっています。

ですが、他の移動方法を設定した後は、テレポート移動が必要なくなる可能性が高いです。

そこで、入力アクション「IA_Teleport」を利用し、視点の高さ変更を行うようにする方法を示します。

実装の考え方

デフォルトのIA_Teleportは、右サムスティックのY軸のAxis 1D (float)を移動処理に紐づけています。

このfloatをそのまま利用して、VROriginのZ座標を変更するようにします。

編集する場所

BP_XRPawnのイベントグラフのみを編集します。

作成する変数

新しく3つ変数を作成します。

  • Speed
    Float型の変数。
    Z座標の変更スピードを設定する。
  • VROriginRelativeLocationDefault
    Vector型の変数。
    CapsuleComponentとの相対座標のデフォルトを設定する。
  • VROriginAdjusted
    Boolean型の変数。
    デフォルトはFalseにしておき、
    視点の調節が終わった際にTrueになるようノードを組む。

動作の実装

IA_Teleportのノードを下記のように変更します。

動作

  • トリガー中は、調整可能状態の場合、ActionValue(float)×Speedの分だけVROriginのCapsuleComponentとの相対座標を変更する。
  • VROriginのCapsuleComponentとのZ軸の相対座標の絶対値が200を超えた場合、
    VROriginのCapsuleComponentとの相対座標をデフォルトに戻す。
    そこで一旦調整不可能状態にする。
  • 操作が完了したら、調整可能状態に戻す。

TargetはVROrigin

視点の高さを変更する対象はVROriginにしておきます。

VROriginはCameraを含むコンポーネントのため、
ここを動かすことで視点の高さ変更が可能になります。

VROriginでなくてもいいかもしれないです。

まとめ

UE5のVRテンプレートはそのままでも便利ですが、
用途によっては移動方法を変更することで操作性が向上します。

今回は、IA_Teleportの入力でVROriginの高さを変更するよう、
BP_XRPawnのブループリントを編集しました。

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