언리얼 엔진에서 공격 판정, 상호작용, 적 탐지 같은 기능을 만들다 보면 자주 등장하는 것이 Trace입니다.
이전 Collision 글에서 Box Collision이나 Sphere Collision처럼 실제 Collision Component를 이용해 충돌을 감지하는 방법을 살펴봤다면, Trace는 필요한 순간에 특정 방향이나 범위를 검사해서 어떤 Actor가 있는지 즉시 확인하는 방식이라고 생각하면 쉽습니다.
예를 들어 총을 발사했을 때 앞에 적이 있는지 확인하거나, 플레이어 앞에 상호작용 가능한 오브젝트가 있는지 검사하거나, 근접 공격 범위 안에 여러 적이 들어왔는지 확인할 때 활용할 수 있습니다.
언리얼 엔진에서는 기본적인 Line Trace뿐 아니라 Sphere Trace, Box Trace, Capsule Trace 같은 Shape Trace도 제공합니다. Epic Games 공식 UE 5.8 문서에서도 Line Trace와 Shape Trace를 이용해 충돌 객체를 검사하고 Hit 정보를 반환받을 수 있다고 설명하고 있습니다.
💡 한 줄 정답 — Line Trace는 가느다란 직선으로 정확한 대상을 검사할 때 적합하고, Sphere Trace는 일정 반경을 가진 공격이나 탐지에, Box Trace는 넓은 직사각형 형태의 공격 판정에 유리합니다. 근접 전투에서는 Sphere/Box Trace, 총기나 상호작용 검사에서는 Line Trace를 기준으로 선택하면 이해하기 쉽습니다.
목차
- 언리얼 엔진 Trace란?
- Line Trace란?
- Sphere Trace란?
- Box Trace란?
- Line Trace, Sphere Trace, Box Trace 차이
- Trace By Channel과 For Objects 차이
- Start와 End 위치 설정 방법
- Break Hit Result 사용 방법
- 근접 공격에 Sphere Trace 활용하기
- Box Trace로 넓은 공격 판정 만들기
- Multi Trace는 언제 사용할까?
- Draw Debug Type으로 Trace 확인하기
- Trace가 적을 감지하지 못할 때 확인할 것
- Trace와 Collision Component 중 무엇을 사용할까?
- 마무리
언리얼 엔진 Trace란?
Trace는 지정한 시작점에서 끝점까지 Collision을 검사하고 해당 범위에 존재하는 Actor나 Component의 정보를 가져오는 기능입니다.
가장 기본적인 형태는 다음과 같습니다.
Start
↓
Trace
↓
End
예를 들어 플레이어가 바라보고 있는 방향으로 Trace를 날리면
Player
│
└──────────────→ Enemy
↑
Hit
처럼 중간에 Collision을 가진 Actor가 존재하는지 확인할 수 있습니다.
Epic Games의 UE 5.8 Trace 공식 문서에서도 Trace는 Start와 End 두 지점을 기준으로 Physics 시스템을 통해 Collision을 검사하며, 다른 엔진에서 사용하는 Raycast와 비슷한 개념이라고 설명합니다.
Trace는 다음과 같은 시스템에서 자주 사용합니다.
| 활용 | 예시 |
|---|---|
| 총기 | 총알 명중 검사 |
| 근접 공격 | 주먹이나 검 공격 범위 |
| 상호작용 | 문, NPC, 아이템 탐색 |
| AI | 플레이어 발견 여부 |
| 지면 검사 | 캐릭터 아래 바닥 확인 |
| 스킬 | 특정 영역의 적 탐색 |

