【UE4】インターフェイス機能がなんとなくわかった気がする
概要
Unreal Engine 4 のインターフェイスの備忘録です。
インターフェイスとは
送受信対象を知らなくても共通のインターフェイスを持っていれば、 ブループリント間での情報の送受信ができます。
イメージとしてはこんな感じです。
実装
インターフェイス作成
コンテツブラウザ上で右クリックして新規インターフェイスを作成。
インプット、アウトプットを追加。
インターフェイス追加
作成したインターフェイス(BITest)をデータ送受信したBPに追加。
ここでは、送信側をレベルBP、受信側を各アクターとしました。
送信側設定
「Get All Actors with Interface」を用いて、BITestをインターフェイスに追加したアクターを取得し、関数(Test1)をコールする。
受信側設定
返り値がある場合
関数オーバーライドで設定します。
インターフェイスを追加するとマイブループリントのインターフェイスに「Test1」という関数が表示されます。
その関数を開いてここで入力する値を設定する。
返り値がない場合
カスタムイベントで設定します。
マイブループリントのインターフェイスに「Test2」という関数があるので、右クリックして「イベントを実装」を選択すると、
イベントグラフ上にカスタムイベントを作成できます。
実行タイミング
インターフェイスの実行タイミングについて調査しました。
BP
「EventBP」:インターフェイスの関数コールするアクター
「ActorBP」 :呼び出される関数があるアクター
「EventBP」
「EventBP」ではTickで関数コールするように設定し、その前後のタイミングがわかるようにログを出力する。またTickGroupは「PostPhysics」に設定。
「ActorBP」
「ActorBP」ではTick、呼び出される関数にその前後のタイミングがわかるようにログを出力する。またTickGroupは「PrePhysics」に設定。
結果
実行タイミングはインターフェイスの関数コールタイミングです。(あたりまえだよね、、、)