UE5/UE4 C++でBPでオーバーライド(Override)できる関数を作成する(UFUNCTION(BlueprintNativeEvent)、UFUNCTION(BlueprintCallable)、_Implementation)
C++でBPでオーバーライド(Override)できる関数を作成する方法です。
こちらのサイトを参考にさせていただきました。
・UE4 UFUNCTIONの種類について
https://papersloth.hatenablog.com/entry/2018/09/19/195013
参考サイトさんをもとに実際やってみました。
まずはC++で関数を定義します。
C++での関数の実体はこんな感じで書くことになります。
C++での実体は「関数名 + _Implementation」という名称でUE側で自動的に紐づけられるようです。
これを実行するとBPで上記で定義した関数をオーバーライド(Override)することができます。

こんな感じで「関数」の「オーバーライド(Override)」から関数を選択して作成することができます。
BPでオーバーライドされた関数はこんな感じになりました。

最後にC++側で実行してみます。
BP側で特殊な処理をしたい。
といったもので結構使うことがありそうなので、記述の仕方など覚えておきたいと思いました。
こちらのサイトを参考にさせていただきました。
・UE4 UFUNCTIONの種類について
https://papersloth.hatenablog.com/entry/2018/09/19/195013
参考サイトさんをもとに実際やってみました。
まずはC++で関数を定義します。
まずは「UFUNCTION(BlueprintNativeEvent, BlueprintCallable)」を使って関数を定義します。// BP でオーバーライドできる関数の定義
UFUNCTION(BlueprintNativeEvent, BlueprintCallable)
int32 OverrideFunction(float InValue);
C++での関数の実体はこんな感じで書くことになります。
C++での実体は「関数名 + _Implementation」という名称でUE側で自動的に紐づけられるようです。
// C++側の関数の実体
int32 OverrideFunction_Implementation(float InValue)
{return (0);}
これを実行するとBPで上記で定義した関数をオーバーライド(Override)することができます。

こんな感じで「関数」の「オーバーライド(Override)」から関数を選択して作成することができます。
BPでオーバーライドされた関数はこんな感じになりました。

最後にC++側で実行してみます。
結果をみてると「C++で定義した関数」と上記「BPの関数」両方が実行されるのがわかります。int32 aValue = OverrideFunction(0.0f);
BP側で特殊な処理をしたい。
といったもので結構使うことがありそうなので、記述の仕方など覚えておきたいと思いました。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