[언리얼 엔진 Trace 기본 구조]
Line Trace란?
Line Trace는 이름 그대로 Start와 End 사이를 하나의 가느다란 선으로 검사하는 방식입니다.
Start ●────────────────────● End
↑
Hit Actor
검사 범위가 선 하나이기 때문에 비교적 정확한 판정이 필요한 곳에 적합합니다.
대표적인 예가 총기입니다.
Fire
↓
Line Trace
↓
Break Hit Result
↓
Hit Actor
↓
Apply Damage
또는 플레이어 앞의 오브젝트를 조사하는 상호작용 시스템에서도 사용할 수 있습니다.
E Key
↓
Line Trace
↓
Hit Actor
↓
Interact
Line Trace의 장점은 판정 방향을 명확하게 지정할 수 있다는 것입니다.
반대로 근접 공격처럼 일정한 폭이 필요한 공격에서는 너무 좁을 수 있습니다.
예를 들어 적이 선에서 조금만 벗어나도
Trace ──────────────→
Enemy
명중하지 않을 수 있습니다.
따라서 주먹, 검, 광역 공격 등에서는 Sphere Trace나 Box Trace가 더 적합할 수 있습니다.

[언리얼 엔진 Line Trace 사용 방법]
Sphere Trace란?
Sphere Trace는 Line Trace에 구 형태의 반경을 추가한 검사 방식입니다.
쉽게 표현하면 단순한 선이 아니라 일정 크기의 공을 Start에서 End까지 이동시키면서 Collision을 검사한다고 생각하면 됩니다.
Start
○────○────○────○────→ End
↑
Enemy
따라서 Line Trace보다 넓은 범위를 검사할 수 있습니다.
Epic Games의 UE 5.8 공식 Sphere Trace For Objects 문서에서도 Sphere Trace는 지정한 Radius를 가진 Sphere를 Start에서 End까지 Sweep하면서 지정된 Object Type을 검사한다고 설명합니다.
Blueprint에서는 다음과 같은 입력값을 볼 수 있습니다.
Start
End
Radius
Object Types
Trace Complex
Actors to Ignore
Draw Debug Type
Ignore Self
특히 중요한 것은 Radius입니다.
예를 들어
Radius = 20
과
Radius = 100
은 공격 판정 범위가 크게 달라집니다.
근접 액션 게임에서는 주먹이나 발차기의 타격 범위를 너무 정밀한 Line Trace로 검사하기보다 Sphere Trace를 사용하면 조금 더 자연스러운 판정을 만들 수 있습니다.

[언리얼 엔진 Sphere Trace Radius 설정]
Box Trace란?
Box Trace는 직육면체 형태의 Collision 영역을 움직이며 범위를 검사합니다.
┌──────────┐
│ │
│ BOX │ ─────→
│ │
└──────────┘
Sphere Trace보다 공격 범위를 세밀하게 만들고 싶을 때 유용합니다.
Epic Games의 UE 5.8 Box Trace For Objects 문서를 보면 Box Trace는 Start와 End 사이에서 Box를 Sweep하며 지정된 Object Type 중 처음 맞은 Hit를 반환하고, Half Size와 Orientation을 추가로 설정할 수 있습니다.
Blueprint에서는 대표적으로
Start
End
Half Size
Orientation
Object Types
등을 설정합니다.
특히 Half Size를 이용하면 X, Y, Z 크기를 각각 다르게 설정할 수 있습니다.
예를 들어 검을 크게 휘두르는 공격이라면
X = 100
Y = 150
Z = 80
처럼 공격 형태에 맞는 판정을 구성할 수 있습니다.
이 때문에 Box Trace는
대검 휘두르기
전방 광역 공격
보스 내려찍기
넓은 근접 콤보
같은 공격에 활용하기 좋습니다.

