マクロ ライブラリを使用する

マクロ ライブラリ内のマクロは、アクタのヘルスおよびスケールを増やすために使用されます。

マクロ ライブラリ は、他のブループリントへノードとして配置可能なマクロのコレクションや自己完結型のグラフを保持するコンテナです。ブループリント マクロ ライブラリを使用すると、実行とデータ転送の両方の入出力を備えた、使用頻度の高いノードのシーケンスを格納できるため、時間を節約できます。

ブループリント マクロ ライブラリは、変数を含むことはできず、他のブループリントから継承することも、レベル内に配置することもできません。ブループリント マクロ ライブラリ内のマクロへの変更は、クライアントのブループリントが再コンパイルされるまで有効になりません。

マクロ ライブラリを作成する

この例では、2 つのマクロで構成されるマクロ ライブラリを作成します。そのうち 1 つは「Health」変数を追加し、もう 1 つはアクタのサイズを調整するために使用されます。

ここでは スターター コンテンツ を有効にした状態で

[Blueprint Third Person プロジェクト](understanding-the-basics\projects-templates\third-person-template)
を使います。

  1. コンテンツ ブラウザから、[Add (追加)] > [Blueprints (ブループリント)] > [Blueprint Macro Library (ブループリント マクロ ライブラリ)]

    (programming-and-scripting/blueprints-visual-scripting/UserGuide/Types/MacroLibrary).

    CreateMacroLib.png

  2. [Pick Parent Class (親クラスを選択)] で、[Actor]親クラス として選択します。

    CreateActor.png

  3. マクロ ライブラリの名前を入力し、ダブルクリック して開きます。

    RenameActor.png

  4. これによって [Blueprint Macro (ブループリント マクロ)] インターフェースが表示されます。

    MacroLibClass.png

"Scale Up" マクロを作成する

  1. [MyBluprint] ウィンドウに移動し、デフォルトのマクロを選択して F2 を押し、その名前を「ScaleUp」に変更します。

  2. [Details (詳細)] パネルで、 [Inputs (入力)] カテゴリに移動し、[Add (追加)] (+) ボタンをクリックして 2 つの新しい入力を作成します。最初の入力に「In」という名前を付けて Exec タイプに設定し、もう一方に「InActor」という名前を付けて Actor タイプに設定します。

    MacroDetails.png

  3. [Outputs (出力)] カテゴリに移動し、[Add] (+) ボタンをクリックして「Out」という名前の新しい入力を作成し、Exec タイプに設定します。

    Outputs.png

  4. ScaleUp マクロのグラフで、以下のブループリント スクリプトをコピーまたは再作成します。

Copy Node Graph

MacroLogic.png

このマクロが呼び出されると、 InActor として提供されるマクロが取得され、現在のスケールが 1.25 で乗算され、Target (InActor として指定されたアクタ) に New Scale 3D が設定されます。これで、このマクロを任意のマクロとともに使用できるようになりました。このマクロの使用により、スケールに影響を与えることができるようになりました。

"Add Health" マクロを作成する

  1. [MyBlueprint] ウィンドウから、AddHealth というマクロをさらに追加します。

    AddHealthMacro.png

  2. AddHealth[Details] パネルで、[Inputs] カテゴリに移動し、[Add] (+) ボタンをクリックして 2 つの新しい入力を作成します。最初の入力に「In」という名前を付けて Exec タイプに設定し、もう一方に「GetHealth」という名前を付けて float タイプに設定します。

    AddHealthInputDetails.png

  3. [Outputs] カテゴリに移動し、[Add] (+) ボタンをクリックして 2 つの新しい入力を作成します。最初の入力に「Out」という名前を付けて Exec タイプに設定し、もう一方に「SetHealth」という名前を付けて float タイプに設定します。

    AddHealthOutputDetails.png

    上記では GetHealth という float 値を取り込んでいますが、これは SetHealth 出力ノードに渡す前に追加します。

  4. AddHealth マクロのグラフ内に以下のようなノード ネットワークを再度作成します。

Copy Node Graph

AddHealthLogic.png

上記では、SetHealth に結果の値を出力する前に GetHealth として与えられる float 値に 50 を加算しています。

  1. マクロ ライブラリを 保存 して閉じます。

  2. Content/ThirdPerson/Blueprints」フォルダ内の BP_ThirdPersonCharacter ブループリントを開きます。

    ThirdPersonCharacter.png

  3. [MyBlueprint] ウィンドウで [Variables] カテゴリに移動し、Add (+) をクリックして新しい Float 変数を作成し、「Health」という名前を付けて [Compile (コンパイル)] をクリックします。

    AddVariable.png

  4. 以下のイベント グラフで、ブループリント スクリプトをコピーまたは再作成します。

    次のロジックでは、Q が押されるたびに AddHealth マクロを呼び出し、Health 変数を取り込んでいます (ヘルスを増やすマクロ スクリプトを実行しています)。また、これを画面に出力する前に、出力ピン SetHealth を使用して更新しています。次に、 E を使用して Health が 100 よりも大きいかどうかをチェックしてから、ScaleUp マクロをアクタ Self (ThirdPersonCharacter) に対して呼び出しています。

    Copy Node Graph

    EventGraph.png

  5. エディタで コンパイル して 再生 します。

最終結果

EndResult.GIF

上のビデオでは、ScaleUp マクロを呼び出すために E キーを押しています。ブループリント ロジックは最初にデフォルト値が 0 に設定されている ヘルス 値をチェックします。次に Q を押して AddHealth マクロを呼び出して Health 変数を 50 増やします。キーを何度か押すと、キャラクターのヘルスとスケールの両方の値が増加することが分かります。これらのマクロは、Health および Target アクタの入力が与えられている場合、他のどのブループリントからも呼び出すことができます。

マクロを作成する

マクロ は実質上、折り畳まれたグラフのノードと同じです。マクロ は、基本的にノードの折りたたまれたグラフと同じものです。トンネル ノードによって指定される入口ポイントと出口ポイントがあります。トンネルは、それぞれ任意の数の実行ピンまたはデータ ピンを持つことができます。こうしたピンは別のブループリントやグラフでの使用時にマクロ ノードに表示されます。

マクロ作成の例については、「マクロを作成する」を参照してください。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル