7.

UE5のGet Player Characterとは|使い方とCast To・他ノードとの違い

編集

Get Player Characterは、Unreal Engine 5(UE5)のブループリントで、指定したプレイヤーインデックスのプレイヤーキャラクター(Pawn)を取得するノードです。戻り値の型はCharacterで、シングルプレイならPlayer Index に 0 を指定すれば、現在プレイヤーが操作しているキャラクターへの参照を得られます。取得した参照に対して位置の取得や独自処理の呼び出しを行う際の起点となる、非常に使用頻度の高いノードです。

この記事の要点
  • Get Player Character は、指定した Player Index のプレイヤーキャラクターを Character 型で取得するノード。
  • シングルプレイでは Player Index = 0(先頭のローカルプレイヤー)を指定するのが基本。
  • 戻り値は汎用の Character 型なので、自作キャラクラス(例: BP_Character)の独自変数や関数を呼ぶには Cast To が必要。
  • 似たノードに Get Player Pawn(Pawn を返す)と Get Player Controller(PlayerController を返す)があり、用途で使い分ける。
  • キャラクターが未生成の段階で呼ぶと取得できず、Cast 失敗時は null が返るため、分岐チェックが安全。

Get Player Character とは何のノードか

Get Player Character は、UE5 のブループリントで使える組み込みノードのひとつで、指定したプレイヤーが操作しているキャラクター(Character クラスのインスタンス)への参照を返します。ノードには入力として Player Index(整数)、出力として Return Value(Character 型の参照)があります。

UE5 における「Character」とは、移動コンポーネント(Character Movement Component)やカプセルコリジョン、メッシュなどをあらかじめ備えた、二足歩行のキャラクターを想定した Pawn の派生クラスです。したがって Get Player Character は「プレイヤーが操作している Pawn のうち、Character として扱えるものを取得するノード」と理解すると分かりやすくなります。

取得した参照を起点に、Get Actor Location で位置を調べたり、Cast To を挟んで自作キャラクラスの変数・関数にアクセスしたりするのが典型的な流れです。

Player Index 引数の意味

Get Player Character の入力ピン Player Index は、「何番目のローカルプレイヤーのキャラクターを取得するか」を示す整数です。インデックスは 0 始まりで、画面分割を行わない通常のシングルプレイ環境では、対象となるローカルプレイヤーは 1 人だけなので 0 を指定します。

Player Index指す対象主な利用シーン
0先頭のローカルプレイヤーのキャラクターシングルプレイ全般(最も一般的)
1 以上2 人目以降のローカルプレイヤーのキャラクター同一画面のローカル協力プレイ(スプリットスクリーン)

ここで注意したいのは、Player Index が指すのは ローカルプレイヤーであるという点です。ネットワーク越しに接続している他のプレイヤーをインデックスで取得する用途には向きません(後述の「落とし穴」を参照)。実際の挙動はバージョンや構成で差が出る場合があるため、確信が持てない場合は公式ドキュメントの確認を推奨します。

戻り値は Character 型なので Cast To して使う

Get Player Character の Return Value は、UE5 標準の汎用 Character 型です。この型のままでは、Get Actor Location など Actor / Character 共通の関数は呼べますが、あなたが自作したキャラクターブループリント(例: BP_Character)に追加した独自の変数や関数には直接アクセスできません。独自メンバーへアクセスするには、戻り値を自作クラスへ変換する Cast To ノードを挟みます。

たとえば、自作の BP_Character に独自の体力変数や Jump 処理を持たせている場合、次のような流れになります。

[Event / 入力イベント]

  → Get Player Character(Player Index = 0)

     Return Value → Cast To BP_Character(Object 入力へ接続)

       Cast 成功(As BP_Character)→ 独自関数 Jump を呼び出し

       Cast Failed → (何もしない / ログ出力など)

Cast To ノードには「成功」「失敗(Cast Failed)」の 2 つの実行ピンがあります。取得した参照が指定クラスと一致しない場合は失敗側へ進み、変換結果は null になります。失敗ピンを未接続のまま進めると、後続で無効な参照を使ってしまう恐れがあるため、失敗時の挙動も意識して組むと安全です。

Get Player Pawn / Get Player Controller との違い

「プレイヤーを取得する」目的のノードは複数あり、取得できる型と用途が異なります。混同しやすいため、下表で違いを整理します。

ノード戻り値の型主な用途
Get Player CharacterCharacter操作キャラの位置・移動・自作キャラ機能(Cast To 後)にアクセス
Get Player PawnPawnCharacter に限らず、車両やドローンなど任意の Pawn を操作対象にする場合
Get Player ControllerPlayerController入力・カメラ・UI 表示・Possess など、プレイヤー単位の制御を扱う場合

