24.

UE5で「Get Overlapping Actors」から特定のクラスの場合のみ処理を実行する方法

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!

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」から取得したアクターの中で、特定のクラスに属するものだけを処理対象にできます。ゲームプレイのロジックを細かく制御するのに役立つため、ぜひ活用してください。

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
  1. 床の上に乗ったらイベントを発生させる方法
  2. OverlapAllDynamicとOverlapAllの違い
  3. タイトル画面を作る方法
  4. サードパーソンテンプレートでのキャラクター表示の仕組みと非表示にする方法
  5. ボタンに文字を記載する方法
  6. Event ActorBeginOverlapとOn Component Begin Overlapの違い
  7. キャラクターに特定のオブジェクトとの当たり判定を付ける
  8. 特定のオブジェクトに触れたとき、キャラクターが倒れるようにする
  9. 動いているオブジェクトに静止しているキャラクターが当たり判定を持たない原因と解決方法
  10. 「On Component Hit」に「Cast To ~」で複数のクラスを指定する方法
  11. ブループリントで途中から親クラスを指定する方法
  12. Blenderファイルをインポートする方法
  13. 鏡を作成する方法
  14. レベルブループリントでキャラクターの出現を設定する方法
  15. サードパーソンテンプレートにおけるキャラクター出現の定義
  16. アイテムに近づいたらボタンを押してイベントを発火させる方法
  17. C++で編集となっているコンポーネントをブループリントで編集する方法
  18. 画面の中央にメッセージを表示する方法
  19. どこからでも呼び出せるカスタムイベントを作成する方法
  20. カスタムイベントに引数を追加する方法
  21. ブループリントでWidgetに引数を追加する方法
  22. ブループリントでBoolean変数の初期値を変更する方法
  23. ブループリントで特定のキーが押された時にイベントを発火させる方法
  24. 「Get Overlapping Actors」から特定のクラスの場合のみ処理を実行する方法
  25. オブジェクトに近づいている間だけメッセージを表示する方法
  26. PCの画面を操作するUIを作る方法
  27. レベルを移動する方法
  28. コンテンツブラウザに画像を追加する方法
  29. マウスを動かせるUIを作成する方法
  30. SetInputMode_UIOnlyを取り消す方法
  31. ウィジェットの画像を選択するとウィジェットを閉じる方法
  32. 特定の画像の上にマウスカーソルを置いたら手マークにする方法
  33. レベルの「基本」テンプレートと「オープンワールド」テンプレートの違い
  34. オブジェクトがアウトライナーで選択できない原因と解決策
  35. PlayerStartを作成する方法