ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
Unreal Engine 5(UE5)のPawn(ポーン)は、コントローラーに憑依(Possess)されることで操作できるようになるActorの基底クラスです。プレイヤーが操作するキャラクター、AIが動かす敵やNPC、乗り物やドローンなど「誰か(PlayerControllerまたはAIController)に操作される存在」は、すべてこのPawnを継承して作られます。逆に言えば、PawnはコントローラーにPossessされて初めて入力を受け取れるクラスであり、ここがPawnを理解するうえで最も重要なポイントです。
| この記事の要点 |
|---|
|
Pawnとは何か
Pawnは、UE5のゲームプレイフレームワークにおいて「コントローラーが操作する対象」を表すActorです。Actorがレベルに配置できる物体すべての基底クラスであるのに対し、Pawnは「操作されること」を前提に設計されたActorという位置づけになります。
具体的には、Pawnは次のような要素を標準で備えています。
- Possessの受け口:PlayerControllerまたはAIControllerに憑依(Possess)され、その操作を受け付ける。
- 入力のバインド先:SetupPlayerInputComponent関数で、キーボード・マウス・ゲームパッドの入力を移動やアクションへ結び付けられる。
- 所有者(Owner)の概念:自分を操作しているControllerをGetControllerで取得でき、プレイヤー由来かAI由来かを区別できる。
一方でPawn自体は、移動ロジックや当たり判定の形状を標準では持ちません。動かしたい場合は、後述するMovementコンポーネント(例:Floating Pawn Movement)を追加したり、自前で位置を更新したりする必要があります。この「中身が空に近い分、自由に作れる」点がPawnの最大の特徴です。
Actor・Pawn・Characterの継承関係
Pawnの立ち位置は、クラスの継承関係を押さえると一気に明確になります。UE5の主要なゲームプレイ系クラスは、おおむね次のように積み重なっています。
| クラス | 継承元 | 役割 |
|---|---|---|
| UObject | - | UE5のあらゆるオブジェクトの最上位基底クラス。 |
| AActor | UObject | レベルに配置・スポーンできる物体の基底。位置・回転・コンポーネントを持つ。 |
| APawn | AActor | コントローラーにPossessされて操作できるActor。本記事の主役。 |
| ACharacter | APawn | Pawnを二足歩行キャラ向けに拡張。カプセル+CharacterMovement+スケルタルメッシュを標準装備。 |
つまりCharacterは「歩行機能を盛り込んだPawn」であり、PawnができることはすべてCharacterでもできます。クラス名の接頭辞は、UObject系がU、Actor系がA(APawn、ACharacterなど)という命名規則になっています。
Possess(憑依)の仕組み
Pawnを理解する核心がPossess(ポゼス/憑依)です。Pawn単体はレベルに置かれているだけでは操作できず、Controllerが「Possess」して初めて操作対象になります。イメージとしては、空っぽの肉体(Pawn)に魂(Controller)が乗り移る、という関係です。
| クラス | 操作の主体 | 役割 |
|---|---|---|
| AController | - | Pawnを操作するためのController基底クラス。それ自体は描画されない。 |
| APlayerController | 人間プレイヤー | プレイヤーの入力を受け取り、Possessしているpawnへ伝える。カメラ管理なども担う。 |
| AAIController | AI(プログラム) | ビヘイビアツリーやナビゲーションに基づき、PossessしたPawnを自律的に動かす。 |
処理の流れは次のようになります。
- ControllerがPawnをPossessすると、そのPawnのOnPossessed系処理(C++ではPossessedBy、BlueprintではEvent Possessed)が呼ばれる。
- PlayerControllerがPossessしているPawnには、プレイヤーの入力が転送される。
- 操作をやめる際はUnPossessでPawnから切り離す。別のPawnをPossessすれば、操作対象を乗り換えられる(例:キャラから乗り物へ乗り込む)。
1つのControllerが同時にPossessできるPawnは1体です。逆に、Pawnを切り替えながら同じControllerで複数の対象を操作する、といった設計が可能です。
PawnとCharacterの違い
初心者が最も迷うのが「PawnとCharacterのどちらを継承すべきか」です。両者の違いを整理すると次のとおりです。
| 項目 | Pawn | Character |
|---|---|---|
| カプセルコンポーネント | 標準では無し(自分で追加) | 標準で搭載(衝突判定用) |
| 移動コンポーネント | 無し。必要に応じFloating Pawn Movement等を追加 | CharacterMovementComponentを標準搭載 |
| 歩行・ジャンプ・落下 | 自前で実装 | 歩行・ジャンプ・落下・水中・飛行などを標準サポート |
| スケルタルメッシュ | 任意(StaticMeshでも可) | スケルタルメッシュを標準で想定(アニメ向け) |
| 自由度・軽さ | 高い。中身がほぼ空で自由に組める | 歩行特化のため、非歩行用途では機能が過剰になりがち |
| 主な用途 | 乗り物・ドローン・球体・カメラ等の非歩行体 | 人型・動物など地面を歩くキャラクター |
要するに、Characterは「二足歩行のために必要なものを全部入りにしたPawn」です。重力に従って地面を歩き、段差を上り、ジャンプして落下する——こうした挙動を自分で書かずに済むのがCharacterの強みです。
いつPawnを直接使い、いつCharacterを使うか
選択の指針はシンプルです。
- Characterを使うべきケース:人型・動物など、地面を歩いて移動するキャラクター。プレイヤーの主人公、徒歩で歩き回る敵やNPCなど。CharacterMovementが歩行・ジャンプ・斜面処理まで面倒を見てくれるため、自作する手間が大幅に減る。
- Pawnを直接使うべきケース:歩行モデルが当てはまらない、または不要な対象。たとえば飛行ドローン、宇宙船、車・船などの乗り物、転がる球体、固定カメラ、ボード上を移動する駒など。歩行用の重い機能を持たせず、必要な移動だけを軽量に組みたい場合に向く。
迷ったら「このオブジェクトは地面を二足歩行するか?」と問えば判断できます。歩くならCharacter、それ以外の動き方をするならPawnを直接継承して必要な機能だけを足す、という方針が実務的です。
入力の受け取り方
Pawn(およびCharacter)でプレイヤー入力を扱うには、入力のバインド処理をSetupPlayerInputComponentという関数(C++)で行います。Blueprintの場合は、Pawn内のInput系イベントや、Enhanced Input(UE5標準の入力システム)のInput Actionイベントで受け取ります。
// C++:Pawnの入力バインド(概念例) void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); // ここで移動やアクションの入力をバインドする } |
移動を実際に行う際は、AddMovementInput(移動方向と量を与える)や、Floating Pawn Movement/CharacterMovementといったMovementコンポーネントを組み合わせます。重要なのは、これらの入力処理はそのPawnがPlayerControllerにPossessされている間だけ有効という点です。
落とし穴と注意点
| つまずきやすいポイント |
|---|
|
よくある質問(FAQ)
Q1. PawnとActorの違いは何ですか?
Actorはレベルに配置できる物体すべての基底クラスで、操作されることを前提としていません。Pawnはそのactorを継承し、「Controllerにpossessされて操作される」機能を追加したサブクラスです。操作対象にしたいものはPawn、操作と無関係な置物(ライト、トリガー領域、装飾オブジェクトなど)はActorのままで十分です。
Q2. プレイヤーキャラはPawnとCharacterのどちらで作るべきですか?
地面を歩く人型・動物キャラならCharacterが基本です。歩行・ジャンプ・落下・斜面処理を備えたCharacterMovementを最初から使えるため、実装が楽になります。乗り物や飛行体など歩行モデルに当てはまらないものは、Pawnを直接継承して必要な移動だけを実装するのが向いています。
Q3. Possessを切り替えると何が起きますか?
ControllerがUnPossessで現在のPawnを離し、別のPawnをPossessすると、入力の送り先が新しいPawnに切り替わります。これにより「キャラから車に乗り込む」「複数キャラを切り替えて操作する」といった仕組みを実現できます。ただし1つのControllerが同時にPossessできるPawnは1体までです。
細かい挙動やプロパティの正確な仕様(バージョン差を含む)については、Epic Games公式ドキュメントの確認を推奨します。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- 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 と 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
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 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
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 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
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 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
コメントを削除してもよろしいでしょうか?