
Unreal Engine 5 を触っていて、
「NPCごとに違う情報を持たせたい」
「セリフや行動パターンを管理したい」
と思ったときに避けて通れないのが リスト(配列) の考え方です。
今回は、実際に自分がやった工程をもとに、
UE5で「リストを作る → NPCに紐づける」までを、できるだけ噛み砕いてまとめます。
Blueprint完全初心者でも、
「なるほど、そういう流れか」と分かることを目標にしています。
Contents
1. 今回やりたかったこと
まず目的を明確にします。
- NPCごとに
- セリフ
- 性格
- 役割
- 事件との関係
- こうした情報を まとめて管理したい
- NPC Blueprint に直接ベタ書きはしたくない
そのために
「リスト(配列)」+「NPCへの紐づけ」 という形を取ります。
2. UE5でいう「リスト(配列)」とは?
UE5(Blueprint)でのリストは、
同じ型のデータを複数まとめて持てる箱です。
例:
- セリフのリスト
- 名前のリスト
- NPCデータのリスト
Blueprint上では Array(配列) と呼ばれます。
3. まずはNPC用のデータ構造を作る
いきなり配列を作る前に、
「NPC1人分の情報」をまとめる箱を作ります。
手順①:Struct(構造体)を作成
- コンテンツドロワーを右クリック
- Blueprints → Structure を選択
- 名前を付ける(例:
NPC_Data)
中に入れた項目(例)
- 名前(String)
- セリフ(String)
- 役割(String)
- 犯人かどうか(Bool)
👉 「NPC1人分の設計図」 を作るイメージです。
4. NPCデータのリスト(配列)を作る
次に、この NPC_Data を リスト化 します。
手順②:配列変数を作成
- 管理用の Blueprint(例:GameMode や Manager用BP)を開く
- 新しい変数を作成
- 型を
NPC_Dataに設定 - 配列(Array)にチェックを入れる
これで
👉 NPCデータの一覧表 が完成します。
5. リストにNPCデータを登録する
手順③:配列に要素を追加
- Details パネルで
- 「+」ボタンを押して要素を追加
- 各NPCの情報を入力
- NPC A
- NPC B
- NPC C …
ここで
「NPCが何人いて、どんな設定か」
が一目で分かる状態になります。
6. NPC Blueprint 側の準備
次に、NPC自身が自分のデータを受け取れるようにします。
手順④:NPC Blueprintに変数を作る
- NPC Blueprint を開く
- 新しい変数を作成
- 型:
NPC_Data - 名前例:
MyData
これが
👉 そのNPC専用のデータ置き場 になります。
7. NPCとリストを紐づける
ここが一番大事な部分です。
手順⑤:BeginPlayでデータをセット
考え方はシンプルです。
- NPCがスポーンしたとき
- 管理側のNPCリストを見る
- 自分に対応するデータを取得
MyDataに代入
Blueprintでは、
- Get All Actors(管理BP)
- 配列から Index 指定で Get
- Set MyData
という流れになります。
👉 「このNPCは、この番号のデータを使う」
という対応付けです。
8. 紐づけ後にできること
データが入ったことで、NPCはこう動けます。
- セリフを表示する
- 性格に応じて反応を変える
- フラグによって挙動を変える
例:
- 犯人フラグが true → 怪しい挙動
- false → 普通の反応
処理とデータが分離されるので、後から修正がとても楽になります。
9. 実際にやって感じたポイント
良かった点
- NPCが増えても管理が楽
- 修正がBlueprint1か所で済む
- ゲーム全体の見通しが良くなる
詰まった点
- 「配列」「Struct」の概念に慣れるまで時間がかかる
- どこで代入するかを間違えると null になる
👉 ただ、一度流れが分かると
「UE5ってこう考えるんだ」 と一気に理解が進みます。
まとめ
- NPCごとの情報は Structでまとめる
- 複数NPCは 配列で管理
- NPC自身には 自分用データを持たせる
- BeginPlayで紐づける
この形を作れると、
セリフ管理・行動分岐・事件システムなど、
一気にゲームらしい構造が組めるようになります。








