HEXA BLOG
ヘキサブログ
プログラム
【UE4】便利!FEditorDelegates
ご無沙汰しております。大阪プログラマーのオカリンです。
最近はUE4を用いた開発が盛んで、自分も遅れまいとUE4に関する勉強を行っております。
そんな中UE4用のプラグインを制作する機会がありました。
エディターの各種挙動に連動して機能を実行させる必要があったのですが、
エディターの挙動をどうやったらとれるのか調べるのに苦労しました
そのため備忘録もかねてこちらで紹介いたします。
エディター上の操作の取得は、FEditorDelegatesを利用することで取ることができます。
このデリゲートはレベルの変更、プレイ開始、アクターの操作など、エディターでの基本的な操作に関わるものが用意されています。
便利そうだと思ったものを例として以下に挙げてみます。
●NewCurrentLevel
サブレベルを切り替えた際呼ばれます。
●MapChange、OnMapOpened
共にコンテンツブラウザから新しいレベルを開いたときに呼ばれます。
後者は開いたレベルのファイルパスを取得することができます。
また、呼ばれる順番はMapChange → OnMapOpenedでした。
●OnNewAssetCreated
コンテンツブラウザ上で新しいアセットを作成した際に呼ばれます。
作成したアセットのFactoryを取得できます。
●OnNewActorDropped
レベル内に新しいアクターを配置した際に呼ばれます。
Droppedとついている通りドラッグ&ドロップで配置したときにしか反応しません。
●OnFocusViewportOnActors
選択したアクターをFキーでフォーカスした際に呼ばれます。
フォーカスしたアクターを取得できます。
●BeginPIE、EndPIE
PIE開始時と終了後それぞれで呼ばれます。
●PreSaveWorld、PostSaveWorld
レベルの保存前と保存後に呼ばれます。
その他にも多く定義されていますので興味のある方は
“Engine/Source/Editor/UnrealEd/Public/Editor.h“をご覧ください。
また、今回はFEditorDelegatesについて紹介しましたが、
●FWorldDelegates
●FGameDelegates
●FCoreDelegates
●FCoreUObjectDelegates
●UGameViewportClient
など、エディター上でのアクションに関するデリゲートを定義した構造体やクラスはいくつもあります。プラグイン等でエディターの拡張を行う際は活用してみると、効率の良いツールが作れるのではないでしょうか。
では、今回はこのあたりで、また次回お会いしましょう。
【おまけ】
FEditorDelegatesにはPlayInEditor(PIE)に関するデリゲートがいくつかあります。
・PreBeginPIE
・BeginPIE
・PostPIEStarted
・PrePIEEnded
・EndPIE
・PausePIE
・ResumePIE
・SingleStepPIE
・OnPreSwitchBeginPIEAndSIE
・OnSwitchBeginPIEAndSIE
これらがどの順番で、どのタイミングで呼ばれるのか検証してみました。
なお、検証に使用したUEは4.24になります。
エディターの操作は、
① プレイ開始
② 一時停止
③ 1フレーム実行
④ 再開
⑤ SIE切り替え
⑥ PIE切り替え
⑦ プレイ停止
の順で操作しました。
結果としては以下の画像の通りです。
想定通りの挙動ですね。ただ、OnPreSwitchBeginPIEAndSIEとOnSwitchBeginPIEAndSIEはともにboolを仮引数として受け取っているのですが、共にPIE・SIEに切り替わる際にtrue、falseが与えられます。
OnPreSwitchBeginPIEAndSIEはSIE→PIEに切り替わる際にTrueが与えられます。
OnSwitchBeginPIEAndSIEはPIE→SIEに切り替わる際にTrueが与えられます。
これらを使用する際は注意が必要ですね。
またまたおまけですがアクターのBeginPlay、EndPlayとBeginPIE、EndPIEが呼ばれる順番についても見てみました。
アクターのBeginPlayはBeginPIEの後に呼ばれ、EndPlayはEndPIE後に呼ばれるようですね。
いつ呼ばれるかは実際に動かしてみないと分からないこともありますので、使用する際は想定通りの動きとなるか試す必要がありそうです。
CATEGORY
- about ヘキサ (166)
- 部活動 (6)
- CG (18)
- プロジェクトマネジメント (1)
- 研修 (5)
- 美学 (1)
- いいモノづくり道 (230)
- 採用 -お役立ち情報も- (149)
- プログラム (188)
- デザイン (99)
- ゲーム (274)
- 日記 (1,104)
- 書籍紹介 (113)
- その他 (875)
- 就活アドバイス (20)
- ラーメン (3)
- ライフハック (25)
- イベント紹介 (10)
- 料理 (23)
- TIPS (7)
- 怖い話 (3)
- サウンド (5)
- 子育て (1)
- 筋トレ (1)
- 商品紹介 (21)
- アプリ紹介 (31)
- ソフトウェア紹介 (33)
- ガジェット紹介 (12)
- サイト紹介 (10)
- 研究・開発 (34)
- 回路図 (4)
- アナログゲーム (40)
- 交流会 (21)
- 報告会 (3)
- インフラ (25)
- グリとブラン (6)
- カメラ (9)
- クラフト (27)
- 部活 (14)
- 画伯 (15)
- カレー (6)
- 音楽(洋楽) (6)
- 映画・舞台鑑賞 (43)
- 飼育 (5)
- いぬ (8)
- ねこ (19)
ARCHIVE
- 2024年
- 2023年
- 2022年
- 2021年
- 2020年
- 2019年
- 2018年
- 2017年
- 2016年
- 2015年
- 2014年
- 2013年
- 2012年
- 2011年
- 2010年
- 2009年
- 2008年
- 2007年