3 - キーと値を Map に追加する

キー / 値のペアを Blueprint Map に追加して、最終的に Map のキーおよび関連づいている値を表示する

Windows
MacOS
Linux

前のステップでは TextRender アクタが Blueprint Map の関連付けられた値を表示するように定義をしました。 このステップでは、キー / 値のペアを Map に 追加 して、 Map のキーと関連付けられた値を結果として表示する方法を説明します。

  1. プロジェクトの コンテンツ ブラウザ から Display Map TextRender アクタをダブルクリックして、ブループリント イベントグラフ を開きます。

    クリックしてフルサイズで表示

  2. Display Map TextRender アクタのブループリント イベントグラフ が表示されます。ここで、新しくキー / 値のペアを 追加 して、最終的に Map のキーと関連付けられた値を ビューポート に表示します。

    クリックしてフルサイズで表示

  3. ここで、これから使う Add 演算用に Blueprint Map コンテナを新規作成する必要があります。Instruction Map 変数を右クリックしてドロップダウン リストから [Duplicate] を選択し、新規の Blueprint Map 変数を作成し、「Weapon Inventory Map」と名前を付けます。

    Step3_3.png

  4. 新規作成した Map コンテナが以下のプロパティと一致するようにしてください。キーは String 型、値は Integer 型です

    Step3_4.png

    説明のため、武器名をキー、その武器が使用できる銃弾数を値にして、Weapon Inventory Blueprint Map コンテナを作成します。

  5. その Blueprint Map を選択すると「Please compile the blueprint(ブループリントをコンパイルしてください)」という [Default Value] メッセージが表示されます。

    クリックしてフルサイズで表示

  6. [Compile] ボタンをクリックします。

    クリックしてフルサイズで表示

  7. ブループリントのコンパイルを完了すると Default Value メッセージが消えて今度はデフォルトのキー / 値のペアが表示されます。

    クリックしてフルサイズで表示

  8. ここでエディタは以下の警告も出します。

    クリックしてフルサイズで表示

    キーと値のプロパティがそれぞれ Integer-String 型の Blueprint マップである Weapon Inventory Map を作成するために、キーと値のプロパティがそれぞれ Integer-String 型の Blueprint マップを複製したため、UE4 がこの警告を出しました。 複製中、エンジンは、Weapon Inventory Map のキー / 値のペアへそれらをコピーしようとして、Instruction Map に属するキー / 値のペアをパースし、それが警告の原因のビヘイビアとなりました。

    クリックしてフルサイズで表示

  9. 次のキー / 値のペアを Weapon Inventory Map コンテナに入力します。

    Step3_9.png

  10. [Compile] ボタンをクリックします。

    クリックしてフルサイズで表示

  11. Weapon Inventory Map コンテナにキー / 値のペアを正しく入力し、新しい Blueprint マップのキー / 値のプロパティ要件を満たすと、警告が消えます。

    クリックしてフルサイズで表示

  12. 新規ロジックを既存のブループリント イベントグラフに追加する前に、Weapon Inventory Map 変数をブループリントにドラッグします。

    クリックしてフルサイズで表示

ロジックのスクリプト処理

  1. 新規ロジックをビルドするには、Weapon Inventory Map ノードを引き出して Map Utilities インターフェースから Keys ノードを追加します。

    クリックしてフルサイズで表示

    Keys ノードは、Weapon Inventory Map に存在するすべてのキーの Array を出力します。

  2. Keys ノードに属する To Array 出力を引き出して ForEachLoop ノードを探して追加します。

    クリックしてフルサイズで表示

  3. ForEachLoop ノードに属する Array Element ピンを引き出して Print String ノードを探して追加します。

    クリックしてフルサイズで表示

  4. ブループリント グラフ内を右クリックして コンテキスト メニュー を開き、Event ActorBeginOverlap を探して追加します。

    クリックしてフルサイズで表示

  5. Event ActorBeginOverlap ノードから Other Actor ピンを引き出して、Cast To FirstPersonProjectile ノードを探して追加します。

    クリックしてフルサイズで表示

  6. Cast To FirstPersonProjectile ノードを Keys ノードに接続します。

    クリックしてフルサイズで表示

