この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: VInterp To
SEOタイトル: UE5 BP VInterp To 完全ガイド(ベクトル補間 / Tick 接続 / カメラ追従 / 4 引数の意味)

この記事の要点
  • VInterp To はベクトル値を現在地から目標地へ滑らかに補間するブループリント (BP) ノード
  • 4 引数: Current(現在値)/ Target(目標値)/ Delta Time(フレーム時間)/ Interp Speed(速度)
  • 基本パターン: Event Tick で毎フレーム呼ぶ。Delta Time には Get World Delta Seconds を接続
  • Interp Speed: 小さいほどゆっくり、5〜10 が体感的に自然。0 だと動かない
  • 応用: カメラ追従 / アイテム吸引 / スムーズな振り向き / スケール変化アニメーション
  • 仲間ノード: FInterp To(float)/ RInterp To(Rotator)/ VInterp To Constant(等速)

VInterp To とは

VInterp To (Vector Interpolate To) は、Unreal Engine 5 のブループリントでベクトル値を滑らかに補間するためのノードです。「現在地」から「目標地」へ、瞬間移動ではなくイージング付きで少しずつ近づける計算を 1 行で書けます。

カメラがプレイヤーを追従する、アイテムが吸い寄せられる、UI が滑らかに動く — こうした「目標に近づくほどゆっくりになる」自然な動きが Interp To 系のノードで簡潔に実装できます。

4 つの引数

引数意味典型接続
CurrentVector現在のベクトル値自分の現在位置 (GetActorLocation)
TargetVector到達させたい目標値追従先の位置
Delta Timefloatフレーム間時間 (秒)Get World Delta Seconds
Interp Speedfloat補間速度(大きいほど速い)5.0 〜 10.0 が自然

戻り値は1 フレーム分進めたベクトル。それを次フレームの Current として使い回すのが基本パターンです。

基本ワークフロー

Event Tick から毎フレーム呼ぶ、というのが定型パターンです。

[Event Tick]
    │
    ├──── GetActorLocation ──→ [Current]
    │                                    ┌─→ VInterp To ─→ [SetActorLocation]
    ├──── Target Location ───→ [Target]──┘
    │
    ├──── Get World Delta Seconds ─→ [Delta Time]
    │
    └──── 5.0 (float) ────────────→ [Interp Speed]

Interp Speed の体感ガイド

Speed体感用途
1.0のっそりゆったり追従カメラ
3.0遅め遠景カメラ・ふんわり UI
5.0 〜 8.0自然キャラ追従・標準
10.0 〜 15.0キビキビFPS の照準補正・素早い反応
30.0+ほぼ瞬間ほとんど Set Location と同じ
0動かない無効

応用1: カメラがプレイヤーをふんわり追従

SpringArm を使わず、独立した 追従カメラ Actor でラグを演出する場合。

[Event Tick]
  Current     = カメラ.GetActorLocation
  Target      = プレイヤー.GetActorLocation + Vector(0, 0, 200)  ; 少し上から
  Delta Time  = Get World Delta Seconds
  Interp Speed= 3.0   ; ゆっくり追従

→ VInterp To
→ SetActorLocation (カメラ)

応用2: アイテムがプレイヤーに吸い寄せられる

[Event Tick] (アイテム BP)
  距離 = Distance(プレイヤー, 自分)

  If 距離 < 300:
    Current     = GetActorLocation
    Target      = プレイヤー.GetActorLocation
    Delta Time  = Get World Delta Seconds
    Interp Speed= 8.0   ; 引き寄せる強さ

  → VInterp To
  → SetActorLocation

応用3: スケールアニメーション (Hover 時に拡大)

Current / Target に Scale ベクトル (1,1,1 など) を渡せば、滑らかな拡縮もこのノード 1 つで作れます。

[Event Tick]
  Hovered  ? Target = Vector(1.2, 1.2, 1.2)
           : Target = Vector(1.0, 1.0, 1.0)

  Current     = GetActorScale3D
  Delta Time  = Get World Delta Seconds
  Interp Speed= 10.0

  → VInterp To
  → SetActorScale3D

Interp To 系の仲間ノード

ノード対象型用途
VInterp ToVector位置・スケール・色 (RGB)
FInterp Tofloat透明度・体力ゲージ・1 軸の値
RInterp ToRotatorカメラの向き・キャラの振り向き
VInterp To ConstantVector等速補間(イージングなし)
FInterp To Constantfloat等速 float 補間
RInterp To ConstantRotator等速回転(一定の角速度)

"Constant" 版はイージングがかからず Speed の値ぶんだけ等速で進むので、UI のローテーションなどに使います。

VInterp To と Lerp の違い

初心者がよく混同するノードが Lerp (Vector Lerp)

項目VInterp ToLerp
引数Current / Target / DeltaTime / SpeedA / B / Alpha (0-1)
進み方イージング(目標に近づくと遅くなる)Alpha に応じた線形
毎フレーム呼ぶ?Yes (現在値を更新)任意のタイミング
使いどころ追従・スムーズな動き2 点間の途中値計算

Lerp は Alpha を自分で進行させる必要があるのに対し、VInterp To は「現在値」を「目標」に少しずつ近づける動きを 1 ノードで完結できるのが強みです。

FAQ

Q: なぜ Event Tick で呼ぶ必要?
A: 1 回だけ呼んでも 1 フレームぶんしか進まないから。毎フレーム呼んで現在値を上書きすることで連続的な動きになる。

Q: Delta Time に固定値を入れたら?
A: フレームレート依存になり PC スペックで動きが変わる。必ず Get World Delta Seconds を使う。

Q: Speed が大きすぎると?
A: ほぼ瞬間移動になり VInterp To の意味がなくなる。15 以上は SetLocation で十分。

Q: 目標に到達した判定がしたい
A: VInterp To は厳密には到達しない(漸近する)。(Target - Current).Size() < 1.0 等の閾値で判定。