[UE4] 언리얼엔진 블루프린트 Overlap Event

나무·2022년 8월 31일
2

Unreal Engine 4

목록 보기
4/14

언리얼엔진의 블루프린트 기능중 Overlap Event 에 대해 알아보자 !

오늘은 언리얼엔진에서 필요한 기능을 구현하는데 유용한 블루프린트, 그 중에서도 Overlap Event 에 대해서 알아볼 것이다.

Overlap Event란?

이 길쭉한 노드가 바로 우리가오늘 알아볼 Overlap Event 기능의 노드이다

OverLap Event는 그 이름에서 알 수 있듯이 액터가 서로 겹쳤을때 호출이 일어나는 이벤트로 콜리전과 연관이 있다

역시나 말로만 들으면 어떤 느낌인지 감이 잘 안올 수 있다.

한 번 실행을 시켜보자 !

우선 좌측 컴포넌트 추가 창에서 box를 입력하면 나오는 Box Collision을 선택해서 생성해준다.

그리고 만들어진 Box를 클릭한 상태로 위에 있는 Cone에 드래그하여 새로운 루트로 변경시켜준다

그러면 다음과 같이 우리가 생성해준 박스 콜리전이 루트(root)가 되고 기존에 있던 콘이 박스에 상속된 형태로 존재하고 있음을 확인할 수 있다

그 후 컴파일을 하고 액터가 배치된 레벨로 돌아와서 확인을 해보면

정상적으로 배치된 콜리전과 콘을 볼 수 있다.

참고로 우리가 생성한 박스는 콜리전이라서 실제 플레이를 하면 보이지 않게 되는데 내가 배치한 콜리전을 확인하고 싶다면

뷰포트에서 박스를 선택하고

우측 디테일 창에 렌더링 항목에서 Hidden in Game 체크를 해제해주고 컴파일 후 다시 플레이를 해주면

다음과 같이 실제 게임 안에서도 콜리전을 확인할 수 있게 된다.

그 이외에 렌더링 부분에 Visible 항목을 해제하면 액터 배치 창에서도 콜리전이 보이질 않게 된다.

이렇게 우리는 겹침(Overlap)을 확인할 콜리전 생성까지 완료해주었다

이제 다시 이벤트 그래프 창으로 돌아가 블루프린트를 이용해 Overlap이 일어나면 문자열을 출력할 수 있도록 구현을 해보자 !

앞서 설명했던 BeginPlay, EventTick과 마찬가지로, Overlap Event 노드에 Print String 함수를 생성해서 연결해준다

출력 문자열은 무엇을 해도 상관없지만 편의상 Overlap! 으로 설정한다

이제 다시 컴파일을 해준 후 플레이를 누르고

우리의 BP_Ball(공)을 잘 조작해서 콜리전 박스로 가져가게 되면

위와 같이 우리의 BP_Ball(공)이 박스 콜리전과 겹쳐지게 되었을 때 Overlap ! 이 출력되는 것을 확인할 수 있다.

또한 Overlap은 여러개의 구성요소를 가질 수 있는데 이것 또한 바로 구현을 해보자 !

아까와 같이 컴포넌트 추가 창에서 이번에는 Sphere을 검색해주고 생성해준다

그리고 이번에는 Sphere을 Cone에 드래그해 서로 같은 경로에 있게 만들어주자

그리고 뷰포트에서 정상적으로 생성이 됬는지 확인을 해주고, 컴파일 - 플레이를 해서 이전과 같이 콜리전을 겹치게 만들어보자 !


확인을 해보면 이번에 새롭게 생성해준 Sphere에 BP_Ball을 겹쳐도 똑같이 Overlap Event가 호출된 것을 확인할 수 있다

여기까지만 해도 우리는 Overlap이 여러 구성요소를 가질 수 있다는 것을 알 수 있게 되었다

하지만 우리가 확인을 해보았을때 서로 다른 유형의 콜리전이지만 똑같은 Overlap ! 이라는 문자열이 출력된 것 또한 알 수 있다

우리는 이제 편의상 서로 다른 유형의 Overlap은 다른 문자열로 출력할 수 있도록 구현을 해볼 것이다 !

우선 다시 이벤트 그래프로 돌아와, 컴포넌트 창에서 Box를 클릭한 후 그래프 창에서 우클릭을 통해 overlap begin을 검색해 나오는 On Component Begin Overlap을 추가해준다

위 사진과 같이 On Component Begin Overlap (Box) 노드가 생성되어야 된다 !

이후 다음과 같이 Print String 함수를 만들고 문자열을 Overlap with Box ! 로 변경해준뒤 컴파일 - 플레이를 해서 박스 콜리전으로 Overlap을 시켜보자

그러면 위에서 확인할 수 있는 것 처럼 기존에 설정한 Overlap ! 문자열과 지금 새롭게 만들어준 Overlap with Box ! 문자열이 같이 출력되는 것을 알 수 있다

그러면 똑같이 Sphere 에서도 위와같이 노드들을 만들어서 이어주고 실행을 시켜보자 !

다음과 같이 노드를 구현해주고 스피어 콜리전으로 Overlap을 시켜보면

박스 콜리전때와는 다르게 정상적으로 Overlap with Sphere ! 이 출력된다

이런식으로 우리는 오늘 Overlap Event에 대해서 알아보았다 !

간단하게 정리를 해보면 Overlap Event는 서로 겹쳐지는(Overlap)상황에서 호출되는 이벤트로,

특정 구성요소에 개별적인 이벤트들을 가질 수 있고 또한 이러한 기능을 이용하여 더욱 구체적인 로직과 기능들을 만들 수 있다.

이렇게 오늘도 마무리 하고 다음 시간에 Casting 포스팅으로 다시 볼 수 있길 희망한다 !

profile
개인 공부를 정리함니다

0개의 댓글