Unreal Engine 5 の備忘録
ChatGPT に解説してもらいながらContent Examplesの内容を把握する
■Blueprint Communication
Blueprint同士を通信させる方法について
Cast/Event Dispatcher/Blueprint Interface
①Cast
▼概要
特定のBlueprint にCastして関数や変数に直接アクセスする方法
▼Castのメリット
・簡単でわかりやすい
・呼び出す関数や変数にそのままアクセスできる
▼Castのデメリット
・相手のクラスが固定される
・クラスが違うと使えない
・Cast先がNULLだと処理失敗する
▼向いている場面
・小規模なやり取りや、確実に1対1で通信するようなケース
②Event Dispatcher
▼概要
あるBlueprintがイベントを発火し、それを他のBlueprintが「Bind(登録)」して
受け取る方法。
※呼び出し元(Callする側)は反応する人を不特定で投げかけるイメージ
呼び出し先でどのアクターのEvent Dispatcherに反応するか指定する
→このイベントが呼ばれたら自分が反応しますよということを登録(Bind)する
▼Event Dispatcherのメリット
・呼び出し元(Callする側)は受け手(呼び出し先)を知らなくていい
・Level Blueprintや他のBlueprintからBindして柔軟に対応可能
・複数の受け手に同時に通知できる
▼Event Dispatcherのデメリット
・最初(?)にBindしておく必要がある(タイミングが重要)
・やや構造が複雑になる
・Bind先が見えにくく、追いにくい場合がある
▼向いている場面
・複数のオブジェクトに通知を送りたい時
・柔軟なイベント連携をしたい時
③Blueprint Interface
▼概要
共通の「Interface(関数名)」を定義して、それを各Blueprintで実装することでCastせずに関数を呼び出せる。
▼Blueprint Interfaceのメリット
・クラスを問わず同じ関数名で呼び出せる(Cast不要)
・拡張性が非常に高い(新しいBlueprintにもすぐ対応できる)
・大量のアクターに同じ命令を送りやすい
▼Blueprint Interfaceのデメリット
・Interfaceの設計が必要(関数名・引数の定義など)
・実装が無いと呼び出しても何も起きない(エラーにはならない)
▼向いている場面
・複数の異なるBlueprintをまとめて制御したい場合
・継承関係のないBlueprintに共通の処理をさせたい時




