BLOGブログ

2026.04.15UEUE5UE/ 初心者向けUE/ Blueprint

[UE5] BlueprintのVectorノードまとめ その1 【基本編】

執筆バージョン: Unreal Engine 5.7

Blueprint上で使えるVector系のノードと使い方・注意点・サンプルなどをまとめます。項目が多い為、以下分類に従って記事を全3回に分割します。本稿は第1回にあたります。

 

第1回 : ベクトル基本編 (本稿)

  1. ベクトルの作成と分解(20項目)
  2. 長さと距離(13項目)
  3. 正規化とリサイズ(11項目)
  4. ベクトル演算と比較(19項目)

第2回 : ベクトル実践編 (※後日公開予定)

  1. 補間と加算(4項目)
  2. 投影と反射(8項目)
  3. 方向・回転・角度変換(17項目)

第3回 : ベクトル応用編 (※後日公開予定)

  1. 応用・その他(7項目)

 

公式ドキュメント Unreal Engine 5 Documentation Vector

 

a. ベクトルの作成と分解 ▲ 目次に戻る

ノード名

説明

基本の作成・分解ノード basic

Make Vector X, Y, Zの値からベクトルを作成する。
Break Vector ベクトルをX, Y, Zの個別の値に分解する。

設定・代入ノード set / assign

Vector Set ベクトルのX, Y, Z値を直接設定する。
Vector Assign ベクトルを既存の別のベクトル変数に代入する。

定数ベクトル constant

Vector Zero ゼロベクトル (0.0, 0.0, 0.0) を返す。
Vector One 全成分が1のベクトル (1.0, 1.0, 1.0) を返す。
Vector Forward Unrealの前方向ベクトル (1.0, 0.0, 0.0) を返す。
Vector Backward Unrealの後方向ベクトル (-1.0, 0.0, 0.0) を返す。
Vector Up Unrealの上方向ベクトル (0.0, 0.0, 1.0) を返す。
Vector Down Unrealの下方向ベクトル (0.0, 0.0, -1.0) を返す。
Vector Left Unrealの左方向ベクトル (0.0, -1.0, 0.0) を返す。
Vector Right Unrealの右方向ベクトル (0.0, 1.0, 0.0) を返す。

ネットワーク用ノード network

Make Vector Net Quantize ネットワーク用に帯域節約を目的とした、精度を落としたベクトルを作成する。 (整数単位)
Make Vector Net Quantize 10 ネットワーク用に精度を落としたベクトルを作成する。(0.1単位)
Make Vector Net Quantize 100 ネットワーク用に精度を落としたベクトルを作成する。(0.01単位)
Make Vector Net Quantize Normal ネットワーク用に精度を落とした、方向を示すベクトルを作成する(X, Y, Z各値が-1.0~1.0の値に収まる)
Break Vector Net Quantize 量子化したベクトルをX, Y, Zに分解する。
Break Vector Net Quantize 10 0.1単位量子化ベクトルを分解する。
Break Vector Net Quantize 100 0.01単位量子化ベクトルを分解する。
Break Vector Net Quantize Normal 法線用量子化ベクトルを分解する。

 

・Make Vector / Break Vector ▲ 表に戻る

X, Y, Zの値からベクトルを作成する。 / ベクトルをX, Y, Zの個別の値に分解する。

Tips: VectorのPinにマウスカーソルを合わせ、Split Struct Pinをクリックするとこのノードを用いずともX/Y/Zに分解できます。

 

 

・Vector Set ▲ 表に戻る

ベクトルのX, Y, Z値を直接設定する。

 

 

・Vector Assign ▲ 表に戻る

ベクトルを既存の別のベクトル変数に代入する。Aの値がBの値で書き換えられる。Bの値は不変。

用途: ベクトルのコピー。※ BPではSetノードで済むので、あまり使わないかも?

 

 

・Vector Zero / One / Forward / Backward / Up / Down / Left / Right ▲ 表に戻る

よく使う定数ベクトルを返すノード。出力値は表を参考のこと。

