とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

UE4:BeginPlayのようなオリジナルのイベントの作り方手順

カスタムイベントを作りたいと思う。

カスタムイベントとはいってもこういうのではない。

f:id:toncrimentan_w:20200310002502j:plain

こういう感じの自作BeginPlayというべきか

オリジナルイベントを作りたい。

f:id:toncrimentan_w:20200310002559j:plain

 

1.自作LevelScriptActor.hを作成する

LevelScriptActorを継承して以下のようなヘッダーファイルを作成し実行する

(ここでは自作 MyBeginPlay を作成しています)

X00LevelScriptActor.h

#pragma once

#include "CoreMinimal.h"
#include "Engine/LevelScriptActor.h"

#include "X00LevelScriptActor.generated.h"

UCLASS(config=Game)
class AX00LevelScriptActor : public ALevelScriptActor
{
    GENERATED_BODY()

public:

    UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, meta=(DisplayName = "MyBeginPlay"))

    void MyBeginPlay();

};

 

2.レベルブループリントのクラス設定を自作LevelScriptActorに変更する

f:id:toncrimentan_w:20200310003203j:plain

3.これで自作のBeginPlayノードを作成することができた。

f:id:toncrimentan_w:20200310003434j:plain

4.呼び出し方法は GetAllActorsOfClassで検索してきて呼び出すのが妥当。

f:id:toncrimentan_w:20200310003718j:plain

5.無事呼び出された。

  入力パラメータの追加削除が容易なのと

  なによりカスタムイベントよりなんかカッコイイ感じがするのがメリット。

f:id:toncrimentan_w:20200310003847j:plain

 

2の手順は毎回いるのかというと

プロジェクト設定>基本設定>LevelScriptActorClassで

デフォルトを変更すれば次回以降手順をスキップできる。

(1回エディタを再起動してか有効)

f:id:toncrimentan_w:20200310004412j:plain