Unreal Engineでアクタとの当たり判定を行う(Event ActorBeginOverlapイベントを追加する)方法について解説

 Unreal Engineでアクタとの当たり判定を行う方法について解説します。

当たり判定の検出にはいくつか方法がありますが、この記事ではEvent ActorBeginOverlapというイベントを追加して当たり判定を検出する方法について説明します。


Event ActorBeginOverlapイベントとは?

Event ActorBeginOverlapとは、「アクタに対して他のアクタが重なったことを検出すると動き出すイベント」のことです。

特定のエリアに入ったことを検知したり、アクタ同士が重なったことを検知して何かをさせたい時に使います。

次にEvent ActorBeginOverlapをBlueprintで使う方法を解説していきます。


ステップ1:アクタの追加

まず、新しいブループリントアクタを作成します。

コンテンツブラウザで右クリックし、「新規作成」→「ブループリントクラス」を選択します。

「アクタ」をベースクラスとして選択し、新しいブループリントを作成します。


ステップ2: コリジョンコンポーネントの追加

次に、アクタにコリジョンコンポーネントを追加します。


作成したブループリントアクタをダブルクリックして開きます。

左側の「コンポーネント」タブで「追加」をクリックし、「Box Collision」を検索してBox Collisionを選択して追加します。











追加したBox Collisionコンポーネントを選択し、Unreal Engineの画面の右側の「詳細」タブで「Generate Overlap Events」の設定を検索して、有効になっていることを確認します。

「Generate Overlap Events」にチェックが入っていなかったら、チェックを入れておきましょう。










ステップ3:Event ActorBeginOverlapノードを追加する

次にアクタのイベントグラフを開きます。

イベントグラフ内で右クリックをして「Event ActorBeginOverlap」を検索し、Event ActorBeginOverlapノードを追加します。




















この追加したイベントノードに処理をつなげていくことで、他のアクタと重なった時の処理を実装することができます。


ステップ4:Event ActorBeginOverlapノードに処理を追加する

Event ActorBeginOverlapに何か処理を追加してみましょう。
例えば「Print Text」ノードを追加すれば、開発中にレベルをプレイしている時だけ画面上とログに指定した文字を表示させることができます。
デバッグなどに活用することができます。










特定のノードと重なった時だけ処理をさせるには、Event ActorBeginOverlapノードの「Other Actor」ピンから線を伸ばして「Cast To」で対象のアクタを検索します。
「Cast To」の後に自分で作成した他のブループリントクラスの名前がついた候補が表示されるので、任意の項目を選択してノードを追加します。










「Cast To XXX」のノードを繋げ、白ピンからも線を繋ぎます。

Castが成功すれば、さらにその次のノードに処理が移ります。

重なったのが指定したものと違うアクタの場合は、「Cast To XXX」ノードの「Cast Failed」のピンに処理が流れます。

これで特定のアクタと重なった時の処理を実装することができます。






ここではPirnt Textしているだけですが、ゲームに応じて「重なったらダメージを受ける」「重なった相手を弾き飛ばす」といった動作を実装してゲームを作り上げていきます。



以上、Unreal EngineでEvent ActorBeginOverlapを使ってアクタとの当たり判定を行う方法について解説しました。

皆様の開発が順調に進むことを願っております。

それではまた。

コメント

このブログの人気の投稿

Unreal Engineでマウスカーソルを表示させる方法を解説

Unreal EngineのBlueprintでアセットを読み込んでレベルに配置する方法