マクロを作成する

マクロは、プレイヤーがジャンプするのに十分なエネルギーを持っているかどうかを確認するために使用します。

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

マクロを作成する

このチュートリアルでは、キャラクターがジャンプするのに十分なエネルギーを持っているかをチェックする マクロ を作成します。十分なエネルギーを持っていれば、マクロはプレイヤーからエネルギーを消耗させ、その現在値を画面に出力し、jump 関数を呼び出します。十分なエネルギーがなければ、マクロはエネルギー不足である旨、画面に出力し、ジャンプさせないようにします。

ここでは スターター コンテンツ を有効にした状態で Blueprint Third Person プロジェクト を使います。

  1. プロジェクトを 作成 して 起動 した後、「Content/ThirdPerson/Blueprints」フォルダに移動し、BP_ThirdPersonCharacter ブループリントを開きます。

    BP_ThirdPersonCharacter.png

  2. [My Blueprint (マイ ブループリント)] ウィンドウに移動して、マクロ追加 ボタンをクリックします。

    MacrosAdd.png

  3. 新しいマクロが作成されます。それを選択して F2 を押して EnergyCheck に名前を変更します。

    EnergyCheck.png

  4. マクロを選択して、[Details (詳細)] > [Inputs (入力)] に移動し、[Add (追加) (+)] をクリックして BeginCheck という名前の新しい 入力 を作成してから、そのタイプを Exec (実行ピン) に変更します。

    BeginCheck.png

  5. [Details] > [Outputs (出力)] に移動し、[Add (+)] をクリックして 2 つの新しい出力を作成します。1 つを HasEnergy、もう 1 つを NoEnergy と名前を付け、Exec 型のピンを設定します。

    HasEnergy.png

    これで、マクロ ノードの入出力ノードが作成されます。この入出力ノードは、マクロのデータの受け渡しに利用できます。

    入力については、BeginCheck と呼ばれる実行ピンを使用してマクロを開始します。次に、プレイヤーがジャンプするのに十分なエネルギーを持っているかをチェックするスクリプトを作成します。十分なエネルギーを持っていれば、HasEnergy ピンを実行します。十分なエネルギーを持っていなければ、NoEnergy ピンを実行します。

  6. [My Blueprint (マイブループリント)] ウィンドウで、[Add Variable (変数を追加)] ボタンをクリックし、Energy という名前の新しい浮動小数変数を作成します。

    EnergyFloat.png

  7. ツールバーで コンパイル して、Energy を選択し、[Details] パネルに移動して、その値を「100」に設定します。

    CompileSave.png

  8. Energy グラフで B キーを押しながら 左クリック して、Branch ノードを作成します。

    Copy Node Graph

    Branch.png

  9. Ctrl を押しながら Energy 浮動小数変数を [My Blueprint] タブからマクロ グラフにドラッグし、出力ピンをクリックしてドラッグし、Greater 演算子ノードを検索してから、出力ピンを Branch に接続します。

    Copy Node Graph

    GreaterOperator.png .png)

    この画像では、Branch を使用して、エネルギーが > 0 であるかを判定し、> 0 であれば True が実行されます。そうでなければ False が実行されます。

  10. Alt を押しながら Energy 変数をドラッグして Set ノードを追加します。

    Copy Node Graph

    SetEnergy.png

  11. Ctrl を押しながら Energy に再度ドラッグして、それを Subtact(-) ノードに接続して 10 に設定し、Set ノードに差し込みます。

    Copy Node Graph

    SubtractNode.png

    このスクリプトは、エネルギーが > 0 であれば現在のエネルギー値から 10 を差し引くことを定義しています。

  12. グラフを 右クリック して Print String ノードを追加し、Set EnergyIn String ピンに接続します。

    Copy Node Graph

    PrintString.png

    Conversion ノードを追加します。これは、エネルギー値を画面に出力する文字列に変換し、その値を表示します。

  13. BranchFalse ピンから、別の Print String ノードを追加し、ボックスに「Out of Energy!」というテキストを入力します。次に、1 番目と 2 番目の Print String ノードを HasEnergy ピンと NoEnergy ピンにそれぞれ接続します。

    Copy Node Graph

    OutOfEnergy.png

    これで、マクロは Energy 変数をチェックする (該当する場合は Energy 変数から差し引く) ようにセットアップされ、プレイヤーが十分なエネルギーを持っているか否かを出力します。これはプレイヤーがジャンプできるか否かを判定するために使用されます。Jump キーを押した後でジャンプ アクション実行前に、このマクロを実装する必要があります。

  14. EventGraph で、InputAction JumpPressed ピンをドラッグし、EnergyCheck を検索します。

    InputJumpEnergyCheck.png 作成したマクロが Utilities の下に一覧表示され、その名前の隣にマクロ アイコンがあるのがわかります。

  15. マクロを追加したら、このジャンプ スクリプトは以下のようになるはずです。

    Copy Node Graph

    EnergyCheckMacro.png

  16. [Compile (コンパイル)] ボタンと [Save (保存)] ボタンをクリックし、ブループリントを閉じます。

    CompileSave.png

  17. エディタ のメイン ツールバー 上の [Play (プレイ)] をクリックします。

    PIE.png

ジャンプするために スペースキー を押すと、画面の左上隅で Energy の値が画面に出力されます。Energy が 0 だと、もうジャンプできません。

最終結果

EndResult.gif

これは、マクロを使用して、スクリプトを実行し、統合して単一ノードにし、イベント グラフとメイン キャラクターのスクリプトの可読性を向上させる基本的な例です。 さらに、このマクロを他のインスタンスで呼び出すこともできます。たとえば、プレイヤーのエネルギーを減らす他のアクションがあって、そのアクション (例、攻撃) を行うのに十分なエネルギーを持っているかをチェックしたい場合、このマクロを実行して、Attack キーを押した後に、プレイヤーが十分なエネルギーを持っているかをチェックし、HasEnergy 実行ピンから攻撃を実行することができます。

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