Language:
Page Info
Tags:
Skill Level:
Engine Version:

3 - Blueprint Set の Intersection を実行する

前のステップでは TextRender アクタが Blueprint Set のコンテンツを表示するように定義をしました。 このステップでは、2 つの Blueprint Set の Intersection を実行し、 ゲームの Viewport に その Intersection の結果を出力します。

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

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

  2. Display Set TextRender アクタのブループリント イベントグラフ が表示されます。ここで、既存の Instruction Set を使って新規の Blueprint Set を Intersect に追加して、最後に Resultant Set を ビューポート に表示します。

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

  3. ここで、これから使う Intersection 用に Blueprint Set コンテナをいくつか作成する必要があります。Instruction Set 変数を右クリックしてドロップダウン リストから [Duplicate] を選択し、新規の Blueprint Set 変数を 2 つ作成して、それぞれに「Shorter Instruction Set」と「Resultant Instruction Set」と名前を付けます。

    Step3_3.png

    2 つの Set (一般的に) で Intersection を実行すると、2 つの Set に共通するアイテムのみが含まる Resultant Set が発生します。

  4. 今、既存の Instruction Set 変数から複製した、新しい Blueprint Set 変数が 2 つあります。新しい Blueprints Set のいずれか (例えば Resultant Instruction Set) を選択すると、「Please compile the blueprint(ブループリントをコンパイルしてください)」という Default Value メッセージが可視化されます。

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

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

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

  6. ブループリントのコンパイルを完了すると Default Value メッセージが消えて、既存エレメントが表示されます。ご存じのように、この 2 つの新しい変数は、既存の Instruction Set 変数を複製して作成されたので、複製元の Blueprint Set に入っていたエレメントが新規に作成されたコンテナに複製されています。

    Step3_6.png

    既存変数を複製せずに新規変数の作成ができることに注目してください。

  7. Resultant Instruction Set をクリアするには、[Default Value] メニューにある Removes all items ボタンをクリックします。

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

  8. Shorter Instruction Set からアイテム (またはエレメント) をクリアします。

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

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

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

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

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

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

  2. Instruction Set ノードを Intersection ノードに接続します。

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

  3. ブループリント グラフ内を右クリックして コンテキスト メニュー を開き、Event ActorBeginOverlap の検索と追加を行います。

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

  4. Event ActorBeginOverlap ノードから Other Actor ピンを引き出して、Cast To FirstPersonProjectile ノードの検索と追加を行います。

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

  5. Cast To FirstPersonProjectile ノードを Intersection ノードに接続します。

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

    基本的に、First Person Projectile がこのアクタのコリジョン ボックスと問題なく衝突すれば Intersection ノードを呼び出すことになります。

  6. Intersection ノードが Shorter Instruction SetInstruction Set 上で演算を実行した後、その結果を Resultant Instruction Set コンテナに格納します。Intersection ノードを引き出して Set Resultant Instruction Set を追加します。

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

  7. Set Resultant Instruction Set ノードを引き出して Set Utilities インターフェースから To Array ノードを追加します。

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

  8. Array のエレメントでイタレートするためには、To Array ノードを引き出して ForEachLoop ノードに追加します。

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

  9. To Array ノードForEachLoop ノードを接続します。

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

  10. これで、Intersection の結果を Viewport に出力することができます。ForEachLoop ノードの Array Element ピンを引き出して、Print String ノードの検索と追加を行います。

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

  11. ForEachLoop ノードを Print String ノードに接続します。

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

  12. この段階で Resultant Instruction Set に何を入れるか決めることができます。例えば、Resultant Instruction Set 変数に ClickLeftMouseButton のみを含むようにしてみましょう。まず最初に、紙で Intersection を実行してみます。

    Instruction Set

    Shorter Instruction Set

    Resultant Instruction Set (A ∩ B)

    Click

    Click

    Click

    the

    Left

    Left

    Left

    Mouse

    Mouse

    Mouse

    Button

    Button

    Button

    and

    Fire

    たった今行った紙面での実行で分かるように、Instruction SetShorter Instruction Set の両方に共通したアイテムは Resultant Set コンテナに格納されます。ロジック演算を Set で実行する場合のぐっとプラクティスは、まず演算を紙 (またはホワイトボード) に書き出してみてから、ブループリント グラフでロジックのスクリプト処理をすることです。

  13. Shorter Instruction Set コンテナに格納するアイテムを決めたら、Shorter Instruction Set を選択してコンテナのコンテンツを調べます。

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

    画像の黄色枠を見ると分かりますが、Shorter Instruction Set は現在空です。この状態で Instruction Set を使って Shorter Instruction Set を実行すると Resultant Instruction Set コンテナは空になります。

  14. 次のエレメントを Shorter Instruction Set コンテナに入力します。

    Step3_22.png

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

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

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

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

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

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

結果

動画を見ると分かりますが、First Person Projectile が Display Set コリジョン ボックスと衝突すると、Resultant Instruction Set のコンテンツが Viewport に出力されます。 出力されたアイテムを見ると Resultant Instruction Set の中にあるアイテムの順序は予測できません。これは Blueprint Set の属性です。次のステップで、 2 つの Blueprint Set で**Union** を実行する方法を説明します。

Tags