본문 바로가기
Unreal Engine

Unreal Engine 오버랩 이벤트 (Overlap Events) 및 충돌 감지

by hfgraphic 2025. 11. 9.
반응형

 

오버랩 이벤트 (Overlap Events) 및 충돌 감지

 

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


 

1. 충돌 박스 컴포넌트 추가

우리가 만든 BP_LightPole 액터를 더블 클릭하여 편집기를 엽니다.

  1. 컴포넌트 추가: 좌측 컴포넌트 패널에서 + Add 버튼을 클릭합니다.
  2. Box Collision 검색 및 추가:
  • Box Collision (박스 충돌), Capsule Collision (캡슐 충돌), Sphere Collision (구체 충돌) 등 다양한 형태의 충돌 감지 컴포넌트가 있습니다.
  • 이번 예시에서는 Box Collision을 선택합니다. (이름을 TriggerBox 등으로 변경할 수 있습니다.)
  1. 컴파일 및 저장합니다.

 

2. 충돌 박스 크기 및 설정

 

  1. 뷰포트에서 추가한 TriggerBox 컴포넌트를 선택합니다.
  2. 디테일 패널Box Extent 섹션에서 X, Y, Z 값을 조절하거나, 뷰포트에서 스케일 툴을 사용하여 충돌 영역의 크기를 조정합니다.
  • (참고: 게임을 만들 때는 정확한 크기가 중요하지만, 지금은 예시이므로 시각적으로 적절히 설정합니다.)
  1. 컴파일 및 저장합니다.

 

3. 오버랩 이벤트 생성

충돌 박스가 다른 액터와 겹칠 때 실행될 이벤트를 만듭니다.

  1. 이벤트 그래프로 이동합니다.
  2. TriggerBox 컴포넌트를 선택한 상태에서 디테일 패널을 가장 아래로 스크롤하면 이벤트(Events) 목록을 볼 수 있습니다.
  3. On Component Begin Overlap (컴포넌트 오버랩 시작 시)를 클릭하여 이벤트 노드를 만듭니다.
  • (또는 컴포넌트 패널에서 TriggerBox를 오른쪽 클릭Add EventCollisionOn Component Begin Overlap을 선택해도 됩니다.)

 

4. 움직이는 액터 설정 (테스트용 큐브)

 

오버랩을 테스트하기 위해 레벨에 움직이는 큐브를 준비합니다.

  1. 레벨Cube 스태틱 메시 액터를 배치하고, 디테일 패널에서 **Mobility (이동성)**를 반드시 **Movable (이동 가능)**로 설정합니다.
  1. Cube의 위치 설정: 큐브를 라이트 폴 충돌 박스 밖의 적절한 위치에 배치합니다.
  1. 레벨 블루프린트에서 큐브 이동 로직을 구현합니다:
    • 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에 연결합니다.
  1. 테스트: Play를 누르고 R 키를 누르면 큐브가 라이트 폴 쪽으로 이동하는 것을 확인합니다.

 

5. 오버랩 감지 및 액터 파괴 로직

 

큐브가 라이트 폴의 TriggerBox와 겹쳤을 때 코드가 실행되도록 합니다.

  1. 큐브 설정: Cube 액터를 선택하고 디테일 패널Collision 섹션에서 **Generate Overlap Events (오버랩 이벤트 생성)**가 반드시 체크되어 있어야 합니다. (이것이 없으면 오버랩이 감지되지 않습니다.)
  1. BP_LightPole 이벤트 그래프: On Component Begin Overlap 노드 뒤에 다음을 연결합니다.
  • Print String: "Self Destruction"을 출력합니다.
  • Delay: 2초 지연을 설정합니다.
  • Destroy Actor (액터 파괴): 파괴 노드를 연결합니다.
  • Target: Destroy Actor 노드의 기본 TargetSelf (자기 자신, 즉 BP_LightPole)입니다. 우리가 지금 편집하고 있는 라이트 폴을 파괴하려는 것이므로, 타겟을 따로 지정할 필요가 없습니다.
  1. 최종 테스트:
  • Play를 누릅니다.
  • R 키를 눌러 큐브를 이동시켜 라이트 폴의 TriggerBox겹치게 합니다.
  • 겹치는 순간 "Self Destruction"이 출력되고, 2초 후 라이트 폴 액터가 파괴되어 사라집니다.

 

이것이 오버랩 이벤트를 사용하여 게임 내에서 충돌을 감지하고 액터에게 **행동(Behavior)**을 부여하는 기본적인 방법입니다.

 

반응형