タイトル: 「Get Overlapping Actors」から特定のクラスの場合のみ処理を実行する方法
SEOタイトル: UE5で「Get Overlapping Actors」から特定のクラスの場合のみ処理を実行する方法
Unreal Engine 5(UE5)では、特定のクラスのアクターがトリガーボリュームやコリジョンを持つオブジェクトに重なった際にのみ処理を実行することが可能です。今回は、「Get Overlapping Actors」ノードを使用し、特定のクラスのアクターに対してのみ処理を実行する方法を詳しく解説します。
「Get Overlapping Actors」とは?
「Get Overlapping Actors」は、指定されたオブジェクト(主にコリジョンを持つコンポーネントやアクター)と重なっているすべてのアクターを取得するための関数です。これにより、重なっている複数のアクターを検出し、特定の条件を満たすものに対してのみ処理を行うことができます。
手順:特定のクラスのアクターを判定する
以下の手順で、特定のクラスのアクターが重なった場合にのみ処理を実行する方法を解説します。
1. コリジョンを持つオブジェクトを作成
まず、シーン内にトリガーボックスまたはコリジョンを持つオブジェクトを作成します。例えば、「Box Collision」コンポーネントを追加すると、特定のエリアに入ったアクターを検知できます。
2. 「Get Overlapping Actors」ノードの追加
Blueprint(ブループリント)で、Box Collision の「Begin Overlap」イベントを追加し、「Get Overlapping Actors」ノードを接続します。
3. 取得したアクターを特定のクラスでフィルタリング
「Get Overlapping Actors」の出力には、重なっているすべてのアクターがリストとして格納されています。このリストの中から、特定のクラスのアクターのみを判定するには、「For Each Loop」ノードを使用し、各アクターに対して「Cast To クラス名」を実行します。
4. 判定後に処理を実行
「Cast To クラス名」が成功した場合のみ、特定の処理を実行できます。例えば、アクターを破壊する、スコアを加算する、エフェクトを発生させるなどの処理を行うことができます。
実装例(Blueprint)
以下のようなBlueprintを作成すると、特定のクラス(例:MyCharacter)がトリガーボックスに入ったときのみ処理を実行できます。
- Box Collision の「On Component Begin Overlap」イベントを追加
- 「Get Overlapping Actors」ノードを接続
- 「For Each Loop」ノードでアクターをループ処理
- 「Cast To MyCharacter」ノードを使い、特定のクラスか判定
- 成功時に任意の処理(例えば、「Print String」でログ表示)を実行
おわりに
この方法を使えば、「Get Overlapping Actors」から取得したアクターの中で、特定のクラスに属するものだけを処理対象にできます。ゲームプレイのロジックを細かく制御するのに役立つため、ぜひ活用してください。