언리얼 엔진에서 캐릭터가 벽을 통과하거나, 공격 판정이 적에게 맞지 않거나, Trigger Box 안으로 들어갔는데 이벤트가 발생하지 않는다면 가장 먼저 확인해야 하는 것이 Collision 설정입니다.
Collision은 단순히 “물체끼리 부딪히게 만드는 기능”만 의미하지 않습니다.
언리얼 엔진에서는 서로 다른 Object가 만났을 때 Block할 것인지, Overlap 이벤트만 발생시킬 것인지, 아니면 완전히 무시할 것인지를 세부적으로 결정할 수 있습니다.
저도 전투 시스템을 만들면서 공격용 Collision이 적을 감지하지 못하거나 반대로 플레이어 자신의 Mesh까지 감지하는 문제를 여러 번 경험했습니다. 이런 문제를 해결하려면 단순히 Collision Preset을 변경하는 것보다 Object Type, Collision Response, Generate Overlap Events가 서로 어떻게 연결되는지 이해하는 것이 중요합니다.
이번 글에서는 언리얼 엔진 Collision의 기본 구조부터 실제 캐릭터와 공격 판정을 예제로 설정 방법까지 정리해보겠습니다.
💡 한 줄 정답 — 언리얼 엔진 Collision은 두 객체가 만났을 때 Block, Overlap, Ignore 중 어떤 반응을 할 것인지 결정하는 시스템입니다. Collision 문제가 발생하면 Preset만 바꾸지 말고 Collision Enabled → Object Type → Collision Response → Generate Overlap Events 순서로 확인하는 것이 좋습니다.
목차
- 언리얼 엔진 Collision이란?
- Block, Overlap, Ignore 차이
- Collision Preset이란?
- Object Type과 Collision Response 이해하기
- Collision Enabled 설정 알아보기
- Generate Overlap Events는 언제 필요한가?
- Begin Overlap과 End Overlap 사용 방법
- 캐릭터 Capsule과 Mesh Collision 차이
- 공격 판정을 위한 Collision 설정
- Custom Collision Channel 만드는 방법
- Collision이 작동하지 않을 때 확인할 것
- Collision 설정 시 주의할 점
- 마무리
언리얼 엔진 Collision이란?
Collision은 게임 월드에 존재하는 Object끼리 서로 만났을 때 어떻게 반응할지를 결정하는 시스템입니다.
가장 쉽게 생각할 수 있는 예가 캐릭터와 벽입니다.
Player
↓
Wall
↓
Block
캐릭터가 벽에 부딪히면 앞으로 이동할 수 없습니다.
하지만 게임에 존재하는 모든 객체가 서로 막혀야 하는 것은 아닙니다.
아이템 획득 Trigger를 생각해보겠습니다.
Player
↓
Item Trigger
↓
Overlap
↓
아이템 획득
플레이어가 Trigger에 들어갔다고 해서 이동이 막히면 안 됩니다.
대신 플레이어가 영역에 들어왔다는 사실만 알아내면 됩니다.
반대로 공격 판정과 전혀 관계없는 Object라면
Attack Collision
↓
Background Object
↓
Ignore
처럼 아무 반응도 하지 않도록 설정할 수 있습니다.
따라서 Collision을 단순한 충돌 기능으로 생각하기보다는 Object끼리 만났을 때 어떤 관계를 가질지 정의하는 시스템이라고 이해하는 편이 좋습니다.

[언리얼 엔진 Collision 설정 화면]
Block, Overlap, Ignore 차이
Collision을 이해할 때 가장 먼저 알아야 하는 것이 세 가지 Response입니다.
Block
Block은 실제 물리적인 충돌처럼 상대 Object의 이동을 막습니다.
대표적인 예가 다음과 같습니다.
Player ↔ Wall
Player가 Wall을 Block하고 Wall 역시 Player를 Block한다면 캐릭터는 벽을 통과하지 못합니다.
Overlap
Overlap은 서로 통과할 수 있지만 두 Collision 영역이 겹쳤다는 사실을 감지할 수 있습니다.
대표적으로
Trigger Box
Item
Attack Range
Interaction Area
등에 사용합니다.
Ignore
Ignore는 해당 Collision Channel에 대해 아무런 충돌 반응을 하지 않는 설정입니다.
정리하면 다음과 같습니다.
| 설정 | 이동 차단 | Overlap 감지 | 대표적인 사용 |
|---|---|---|---|
| Block | O | 상황에 따라 다름 | 벽, 바닥, 장애물 |
| Overlap | X | O | Trigger, 아이템, 공격 범위 |
| Ignore | X | X | 충돌할 필요 없는 객체 |
Collision 문제가 발생하면 두 객체의 Response를 함께 확인해야 한다는 것이 중요합니다.

