Unreal Engine 5|リスト(配列)を作ってNPCに紐づけるまでの手順まとめ

Unreal Engine 5 を触っていて、
「NPCごとに違う情報を持たせたい」
「セリフや行動パターンを管理したい」
と思ったときに避けて通れないのが リスト(配列) の考え方です。

今回は、実際に自分がやった工程をもとに、
UE5で「リストを作る → NPCに紐づける」までを、できるだけ噛み砕いてまとめます。

Blueprint完全初心者でも、
「なるほど、そういう流れか」と分かることを目標にしています。


1. 今回やりたかったこと

まず目的を明確にします。

  • NPCごとに
    • セリフ
    • 性格
    • 役割
    • 事件との関係
  • こうした情報を まとめて管理したい
  • NPC Blueprint に直接ベタ書きはしたくない

そのために
「リスト(配列)」+「NPCへの紐づけ」 という形を取ります。


2. UE5でいう「リスト(配列)」とは?

UE5(Blueprint)でのリストは、
同じ型のデータを複数まとめて持てる箱です。

例:

  • セリフのリスト
  • 名前のリスト
  • NPCデータのリスト

Blueprint上では Array(配列) と呼ばれます。


3. まずはNPC用のデータ構造を作る

いきなり配列を作る前に、
「NPC1人分の情報」をまとめる箱を作ります。

手順①:Struct(構造体)を作成

  1. コンテンツドロワーを右クリック
  2. Blueprints → Structure を選択
  3. 名前を付ける(例:NPC_Data

中に入れた項目(例)

  • 名前(String)
  • セリフ(String)
  • 役割(String)
  • 犯人かどうか(Bool)

👉 「NPC1人分の設計図」 を作るイメージです。


4. NPCデータのリスト(配列)を作る

次に、この NPC_Dataリスト化 します。

手順②:配列変数を作成

  1. 管理用の Blueprint(例:GameMode や Manager用BP)を開く
  2. 新しい変数を作成
  3. 型を NPC_Data に設定
  4. 配列(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でデータをセット

考え方はシンプルです。

  1. NPCがスポーンしたとき
  2. 管理側のNPCリストを見る
  3. 自分に対応するデータを取得
  4. 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で紐づける

この形を作れると、
セリフ管理・行動分岐・事件システムなど、
一気にゲームらしい構造が組めるようになります。

おすすめの記事