[언리얼 엔진 Box Trace 공격 판정 설정]
Line Trace, Sphere Trace, Box Trace 차이
세 가지 Trace를 한 번에 비교하면 다음과 같습니다.
| Trace | 판정 형태 | 장점 | 추천 용도 |
| Line Trace | 선 | 정확하고 단순함 | 총, 상호작용 |
| Sphere Trace | 구 | 넓고 자연스러운 범위 | 주먹, 발차기, 탐지 |
| Box Trace | 박스 | 폭과 높이 조절 용이 | 검, 광역 근접 공격 |
| Capsule Trace | 캡슐 | 길쭉한 범위 | 캐릭터 탐색, 특수 공격 |
Epic 공식 문서에서도 Line Trace로 충분하지 않은 상황에서는 Box, Capsule, Sphere 같은 Shape Trace를 활용할 수 있다고 설명하고 있습니다. Shape Trace는 선뿐 아니라 일정 부피를 가진 Shape를 Sweep한다는 차이가 있습니다.
간단하게 기억하면 다음과 같습니다.
정확한 한 줄 검사
→ Line Trace
조금 넓은 원형 범위
→ Sphere Trace
폭과 높이가 필요한 범위
→ Box Trace
Trace By Channel과 For Objects 차이
Trace 노드를 검색하면 비슷한 이름이 여러 개 나옵니다.
예를 들어
Line Trace By Channel
Line Trace For Objects
Sphere Trace By Channel
Sphere Trace For Objects
처럼 나뉩니다.
둘의 차이는 무엇을 기준으로 Collision을 검사하는가입니다.
By Channel
Trace Channel 기준으로 검사합니다.
대표적으로
Visibility
Camera
같은 Channel이 있습니다.
Custom Trace Channel도 만들 수 있습니다.
WeaponTrace
InteractionTrace
For Objects
Object Type을 기준으로 검사합니다.
예를 들어
Pawn
WorldDynamic
PhysicsBody
Enemy
처럼 특정 Object Type만 찾을 수 있습니다.
Epic 공식 문서에서도 Trace는 크게 Channel과 Object Type을 기준으로 검사할 수 있다고 설명합니다.
전투에서 적만 찾고 싶다면
Sphere Trace For Objects
↓
Object Types
↓
Enemy
처럼 만들 수 있습니다.
Start와 End 위치 설정 방법
Trace에서 가장 중요한 입력은 Start와 End입니다.
일반적인 플레이어 전방 Trace라면 다음 방식으로 만들 수 있습니다.
Get Actor Location
↓
Start
End는 다음과 같이 계산합니다.
Get Actor Forward Vector
↓
× 300
↓
Get Actor Location + 값
↓
End
결과적으로
Start = Actor Location
End =
Actor Location
+
Forward Vector × Trace Distance
구조가 됩니다.
예를 들어 Trace Distance가 300이라면 캐릭터 앞쪽 약 300 Unreal Unit 범위를 검사합니다.
카메라 기준으로 Trace를 하고 싶다면 Actor Forward Vector 대신 Camera의 World Location과 Forward Vector를 기준으로 계산할 수도 있습니다.
Break Hit Result 사용 방법
Trace가 무언가를 감지하면 Out Hit이라는 Hit Result 정보를 반환합니다.
이 값을
Break Hit Result
에 연결하면 다양한 정보를 얻을 수 있습니다.
대표적인 값은 다음과 같습니다.
| 값 | 의미 |
| Hit Actor | 충돌한 Actor |
| Hit Component | 충돌한 Component |
| Impact Point | 실제 충돌 위치 |
| Impact Normal | 충돌 면의 방향 |
| Hit Bone Name | Skeletal Mesh Bone |
| Phys Mat | Physical Material |
| Trace Start | Trace 시작 위치 |
| Trace End | Trace 종료 위치 |
Epic UE 5.8 공식 Trace 문서에서도 Hit Result를 통해 Hit Actor, Hit Component, Impact Point, Hit Normal, Bone Name 등 다양한 정보를 반환받을 수 있다고 설명합니다.
전투에서는 특히
Hit Actor
Hit Location
Hit Bone Name
을 많이 사용합니다.
예를 들어 헤드샷 시스템이라면 Hit Bone Name을 확인하여
Head
↓
Damage × 2
같은 구조를 만들 수 있습니다.
근접 공격에 Sphere Trace 활용하기
근접 공격을 예로 만들어보겠습니다.
공격 Animation에서 실제 타격 시점에 Anim Notify를 호출합니다.
Attack Animation
↓
Anim Notify
↓
Sphere Trace For Objects
Trace의 Start는 캐릭터 위치 또는 주먹 Socket을 사용할 수 있습니다.
Hand Socket Location
↓
Start
End는 공격 방향을 이용합니다.
Start
+
Forward Vector × 120
↓
End
Radius는 예를 들어
Radius = 50
정도로 설정합니다.
전체 구조는 다음과 같습니다.
Anim Notify
↓
Sphere Trace For Objects
↓
Return Value
↓
Branch
↓
Break Hit Result
↓
Hit Actor
↓
Apply Damage
이렇게 하면 공격 Animation의 특정 순간에만 적을 검사할 수 있습니다.

