BluePrintから呼び出せるC++のstatic関数の作り方

BluePrintから呼び出せるC++のstatic関数の作り方を書きます。
まず、UnrealEditorより

上部メニュー → ファイル → 新規c++ファイル

を選択します。

Blueprint Function Library

親クラスを選択
というダイアログ出現するので、一覧からBlueprint Function Libraryを選択し、
Blueprint Function Libraryが親となったクラスを作成し、適当に名前をにつけます。
ここでは、MyBlueprintFunctionLibraryとクラス名をつけました。

c++の自作関数を書く

続いて、先ほど生成したクラスにBlueprintから呼び出せるstatic関数を定義します。
headerファイルに以下のように定義しました。


UCLASS()
class PIPEN_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
    UFUNCTION(BlueprintCallable, Category="MathUtil")
    static float gcd(int value1,int value2);
};
      

UFUNCTION(BlueprintCallable)
と書くと、対象の関数がBlueprintから呼び出せるようになります。

そして、関数をstaticとして定義します。

続いて、cppファイルに処理を書きます。

cppファイルに自作関数を書く

gcdを求める処理をBlueprint上から呼び出したいので、
UE4のBigInt.hからgcdを求めるstatic関数を呼び出すようにします。

#include "MyBlueprintFunctionLibrary.h"
#include "Runtime/Core/Public/Math/BigInt.h"

float UMyBlueprintFunctionLibrary::gcd(int value1,int value2){
    return FEncryption::CalculateGCD(value1,value2);
}	  
	  

cppファイルの中身を書いたら、ビルドして処理を反映させます。

自作したstatic関数をBlueprintで呼び出す

ビルドが終了したら、対象のUnrealEditorを起動します。
すると、mapなどで、先ほど定義したgcd関数を呼び出せるようになります。

blueprintから自作したc++のstatic関数を呼ぶ図

以上、自作したc++のstatic関数をBlueprintで呼び出す方法について書きました。

UnrealEngine4.21で確認しています。

初版:2019/9/1
最終更新:2019/9/1

このエントリーをはてなブックマークに追加