17.

UE5のFloatingPawnMovementとは|浮遊移動の使い方とCharacterMovementとの違い

編集
この記事の要点
  • FloatingPawnMovementは、重力や物理シミュレーションに縛られずにPawnを浮遊移動させる、軽量な移動コンポーネントです。
  • 主なプロパティはMax Speed(最大速度)Acceleration(加速度)Deceleration(減速度)Turning Boost(方向転換の強さ)の4つです。
  • 使い方はシンプルで、Pawnにコンポーネントを追加し、入力に応じてAdd Movement Inputを呼び出すだけで移動できます。
  • 重力・接地判定を前提とするCharacterMovementComponentとは用途が異なり、ドローン・空中カメラ・UFOなどの浮遊体に向いています。
  • 衝突応答や接地処理を内蔵しないため、地面歩行キャラクターには不向きである点に注意が必要です。

FloatingPawnMovementとは

FloatingPawnMovementは、Unreal Engine 5(UE5)において、重力や物理(physics simulation)に縛られずにPawnを浮遊させながら移動させる、軽量な移動コンポーネントです。一般的な歩行キャラクターのように地面に立って移動するのではなく、空間内を自由に「浮いて動く」挙動を、最小限の設定で実現できるのが特徴です。

このコンポーネントはPawnMovementComponentを基底とする、シンプルな移動コンポーネントとして位置づけられています。速度や加速度に上限を設けながら入力に応じてPawnを動かしますが、重力は実装されていません。そのため、放っておいても落下せず、その場に留まったまま入力方向へなめらかに移動します。

ゲームエンジンにおける移動処理は、しばしば「接地」「重力」「段差登り」「衝突応答」といった複雑な要素を伴います。FloatingPawnMovementは、それらをあえて持たないことで、浮遊体の移動だけに特化したシンプルさを提供します。ドローンや空中カメラ、UFOのように地面に縛られない動きを実装したいとき、有力な選択肢になります。

何のためのコンポーネントか

UE5では、Pawn(プレイヤーやAIが操作・所有できるアクター)の移動ロジックを、移動コンポーネント(Movement Component)として分離して扱う設計が一般的です。FloatingPawnMovementは、その中でも「浮遊しながら自由に動く」挙動を担当します。

具体的には、以下のような役割を持ちます。

  • 入力の蓄積と速度への変換: Add Movement Inputで与えられた移動方向を受け取り、加速度・最大速度の設定に基づいて速度ベクトルへ変換します。
  • 速度・加速の制御: Max SpeedやAccelerationにより、移動の上限速度や加速の鋭さをコントロールします。
  • 浮遊移動の更新: 重力を考慮せず、計算した速度に従ってPawnの位置を毎フレーム更新します。

歩行キャラクター向けの高機能なCharacterMovementComponentと比べると機能は絞られていますが、その分だけ動作が軽く、挙動も理解しやすいのが利点です。

主なプロパティ

FloatingPawnMovementの挙動は、主に次の4つのプロパティで調整します。いずれもコンポーネントを選択した状態で、詳細(Details)パネルから設定できます。

プロパティ役割調整の目安
Max SpeedPawnが到達できる最大の速度(速度ベクトルの大きさ)の上限。値を大きくするほど速く移動できる。乗り物やドローンの「最高速度」に相当。
Acceleration入力があるときに速度を変化させる割合(加速の鋭さ)。大きいほど素早く最高速度へ達する。小さいとゆっくり加速する。
Deceleration入力が無いときに速度を減衰させる割合(停止までの鋭さ)。大きいとすぐ止まり、小さいと慣性で滑るように止まる。
Turning Boost進行方向を変えるときに加わる追加の力。方向転換時の反応を高める。大きいほど方向転換が機敏になり、ドリフト感が減る。0で追加の力を無効化。

これらの数値はゲームの感触に直結します。「ふわっと滑る浮遊感」を狙うならAcceleration・Decelerationを控えめに、「ピタッと止まる操作感」を狙うならそれらを大きめに、といった方向で調整するとイメージをつかみやすいでしょう。なお、各プロパティの正確な単位や既定値はバージョンや環境により異なる場合があるため、厳密な値は公式ドキュメントの確認を推奨します。

基本的な使い方

FloatingPawnMovementは、Pawnに追加して入力で動かすという流れで利用します。代表的な手順は次のとおりです。

1. Pawnを用意する
移動させたいPawnクラス(ブループリント)を用意します。FloatingPawnMovementはPawnへの追加を前提としており、Characterには通常CharacterMovementComponentが既に組み込まれているため不要です。

2. コンポーネントを追加する
PawnのコンポーネントパネルからFloatingPawnMovementを追加します。追加後、詳細パネルでMax SpeedやAccelerationなどを調整します。

3. 入力を受け取りAdd Movement Inputで動かす
キーボードやコントローラーの入力を受け取り、移動方向(ワールド方向ベクトル)を計算してAdd Movement Inputに渡します。FloatingPawnMovementがその入力を蓄積し、設定に従ってPawnを浮遊移動させます。

// 擬似コード(処理の流れのイメージ)

// 入力イベント(例: 前後移動の軸入力)から呼ばれる想定

