언리얼 기본

액터의 상호작용 - 오버랩, 충돌 이벤

dkuen 2026. 2. 9. 18:06

1. 오버랩(Overlap) 이벤트

1-1. 오버랩이란?

한 액터(또는 콜리전 컴포넌트)가 다른 액터(또는 콜리전 컴포넌트)의 공간 안에 들어오거나 겹쳤을 때 발생

- OnActorBeginOverlap : 다른 액터가 내 영역에 들어오기 시작할 때

- OnActorEndOverlap : 다른 액터가 내 영역을 벗어날 때

 

1-2. 레벨 블루프린트에서 오버랩 이벤트 구현

트리거 박스 만들어줍니다.

 

저는 이렇게 해당 네모칸에 맞게 만들었습니다.

이렇게 트리거 박스를 클릭한 상태로 레벨 블루프린트에 들어갑니다.

이벤트 그래프에서 우클릭을 눌렀을때 Trigger Box 0에서 함수 호출 이렇게 나오면 됩니다.

요거 만들어줍니다.

요렇게 이어줍니다.

Get Display Name은 해당 액터 이름입니다.

잘 나옵니다.

1-3. 오브젝트 블루프린트 내부에서 오버랩 이벤트 구현

BP_OverlapActor 하나 만들어줍니다.

box collision 추가해줍니다.

디테일 패널 조정해서 박스크기 조정하시면 됩니다.

똑같이 요거 사용하겠습니다.

요렇게 똑같이 만들어주시고

이렇게 배치하시면 방금 만드셨던 박스와 완벽하게 같은 기능을하는 박스가 만들어집니다.

1-4. 캐릭터 회전 예시 (게임 연출 응용)

위에 사진에 보였던 문어, 오버렙 액터 다 지워줍니다.

저번에 만들었던 Rotating Actor 재활용 하겠습니다.

Sphere Collison은 원형 오버랩입니다.

액터의 방향을 월드의 x축 방향과 맞추고

오버랩 크기도 훨씬 키워주겠습니다.

Sphere을 클릭한 상태로 On Component Begin Overlap을 사용해도 되지만

여기서는 그냥 Event ActorBeginOverlap을 사용하겠습니다.

이렇게 만들어줍니다.

하나씩 살펴보면, 새로 보이는 Find Look at Rotation이 있습니다.

Get Actor Location (자신의 위치정보)와 Get Actor Location (다른 액터의 정보)를 회전해야하는 값을 반환하고

Set Actor Rotation으로 회전합니다.

 

이렇게 작동하지만, 오버랩 안에서는 저를 따라오지 않고 오버랩 되어야지만 바라봅니다.

조금 수정하겠습니다.

 cast to bp_Character 를 만듭니다.(클래스 이름이 다르면 bp_Character는 다를 수 있습니다.)

요렇게 만들어주면 1차적으로 끝났습니다. 위 로직은 아까 로직과 똑같이 작동합니다.

조금 달라진 점은 BP_Character만 추격하겠다. 정도로 생각하시면 됩니다.

As BP Character를 변수로 승격 하시고

이렇게 만들면 오버랩 안에서는 저를 계속 따라오게 됩니다.

하나씩 살펴보겠습니다.

위 로직은 오버랩 안에 BP_Character 액터가 들어오면 As BP Character 변수에 해당 액터를 담아놓습니다.

그리고 빠져나가면 비워놓는 역할을 합니다.

Event Tick으로 프레임마다 이벤트가 발생하고 is Valid로 As BP Character가 담겨있는지 확인합니다.

담겨있다면 Set Actor Rotation을 수행합니다.

나머지 로직은 같습니다.

 

이렇게 까지 수정하면, Spere 안에서 액터가 계속 저를 따라오는 것을 확인 할 수 있습니다.

 

마지막으로 부드럽게 쫓아오도록 만들겠습니다.

보간 방법으로 부드럽게 액터가 회전하도록 만들었습니다.

추가된 로직은 Lerp(Rotator) 하나와 Multiply 하나입니다.

Lerp(Rotator) A를 지금 현제 위치, B를 Find Look at Rotation으로 보간방식을 통해 액터를 회전합니다.

중간에 Multiply는 회전 속도를 조정했습니다.

2. 충돌(Collision) 이벤트

물리적으로 부딪힐 때 발생하는 이벤트입니다.

- OnActorHit or OnComponentHit : 움직이는 액터가 다른 액터와 "Physical Collision"을 일으킬 때 이벤트 발생

2-1. 충돌 이벤트

BP_Car3만들어줍니다.

스태틱 메쉬만 남기고,

이벤트 그래프도 다 날려줍니다.

요거 찾아서 추가해주고

요렇게 이어줍니다.

뷰포트에 배치하고 실행해서 부딪히면

출력이 잘 됩니다.

부딪치면 사운드 나오게 만들겠습니다. A_Explosion02 는 기본 에셋입니다.

요렇게 이어줍니다 Play Sound at Location의 Location은 사운드가 날 위치입니다.

사운드 출력후 사라지게 만들면

쾅 소리와 함께 사라집니다.

 

2-2. 캐릭터와 충돌 : Launch Character

Launch Character 함수(노드)는 캐릭터를 특정 방향, 각도로 튕겨내는 기능입니다.

레벨 블루프린트에 생성된 오버랩 이벤트에 Launch Character를 사용하면 위로 점프하는 점프이벤트를 만들 수 있습니다.

이렇게 만들어줍니다.

잘 작동합니다.

'언리얼 기본' 카테고리의 다른 글

환경 디자인 - 랜드스케이프 & 폴리지  (1) 2026.02.13
콜리전  (0) 2026.02.13
액터 이동  (0) 2026.02.09
애니메이션 블루프린트와 블렌드 스페이스  (0) 2026.02.03
플레이어 캐릭터 만들기  (0) 2026.02.02