Choose your operating system:
Windows
macOS
Linux
マクロ は実質上、折り畳まれたグラフのノードと同じです。マクロには、トンネル ノードで指定される入口ポイントと出口ポイントがあります。トンネルは、それぞれ任意の数の実行ピンまたはデータピンを持つことができます。こうしたピンは別のブループリントやグラフで使用されるとマクロノード上で見ることができます。
マクロを作成する
この例では、プレイヤー キャラクターがジャンプするのに十分なエネルギーを持っているかをチェックするために使用する マクロ を作成します。ジャンプするのに十分なエネルギーを持っていれば、プレイヤーからエネルギーを差し引き、その現在値を画面に出力し、ジャンプを許可します。十分なエネルギーがなければ、エネルギー不足である旨を画面に出力し、ジャンプさせないようにします。
ここでは スターター コンテンツ を有効にした状態で Blueprint Third Person Project を使います。
「Content/ThirdPersonBP/Blueprints 」フォルダで ThirdPersonCharacter ブループリントを開きます。
[My Blueprint] ウィンドウで、 [Add Macro (マクロ追加)] ボタンをクリックします。
新しいマクロが作成されます。それを選択して F2 を押して名前を 「EnergyCheck」 に変更します。
マクロを選択した状態で [Details (詳細)] パネルで、[New] ボタンをクリックして、入力を 1 つと出力を 2 つ作成します。
これで、マクロ ノードの入出力ノードが作成されました。入出力ノードは、マクロのデータの受け渡しに利用できます。
[Inputs] のテキスト ボックスに 「BeginCheck」 という名前を入力し、その型を Exec (実行可能ピン) に変更します。
[Outpus] については、ひとつは 「HasEnergy」、もうひとつは 「NoEnergy」 と名前を付けて、両方とも Exec 型にします。
入力については、BeginCheck と呼ばれる実行ピンを使用してマクロを開始します。プレイヤーがジャンプするのに十分なエネルギーを持っているかをチェックするスクリプトを作成します (十分なエネルギーを持っていれば、 HasEnergy ピンに接続します)。十分なエネルギーを持っていなければ、 NoEnergy ピンに接続します。このマクロを実装すると、HasEnergy ピンは Jump コマンドに送られます。NoEnergy ピンは送られません。
[MyBlueprint] ウィンドウ内で、 [Add Variable (変数を追加)] ボタンをクリックします。
変数に 「Energy」 と名前を付け、Float 型に変更し、ツールバーから [Compile] をクリックし、その値を 100 に設定します。
これで、100 に初期化されたプレイヤーのエネルギーの変数が用意できました。
Inputs の隣のグラフで、B キーを押したまま、左クリック して、Branch ノードを作成します。
Ctrl を押したまま、 [My Blueprint] ウィンドウから Energy をグラフにドラッグして、それを > ノードに接続し、Branch に接続します。
ここでは、Branch を使用して、エネルギーが > 0 であるかを判定し、 > 0 であれば True が実行されます。そうでなければ False が実行されます。
Alt を押しながら Energy 変数をドラッグして Set ノードを追加します。
Ctrl を押しながら Energy を再度ドラッグして、それを - ノードに接続して 10 に設定し、Set ノードに接続します。
このスクリプトは、エネルギーが > 0 であれば現在のエネルギー値から 10 を差し引くことを表しています。
グラフを 右クリック して Print String ノードを追加し、 Energy を In String ピン に接続します。
Conversion ノードを追加します。これは、エネルギー値を画面に出力する文字列に変換し、その値を表示します。
Branch の False ピンから、Print String を追加し、ボックスに 「Out of Energy!」 というテキストを入力します。
両方の Print String ノードを HasEnergy ピンと NoEnergy ピンに接続します。
これで、マクロは Energy 変数をチェックする (該当する場合はエネルギー変数から差し引く) ようにセットアップされ、プレイヤーが十分なエネルギーを持っているか否かを出力します。これはプレイヤーがジャンプできるか否かを判定するために使用されます。このマクロをジャンプ実行前の Jump キーを押した後に実装する必要があります。
EventGraph で、InputAction Jump の Pressed ピンをドラッグし、 EnergyCheck を検索します。
作成したマクロが Utilities の下に一覧表示され、その名前の隣にマクロ アイコンがあるのがわかります。
マクロを追加したら、このジャンプ スクリプトは以下のようになるはずです。
[Compile (コンパイル)] ボタンと [Save (保存)] ボタンをクリックし、ブループリントを閉じます。
メインツールバーで [Play] ボタンをクリックして、エディタで再生します。
ジャンプするために スペースバー を押すと、Energy の値が画面の左上隅に出力されます。Energy が 0 だと、もうジャンプできません。
これは、マクロを使用して、スクリプトを実行し、統合して単一ノードにし、イベント グラフとメイン キャラクターのスクリプトの可読性を向上させる基本的な例です。さらに、このマクロを他のインスタンスでも呼び出すことができます。例えば、プレイヤーのエネルギーを減らす他のアクションがあって、そのアクション (例、攻撃) を行うのに十分なエネルギーを持っているかをチェックしたい場合があるとします。このマクロを実行して、Attack キーを押した後に、プレイヤーが十分なエネルギーを持っているかをチェックし、 HasEnergy 実行ピンから攻撃を実行することができます。