Unreal Engine 5(UE5)では、アクター同士の接触や衝突を検出するために「Overlap」と「Hit」という2種類のイベントが用意されています。
これらはどちらも接触に関係するイベントですが、用途・発生条件・取得できる情報が異なるため、正しく使い分ける必要があります。
Overlapとは?
Overlap(オーバーラップ)は、2つのコリジョンが物理的な押し返しなしに、重なったときに発生するイベントです。つまり、すり抜けるように接触が起きたときに使われます。
例えば:
- プレイヤーがトリガーゾーンに入ったとき
- 範囲攻撃が敵に触れたとき
- アイテムを拾うための当たり判定
Overlap では物理的な衝突は発生せず、イベントで通知するだけです。
Hitとは?
Hit(ヒット)は、2つのコリジョンが物理的にぶつかり、押し返されるときに発生します。壁にぶつかる、物体が跳ね返る、などが典型的な例です。
例えば:
- プレイヤーが壁にぶつかる
- ミサイルが敵に当たって爆発する
- 物理オブジェクトが床に落ちて跳ねる
Hit イベントは、衝突点(Impact Point)や法線ベクトルなどの詳細な情報も取得できます。
主な違いの比較
以下の表で、Overlap と Hit の違いを簡単にまとめます。
| 項目 | Overlap | Hit |
|---|---|---|
| 物理挙動 | なし(すり抜ける) | あり(押し返される) |
| 使用用途 | トリガー、当たり判定、拾得判定など | 衝突検出、爆発、跳ね返りなど |
| 情報の取得 | 相手のアクター・コンポーネント | ImpactPoint、Normal、Hit Location など |
| イベント名(BP) | OnComponentBeginOverlap など | OnComponentHit など |
Overlapを使うべき場面
Overlap は以下のような状況で非常に便利です。
- 当たり判定だけ欲しいとき(エフェクト、範囲攻撃など)
- プレイヤーがゾーンに入ったことを検知したい
- アイテムやトリガーを通過可能にしたい
軽量かつ柔軟なので、多くの状況で活躍します。
Hitを使うべき場面
Hit はより物理的なリアリティが必要なときに使います。
- 爆発や着弾点を正確に取得したい
- プレイヤーや物体を押し返したい
- 跳ね返り、跳ね上がりなどを表現したい
より精密な物理挙動や、接触の詳細な情報が必要な場面に適しています。
どちらを使うか迷ったら?
以下のように判断するのがおすすめです:
- 「すり抜けても良い」→ Overlap
- 「ぶつかるべき」→ Hit
- 「正確な位置が欲しい」→ Hit
- 「軽い処理がしたい」→ Overlap
まとめ
UE5では、「Overlap」と「Hit」の使い分けがゲームのクオリティや最適化に大きく影響します。
どちらも強力な検出手段ですが、それぞれの特徴を理解し、目的に応じて正しく選択しましょう。
特にマルチプレイや高負荷なシーンでは、無駄なHitを避け、Overlapで効率化するなど、最適化にもつながります。
状況に応じてOverlapとHitを賢く使いこなし、より完成度の高いゲーム制作を目指しましょう!