使い分けの目安は次の通りです。

  • 操作対象が Character 派生で、移動や自作キャラ機能を扱いたい → Get Player Character
  • 操作対象が Character とは限らない(乗り物など)汎用の Pawn → Get Player Pawn。Pawn を Character へ変換したいときは Cast To Character を併用。
  • そのキャラを「誰が・どう操作しているか」側を扱いたい(入力・カメラ・HUD など)→ Get Player Controller

なお、Pawn が Character でない構成のときに Get Player Character を呼ぶと、目的のキャラクターが取得できない(null になる)ことがあります。プロジェクトのキャラクター設計に合わせてノードを選んでください。

典型的な用途

Get Player Character は、プレイヤー本体を起点にした処理の入り口として幅広く使われます。代表的な用途を挙げます。

  • プレイヤーの位置取得:Return Value → Get Actor Location で、現在のワールド座標を取得。ミニマップ表示やスポーン位置の基準などに利用。
  • 距離の計算:プレイヤー位置と対象アクターの位置を Vector の差や距離関数で比較し、一定距離内ならインタラクト可能にする、といった判定。
  • 自作キャラ機能の呼び出し:Cast To 後に、ジャンプ・攻撃・体力変更など、自作キャラブループリント側で定義した関数・変数へアクセス。
  • コンポーネントへのアクセス:メッシュやカメラ、Character Movement Component などを取得して挙動を調整。
  • UI への反映:取得したキャラの状態(体力など、自作変数の場合は Cast To 後)を HUD / Widget に表示。

落とし穴・注意点

つまずきやすいポイント
  • Cast 失敗で null になる:取得した Character が Cast To で指定したクラスと一致しないと、変換結果は null。null のまま関数を呼ぶとアクセスエラーの原因になるため、Cast Failed ピンや Is Valid での確認を挟むのが安全。
  • 生成前に呼ぶと取得できない:プレイヤーキャラクターがまだスポーンしていないタイミング(極端に早い初期化処理など)で呼ぶと、取得結果が無効になることがある。BeginPlay 以降や、キャラ生成が確実に済んだタイミングで呼ぶ。
  • Player Index は「ローカルプレイヤー」基準:マルチプレイで他クライアントのキャラを Player Index で取りに行く用途には適さない。リモートのプレイヤーを扱う設計では、別のアプローチ(コントローラやレプリケーションを介した参照取得など)が必要。
  • Pawn が Character でない構成:操作対象を Character 派生にしていない場合、Get Player Character では狙ったオブジェクトを取得できないことがある。その場合は Get Player Pawn を検討。

これらの細かな挙動はエンジンのバージョンやプロジェクト設定によって差が出ることがあります。重要な箇所で想定どおりに動かない場合は、Unreal Engine の公式ドキュメントを確認することを推奨します。

よくある質問(FAQ)

Q1. Get Player Character と Get Player Pawn はどう違いますか?
A. 戻り値の型が違います。Get Player Character は Character 型を、Get Player Pawn は Pawn 型を返します。Character は Pawn の派生で、移動用コンポーネントなどをあらかじめ備えています。操作対象が Character 派生なら Get Player Character、車両など Character でない Pawn を扱うなら Get Player Pawn が向いています。

Q2. なぜ Cast To が必要なのですか?
A. Get Player Character の戻り値は汎用の Character 型で、その型に定義されたメンバーしか直接は呼べないためです。自作キャラブループリントに追加した独自の変数や関数へアクセスするには、Cast To で自作クラスへ変換してから利用します。

Q3. 取得結果が null になってしまいます。原因は何ですか?
A. 主な原因は、(1) キャラクターがまだ生成されていないタイミングで呼んでいる、(2) Cast To で指定したクラスが実際のキャラクラスと一致せず変換に失敗している、(3) 操作対象が Character 派生になっておらず取得できない、の 3 つが代表的です。呼び出しタイミングを見直し、Cast の対象クラスを確認し、Is Valid で参照の有効性をチェックすると切り分けやすくなります。

まとめ

Get Player Character は、指定した Player Index のプレイヤーキャラクター(Character)を取得する、UE5 ブループリントの基本ノードです。シングルプレイでは Player Index に 0 を指定し、自作キャラ機能を使うときは Cast To で自作クラスへ変換するのが定番の流れです。似た役割の Get Player Pawn / Get Player Controller との違いを押さえ、生成タイミングや Cast 失敗時の null に注意して使えば、プレイヤーを起点とした多くの処理を安全に組み立てられます。

編集
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

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