マクロは基本的にノードの折りたたみグラフと同じです。 トンネル ノードによって指定される入口ポイントと出口ポイントがあります。 トンネルは、それぞれ任意の数の実行ピンまたはデータ ピンを持つことができます。こうしたピンは別のブループリントやグラフでの使用時にマクロ ノードに表示されます。
マクロを作成する
このチュートリアルでは、キャラクターがジャンプするのに十分なエネルギーを持っているかをチェックするマクロを作成します。 十分なエネルギーを持っていれば、マクロはプレイヤーからエネルギーを消耗させ、その現在値を画面に出力し、jump 関数を呼び出します。 十分なエネルギーがなければ、マクロはエネルギー不足である旨、画面に出力し、ジャンプさせないようにします。
この例では、スターターコンテンツが有効になったブループリント三人称プロジェクトを使用します。
プロジェクトを作成して起動したら、「
Content/ThirdPerson/Blueprints」フォルダーに移動して、BP_ThirdPersonCharacter ブループリントを開きます。[マイ ブループリント] ウィンドウに移動して、[マクロの追加] ボタンをクリックします。
新しいマクロが作成されます。それを選択して F2 キーを押して名前を「EnergyCheck」に変更します。
マクロを選択した状態で、[詳細] > [入力] に移動し、[追加 (+)] をクリックして「BeginCheck」という名前の新しい入力を作成して、その型を「Exec** (実行ピン)」に変更します。
[詳細] > [出力] に移動し、[追加 (+)] をクリックして 2 つの新しい出力を作成します。 「HasEnergy」と「NoEnergy」という名前を付けて、Exec ピン タイプを設定します。
これで、マクロ ノードの入出力ノードが作成されます。この入出力ノードは、マクロのデータの受け渡しに利用できます。
入力については、BeginCheck と呼ばれる実行ピンを使用してマクロを開始します。 次に、プレイヤーがジャンプするのに十分なエネルギーを持っているかどうかをチェックするスクリプトを作成します。十分なエネルギーを持っていれば、HasEnergy ピンを実行します。 十分なエネルギーを持っていなければ、NoEnergy ピンを実行します。
[マイ ブループリント] ウィンドウで、[変数の追加] ボタンをクリックして、「Energy」という名前の新しい float 変数を作成します。
ツールバーで [コンパイル] をクリックし、[エネルギー] を選択して、[詳細] パネルに移動して、その値を「100」に設定します。
Energy グラフで、B キーを押しながら左クリックして、Branch ノードを作成します。
Blueprintcontext_graphCtrl を押したまま、[マイ ブループリント] タブから Energy float 変数をマクロ グラフにドラッグし、出力ピンをクリックしてドラッグし、Greater 演算子ノードを検索して、出力ピンを Branch ノードに接続します。
Alt を押したまま、Energy 変数をドラッグして、Set ノードを追加します。
Ctrl キーを押しながら再び Energy にドラッグして、Subtact (-) ノードに接続し、「10」に設定して Set ノードに接続します。 このスクリプトは、エネルギーが > 0 であれば現在のエネルギー値から 10 を差し引くことを定義しています。
グラフ内を右クリックして Print String ノードを追加し、Set Energy ノードをIn String ピンに接続します。
Conversion ノードが追加され、エネルギー値を画面に出力する文字列に変換してその値を表示します。
Branch の False ピンから、別の Print String ノードを追加し、「Out of Energy!」というテキストを入力します。 続いて、1 つ目と 2 つ目の Print String ノードをそれぞれ HasEnergy ピンと NoEnergy ピンに接続します。
Blueprintcontext_graphこれで、Energy 変数をチェック (該当する場合は減算) するように設定されました。また、プレイヤーが十分なエネルギーを持っているかどうかを出力します。これは、プレイヤーがジャンプできるかどうかを判定するのに使用されます。 Jump キーを押した後でジャンプ アクション実行前に、このマクロを実装する必要があります。
EventGraph で、InputAction Jump ノードの Pressed ピンをドラッグし、EnergyCheck を検索します。
作成したマクロが Utilities に表示され、その名前の横にマクロ アイコンがあります。
マクロを追加したら、このジャンプ スクリプトは以下のようになるはずです。
[コンパイル] ボタンと [保存] ボタンをクリックし、ブループリントを閉じます。
エディタのメイン ツールバーで [プレイ] をクリックします。
ジャンプするためにスペース キーを押すと、画面の左上隅にエネルギーの値が画面に出力されます。 エネルギーが 0 になるとジャンプできなくなります
最終結果
これは、マクロを使用して、スクリプトを実行し、統合して単一ノードにし、イベント グラフとメイン キャラクターのスクリプトの可読性を向上させる基本的な例です。 さらに、このマクロを他のインスタンスで呼び出すこともできます。 たとえば、プレイヤーのエネルギーを減らす他のアクションがある場合、そのアクション (アタックなど) を実行するのに十分なエネルギーを持っているかどうかをチェックしたい場合、このマクロを実行して、[アタック] キーを押して、プレイヤーが HasEnergy 実行ピンからアタックするのに十分なエネルギーを持っているかどうかを確認できます。