LoginSignup
0
0

【UE4】 アクターの回転を考慮して特定のアクターから別のアクターへの方向ベクトルを計算する方法

Posted at

はじめに

アクターの回転を考慮して特定のアクターから別のアクターへの方向ベクトルを計算する方法について解説します。

Blueprintによる具体的な実装

1. アクターの位置を取得する

  1. 任意のイベントで2つのアクターのワールド位置を取得します。
GetActorLocation(Target: Actor1)  // 出発点のアクター
GetActorLocation(Target: Actor2)  // 目的地のアクター

2. アクターのローカル空間に変換する

  1. Actor2のワールド位置をActor1のローカル空間に変換します。
GetActorTransform(Target: Actor1);
InverseTransformLocation(Transform: Actor1 Transform, Location: Actor2 Location)

3. 方向ベクトルを計算する

  1. 変換されたローカル空間の位置から方向ベクトルを計算します。
Vector Subtract (InversedTransform - Actor1 Location)

まとめ

InverseTransformLocationでActor2をActor1のローカル空間に変換することで、Actor1の回転などの影響を受けずに特定のアクターから別のアクターへの方向ベクトルを計算することができます。また、ローカル空間に持っていくことでローカルのForwardベクトルを固定することができるので、forwardベクトルが(1,0,0)の場合、奥行きX軸の情報を削って、奥行きなしのVector(Y, Z)なども取得することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0