関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2016.09.06UE4UE/ Blueprint
今回はブループリントで行うレベル間のやり取りにいて、その方法をご紹介したいと思います。
UE4にてみなさんはレベル分けによるアクターの管理を行っていると思いますが、ゲーム開発が進んでくるとどうしても別レベルに配置したアクターにアクセスしたくなる場合が出てくるかと思います。
しかし、UE4では別レベルに配置したアクターにアクセスする方法は簡単ではありません。そういった場合に、アクターを配置しているレベルを見直したりするかと思いますが、やはりそのレベルから移動したくない場合もあると思います。
そんな時にレベルを跨いでそれぞれのアクターにアクセスしたり、レベル間のやり取りを行う方法が必要になってきますが、UE4にはそれらを実現する方法がいくつか用意されています。
では、それぞれの方法を一つずつ説明していきます。
イベント名を直接指定することで、違うレベルのイベント名を呼び出す事ができるノードです。
この方法が一番簡単ですし、昔のエンジンバージョンではこの方法しか他のレベルにアクセスする事ができませんでした。それ故に、この方法を使う事が一番多いかと思います。ですが、便利な反面、引数の指定もできなければ戻り値を得る事もできず、また、レベルブループリント以外では使用できないなど、特定の状況ではこれではカバーしきなれない場合があります。
ブループリントインターフェイスを活用することで、レベル間のアクセスを可能にしたものです。
わりと最近実装された機能で、大きな特徴としてRemoteEventではできなかった、引数の指定や戻り値の取得などができるようになり、レベルを跨いだより詳細なデータの受け渡しやデータの取得などが可能になりました。
使用するためには事前に呼ばれる側のレベルにインターフェイスを追加しておく必要があります。インターフェイスの追加は通常のブループリントに追加する場合と全く同じ手順です。
以上の手順でレベルにブループリントインターフェイスを事前に追加しておくことで、インターフェイスの関数およびイベントを使用できるようになります。
アクターにはName型でタグを指定できる機能があります。
この機能の使って、配置したアクターのタグにユニークな値を指定してあげれば、特定のアクターを別レベルから検索して直接取得できるという方法です。
それでは次に、それぞれのメリットとデメリットを列挙していきます。
メリット
デメリット
メリット
デメリット
メリット
デメリット
ざっとこのような感じになります。
それぞれのメリットデメリットを認識し、どの方法を採用するか見極めましょう。