
Unreal Engine 4 の Blueprint Application Programming Interface (API) には Map コンテナ タイプがあります。Array と Set と非常によくにて、Blueprint Map もゲーム開発において様々な用途があります。 コンテナという用語を知らない場合、アイテムにラベル付けをして、すぐに (または後で) 使うために入れて置くストレージ ボックスだと考えてください。Array を使って格納してアイテムのコレクションを使って作業したことがあれば、UE4 の Blueprint コンテナをすでに使い始めています。例えば、Array を使って後で使うアイテムを格納する場合、そのアイテムのラベルは配列内の位置になります。 Map は、アイテムがコンテナ内のどこにあるかを示すためにラベルを使用するという点で Array に似ていますが、Map のラベルは Array に使用されるラベルとは異なります。Array を使う場合、ラベルはコンテナのアイテムのシーケンス インデックスですが、Map を使用する場合、ラベルはコンテナ内のアイテムに関連付けられているキーです。コンテナ内のアイテムをそれぞれのキーに関連付ける機能があるため、開発者はキーを使用してアイテムを効率的に検索および取得して、マップをクリエイティブな方法で利用できます。
本ページでは、Blueprint Map の作成および編集方法を学習します。プロジェクトで Map の最大限の活用に役立てるために、Map のプロパティについても説明します。
説明のため、Blank Blueprint Project (強調表示された設定で) を使ってBlueprint Map の作成および編集方法の説明を行います。
クリックしてフルサイズで表示。
Map の作成
Blueprint Map を新規作成するには、以下の操作を行います。
-
作業用 Blueprint クラスがまだない場合は、Blueprint クラスをプロジェクトに 追加 してください。
クリックしてフルサイズで表示。
-
[Pick Parent Class (親クラスを選択)] メニューに表示されているクラスリストから [Actor] を選択します。
-
Actor クラスに名前を付けたら、コンテンツ ブラウザ 内でそのアクタをダブルクリックして開きます。
クリックしてフルサイズで表示。
-
そのアクタのブループリント スクリプトの編集を始めるために [Event Graph] タブを選択します。
クリックしてフルサイズで表示。
-
アクタの Event Graph を開いたら、[Variables (変数)] サブメニュー上にカーソルをあてて [+ Variable] ボタンを表示させます。
クリックしてフルサイズで表示。
-
次に String 変数を作成し、
MyStringIntegerMap
と名前を付けます。クリックしてフルサイズで表示。
変数名はやや杓子定規的な感じがしますが、変数名の
MyStringIntegerMap
の場合、Map が Integer 型の値と関連付けられた String 型キーを持つことを説明している点に注目する価値はあります。 -
いま、
MyStringIntegerMap
は単一の String 変数の状態です。MyStringIntegerMap
を Map コンテナに変換するには、アクタの [Details (詳細)] パネルの Variable Type ラベルの右側にある [Variable Type (変数タイプ)] ボタンをクリックします。クリックしてフルサイズで表示。
-
ここでドロップダウン メニューの中に 4 つのコンテナ オプションが表示されます。次のオプションを選択して
MyStringIntegerMap
を Blueprint Map に変換します。
MyStringIntegerMap
の Variable Type を見て、Map のキーは String、値は Integer であることを確認してください。

Map の編集
新規作成された Map を編集する前に、Map 変数コンテナをカプセル化するブループリントをコンパイルしなければなりません。
クリックしてフルサイズで表示。
-
MyStringIntegerMap
を編集するには、ブループリントの [Compile] ボタンをクリックします。クリックしてフルサイズで表示。
-
ブループリントをコンパイルすると、Map の [Default Value (デフォルト値)] ([Details (詳細)] パネル内) に
MyStringIntegerMap
が空であることが表示されます。クリックしてフルサイズで表示。
-
キー/ 値のペアを
MyStringIntegerMap
に追加するには、[Details (詳細)] パネルの [Default Value (デフォルト値)] メニューの [0 Map elements] の横にある[+] ボタンをクリックします。

-
[+] ボタンをもう一度押してください。
キー / 値のペアのデフォルト キーを更新せずにキーを Blueprint Map に追加しようとすると、Unreal Editor が警告を出します。
-
以下の画像と同じになるように、値 / キーのペアを 3 つ
MyStringIntegerMap
に追加します。 -
さらにキー/ 値のペアをもう 1 つ追加して、名前を
Banana
と付けます。重複したキーを Blueprint Map に追加しようとすると、Unreal Editor が警告を出します。値の重複が許されても、キーは重複できません。
-
上記の警告を念頭に置いて、4 つ目のキーに
Date
という名前を付けて、値を 2 に設定してください。

これで 4 つ目のキー / 値を追加および編集した Blueprint Map が新規作成されました。
コンテナのプロパティ
UE4 で Blueprint Map コンテナを使って作業を開始する場合は、以下のプロパティ一覧を参照してください。
- Map のキーはユニークでなければなりません。
- Map のすべてのキーは定義 (初期化) されていなければなりません。
- 現在、Blueprint Map では、キー / 値のペアは 1 つだけしかサポートしていません。
- Map 内で関連づけられたキーを使った値のの追加、削除、検索は高速演算です。
- 現在、Map 値は変更不可能です。つまり、作成後の変更は不可能です。
- キー型は値型とは異なる場合がありますが、Map 内のすべてのキーと値は同じ (同じ型) です。別の言い方をすると、特定の Map のキーが Integer 型に指定された値をもつ String 型と指定された場合、後続のすべてのキーは String 型になり、後続のすべての値は Integer になります。
本ページではブループリントでの Map の作成および編集方法を学習しました。Blueprint Map ノード インターフェースの詳細は、「Blueprint Map ノード」リファレンス ガイドを参照してください。