忍者ブログ

非現実的な話

ゲーム、UnrealEngine4などの話題を取り扱います。取り扱う内容は個人の範囲で調べたものなのでご利用は自己責任でお願いします。

【UE4】EventEndPlayの件

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

【UE4】EventEndPlayの件


誰が、いつ、あの俳優を殺すのか。

久しぶりのUE4記事です(汗)
本日はあんまり使わない部類の「EventEndPlay」Nodeについて調べてみました。
これ↓。



これと対なる「EventBeginePlay」に関しては、良く使うのでそんなに触れません。
まずは概要。

【ざっくり概要】
EventBeginePlay:最初に呼ばれるイベント
EventEndPlay:最後に呼ばれるイベント

EventBeginePlayに関しては「最初」と書きましたが、厳密には最初の方という表現が正しいです。ClassBlueprintであれば「ConstructionScript」が最初に呼ばれます。LevelBlueprintであれば「EventBeginPlay」が最初に呼ばれます。

EventEndPlayに関しては「最後」と書きましたが、
上記図にあるように、終了要因が引数で渡されるため、呼ばれるタイミングは一意ではありません。ですが、EventEndPlayを受信したClassBlueprint、もしくはLevelBlueprintは「活動停止状態」となります。


ここから本題。

1.殺害動機は?
 引数で渡される「EndPlayReason」は読んで字のごとく、終了要因を示します。
それぞれの要因によって当該Classにイベントを発行します。

----------------------------------------------------------------------------------
ActorDestroyed :ActorがDestroyされた時
LevelTransition :Level遷移時
EndPlayInEditor :エディタ実行中に停止された時
RemovedFromWorld  :Worldからいなくなった時 
Quit    :アプリケーション終了時
----------------------------------------------------------------------------------

「ActorDestroyed」は『DestroyActor』などで対象となるActorを破棄した際に発生。
「LevelTransition」は『OpenLevel』などでPersistantLevelの切替が発生した時に発生。
「EndPlayInEditor」はエディタからのアプリケーション実行中に停止ボタンを押すと発生。
「RemovedFromWorld」は『UnloadStreamLevel』などでSublevelをアンロードした際に発生。
その際、アンロードしたSublevel、またはSublevelに配置されていたActorに発生。
「Quit」はエディタ実行ではない、パッケージしたアプリケーションの実行中にアプリケーション終了した際に発生。エディタ実行中には発生しない(standalone起動でも未発生)。



2.加害者は?
次にだれがEventEndPlayを発行するのか。
以下はイベント発行元のクラス名を示す。
----------------------------------------------------------------------------------
ActorDestroyed :AActorクラス
LevelTransition :UEditorEngineクラス
EndPlayInEditor :UEditorEngineクラス
RemovedFromWorld :UWorldクラス
Quit     :UGameEngineクラス
----------------------------------------------------------------------------------

Engine側の上位クラスから発行されているのが分かる。
ちなみに「ActorDestroyed」に関しては自身に対して『EventEndPlay』を発行している。正確には『DestroyActor』を受信したら『EventEndPlay』を自身に対して発行する仕組み。ダイイングメッセージみたいな。



3.殺害動機に複数存在するか?
存在する。正しくは、同一Actorに対して異なる終了要因で複数回の『EventEndPlay』が発行されることがある。パターンが相当数存在するので全ては追いきれなかったが、注意すべきとして、「複数回呼ばれることがある」ということを意識しておきたい。



4.まとめ
ぶっちゃけ、あんまり使う機会はない!
でもちょっと便利。複数回呼ばれることにはご注意を。

コメント

プロフィール

UnrealEngine4について調べる。
ゲームはそんなに得意ではない。

ブログ内検索

カレンダー

08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

リンク

  • [PR]
    PR