ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
Event ActorBeginOverlap(イベント・アクター・ビギン・オーバーラップ)は、UE5のブループリントにおいて、アクター全体がいずれかのコンポーネントで他のアクターと重なり始めた時に発火するイベントです。アクターに含まれるどのコリジョンコンポーネントであっても、そこへ別のアクターが侵入してオーバーラップ状態が成立した瞬間に、一度だけ呼び出されます。本記事では、このイベントが発火する前提条件、提供されるピン、コンポーネント単位のイベントとの違い、典型的な使い方、そしてつまずきやすい落とし穴までを順に整理します。
| この記事の要点 |
|---|
|
Event ActorBeginOverlap とは何か
Event ActorBeginOverlapは、UE5のブループリント(特にActorを継承したクラスのイベントグラフ)で使える標準のイベントノードです。役割は、そのアクターが他のアクターと重なり始めた瞬間を検知し、処理のきっかけを与えることにあります。
ここで重要なのは「アクター単位」という性質です。1つのアクターは複数のコリジョンコンポーネント(カプセル、ボックス、スフィア、スタティックメッシュなど)を持てますが、Event ActorBeginOverlapはそれらのコンポーネントを区別せず、アクター全体として「いずれかのコンポーネントが重なり始めた」というタイミングをまとめて知らせます。アクター内部のどのコンポーネントが触れたかには関心がなく、相手のアクターと自分のアクターという2者の関係に着目するイベント、と捉えると理解しやすくなります。
なお、似た性質を持つものとしてC++側のNotifyActorBeginOverlapがあり、ブループリントのEvent ActorBeginOverlapはこれに対応する位置づけのイベントです。本記事ではブループリント上の挙動を中心に説明します。
発火の前提条件
Event ActorBeginOverlapは、ノードを置いただけでは期待どおりに動かないことがあります。オーバーラップが成立するには、関与する両方のアクター(のコンポーネント)の設定が条件を満たしている必要があります。一般的には次の条件が揃った時に発火します。
- コリジョンが有効であること:対象のコンポーネントで衝突判定そのものが有効(少なくとも Query 用途で有効)になっている必要があります。コリジョンが無効化されていると、重なりは検出されません。
- Generate Overlap Events が有効であること:オーバーラップを通知させたいコンポーネントで、プロパティ Generate Overlap Events にチェックが入っている必要があります。これがオフだと、物理的に重なってもイベントは発生しません。
- コリジョン応答が Overlap を生成する設定であること:双方のコリジョン応答(Collision Response)が、互いのチャンネルに対して Overlap を返す(あるいは少なくとも一方が Overlap を返し、もう一方が Ignore でない)状態である必要があります。両者ともに Ignore のチャンネル同士では、重なりイベントは生成されません。
つまり、「コリジョンが有効」「Generate Overlap Events がオン」「コリジョン応答が Overlap として成立」という3点が、Event ActorBeginOverlapを動かすための基本的な土台になります。これらは関与する両アクター側のコンポーネントについて確認するのがポイントです。具体的なチャンネルやプリセットの組み合わせはプロジェクト設定にも依存するため、意図どおり発火しない場合は両者のコリジョン設定を見直すことをおすすめします。
Other Actor ピンの役割
Event ActorBeginOverlapノードは、出力ピンとしてOther Actorを提供します。これは、自分のアクターに対して重なり始めてきた相手のアクターへの参照です。多くの場合、このピンが処理の起点になります。
たとえば「プレイヤーキャラクターが触れた時だけ反応したい」というケースでは、Other Actorに対してCast To(特定のキャラクタークラスへのキャスト)を行い、キャストが成功した場合のみ後続の処理を実行する、という形が定番です。これにより、無関係なアクターが重なっても誤って処理が走るのを防げます。Other Actorを判定せずに処理を書くと、想定外のアクターでも発火してしまう点には注意してください。
なお、アクター単位のイベントであるEvent ActorBeginOverlapは、自分側・相手側のどのコンポーネントが触れたかという詳細までは1つのピンとしては提供しません。コンポーネントの区別が必要な場合は、後述のOn Component Begin Overlapを検討します。
On Component Begin Overlap との違い
初学者がもっとも混同しやすいのが、アクター単位のEvent ActorBeginOverlapと、コンポーネント単位のOn Component Begin Overlapの違いです。両者は「重なり始め」を検知する点では共通しますが、どの粒度で扱うかが異なります。On Component Begin Overlapは、コンポーネントを選択した状態で詳細(Details)パネルのイベント欄などから追加する、特定コンポーネントに紐づくイベントです。
| 観点 | Event ActorBeginOverlap | On Component Begin Overlap |
|---|---|---|
| 検知の単位 | アクター単位(いずれかのコンポーネントが重なった時) | コンポーネント単位(その特定コンポーネントが重なった時) |
| 自分側コンポーネントの区別 | 区別しない(まとめて1つのイベント) | 区別できる(コンポーネントごとに用意) |
| 取得できる主な相手情報 | Other Actor | Other Actor/Other Comp など、より詳細 |
| 追加方法の例 | イベントグラフ上にイベントとして配置 | 対象コンポーネントを選び詳細パネル等から追加 |
| 向いている場面 | アクター全体を1つの当たり判定として扱いたい | 複数の当たり判定を別々に扱い分けたい |
たとえば、トリガー用のボックス1つだけを持つシンプルなアクターであれば、どちらを使っても結果は似たものになります。一方、1体のキャラクターに「頭」「胴」「足元」など複数のコリジョンを持たせ、当たった部位ごとに処理を変えたい場合は、コンポーネント単位のOn Component Begin Overlapが適しています。逆に、内部構成を気にせず「このアクターに何かが触れた」という事実だけを扱いたいなら、Event ActorBeginOverlapが簡潔です。
Event ActorEndOverlap との対応
Event ActorBeginOverlapには、重なりが解消された時に発火する対のイベントとして Event ActorEndOverlapが用意されています。Beginが「入った瞬間」、Endが「出た瞬間」を担当し、両者をセットで使うことで、領域への出入りに応じた状態管理が行えます。
典型的には、Beginで「範囲内フラグをオンにする」「UIを表示する」などの処理を行い、Endで「フラグをオフにする」「UIを隠す」といった後始末を行います。Beginだけを実装してEndを忘れると、領域から出たのに状態が戻らない、という不整合が起きやすいため、出入りで状態が変わる仕組みを作るときは両方を対で実装することを意識すると安全です。
使い方の例:トリガー領域
もっとも代表的な使い方が、トリガー領域(トリガーボックス)です。たとえば、ボックスコリジョンを持つアクターを配置し、そこへプレイヤーが入った時に演出を起こす、といった流れは次のように組み立てられます。
- 1. コリジョンを用意する:トリガーにしたいアクターへボックスやスフィアなどのコリジョンコンポーネントを設定し、Generate Overlap Events を有効にして、プレイヤーに対して Overlap を返すコリジョン設定にします。
- 2. Event ActorBeginOverlap を配置する:そのアクターのイベントグラフにEvent ActorBeginOverlapを追加します。
- 3. Other Actor を判定する:Other ActorをプレイヤークラスへCast Toし、成功した場合のみ後続処理へ進めます。
- 4. 処理を実行する:ドアを開く、敵をスポーンさせる、メッセージを表示する、チェックポイントを記録するなど、目的の処理を接続します。
- 5. 必要なら ActorEndOverlap で戻す:領域から出た時に元へ戻す必要があれば、Event ActorEndOverlapで対の処理を実装します。
このパターンは、アイテムの取得、進入禁止エリアの検知、カットシーンの開始トリガーなど、幅広い場面に応用できます。アクター全体を1つの判定として扱えるため、構成がシンプルなトリガーには特に扱いやすい選択肢です。
落とし穴と注意点
| つまずきやすいポイント | 内容と対処 |
|---|---|
| そもそも発火しない | Generate Overlap Events がオフ、コリジョンが無効、または双方のコリジョン応答が Overlap になっていないと、重なってもイベントは起きません。両アクター側のコリジョン設定をそれぞれ確認します。 |
| 複数コンポーネントで複数回発火する想定違い | アクター単位とはいえ、相手アクターが複数のコリジョンを持ち、それぞれが順に重なるような構成では、状況によって複数回の通知が起こり得ます。発火回数に依存したカウント処理は、フラグ管理などで重複を吸収できる作りにしておくと安全です。 |
| 自分自身や意図しない相手に反応する | Other Actorを判定せずに処理を書くと、無関係なアクターでも処理が走ります。Cast Toやタグ、クラス判定で相手を絞り込み、必要なら自分自身を除外する条件を入れます。 |
| Begin だけ実装して End を忘れる | 出入りで状態が変わる仕組みでは、Event ActorEndOverlapを実装し忘れると状態が戻らなくなります。入った/出たは対で扱います。 |
| 当たり判定が広すぎる/狭すぎる | コリジョンの大きさが意図と合っていないと、早すぎる・遅すぎるタイミングで発火します。実際にプレイして範囲を調整します。 |
よくある質問(FAQ)
Q1. Event ActorBeginOverlap と On Component Begin Overlap は、どちらを使えばよいですか。
アクター全体を1つの当たり判定としてまとめて扱いたいならEvent ActorBeginOverlapが簡潔です。1つのアクター内の複数コリジョンを部位ごとに区別して処理を分けたい場合は、コンポーネント単位のOn Component Begin Overlapが向いています。どちらの粒度が目的に合うかで選びます。
Q2. 設定したのにイベントがまったく発火しません。何を見直せばよいですか。
まず関与する両方のコンポーネントで Generate Overlap Events が有効か、コリジョンが有効か、そして互いのコリジョン応答が Overlap として成立しているかを確認してください。一方でも Ignore になっていたり、Generate Overlap Events がオフだったりすると、物理的に重なってもイベントは起きません。プリセットやチャンネルの組み合わせはプロジェクト設定にも依存するため、不確実な場合は公式ドキュメントで現在のバージョンの仕様を確認することをおすすめします。
Q3. 「重なり始め」と「ヒット」は別物ですか。
別物です。オーバーラップ系のイベントは、相手とすり抜けながら重なっている状態の「開始・終了」を扱います。一方、物理的にぶつかった衝突を扱う Hit 系のイベントは、衝突位置などの追加情報を伴います。すり抜けながら侵入を検知したいならオーバーラップ、固い衝突を検知したいならヒット、という用途の違いで使い分けます。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- Event BeginPlay
- Event ActorBeginOverlap
- Event Tick
- on component begin overlap
- On Component Hit
- CameraBoom(Spring Arm)
- Get Player Character
- Nav Mesh Bounds Volume
- AI MoveTo
- Pawn
- Create Render Target 2D
- Take High Res Screenshotノード
- Sphere Reflection Capture
- Event Tickノード
- ウィジェットのキャンバスパネル
- DefaultSceneRoot
- FloatingPawnMovement
- Set World Rotation
- Event Any Damage
- Set World Rotation
- VInterp To
- Get Socket Transform
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?