ノード名 用途
Vector Zero (0.0, 0.0, 0.0) 初期化、リセット
Vector One (1.0, 1.0, 1.0) スケール初期値
Vector Forward (1.0, 0.0, 0.0) 前方向(X軸正)
Vector Backward (-1.0, 0.0, 0.0) 後方向(X軸負)
Vector Up (0.0, 0.0, 1.0) 上方向(Z軸正)
Vector Down (0.0, 0.0, -1.0) 下方向(Z軸負)
Vector Left (0.0, -1.0, 0.0) 左方向(Y軸負)
Vector Right (0.0, 1.0, 0.0) 右方向(Y軸正)

 

 

・Make Vector Net Quantize / Break Vector Net Quantize ▲ 表に戻る

ネットワーク用に帯域節約を目的とした、精度を落としたベクトルを作成する。※レプリケーション専用

送信側 / 受信側

出力結果

精度・ビット数・有効範囲一覧 (※表はNetSerialization.hの情報を基に作成)

ノード名 精度 ビット数 有効範囲
Net Quantize 整数単位 最大20bit ±1,048,576
Net Quantize 10 0.1単位 最大24bit ±1,677,721.6
Net Quantize 100 0.01単位 最大30bit ±10,737,418.24
Net Quantize Normal 約0.00003単位※1  16bit固定 -1〜+1

※1 : ソースコードに明確なコメントはなし。ビット数&有効範囲の情報からの計算値。

注意点:NetQuantizeNormalに入力したベクトルは自動で正規化処理されるわけではなく、単に各成分の値が-1.0~+1.0の範囲(精度16bit)で量子化される。

 

 

b. 長さと距離 ▲ 目次に戻る

ノード名

説明

長さ取得ノード length

Vector Length ベクトルの長さを返す。
Vector Length Squared ベクトルの長さの2乗を返す。
Vector Length XY XY平面でのベクトルの長さ(Z成分を無視)を返す。
Vector Length XY Squared XY平面でのベクトルの長さ(Z成分を無視)の2乗を返す。

距離計算ノード distance

Distance (Vector) 2つのベクトルの2点間の距離を返す。
Distance Squared (Vector) 2つのベクトルの2点間の距離の2乗を返す。
Distance2D (Vector) 2つのベクトルの2点間のXY平面上での距離(Zを無視)を返す。
Distance2D Squared (Vector) 2つのベクトルの2点間のXY平面上での距離(Zを無視)の2乗を返す。

判定ノード check

Vector Is Zero ベクトルの全成分が完全にゼロかどうかを判定する。
Vector Is Nearly Zero ベクトルが指定した許容誤差内でゼロに近いかを判定する。
Is Normal (Vector) ベクトルが正規化(長さが1)されているかを判定する。
Is Unit (Vector) ベクトルが指定した許容誤差内で単位長かを判定する。
Is Uniform (Vector) X, Y, Zがほぼ等しいかを判定する。

 

・Vector Length ▲ 表に戻る

ベクトルの長さを返す。

用途: 速度(ベクトル)から速さを取得。移動距離の計算など。

 

 

・Vector Length Squared ▲ 表に戻る

ベクトルの長さの2乗を返す。

パフォーマンスTip: 距離の比較だけなら Squared 版を使う方が高速。(平方根の計算省略)

 

 

・Vector Length XY ▲ 表に戻る

XY平面でのベクトルの長さ(Z成分を無視)を返す。

用途: XY平面上でのアクターの速さを取得など。

 

 

・Vector Length XY Squared ▲ 表に戻る

XY平面でのベクトルの長さ(Z成分を無視)の2乗を返す。

パフォーマンスTip: 距離の比較だけなら Squared 版を使う方が高速。(平方根の計算省略)

 

 

・Distance (Vector) ▲ 表に戻る

2つのベクトルの2点間の距離を返す。

   

図のV1, V2先端を結ぶ線分の長さに相当する。

用途: アクター間の3D距離計算など。

 

 

・Distance Squared (Vector) ▲ 表に戻る

2つのベクトルの2点間の距離の2乗を返す。

パフォーマンスTip: 距離の比較だけなら Squared 版を使う方が高速。(平方根の計算省略)

 

 

・Distance2D (Vector) ▲ 表に戻る

2点間のワールドXY平面での2D距離(Z成分を無視)。

   

