インベントリを作ろうとして、Item1・Item2・Item3 という変数を並べる。敵を管理しようとして、Enemy1・Enemy2 を作る。数が増えるたびに変数とノードが増えていき、10体目でつらくなります。
こういうときに使うのが コンテナ です。Blueprintには Array・Set・Map の3種類があり、どれも「 同じ型の値をまとめて持つ」ための入れ物です。3つの違いは、 順番を持つか・重複を許すか・キーで引けるか の3点だけです。この記事では、3つの使い分けと主要なノード、そして初心者がほぼ必ず踏む「ループ中に配列をいじる」問題までを解説します。
この記事でわかること
- Array=順番がある / Set=重複しない / Map=キーで引く
- コンテナは変数の型の右にある 切り替えボタン で選ぶ
- Arrayの主要ノードと、 Index out of bounds の直し方
- ループ中に配列を書き換えてはいけない 理由
- 実践: アイテムIDと所持数をMapで管理するインベントリ
目次
Sponsored
3つのコンテナの違い
3つとも「複数の値を持つ」点は同じです。違うのは できる質問 です。
| コンテナ | 持ち方 | 得意な質問 | 苦手なこと |
|---|---|---|---|
| Array(配列) | 順番に並べる。重複OK | 「3番目は何?」「全部で何個?」 | 「これを持っているか」を大量の要素から探すのは遅い |
| Set(集合) | 重複なし。順番なし | 「これを持っているか?」 | 「3番目」が存在しない |
| Map(辞書) | キーと値のペア。順番なし | 「このキーの値は?」 | 同じキーを2つ持てない |

ゲームの例に置き換えると、選び方はかなりはっきりします。
- Array: 拾った順のログ、パーティの並び、ウェイ ポイントの巡回順。 順番そのものが意味を持つ もの
- Set: 一度取ったアイテムのID、解放済みのステージ、図鑑の登録済みモンスター。 同じものを二重に登録したくない もの
- Map: アイテムID → 所持数、プレイヤー名 → スコア、キー名 → 設定値。 何かを手がかりに引きたい もの
迷ったら、まず 「番号で並べたいのか、名前で引きたいのか」 を自分に聞いてみてください。番号ならArray、名前ならMap、どちらでもなく「持っているかだけ知りたい」ならSetです。
コンテナは型の右で切り替える
Blueprintでは、コンテナは 専用の型ではなく、既存の型の「持ち方」 として指定します。
My Blueprintパネルで変数を作ると、詳細パネルに Variable Type の欄があります。型を選ぶドロップダウンの 右側に小さなボタン があり、ここで4つから選べます。
| 表示 | 意味 |
|---|---|
| Single Variable | 普通の変数(1個) |
| Array | 配列 |
| Set | 集合 |
| Map | 辞書。選ぶと 値側の型を選ぶ欄がもう1つ増える |