[언리얼 엔진 Block Overlap Ignore 차이]
Collision Preset이란?
매번 모든 Collision Channel을 직접 설정하면 상당히 번거롭습니다.
그래서 언리얼 엔진에서는 자주 사용하는 설정을 Collision Preset으로 제공합니다.
대표적으로 프로젝트에서 볼 수 있는 Preset에는 다음과 같은 것들이 있습니다.
BlockAll
BlockAllDynamic
OverlapAll
OverlapAllDynamic
Pawn
CharacterMesh
Trigger
NoCollision
Custom
예를 들어 Trigger용 Box Collision이라면 상황에 따라 Trigger Preset을 사용할 수 있습니다.
반면 전투 시스템처럼 특정 Channel만 Overlap해야 한다면
Collision Presets
↓
Custom
으로 변경하고 직접 Response를 설정하는 경우가 많습니다.
중요한 점은 Preset 이름만 보고 문제를 판단하지 않는 것입니다.
Custom을 사용하고 있다면 반드시 그 아래에 설정된 Object Type과 각 Channel Response까지 확인해야 합니다.

[언리얼 엔진 Collision Preset 종류와 Custom 설정]
Object Type과 Collision Response 이해하기
Collision에서 초보자가 가장 헷갈리기 쉬운 부분 중 하나가 Object Type입니다.
쉽게 말하면 Object Type은
“나는 어떤 종류의 Object인가?”
를 나타냅니다.
기본적으로 다음과 같은 Channel을 볼 수 있습니다.
WorldStatic
WorldDynamic
Pawn
PhysicsBody
Vehicle
Destructible
예를 들어 Player Capsule의 Object Type이 Pawn이라고 해보겠습니다.
벽 입장에서는
Pawn → Block
으로 설정할 수 있습니다.
Trigger에서는
Pawn → Overlap
으로 설정할 수 있습니다.
또 다른 Object에서는
Pawn → Ignore
로 설정할 수 있습니다.
즉 같은 Player라도 상대방의 Collision Response에 따라 전혀 다른 결과가 발생합니다.
Player(Pawn)
│
├─ Wall → Block
├─ Trigger → Overlap
└─ EffectArea → Ignore
이 관계를 이해하면 Collision 설정이 훨씬 쉬워집니다.
Collision Enabled 설정 알아보기
Collision Preset이 제대로 되어 있는데도 아무 반응이 없다면 Collision Enabled를 확인해야 합니다.
설정에 따라 Collision 자체가 비활성화되어 있을 수 있기 때문입니다.
대표적인 개념은 다음과 같습니다.
| 설정 | 용도 |
| No Collision | Collision 비활성 |
| Query Only | Trace, Sweep, Overlap 등의 Query |
| Physics Only | 물리 시뮬레이션 관련 |
| Query and Physics | Query와 Physics 모두 사용 |
예를 들어 Trigger 영역처럼 Overlap 검사만 필요한 Collision이라면 Physics 기능까지 반드시 필요한 것은 아닙니다.
반대로 물리적인 상호작용이 필요한 Object라면 설정 목적이 달라질 수 있습니다.
따라서 Collision이 전혀 동작하지 않을 때는 Response 설정을 보기 전에
Collision Enabled
부터 확인하는 것이 좋습니다.

[언리얼 엔진 Collision Enabled 설정]
Generate Overlap Events는 언제 필요한가?
Overlap으로 설정했는데 Begin Overlap이 실행되지 않는다면 가장 먼저 확인할 항목입니다.
Generate Overlap Events
Overlap 이벤트를 사용하려면 관련 Component의 설정이 제대로 되어 있어야 합니다.
예를 들어 AttackCollision이 있다고 해보겠습니다.
Sphere Collision
↓
Collision Response = Overlap
↓
Generate Overlap Events = Enabled
그리고 Event Graph에서는
On Component Begin Overlap
을 사용할 수 있습니다.
여기에서 많이 하는 실수가
Pawn = Overlap
만 설정하고 끝내는 것입니다.
Response가 Overlap이라고 해서 내가 원하는 Overlap Event 구조가 무조건 정상적으로 작동한다고 생각하면 문제를 찾기 어려워집니다.
특히 서로 다른 두 Component의 설정을 함께 확인하는 습관이 중요합니다.
Begin Overlap과 End Overlap 사용 방법
Collision 영역에 Object가 들어왔을 때는 Begin Overlap, 빠져나갔을 때는 End Overlap을 활용할 수 있습니다.
예를 들어 플레이어의 공격 가능 범위를 만든다고 해보겠습니다.
On Component Begin Overlap
↓
Other Actor
↓
Enemy 확인
↓
TargetEnemy 저장
Enemy가 범위 밖으로 나갔다면
On Component End Overlap
↓
Other Actor
↓
TargetEnemy와 같은지 확인
↓
TargetEnemy 초기화
같은 방식으로 사용할 수 있습니다.
상호작용 영역도 비슷합니다.
Begin Overlap
→ "E키를 눌러 상호작용"
End Overlap
→ 상호작용 UI 제거
이처럼 Overlap은 단순 공격 판정뿐 아니라 UI, Trigger, 상호작용 등 다양한 시스템에 사용됩니다.