[언리얼 엔진 Sphere Trace 근접 공격 구현]
Box Trace로 넓은 공격 판정 만들기
Box Trace는 넓은 공격을 만들 때 활용하기 좋습니다.
예를 들어 보스가 전방을 크게 내려찍는 공격을 한다고 해보겠습니다.
Boss Attack
↓
Anim Notify
↓
Box Trace
Half Size를
X = 80
Y = 180
Z = 100
정도로 설정하면 Sphere보다 넓은 좌우 범위를 만들 수 있습니다.
Orientation을 캐릭터 또는 공격 방향에 맞춰주면 공격 범위를 회전시키는 것도 가능합니다.
Boss Rotation
↓
Orientation
따라서
검 횡베기
보스 전방 공격
넓은 발차기
광역 내려찍기
등에서 활용할 수 있습니다.
Multi Trace는 언제 사용할까?
기본 Trace는 일반적으로 첫 번째 Hit를 반환합니다.
하지만 한 번의 공격으로 여러 적을 공격하고 싶다면 Multi Trace를 사용할 수 있습니다.
예를 들어
Sphere Trace For Objects
대신
Sphere Trace Multi For Objects
를 사용하면 여러 Hit Result를 배열로 받을 수 있습니다.
Out Hits
↓
For Each Loop
↓
Hit Actor
↓
Damage
같은 구조로 처리할 수 있습니다.
Epic 공식 문서에 따르면 Multi Trace는 조건에 맞는 여러 Hit 결과를 반환할 수 있으며, Channel 기반 Multi Trace와 Object 기반 Multi Trace에는 반환 방식에 차이가 있습니다.
따라서
한 명만 공격
→ Single Trace
여러 적을 동시에 공격
→ Multi Trace
로 구분하면 편합니다.
Draw Debug Type으로 Trace 확인하기
Trace를 만들었는데 공격이 맞지 않는다면 가장 먼저 추천하는 것이
Draw Debug Type
입니다.
예를 들어
For Duration
을 선택하면 게임 실행 중 실제 Trace 범위를 눈으로 확인할 수 있습니다.
Sphere Trace라면 Sphere가 이동한 영역이 표시되고, Box Trace라면 Box 형태의 범위를 볼 수 있습니다.
특히 다음 문제를 찾기 쉽습니다.
Start 위치가 잘못됨
End 방향이 반대임
Radius가 너무 작음
Box Size가 너무 좁음
Trace가 캐릭터 뒤에서 발생함
공격 판정 작업을 할 때는 처음부터 Debug Draw를 켜놓고 범위를 맞춘 뒤 완성 단계에서 끄는 방법을 추천합니다.
Trace가 적을 감지하지 못할 때 확인할 것
Trace가 보이는데도 적을 감지하지 못한다면 다음 순서로 확인합니다.
Trace 문제 발생
↓
① Start / End 확인
↓
② Trace Channel 확인
↓
③ Enemy Object Type 확인
↓
④ Collision Response 확인
↓
⑤ Ignore Self 확인
↓
⑥ Actors to Ignore 확인
↓
⑦ Trace Complex 확인
↓
⑧ Draw Debug로 범위 확인
특히 이전 Collision 글에서 다룬 Collision Response가 중요합니다.
예를 들어 WeaponTrace라는 Channel을 사용하고 있는데 Enemy Mesh가
WeaponTrace → Ignore
로 되어 있다면 Trace는 적을 제대로 Hit하지 않습니다.
Trace와 Collision 설정은 따로 존재하는 시스템이라기보다 서로 연결되어 있다고 이해하는 것이 좋습니다.
Trace와 Collision Component 중 무엇을 사용할까?
공격 판정을 만들 때 자주 고민하게 되는 부분입니다.
예를 들어 검 공격을
Sword Collision
→ Begin Overlap
으로 만들 수도 있고
Anim Notify
→ Sphere / Box Trace
로 만들 수도 있습니다.
둘을 비교하면 다음과 같습니다.
| 방법 | 특징 |
| Collision Component | 실제 Component를 지속적으로 감지 |
| Trace | 필요한 순간에 검사 |
| Line Trace | 정확한 한 방향 검사 |
| Sphere Trace | 자연스러운 근접 범위 |
| Box Trace | 넓고 조절 가능한 공격 영역 |
개인적으로 초보자라면 다음처럼 구분해서 시작하는 것이 이해하기 쉽습니다.
상시 감지 영역
→ Collision Component
특정 공격 순간 판정
→ Trace
총 또는 조준
→ Line Trace
주먹·발차기
→ Sphere Trace
검·광역 공격
→ Box Trace
물론 게임의 전투 방식에 따라 Collision과 Trace를 함께 사용하는 것도 가능합니다.
마무리
언리얼 엔진의 Trace는 공격 시스템이나 상호작용 기능을 만들 때 굉장히 자주 사용되는 기능입니다.
핵심은 모든 상황에서 하나의 Trace만 사용하는 것이 아니라 검사하려는 범위와 목적에 따라 적절한 형태를 선택하는 것입니다.
Line Trace
→ 정확한 직선 검사
Sphere Trace
→ 일정 반경의 자연스러운 범위
Box Trace
→ 폭과 높이를 조절하는 넓은 판정
Multi Trace
→ 여러 Actor 동시 검사
그리고 Trace가 정상적으로 작동하지 않는다면 단순히 Blueprint 노드만 확인하지 말고 이전에 알아본 Collision Channel과 Object Type, Collision Response 설정까지 함께 확인해야 합니다.
특히 근접 액션 게임에서는 Anim Notify → Sphere/Box Trace → Break Hit Result → Damage 구조를 이해해두면 일반 공격부터 스킬, 보스 공격까지 다양하게 응용할 수 있습니다.
참고 사이트
이번 글은 Unreal Engine 5.8 공식 문서를 기준으로 확인했습니다.
- Epic Games – Traces in Unreal Engine Overview
Trace, Channel/Object Type, Single/Multi Trace와 Shape Trace의 전체 개념을 확인할 수 있습니다.
Epic Games Trace 공식 문서 - Epic Games – Sphere Trace For Objects
Start, End, Radius, Object Types 등 Sphere Trace 입력값과 반환값을 확인할 수 있습니다.
Sphere Trace For Objects 공식 문서 - Epic Games – Box Trace For Objects
Box Trace의 Half Size, Orientation, Object Type 등의 설정을 확인할 수 있습니다.
Box Trace For Objects 공식 문서
함께 보면 좋은 글
- 언리얼 엔진 Collision 완벽 정리 – Block, Overlap, Ignore 차이
Trace By Channel과 For Objects 차이문단에 내부 링크
- 언리얼 엔진 Blueprint Interface 사용법과 Cast 차이
Break Hit Result → Hit Actor처리 부분에 내부 링크
- 언리얼 엔진 Damage System – Apply Damage와 Event AnyDamage
- 근접 공격 Trace 예제에 내부 링크
- 언리얼 엔진 Component 종류와 사용법
Trace와 Collision Component 중 무엇을 사용할까?문단에 내부 링크
- 언리얼 엔진 Accessed None 오류 원인과 해결 방법
- Hit Actor Reference 처리 부분에 내부 링크