プログラマーの卵の日記

備忘録になってます!小難しそうなことから超簡単なことまでやってます!!

【UE4】ブループリントインターフェースで簡単に共有したい

UE4】ブループリントインターフェースで簡単に共有したい

構成


No.1 概要と準備
No.2 ブループリントインターフェースの調整
No.3 AActorの調整(呼び出し側)
No.4 BActorの調整(呼び出される側)
No.5 実行(特に説明なし)
No.6 おまけ







      No.1 準備


 先に言っておくとブループリントインターフェースについてはまだ熟知はしていません。そのうえで自分の理解の範疇で書きます。

ブループリントインターフェースはアクター同士であったりサブレベル同士(パーシスタンレベル同士ではない)で情報を渡すための関数を用意するものです。
書いててなんですが、やっぱり理解が浅いので実際に動かしてみた画像で理解を得たいと思います。


まず、用意のためにアクターを二つとブループリントインターフェースを用意します。

f:id:yutateno:20191114234949p:plain

 

f:id:yutateno:20191114235003p:plain

 

f:id:yutateno:20191114235013p:plain

 

f:id:yutateno:20191114235024p:plain







      No.2 ブループリントインターフェースの調整


 いろいろ出来るとは思いますが、どういったものかをとりあえず把握するために適当にやります。
画面を見ればわかりますが「読み取り専用」と書いてある通りブループリントの中は弄ることが出来ません。そのため弄ることが出来ることは右側だけです。
ということで右側を弄ってこのようにします。

f:id:yutateno:20191114235041p:plain



そうしたら注意してほしいこととしてはコンパイルを絶対忘れないでください。忘れると反映されない(らしい)そうです。





      No.3 AActorの調整(呼び出し側)


 AActorの調整をします。これはブループリントインターフェースの関数を呼び出す側です。例えて言うなら社長です。
で、イベントグラフを調整します。呼び出す側は特にややこしいことはないです。

f:id:yutateno:20191114235056p:plain

 

f:id:yutateno:20191114235104p:plain



ここで軽く説明するとブループリントインターフェースの関数は以下の画像のようになっています。
インプットの「number」は作成しましたが「ターゲット」については自動でついています。これはどのターゲットのブループリントにあるインターフェース関数を呼ぶか指定しています。例えていうなら呼び出される社員です。
なのでここから分かると思いますが、On Component Hitなどで当たったときに相手をインターフェースにて呼び出せば簡単にダメージ調整などができます。

f:id:yutateno:20191114235116p:plain



今回は適当にプレイ時に50を関数に渡しています。





      No.4 BActorの調整(呼び出される側)


 BActorの調整をします。これはブループリントインターフェースの関数を呼び出される側です。例えていうなら社長に呼び出すをされる社員です。
イベントグラフを調整する前にクラス設定にてブループリントインターフェースを組み込む調整を行う必要があります。

f:id:yutateno:20191114235142p:plain

 

f:id:yutateno:20191114235151p:plain

 

f:id:yutateno:20191114235202p:plain



そうしたらイベントグラフを調整します。先ほどのAActorと違い、メッセージではなくイベントとして呼び出すことが出来ます。これを使います。出てこなかったらコンパイルをしてみてください。

f:id:yutateno:20191114235214p:plain

 

f:id:yutateno:20191114235224p:plain



この「Test Interface」というノードは出力ピンに「Number」があります。これはなんのNumberかといえばAActorから渡されたNumberです。ということは中身は50のはずです。
その確認のためにもPrint Stringノードを繋げてみます。

f:id:yutateno:20191114235231p:plain







      No.5 実行(特に説明なし)


 そうしたら実行をしてみます。もちろんアクターたちは画面上に配置します。

f:id:yutateno:20191114235239p:plain

 

f:id:yutateno:20191114235249p:plain


50が出力されました。
これはAActorからTest Interfaceに50を渡しつつBActorの呼び出しを行い、呼び出しをされたBActorにてTest Interfaceを実行したことにより出力された50です。





      No.6 おまけ


 ブループリントインターフェースについて調べていくと必ずサブクラス間での扱い方について説明があります。
サブクラスの作成をするほどの規模のものを作ったことが無いので、サブクラスの作り方を知らない私はテスト実行が出来ていませんが、その際の「ターゲット」は以下の画像のノードを呼ぶそうです。

f:id:yutateno:20191114235303p:plain


※参考
https://docs.unrealengine.com/ja/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces/index.html
http://historia.co.jp/archives/5434/