[언리얼 엔진 On Component Begin Overlap 사용법]
캐릭터 Capsule과 Mesh Collision 차이
Character Blueprint를 보면 일반적으로 Capsule Component와 Mesh가 함께 존재합니다.
둘은 Collision에서 역할이 다릅니다.
일반적인 Character 이동에서는 Capsule Component가 캐릭터의 기본 충돌 형태로 사용됩니다.
Character
│
├─ Capsule
│ └─ 이동 및 기본 Collision
│
└─ Mesh
└─ 캐릭터 외형
초보자 때 자주 발생하는 문제가 Mesh와 Capsule의 Collision 설정을 혼동하는 것입니다.
예를 들어 공격 Trace가 Capsule에 맞기를 원했는데 Mesh Channel만 확인하거나, 반대로 정확한 Mesh Hit가 필요한 시스템에서 Capsule만 감지하고 있을 수 있습니다.
특히 전투 시스템에서는
무엇을 맞았다고 판단할 것인가?
를 먼저 결정해야 합니다.
단순 캐릭터 감지라면 Capsule만으로 충분할 수도 있지만, 정확한 부위 판정이 필요하다면 Skeletal Mesh와 Physics Asset 등의 구조까지 고려해야 합니다.
공격 판정을 위한 Collision 설정
격투 게임이나 액션 게임에서는 공격 판정을 위해 Box, Sphere, Capsule Collision 등을 사용할 수 있습니다.
예를 들어 캐릭터 주먹에 Sphere Collision을 추가했다고 해보겠습니다.
Hand
└─ AttackCollision
평소에는 공격 Collision을 꺼놓습니다.
AttackCollision
Collision Enabled
→ No Collision
공격 Animation에서 실제 타격이 발생하는 순간에만
Anim Notify
↓
Set Collision Enabled
↓
Query Only
로 활성화합니다.
공격이 끝나면 다시 비활성화합니다.
Attack End
↓
Set Collision Enabled
↓
No Collision
이렇게 하면 공격하지 않는 상황에서 적과 접촉했다고 Damage가 발생하는 문제를 방지할 수 있습니다.
Overlap이 발생하면
On Component Begin Overlap
↓
Other Actor
↓
Damage 처리
로 연결할 수 있습니다.
다만 한 번의 공격 Animation 동안 같은 적이 여러 번 Overlap될 가능성도 있기 때문에 실제 전투 시스템에서는 이미 공격한 Actor를 배열이나 Set으로 관리하여 중복 Damage를 방지하는 로직도 고려해야 합니다.

[언리얼 엔진 공격 판정 Collision 설정 방법]
Custom Collision Channel 만드는 방법
프로젝트가 커지면 기본 Channel만으로 Collision을 관리하기 어려워집니다.
예를 들어 공격 판정을 만들면서 모든 Pawn과 Overlap하도록 설정하면 원하지 않는 NPC나 아군까지 감지될 수 있습니다.
이럴 때 Custom Collision Channel을 만들 수 있습니다.
Project Settings에서 Collision 설정으로 이동합니다.
Edit
↓
Project Settings
↓
Engine
↓
Collision
여기에서 프로젝트 목적에 맞는 Channel을 추가할 수 있습니다.
예를 들어
Enemy
PlayerAttack
Interactable
Projectile
같은 Channel을 구성할 수 있습니다.
그러면 PlayerAttack은
Enemy → Overlap
WorldStatic → Ignore
Player → Ignore
처럼 훨씬 명확하게 설정할 수 있습니다.
프로젝트 초반에는 기본 Channel로 충분하지만 전투 대상과 Object 종류가 많아지기 시작하면 Custom Channel을 사용하는 것이 관리하기 편합니다.