マップのキーを表示する

この時点で Play in Editor (PIE) モードになっていると、Display Map Text Render Actor のコリジョン ボックスへ発射物を発砲し、Weapon Inventory Map に含まれるキーの Array を表示することができます。

クリックしてフルサイズで表示

スクリプト処理を終了する

  1. いよいよキー / 値のペアをコンテナに追加します。Weapon Inventory Map 変数をブループリントにドラッグします。

    クリックしてフルサイズで表示

  2. Weapon Inventory Map 変数を引き出して、Map Utilities インターフェースから Add ノードを追加します。

    クリックしてフルサイズで表示

  3. ここで追加したいキー / 値のペアを定義します。キーを Weapon 6、値を 60 に定義します。

    クリックしてフルサイズで表示

  4. Add ノードの Boolean Return Value ピンを引き出して、Branch ノードを探して追加します。

    クリックしてフルサイズで表示

  5. 追加したキーを表示する表示ロジックを設定する前に、Weapon Inventory Map 変数をブループリントにドラッグする必要があります。

    クリックしてフルサイズで表示

  6. Weapon Inventory Map 変数を引き出して、Map Utilities インターフェースから Keys ノードを追加します。

    クリックしてフルサイズで表示

  7. Keys ノードに属する To Array 出力を引き出して ForEachLoop ノードを探して追加します。

    クリックしてフルサイズで表示

  8. ForEachLoop ノードに属する Array Element ピンを引き出して Print String ノードを探して追加します。

    クリックしてフルサイズで表示

  9. [Text Color] ボックスをクリックして [Color Picker] メニューを開きます。

    クリックしてフルサイズで表示

  10. 色を以下の値に設定します。

    Step3_28.png

  11. 追加した値を表示する表示ロジックも設定しますが、やはりその前に Weapon Inventory Map 変数をブループリントにドラッグする必要があります。

    クリックしてフルサイズで表示

  12. Weapon Inventory Map 変数を引き出して、Map Utilities インターフェースから Values ノードを追加します。

    クリックしてフルサイズで表示

  13. Values ノードに属する To Array 出力を引き出して ForEachLoop ノードを探して追加します。

    クリックしてフルサイズで表示

  14. ForEachLoop ノードに属する Execute Output ピンを引き出して Print String ノードを探して追加します。

    クリックしてフルサイズで表示

  15. ForEachLoop ノードに属する Array Element ピンを引き出して Print String ノードに属する In String に接続します。

    クリックしてフルサイズで表示

  16. [Text Color] ボックスをクリックして [Color Picker] メニューを開きます。

    クリックしてフルサイズで表示

  17. 色を以下の値に設定します。

    Step3_35.png

  18. Branch ノードの True ピンを Keys に接続します。

    クリックしてフルサイズで表示

  19. 次に Branch ノードの False ピンを Values に接続します。

    クリックしてフルサイズで表示

  20. Cast To FirstPersonProjectile ノードの Cast Failed ピンを Add ノードに接続すれば、スクリプトのロジックが完成します。

    クリックしてフルサイズで表示

  21. 完成したスクリプトを確認したら、[Compile] ボタンをクリックします。

    クリックしてフルサイズで表示

  22. 最後に、完成したスクリプト全体を確認したら、エディタの Viewport インターフェースに戻る前に [Save] ボタンをクリックします。

    クリックしてフルサイズで表示

  23. エディタの Viewport インターフェースで、[Play] ボタンをクリックして更新されたスクリプトの動きを確認します。

    クリックしてフルサイズで表示

結果

動画を見ると分かりますが、First Person ProjectileDisplay Set TextRender Actor のコリジョン ボックスに発射されると、元の 5 つのキーが Viewport に出力されます。 コリジョン ボックスを通り抜ける時に、キーが追加され、その後で出力されます。コリジョン ボックスを後ろに動かす前に、もう 1 回 First Person Projectile を発射して、 キーが新しく追加されたか確認します。2 回目にコリジョン ボックスを通り抜ける時、すべての値の出力が確認できます。

タグ

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信