fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 C++でBPのイベント(Event)やBPのみで処理を記述する関数を作成する(UFUNCTION(BlueprintImplementableEvent)、UFUNCTION(BlueprintCallable))

C++でBPのイベント(Event)やBPのみで処理を記述する関数を作成する方法です。

こちらを参考にさせていただきました。

・UE4 UFUNCTIONの種類について
https://papersloth.hatenablog.com/entry/2018/09/19/195013

公式ドキュメントはこちら。

・ゲームプレイ要素をブループリントに公開する
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/Blueprints/TechnicalGuide/ExtendingBlueprints/

C++でBPのイベント(Event)を作成するには「UFUNCTION(BlueprintImplementableEvent)」を書いた定義することで
C++側から呼び出せるBPのイベント(Event)を作成することができるようです。

// イベントを定義
UFUNCTION(BlueprintImplementableEvent)

void OnEventNew(int32 InValue);

こんな感じですね。
この関数についてはBP側で処理を記述するためC++側での実体は必要ないようです。

これをC++側からコールすることでBPのイベントが呼ばれます。

// イベントを実行
OnEventNew(0);


公式ドキュメントにはこう書かれています。

BlueprintImplementableEvent
ネイティブ関数をブループリントに呼び出す代表的な方法です。
仮想関数をブループリントに実装しているようなものです。
実装されていない場合、この関数呼び出しは無視されます。
BlueprintImplementableEvent が戻り値または出力パラメータを持たない場合、イベントとして表示され、
右クリック してブループリントのイベント グラフで選択して利用できるということを覚えておいてください。
戻り値または出力パラメータがあれば、[My Blueprints] タブにリスト表示され、
右クリック して [implement] 関数を選択することでオーバーライドが可能になります。
BlueprintImplementableEvents は関数のネイティブ実装を持たないことにご注意ください。


参考サイトの方でもこう書かれています。

戻り値がvoidの場合はEventNodeが生成されるが
戻り値を持つ関数の場合はEventではなく関数として生成される


戻り値を持つ関数を定義するとイベントではなく関数になるようです。

// 関数を定義
UFUNCTION(BlueprintImplementableEvent、BlueprintCallable)

bool OnEventNew(int32 InValue);

こんな感じですね。
こちらもイベントと同様処理はBP側で記述するためC++側での実体は必要ないようです。
上記は関数になるため「BlueprintCallable」を記述しないと、BP側で呼び出すことができないので注意が必要です。

BPのみで処理がかけるので結構用途としては使う機会が多くなるのではないかと思います。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/784-ac170f63

TRACKBACK

PREV | PAGE-SELECT | NEXT