[언리얼 엔진 Custom Collision Channel 만드는 방법]
Collision이 작동하지 않을 때 확인할 것
Collision 문제는 여러 설정이 서로 연결되어 있기 때문에 하나만 보고 해결하려고 하면 시간이 오래 걸립니다.
저는 다음 순서대로 확인하는 것을 추천합니다.
Collision 문제 발생
↓
① Collision Enabled 확인
↓
② Object Type 확인
↓
③ 상대 Collision Response 확인
↓
④ Block / Overlap / Ignore 확인
↓
⑤ Generate Overlap Events 확인
↓
⑥ 실제 충돌 Component 확인
↓
⑦ Blueprint Event 실행 여부 확인
특히 공격 Collision이라면 추가로
Collision이 공격 순간에 활성화되는가?
공격 종료 후 너무 빨리 꺼지는 것은 아닌가?
적의 Collision Channel이 예상한 값인가?
자기 자신까지 Overlap하고 있지 않은가?
를 확인합니다.
Blueprint에서 Print String을 이용하는 것도 좋은 방법입니다.
Begin Overlap
↓
Other Actor
↓
Get Display Name
↓
Print String
이렇게 하면 실제로 어떤 Actor가 Collision에 들어왔는지 확인할 수 있습니다.
Collision 설정 시 주의할 점
Collision Channel을 많이 만드는 것이 항상 좋은 것은 아닙니다.
프로젝트 규모가 커질수록
PlayerAttack
EnemyAttack
PlayerProjectile
EnemyProjectile
BossAttack
NPC
Item
Interaction
처럼 Channel이 계속 늘어날 수 있습니다.
필요한 경우에는 분명 유용하지만 역할이 비슷한 Channel까지 무분별하게 분리하면 관리가 더 어려워질 수 있습니다.
또한 공격 판정에서 Collision과 Trace 중 무엇을 사용할지도 고려해야 합니다.
| 방식 | 특징 |
| Collision Component | 지속적인 영역 감지에 편리 |
| Line Trace | 직선 방향 검사에 적합 |
| Sphere Trace | 일정 범위를 가진 공격 검사 |
| Box Trace | 넓은 직사각형 공격 판정 |
| Capsule Trace | 길쭉한 범위 검사 |
따라서 모든 공격을 Collision Component로 구현하기보다 공격 방식에 따라 Trace와 적절히 나누는 것이 좋습니다.
마무리
언리얼 엔진 Collision은 게임을 만들면서 거의 모든 시스템에서 만나게 되는 기능입니다.
캐릭터 이동부터 공격 판정, 아이템 획득, 상호작용, Trigger, Projectile까지 Collision을 제대로 이해하지 못하면 예상하지 못한 문제가 계속 발생할 수 있습니다.
가장 먼저 기억해야 할 구조는 다음과 같습니다.
Collision Enabled
↓
Object Type
↓
Collision Response
↓
Block / Overlap / Ignore
↓
필요하면 Overlap Event
특히 Collision 문제가 발생했을 때 Preset을 이것저것 바꾸면서 우연히 해결하려고 하기보다는 내 Object의 Type이 무엇인지, 상대 Object가 해당 Type에 어떻게 Response하는지를 확인하는 습관을 들이는 것이 좋습니다.
Collision까지 이해했다면 다음에는 Collision Component와 자주 함께 사용하는 Line Trace, Sphere Trace, Box Trace의 차이와 실전 사용법을 알아보면 전투와 상호작용 시스템을 구현하는 데 큰 도움이 됩니다.
참고 사이트
- Epic Games – Collision in Unreal Engine
언리얼 엔진 Collision 시스템의 전체 구조를 확인할 수 있는 공식 문서입니다. - Epic Games – Collision Response Reference
Collision Preset, Object Type, Trace Response 등의 설정을 확인할 수 있습니다. - Epic Games – Collision Overview
Collision과 Response가 서로 어떻게 작동하는지 이해할 때 참고하기 좋은 공식 자료입니다.
함께 보면 좋은 글
- 언리얼 엔진 컴포넌트(Component) 종류와 사용법 총정리
Collision이란?문단에 연결
- 언리얼 엔진 Accessed None 오류 원인과 해결 방법
Begin Overlap과 End Overlap문단에 연결
- 언리얼 엔진 Blueprint Interface 사용법과 Cast 차이
공격 판정을 위한 Collision 설정문단에 연결
- 언리얼 엔진 Damage System – Apply Damage와 Event AnyDamage
- 공격 Damage 처리 부분에 연결
- 언리얼 엔진 Actor, Pawn, Character 차이
캐릭터 Capsule과 Mesh Collision 차이문단에 연결