ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
RInterp To とは
RInterp To(R は Rotator)は UE5 の Blueprint / C++ で使える回転補間ノードです。現在の回転と目標回転を渡すと、Delta Time × Interp Speed に応じて 1 フレーム分だけ目標に近づいた Rotator を返します。Tick 上で繰り返し呼ぶことで、滑らかに回転が変化していきます。
入出力
| ピン | 型 | 説明 |
|---|---|---|
| Current | Rotator | 現在の回転(多くは Get Actor Rotation 等で取得) |
| Target | Rotator | 向かわせたい目標回転 |
| Delta Time | float | フレーム間時間。通常 Get World Delta Seconds または Tick の Delta |
| Interp Speed | float | 補間速度。大きいほど早く Target に到達。0 で補間スキップ(Target をそのまま返す) |
| Return Value | Rotator | 1 フレーム分補間した Rotator |
基本的な使い方(Blueprint)
カメラやキャラクターの頭をターゲット方向に滑らかに向ける、典型的な構成は次の通りです。
- Event Tick から開始
- 現在の Actor Rotation を取得(
Get Actor Rotation) - 目標 Rotation を計算(例:
Find Look At Rotation) - RInterp To に Current / Target / Delta / Speed を入力
- 結果を
Set Actor Rotationへ流す
使用例:カメラを敵のほうへ滑らかに向ける
// C++ 版(UKismetMathLibrary::RInterpTo)
#include "Kismet/KismetMathLibrary.h"
void AMyPlayer::Tick(float DeltaSeconds)
{
Super::Tick(DeltaSeconds);
if (!TargetEnemy) return;
const FRotator Current = GetActorRotation();
const FRotator Target = UKismetMathLibrary::FindLookAtRotation(
GetActorLocation(),
TargetEnemy->GetActorLocation());
const FRotator Smoothed = UKismetMathLibrary::RInterpTo(
Current, Target, DeltaSeconds, /*InterpSpeed=*/5.0f);
SetActorRotation(Smoothed);
}
Interp Speed の感覚値
| Speed | 挙動 | 用途 |
|---|---|---|
| 0 | 補間しない(即 Target) | テスト用 / 補間オフのトグル |
| 1〜2 | ゆっくり、約 1 秒で 60〜80% 接近 | 映像演出、シネマティック |
| 3〜5 | 標準的な追従 | カメラ追従、AI の視線 |
| 8〜15 | 素早い反応、ほぼ即追従 | FPS の照準、ロックオン |
| 30 以上 | 1 フレームでほぼ Target | 事実上「即」と同じ |
RInterp To は指数減衰(exponential damping)的に Target へ近づきます。Speed が一定でも残り角度が小さくなるほど 1 フレームあたりの変化量も小さくなるので、自然な減速が得られます。
関連する補間ノード
| ノード | 用途 |
|---|---|
| RInterp To | Rotator の補間(本記事) |
| VInterp To | Vector(位置)の補間 |
| FInterp To | Float の補間 |
| QInterp To | Quaternion の補間(ジンバルロック対策) |
| RInterp To Constant | 「角度/秒」固定の等速補間(指数ではない) |
| Lerp (Rotator) | 0〜1 の Alpha 指定で線形補間 |
RInterp To と RInterp To Constant の違い
- RInterp To: 残り角度が大きいほど速く、近づくほど遅い(イーズアウト風)
- RInterp To Constant: 一定角速度。バリスティックな動きに向く
注意点
- 毎フレーム呼ぶ必要がある — 1 回呼ぶだけでは 1 フレーム分しか進まない。Tick または Timer で繰り返す
- Yaw が ±180 をまたぐとき — RInterp To は短い側の経路を選ぶが、ノーマライズが必要な場面では
Normalized Delta Rotatorで前処理 - ジンバルロックが気になる場合 — Pitch が ±90 付近で挙動が崩れることがある。Quaternion 版
QInterp Toを検討 - ポーズ中の Delta Time — ポーズ時に Tick が止まると補間も止まる。ポーズ時も動かしたいなら Tickable Object の
bTickEvenWhenPausedを立てる
FAQ
Q: Interp Speed の単位は?
A: 無次元の係数で、内部的には Alpha = clamp(DeltaTime * InterpSpeed, 0, 1) として線形補間に渡しています。「Speed 秒で到達」ではない点に注意。
Q: Target に完全に到達するの?
A: 指数減衰なので数学的には漸近ですが、UE 内部で「近い場合は Target をそのまま返す」しきい値処理があるため、実用上は到達します。
Q: 即座に Target を向けたい
A: Interp To を経由せず Set Actor Rotation に直接 Target を流すか、Interp Speed = 0 を渡してください。
FInterp To / VInterp To との比較
UE5 には Rotator 以外にも同型の Interp To ノードが揃っており、引数は同じ「Current / Target / Delta Time / Interp Speed」構成です。型だけが違います。
| ノード | 戻り型 | 典型用途 |
|---|---|---|
FInterp To | float | 体力バーの追従、ズーム値の補間、移動速度の加減速 |
VInterp To | Vector | 位置の追従、カメラのオフセット移動、フォーカス点 |
RInterp To | Rotator | 本記事。回転の追従 |
QInterp To | Quaternion | ジンバルロックを避けたい回転補間 |
CInterp To | LinearColor | 色の変化(フェード、ダメージ点滅など) |
実装の中身(参考)
UKismetMathLibrary::RInterpTo の実装は概ね次の形になっています。残り角度に対する補間係数を Delta Time × InterpSpeed で取り、しきい値より小さければ Target をそのまま返します。
FRotator URotator::RInterpTo(const FRotator& Current, const FRotator& Target,
float DeltaTime, float InterpSpeed)
{
if (InterpSpeed <= 0.f) return Target;
const FRotator Delta = (Target - Current).GetNormalized();
if (Delta.IsNearlyZero()) return Target;
const FRotator DeltaMove = Delta * FMath::Clamp(DeltaTime * InterpSpeed, 0.f, 1.f);
return (Current + DeltaMove).GetNormalized();
}
関連
- プロジェクトを多言語化する方法
- Blueprintで「Cast To」を使い、複数のクラスに対応する方法
- ブループリントで現在日時を取得する方法
- Set Actor Rotation / Set World Rotation / Get World Delta Seconds — 併用ノード
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?