UE5におけるブループリントは、C++を使用することなく簡単にゲームのロジックを作成できるビジュアルスクリプティングツールです。ブループリントには、処理をまとめる機能として、関数とマクロ、そしてカスタムイベントの3つの機能があります。この記事では、UE5におけるブループリントの関数・マクロ・カスタムイベントの違いについて詳しく解説します。
ブループリントの関数とは?

ブループリントの関数は、複数の場所で同じ処理を実行する必要がある場合や、複数のアクターで同じ処理を実行する場合に有用なブループリント要素です。関数は、入力パラメーターを受け取り、処理を実行して出力パラメーターを返すことができます。これにより、同じ処理を実行するために同じブループリントを複数回作成する必要がなくなります。
カスタムイベントとは?

カスタムイベントは、特定のアクションが発生したときに自動的にトリガーされるブループリント要素です。カスタムイベントは、イベントグラフにドラッグしてトリガーを設定し、パラメータを受け取ることができます。カスタムイベントは、同じアクションに対する複数の反応を作成する場合に有用です。
マクロとは?

マクロは、複数の処理をひとまとめにして、ひとつのブロックとして再利用できるようにするブループリント要素です。マクロは、自己完結型であり、他のブループリントに組み込んで使用することができます。マクロには、入力パラメーターや出力パラメーターを設定することができ、複数の入力パラメーターに対しても機能します。
関数・マクロ・カスタムイベントの違い
以下のテーブルで各機能で 出来ること・出来ないこと をまとめましたので、ご参照ください
(内容) | 関数 | マクロ | カスタムイベント |
---|---|---|---|
戻り値(Output)を指定できるか | ○ | ○ | ✖︎ |
呼び出し時、実行ピンを使用せず呼び出せるか | ○ | ✖︎ | ✖︎ |
他のクラスからの呼び出しができるか | ○ | ✖︎ | ○ |
Input,Outputピンの型に「実行ピン」を指定できるか | ✖︎ | ○ | ✖︎ |
イベントディスパッチャを使用できるか | ✖︎ | ✖︎ | ○ |
これらの特徴があります。順に解説します
カスタムイベントは戻り値がない



カスタムイベントは、処理実行のトリガーを受け取って、特定の処理を実行するものなので、戻り値を指定することがありません。
関数はピュア関数化できる


関数の詳細画面でPure にチェックを入れると、実行ピン(白のピン)を使用しない形で呼び出しができる
このとき、アウトプットの値を使う度に関数を実行し、再計算された値がアウトプットとなります。
マクロは他のクラスから呼び出せない

マクロは Input / Output の型に 実行ピン(Exec)を指定できます

こうして、マクロ呼び出し時の 入口 出口 を複数作ることができます。
イベントはイベントディスパッチャを使用した呼び出しが可能
カスタムイベントは関数・マクロのような呼び出し方の他に、イベントディスパッチャを用いた呼び出しが可能であり、1つのイベントディスパッチャを Call(呼び出し)することで、そのイベントディスパッチャにBind(紐付け)された 全てのイベントを一括で呼び出すことが可能となります。

※イベントディスパッチャに関しては、追々解説記事を準備予定です。こうご期待!
少し説明しとくと、イベントの一括実行・その際実行する処理の紐づけ管理(切ることも可)を行う処理です。「プレイヤーが起爆ボタンを押したら、設置した爆弾が全て起爆する」とかができます。