図のV1, V2のZ成分を無視したベクトルの先端を結ぶ線分(青)の長さに相当する。

 

 

・Distance2D Squared (Vector) ▲ 表に戻る

2つのベクトルの2点間のXY平面上での距離(Zを無視)の2乗を返す。

パフォーマンスTip: 距離の比較だけなら Squared 版を使う方が高速。(平方根の計算省略)

 

 

・Vector Is Zero ▲ 表に戻る

ベクトルの全成分が完全にゼロかどうかを判定する。

 

 

・Vector Is Nearly Zero ▲ 表に戻る

ベクトルが指定した許容誤差内でゼロに近いかを判定する。

注意: ベクトルの長さではなく各成分ごとに判定(|X|, |Y|, |Z| が全てTolerance以下ならtrue)

 

 

・Is Normal (Vector) ▲ 表に戻る

ベクトルが正規化(長さが1)されているかを判定する。許容誤差値は固定。

|1 – |A|²| < 固定許容誤差 [固定許容誤差 = #define UE_THRESH_VECTOR_NORMALIZED (0.01f)]

 

 

・Is Unit (Vector) ▲ 表に戻る

ベクトルが指定した許容誤差内で単位長かを判定する。

|1 – |A|²| < Squared Length Tolerance

 

 

・Is Uniform (Vector) ▲ 表に戻る

X, Y, Zがほぼ等しいかを判定する。

ベクトルA: |X – Y| ≤ Tolerance かつ |X – Z| ≤ Tolerance かつ |Y – Z| ≤ Tolerance

 

 

c. 正規化とリサイズ ▲ 目次に戻る

ノード名

説明

正規化ノード normalize

Normalize ベクトルを正規化したベクトルを返す。
Normalize 2D (Vector) ベクトルをXY平面上で正規化。Zは0に設定される。
Normalize In Place (Vector) 入力ベクトルを直接正規化。
Normal Unsafe (Vector) ベクトルを正規化する。(ゼロ長判定なし)

サイズ制限ノード clamp

Clamp Vector Size 長さをMinとMaxの間にクランプしたベクトルを返す。
Vector Clamp Size 2D 2D(XY平面)でベクトルの長さをMinとMaxの間にクランプしたベクトルを返す。Z値は変更されない。
Vector Clamp Size Max 長さをMaxSize以下にクランプしたベクトルを返す。
Vector Clamp Size Max 2D 2D(XY平面)でベクトルの長さをMaxSize以下に制限したベクトルを返す。Z値は変更されない。

範囲制限ノード bound / snap

Vector Bounded to Box ボックス(直方体)内にクランプされたベクトルを返す。
Vector Bounded to Cube キューブ(立方体)内にクランプされたベクトルを返す。
Vector Snapped to Grid グリッドにスナップされたベクトルを返す。

 

・Normalize ▲ 表に戻る

ベクトルを正規化したベクトルを返す。

注意: ベクトルAの長さの2乗値がToleranceより小さい場合はゼロベクトルを返す。

用途: あるアクターAから見たアクターBの3D方向を計算する時など

 

 

・Normalize 2D (Vector) ▲ 表に戻る

ベクトルをXY平面上で正規化。Zは0に設定される。

 

 

・Normalize In Place (Vector) ▲ 表に戻る

入力ベクトルを直接正規化する。

 

 

・Normal Unsafe (Vector) ▲ 表に戻る

ベクトルを正規化する。(ゼロ長判定なし、高速だが危険)

用途: パフォーマンス最適化。

注意: ゼロベクトルを渡すとクラッシュに繋がる可能性あり。(ゼロベクトルを渡すとNaNを返す)

 

 

・Clamp Vector Size ▲ 表に戻る

長さをMinとMaxの間にクランプしたベクトルを返す。

用途: 速度制限、移動量の制限など。

注意: 長さを持たないゼロベクトル(または極小)ではクランプ発生なし。ゼロベクトルが返される。

 

 

・Vector Clamp Size 2D ▲ 表に戻る

2D(XY平面)でベクトルの長さをMinとMaxの間にクランプしたベクトルを返す。Z値は変更されない。

用途: 水平方向の速度制限など。

注意: XY成分が長さを持たない(または極小)の場合ではベクトル2D(平面)クランプ発生なし。

 

 

・Vector Clamp Size Max ▲ 表に戻る

長さをMaxSize以下にクランプしたベクトルを返す。

用途: 最高速度の制限など。

 

 

・Vector Clamp Size Max 2D ▲ 表に戻る

2D(XY平面)でベクトルの長さをMaxSize以下に制限したベクトルを返す。Z値は変更されない。

用途: 水平方向の最高速度制限など。

 

 

・Vector Bounded to Box ▲ 表に戻る

ボックス(直方体)内にクランプされたベクトルを返す。

InBoxMin : ボックス左下手前座標を指定(図の緑色の球に相当)

InBoxMax : ボックス右上奥座標を指定(図の黄色の球に相当)

用途: 移動範囲をボックス(直方体)内に制限。

 

 

・Vector Bounded to Cube ▲ 表に戻る

キューブ(立方体)内にクランプされたベクトルを返す。

InRadius : 立方体原点を中心とした立方体の半辺長。各成分(X, Y, Z)が-Radius ~ +Radiusの範囲にクランプされる。

用途: 移動範囲を立方体内に制限

 

 

・Vector Snapped to Grid ▲ 表に戻る

グリッドにスナップされたベクトルを返す。

Grid Size: スナップ間隔。ベクトルの各成分が最も近いグリッドの倍数に丸められる。例えばGrid Size = 100の場合、50未満は0に、50以上150未満は100にスナップされる。

用途: グリッド上にアクターを配置する時など。

 

 

d. ベクトル演算と比較 ▲ 目次に戻る

ノード名

説明

四則演算ノード arithmetic

Add 加算
Subtract 減算
Multiply 乗算
Divide 除算

内積・外積ノード dot / cross

Dot Product 2つのベクトルの内積を計算する。
Cross Product 2つのベクトルの外積を計算する。

成分操作ノード component

Vector Component Min 2つのベクトルの成分ごとの最小値を返す。
Vector Component Max 2つのベクトルの成分ごとの最大値を返す。
Get Min Element ベクトルの成分の最小値を返す。
Get Max Element ベクトルの成分の最大値を返す。
Vector Get Abs 各成分の絶対値を持つベクトルのコピーを返す。
Vector Get Abs Min ベクトルの成分の最小絶対値を返す。
Vector Get Abs Max ベクトルの成分の最大絶対値を返す。

符号・逆数ノード sign / negate

Negate Vector ベクトルの符号を反転したコピーを返す。
Reciprocal (Vector) ゼロ除算を避けながらベクトルの逆数を返す。ゼロ成分はBIG_NUMBERに設定される。
Vector Get Sign Vector 符号のみのベクトルのコピーを返す。各成分は+1、0、-1のいずれかに設定される。

比較・選択ノード compare / select

Equal Exactly (Vector) 他のベクトルと等しいかを判定する。
Not Equal Exactly (Vector) 他のベクトルと等しくないかを判定する。
Select Vector 条件に応じてAまたはBのベクトルを選択する。

 

・Add (加算) ▲ 表に戻る

2つのベクトルを加算する。

また、ベクトルとスカラー値(※内部でベクトル化したもの)を加算する。

用途: 位置の移動、力の合成、速度の加算など

 

 

・Subtract (減算) ▲ 表に戻る

2つのベクトルを減算する。

また、ベクトルとスカラー値(※内部でベクトル化したもの)を減算する。
※ 画像のよう、A + (-B) と考えると分かりやすいかもしれません。

用途: 2点間の方向ベクトル取得など(Target – Self で相手への方向)

 

 

・Multiply ▲ 表に戻る

2つのベクトルを成分ごとに乗算する。

また、ベクトルの各成分にスカラー値を掛ける。

用途: ベクトルの拡大・縮小、速度の調整など

 

 

・Divide(除算) ▲ 表に戻る

2つのベクトルを成分ごとに除算する。

また、ベクトルの各成分をスカラー値で除算する。

用途: 各成分ごとに異なる除算を適用する場合など

注意: 成分が0のベクトルで除算するとNaNやInfになる。

 

 

・Dot Product ▲ 表に戻る

2つのベクトルの内積を計算。

用途例: 前後判定

XY平面上で、アクターAに対してアクターBが正面 / 背面にいるか判定。

  • 結果が正: 同じ方向にいる(90度未満)
  • 結果が負: 背後にいる(90度超)
  • 結果が0: 丁度真横にいる(90度)※ サンプルでは正面に含める

用途: 角度判定、回転の向き判定など多岐にわたる。

 

 

・Cross Product ▲ 表に戻る

2つのベクトルの外積を計算。

用途例①: 左右判定

XY平面上で、アクターAに対してアクターBが左側 / 右側にいるか判定。

  • ABの外積の結果は両方に垂直な方向のベクトルとなり、その方向は左手の法則に従う(ABの回転方向に左手を巻くと、親指が結果の向きとなる)。
  • 外積の結果とワールドのUpベクトル(0.0, 0.0, 1.0)を内積で比較すると、回転方向の判定が手軽に行える。

※ 画像(左)のAxBの結果はベクトルの大きさをクランプしています。

AB が平行(θ=0° or 180°)の場合、結果はゼロベクトルになるので注意。

用途: 法線計算、左右判定、面の向き計算など多岐にわたる。

 

 

・Vector Component Min / Vector Component Max ▲ 表に戻る

2つのベクトルの各成分の最小値 / 最大値からなるベクトルを返す。

  • Vector Component Min : A = (10, 5, 8)、B = (3, 9, 6) → 結果 = (3, 5, 6)
  • Vector Component Max : A = (10, 5, 8)、B = (3, 9, 6) → 結果 = (10, 9, 8)

用途: バウンディングボックス(AABB)の計算など。

  • バウンディングボックス:複数のオブジェクトをすっぽり囲む最小の箱。

  

※球のサイズまですっぽりBox内に入れる考慮はしていません。

 

 

・Get Min Element / Get Max Element ▲ 表に戻る

ベクトルの各成分の中で最小成分 / 最大成分の値を返す。

  • Get Min Element : A = (10, 5, 8) → 結果 = 5
  • Get Max Element : A = (10, 5, 8) → 結果 = 10

 

 

・Vector Get Abs ▲ 表に戻る

各成分の絶対値(マイナスをプラスに)を持つベクトルを返す。

  • A = (-10, 5, -3) → (10, 5, 3)

 

 

・Vector Get Abs Min / Vector Get Abs Max ▲ 表に戻る

各成分の絶対値の中で最も小さい値 / 大きい値を返す。

  • Vector Get Abs Min : A = (-10, 5, 3) → 3
  • Vector Get Abs Max : A = (-10, 5, 3) → 10

 

 

・Negate Vector ▲ 表に戻る

ベクトルの符号を反転したコピーを返す。

  • A = (10, 5, 3) → (-10, -5, -3)

用途: アクターの背後方向を取得など

 

 

・Reciprocal (Vector) ▲ 表に戻る

ゼロ除算を避けながらベクトルの逆数(1 ÷ 値)を返す。ゼロ成分はBIG_NUMBERに設定される。

  • A = (2, 4, 5) → (0.5, 0.25, 0.2)

注意: 成分が 0 の場合はゼロ除算を避けるため、非常に大きな値(BIG_NUMBER)が入ります。

用途: スケールの反転など

 

 

・Vector Get Sign Vector ▲ 表に戻る

符号のみのベクトルのコピーを返す。各成分は+1、0、-1のいずれかに設定される。

  • A = (-10, 5, -3) → (-1, 1, -1)

用途: 移動方向の符号取得など。

 

 

・Equal Exactly (Vector) ▲ 表に戻る

他のベクトルと等しいかを判定する。

注意: 浮動小数点の誤差があるため、計算結果の比較には向かない。「完全に同じ値を設定した場合」の比較に使う。

 

 

・Not Equal Exactly (Vector) ▲ 表に戻る

他のベクトルと等しくないかを判定する。

 

 

・Select Vector ▲ 表に戻る

条件に応じてAまたはBのベクトルを選択する。条件=TrueでAを返す。