반응형
오버랩 이벤트 (Overlap Events) 및 충돌 감지
안녕하세요, 이번에는 **오버랩 이벤트(Overlap Events)**와 이를 활용하는 방법에 대해 이야기해 보겠습니다. 오버랩 이벤트는 캐릭터가 아이템을 획득하거나 특정 영역에 진입하는 것을 감지하는 데 필수적입니다.
1. 충돌 박스 컴포넌트 추가

우리가 만든 BP_LightPole 액터를 더블 클릭하여 편집기를 엽니다.
- 컴포넌트 추가: 좌측 컴포넌트 패널에서 + Add 버튼을 클릭합니다.
- Box Collision 검색 및 추가:
- Box Collision (박스 충돌), Capsule Collision (캡슐 충돌), Sphere Collision (구체 충돌) 등 다양한 형태의 충돌 감지 컴포넌트가 있습니다.
- 이번 예시에서는 Box Collision을 선택합니다. (이름을 TriggerBox 등으로 변경할 수 있습니다.)
- 컴파일 및 저장합니다.
2. 충돌 박스 크기 및 설정
- 뷰포트에서 추가한 TriggerBox 컴포넌트를 선택합니다.
- 디테일 패널의 Box Extent 섹션에서 X, Y, Z 값을 조절하거나, 뷰포트에서 스케일 툴을 사용하여 충돌 영역의 크기를 조정합니다.
- (참고: 게임을 만들 때는 정확한 크기가 중요하지만, 지금은 예시이므로 시각적으로 적절히 설정합니다.)
- 컴파일 및 저장합니다.
3. 오버랩 이벤트 생성

충돌 박스가 다른 액터와 겹칠 때 실행될 이벤트를 만듭니다.
- 이벤트 그래프로 이동합니다.
- TriggerBox 컴포넌트를 선택한 상태에서 디테일 패널을 가장 아래로 스크롤하면 이벤트(Events) 목록을 볼 수 있습니다.
- On Component Begin Overlap (컴포넌트 오버랩 시작 시)를 클릭하여 이벤트 노드를 만듭니다.

- (또는 컴포넌트 패널에서 TriggerBox를 오른쪽 클릭 → Add Event → Collision → On Component Begin Overlap을 선택해도 됩니다.)
4. 움직이는 액터 설정 (테스트용 큐브)
오버랩을 테스트하기 위해 레벨에 움직이는 큐브를 준비합니다.
- 레벨에 Cube 스태틱 메시 액터를 배치하고, 디테일 패널에서 **Mobility (이동성)**를 반드시 **Movable (이동 가능)**로 설정합니다.

- Cube의 위치 설정: 큐브를 라이트 폴 충돌 박스 밖의 적절한 위치에 배치합니다.

- 레벨 블루프린트에서 큐브 이동 로직을 구현합니다:
- R 키보드 이벤트를 만듭니다.
- **큐브 레퍼런스(Reference)**를 만듭니다. (큐브를 선택하고 레벨 블루프린트에서 오른쪽 클릭)

-
- Get Actor Location 노드를 연결하여 큐브의 현재 위치를 가져옵니다.
- Break Vector 노드를 연결합니다. (X, Y, Z 축 분리)
- X 축 값에서 20을 빼기(Subtract) 연산합니다. (큐브를 X축 마이너스 방향으로 20씩 이동시키기 위함입니다. )
- Make Vector 노드를 연결하고 변경된 X 값과 기존의 Y, Z 값을 다시 합칩니다.

-
- Set Actor Location 노드를 연결하고 새로운 벡터 값을 New Location 핀에 연결합니다.
- R 키 실행 핀을 Set Actor Location에 연결합니다.

- 테스트: Play를 누르고 R 키를 누르면 큐브가 라이트 폴 쪽으로 이동하는 것을 확인합니다.


5. 오버랩 감지 및 액터 파괴 로직
큐브가 라이트 폴의 TriggerBox와 겹쳤을 때 코드가 실행되도록 합니다.
- 큐브 설정: Cube 액터를 선택하고 디테일 패널의 Collision 섹션에서 **Generate Overlap Events (오버랩 이벤트 생성)**가 반드시 체크되어 있어야 합니다. (이것이 없으면 오버랩이 감지되지 않습니다.)

- BP_LightPole 이벤트 그래프: On Component Begin Overlap 노드 뒤에 다음을 연결합니다.
- Print String: "Self Destruction"을 출력합니다.
- Delay: 2초 지연을 설정합니다.
- Destroy Actor (액터 파괴): 파괴 노드를 연결합니다.

- Target: Destroy Actor 노드의 기본 Target은 Self (자기 자신, 즉 BP_LightPole)입니다. 우리가 지금 편집하고 있는 라이트 폴을 파괴하려는 것이므로, 타겟을 따로 지정할 필요가 없습니다.
- 최종 테스트:
- Play를 누릅니다.
- R 키를 눌러 큐브를 이동시켜 라이트 폴의 TriggerBox와 겹치게 합니다.
- 겹치는 순간 "Self Destruction"이 출력되고, 2초 후 라이트 폴 액터가 파괴되어 사라집니다.

이것이 오버랩 이벤트를 사용하여 게임 내에서 충돌을 감지하고 액터에게 **행동(Behavior)**을 부여하는 기본적인 방법입니다.
반응형
'Unreal Engine' 카테고리의 다른 글
| Unreal Engine 편집 가능한 변수와 생성 시 노출 (Editable Variables & Expose on Spawn) (0) | 2025.11.08 |
|---|---|
| Unreal Engine 씬 컴포넌트 (Scene Components) 설명 (0) | 2025.11.08 |
| Unreal Engine 액터 생성(Spawn) 및 파괴(Destroy) (0) | 2025.11.01 |
| Unreal Engine 블루프린트 액터 (Blueprint Actor) 소개 (0) | 2025.11.01 |
| Unreal Engine 폰(Pawn) 클래스와 캐릭터(Character) 클래스 설명 (0) | 2025.11.01 |