この記事の要点
- 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(等速)
1VInterp To とは
VInterp To (Vector Interpolate To) は、Unreal Engine 5 のブループリントでベクトル値を滑らかに補間するためのノードです。「現在地」から「目標地」へ、瞬間移動ではなくイージング付きで少しずつ近づける計算を 1 行で書けます。
カメラがプレイヤーを追従する、アイテムが吸い寄せられる、UI が滑らかに動く — こうした「目標に近づくほどゆっくりになる」自然な動きが Interp To 系のノードで簡潔に実装できます。
24 つの引数
| 引数 | 型 | 意味 | 典型接続 |
|---|---|---|---|
Current | Vector | 現在のベクトル値 | 自分の現在位置 (GetActorLocation) |
Target | Vector | 到達させたい目標値 | 追従先の位置 |
Delta Time | float | フレーム間時間 (秒) | Get World Delta Seconds |
Interp Speed | float | 補間速度(大きいほど速い) | 5.0 〜 10.0 が自然 |
戻り値は1 フレーム分進めたベクトル。それを次フレームの Current として使い回すのが基本パターンです。
3基本ワークフロー
Event Tick から毎フレーム呼ぶ、というのが定型パターンです。
[Event Tick]
│
├──── GetActorLocation ──→ [Current]
│ ┌─→ VInterp To ─→ [SetActorLocation]
├──── Target Location ───→ [Target]──┘
│
├──── Get World Delta Seconds ─→ [Delta Time]
│
└──── 5.0 (float) ────────────→ [Interp Speed]
4Interp Speed の体感ガイド
| Speed | 体感 | 用途 |
|---|---|---|
| 1.0 | のっそり | ゆったり追従カメラ |
| 3.0 | 遅め | 遠景カメラ・ふんわり UI |
| 5.0 〜 8.0 | 自然 | キャラ追従・標準 |
| 10.0 〜 15.0 | キビキビ | FPS の照準補正・素早い反応 |
| 30.0+ | ほぼ瞬間 | ほとんど Set Location と同じ |
| 0 | 動かない | 無効 |
5応用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 (カメラ)
6応用2: アイテムがプレイヤーに吸い寄せられる
[Event Tick] (アイテム BP)
距離 = Distance(プレイヤー, 自分)
If 距離 < 300:
Current = GetActorLocation
Target = プレイヤー.GetActorLocation
Delta Time = Get World Delta Seconds
Interp Speed= 8.0 ; 引き寄せる強さ
→ VInterp To
→ SetActorLocation
7応用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
8Interp To 系の仲間ノード
| ノード | 対象型 | 用途 |
|---|---|---|
VInterp To | Vector | 位置・スケール・色 (RGB) |
FInterp To | float | 透明度・体力ゲージ・1 軸の値 |
RInterp To | Rotator | カメラの向き・キャラの振り向き |
VInterp To Constant | Vector | 等速補間(イージングなし) |
FInterp To Constant | float | 等速 float 補間 |
RInterp To Constant | Rotator | 等速回転(一定の角速度) |
"Constant" 版はイージングがかからず Speed の値ぶんだけ等速で進むので、UI のローテーションなどに使います。
9VInterp To と Lerp の違い
初心者がよく混同するノードが Lerp (Vector Lerp)。
| 項目 | VInterp To | Lerp |
|---|---|---|
| 引数 | Current / Target / DeltaTime / Speed | A / B / Alpha (0-1) |
| 進み方 | イージング(目標に近づくと遅くなる) | Alpha に応じた線形 |
| 毎フレーム呼ぶ? | Yes (現在値を更新) | 任意のタイミング |
| 使いどころ | 追従・スムーズな動き | 2 点間の途中値計算 |
Lerp は Alpha を自分で進行させる必要があるのに対し、VInterp To は「現在値」を「目標」に少しずつ近づける動きを 1 ノードで完結できるのが強みです。
10FAQ
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 等の閾値で判定。
子ページはありません
- Event BeginPlay
- Event ActorBeginOverlap
- Event Tick
- on component begin overlap
- On Component Hit
- CameraBoom(Spring Arm)
- Get Player Character
- Nav Mesh Bounds Volume
- AI MoveTo
- Pawn
- Create Render Target 2D
- Take High Res Screenshotノード
- Sphere Reflection Capture
- Event Tickノード
- ウィジェットのキャンバスパネル
- DefaultSceneRoot
- FloatingPawnMovement
- Set World Rotation
- Event Any Damage
- Set World Rotation
- VInterp To
- Get Socket Transform
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15