FVector Direction = GetActorForwardVector();

AddMovementInput(Direction, AxisValue); // FloatingPawnMovement が速度に変換

ブループリントの場合も同様に、入力イベントから方向ベクトルとスケール値を求め、Add Movement Inputノードへ接続します。FloatingPawnMovementがPawnに追加されていれば、特別な配線をせずとも移動として反映されます。

CharacterMovementComponentとの違い

UE5には、より高機能な移動コンポーネントとしてCharacterMovementComponentがあります。両者は「Pawnを動かす」点では共通しますが、想定する用途が大きく異なります。

観点FloatingPawnMovementCharacterMovementComponent
重力実装されていない(落下しない)あり(重力で落下する)
接地・段差登り持たない(浮遊前提)歩行・落下・ジャンプなどの状態を持つ
対象アクターPawn全般主にCharacterクラス
機能の規模軽量・シンプル高機能・多機能で複雑
主な用途ドローン・空中カメラ・UFOなどの浮遊体人型・地上歩行キャラクター

ざっくり言えば、「地面を歩くキャラクター」ならCharacterMovementComponent、「空間を浮いて動く乗り物・カメラ」ならFloatingPawnMovementと覚えると選びやすくなります。重力や接地が不要で、シンプルに移動だけ実装したい場面ほどFloatingPawnMovementが活きます。

典型的な用途

  • ドローン・飛行体: 空中を自由に移動する操作対象。重力に引かれず一定高度を保ちやすい。
  • 空中カメラ・観察用カメラ: レベルを俯瞰・移動するフリーカメラ的なPawn。なめらかな加減速で見やすい移動を作れる。
  • UFO・浮遊オブジェクト: 地面に縛られず浮遊する乗り物や敵。
  • デバッグ・スペクテイター移動: レベル内を素早く飛び回って確認したい場面。

いずれも「重力や接地は要らないが、加速・最大速度の制御はしたい」というニーズに合致します。

使う際の落とし穴・注意点

注意点内容
接地・重力が無い床に着地する・段差を登るといった処理は提供されません。地面歩行が必要なら別の手段が必要です。
衝突応答は別途検討壁にめり込まない/滑るといった衝突挙動は、コンポーネント単体に過度な期待をせず、コリジョン設定やプロジェクト要件に応じて確認・設計する必要があります。
Pawn前提Pawnへの追加を想定しています。Characterには通常CharacterMovementComponentが既にあるため、重ねて追加する設計は基本的に不要です。
高度な移動には不向き複雑な物理挙動や歩行アニメーション連携が必要なら、CharacterMovementComponentやPhysics系の手段を検討します。

これらは「機能が不足している」というより、浮遊移動に特化するために意図的に機能を絞っていると理解するのが適切です。要件に対して機能が足りない場合は、無理に拡張せず別のコンポーネントを選ぶ判断も重要です。

よくある質問(FAQ)

Q1. FloatingPawnMovementは重力で落下しますか?
いいえ。重力は実装されていないため、入力が無ければその場に留まり、落下しません。落下挙動が必要な場合は、重力を扱うCharacterMovementComponentなど別の手段を検討してください。

Q2. Characterに追加して使うべきですか?
基本的には不要です。Characterクラスには通常CharacterMovementComponentが組み込まれており、地上歩行に必要な機能を備えています。FloatingPawnMovementは、重力や接地を必要としないPawnの浮遊移動に向いています。

Q3. 移動が「滑りすぎる/止まらない」と感じるときは?
DecelerationやTurning Boostの値を見直すと改善しやすいです。Decelerationを大きくすると入力を離したときに早く止まり、Turning Boostを上げると方向転換時の反応が機敏になります。狙う操作感に合わせて調整してください。なお、各プロパティの厳密な挙動・単位はバージョンによる差異もあり得るため、最終的な確認は公式ドキュメントを参照することを推奨します。

まとめ

FloatingPawnMovementは、重力や物理に縛られずにPawnを浮遊移動させる軽量な移動コンポーネントです。Max Speed・Acceleration・Deceleration・Turning Boostという4つのプロパティで挙動を調整でき、Pawnに追加してAdd Movement Inputで動かすだけというシンプルな使い勝手が魅力です。重力・接地を前提とするCharacterMovementComponentとは役割が異なり、ドローンや空中カメラ、UFOなどの浮遊体に適しています。特性と限界を理解したうえで、用途に合った移動コンポーネントを選んでいきましょう。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. Event BeginPlay
  2. Event ActorBeginOverlap
  3. Event Tick
  4. on component begin overlap
  5. On Component Hit
  6. CameraBoom(Spring Arm)
  7. Get Player Character
  8. Nav Mesh Bounds Volume
  9. AI MoveTo
  10. Pawn
  11. Create Render Target 2D
  12. Take High Res Screenshotノード
  13. Sphere Reflection Capture
  14. Event Tickノード
  15. ウィジェットのキャンバスパネル
  16. DefaultSceneRoot
  17. FloatingPawnMovement
  18. Set World Rotation
  19. Event Any Damage
  20. Set World Rotation
  21. VInterp To
  22. Get Socket Transform

最近更新/作成されたページ