오버랩 이벤트
우리가 설치한 비밀문에 가고일 석상이 들어간다면 이를 알릴 트리거 박스를 설치해보자.
이를 위해선 각 오브젝트가 가지는 콜리전 타입에 대해서 알아야 한다.
우리는 이를 이미 가고일 석상을 통해 확인을 한 적이 있다.
가고일의 오브젝트 타입은 WorldStatic이고, 다른 WorldStatic이나 WorldDynamic 타입들에 대해서는 차단되는 것을 볼 수 있다.
하지만 Pawn과는 오버랩인 상태이다.
이번엔 pawn을 살펴보자.
가고일의 타입인 WorldStatic타입에 대해 차단된 모습을 볼 수 있다.
이렇게 한 쪽은 오버랩 상태인데, 한 쪽은 차단된 상태이다.
이러면 어떻게 될까?
아래 표를 살펴보자.
표의 A를 Pawn으로, B를 가고일 석상으로 두고 생각해보자.
A가 Block일 때 B는 Overlap이면 Overlap 상태가 되는 것을 볼 수 있다.
서로가 차단을 원한다면, 무조건 양쪽다 Block 상태여야한다는 것 또한 알 수 있다.
더 자세한 내용을 원한다면 다음 링크를 참고해보면 좋다.
참고링크 : https://www.unrealengine.com/en-US/blog/collision-filtering
Collision Filtering in Unreal Engine 4
Choosing what collides is obviously very important, but it can be tricky, and it’s a problem that we have spent quite a while discussing while developing UE4. The system we have can seem a little complex at first, but it is very powerful and consistent,
www.unrealengine.com
우리가 원하는 것은 비밀문에 트리거 박스를 설치하여 오버랩 이벤트를 만드는 것이다.
가고일 석상이 트리거 박스에 위치하면 비밀문이 열리는 것을 원하기 때문이다.
이를 위해 우선 비밀문의 블루프린트를 만들어주자.
다음으로 비밀문에 박스 콜리전 컴포넌트를 생성해주자.
박스 크기 또한 비밀문 아래 공간아 맞게 조정해주자.
해당 박스의 콜리전 세팅을 보면 다음과 같이 기본적으로 거의 다 오버랩 되어있는 것을 볼 수 있다.
따라서 다른 쪽에서 차단되어있더라도, 여기서는 대부분의 타입에 대해 오버랩되어있으니 오버랩이 우선시 된다.
간단하게 블루프린트를 이용해 트리거 박스에 들어오면 들어몬 액터의 이름을 출력해보자.
On COmponent Begin Ovelap 함수를 이용해 다른 액터에 대한 이름을 출력해줄 수 있다.
여기서 함수 오른쪽에 이름이 Trigger Area인 것은 기존 박스 콜리전 컴포넌트의 이름을 저렇게 변경했기 때문이다.
여기서 추가로 해주어야 하는 것이 가고일 조각상의 오버랩 이벤트를 활성화해주어야 한다.
오버랩 자체는 한쪽에서만 활성화하면 다른 쪽에서도 가능하게 되지만, 오버랩 이벤트는 양쪽이 모두 활성화가 되어있어야 한다.
이제 실행을 해서 가고일 조각상을 가져가보면 가고일 조각상의 이름이 출력된다.
이때 배치하는 장소가 어둡다고 느껴져 스포트라이트를 추가해주었다.
이제 블루프린트가 아닌 C++로 구현해보자.
이를 위해 기존 박스 콜리전 컴포넌트를 지우고 C++ 컴포넌트를 추가해준다.
기존에는 일반 클래스에서 선택했지만, 이번엔 박스가 필요하므로 모든 클래스에서 BoxComponent를 선택한다.
여기서 기존의 클래스들과는 상위 클래스가 달라 설정이 다르기 때문에 기존 헤더 및 cpp 파일에서 설정을 복사해야할 필요가 있다.
복사해주고 CPP 파일에는 로그 메시지를 통해 트리거 컴포넌트가 있다는 것을 알려주었다.
여기서도 처음에 BeginPlay() 항목이 없기 때문에 생성해주어야한다.
이제 해당 Trigger를 다시 비밀문에서 추가해주자.
그리고 이 Trigger를 이용해 이벤트그래프에서 전과 같이 액터의 이름을 추가해주는 함수를 생성해주자.
우측 Trigger를 누르고 우클릭을 해야 위 함수를 찾을 수 있다.
추가적으로 주의해야 할점이 하나 있는데, 박스 크기를 다시 올바르게 만들어주어야 한다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-31 (0) | 2024.03.26 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-30 (0) | 2024.03.25 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-28 (0) | 2024.03.25 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-27 (0) | 2024.03.24 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-26 (0) | 2024.03.24 |