わんころのUE5勉強会 2024/01/02 12:00

【UE5】Actor Component内に実装したBlueprint Interfaceを利用する

皆様、明けましておめでとうございます!

今回は Blueprint Interface(以下 BPI) の実装を、Actor Component 内で行った場合の処理を記事にしてみました。
※ BPI の細かい使い方についてはここでは解説しておりません


まずは通常の Actor BP で実装をおさらい

例えば BP_ThirdPersonCharacter に「Line Trace By Channel」でヒットした時に、該当の Actor に BPI を使って通知するという処理を実装したとします。

ターゲットが "Hit Actor" になっているので、この BPI を実装している Actor 側でヒット時の処理を行うような想定です。




そこで、BP_Cube という Static Mesh にキューブをセットした Actor を用意し、BPI の設定と中身を実装した例です。




レベルに置いたキューブに LineTrace がヒットして、画面に Hit と表示されたのがこの画像です。

次は Actor Component にこの BPI を設定した場合を見ていきます。
※ BP_Cube に設定した BPI は必要ないので削除して大丈夫です



Actor Component 内で BPI を使用する

まずは Actor Component を作成するため、コンテンツブラウザで右クリック>「ブループリントクラス」から、[Actor Component]を選択して適当な名前を付けておきます。



これも先程同様、「クラス設定」>「実装インターフェース」で BPI を設定し、中身を「Print String」にしておきました。




そして BP_Cube の「コンポーネント」パネルにある[+追加]から、先程作成した Actor Component を追加します。
(画像では AC_Sample となっています)



BP_Cube に BPI を実装した Actor Component が追加されたので、同じ結果になると思いきや...


ヒットしているのに Hit という文字が出ていません。

これは、LineTrace を行った時のターゲットが違うためです。

先程はヒットした Actor 自身(BP_Cube)がターゲットになっていましたが、今度は Actor に追加した Actor Component がターゲットになるため下記のように変更します。



"Hit Actor" から引っ張り、「Get Component by Class」か「Get Components By Class」を出し、それをターゲットに繋ぎます。

"Component Class" には先程作った Actor Component を指定します。

Components By Class は複数形なので配列になっていますが、BPI のターゲットにそのまま繋ぐことができます
これで Actor BP で追加した Actor Component の BPI に処理を送信できるようになります。


今回の例では LineTrace にヒットした Actor に対してですが、もし操作キャラクターに追加した Actor Component に通知を送りたい場合は
「Get Player Character」>「Get Component by Class」>BPIのターゲットへ繋げばいいということになります。


画像は使いまわしですが正しくヒットと表示されると思います。
以前 Actor Component 内の BPI 実装に引っ掛かったことがあったのを思い出し、今年初の記事にしてみました。

それでは皆様、今年も宜しくお願い致します!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索