목차.
개요
포탈에 접근하면 다른 위치, 스테이지로 이동하는 기믹들이 많은 게임들에서 볼 수 있습니다.
언리얼 엔진에서도 개발할 때 주로 최적화를 위해 다른 공간은 주로 레벨로 나누는 경우가 많습니다.
이 글에서는 블루프린트를 활용하여 간단하고 효과적인 레벨 간 이동 시스템을 만드는 방법에 대해 알아보겠습니다.
이를 통해 게임 내에서 원하는 위치로 캐릭터를 이동시키는 기능을 구현할 수 있습니다.
블루프린트 클래스 추가
먼저 블루프린트를 하나 생성해야 합니다.
블루프린트 클래스 -> 부모 클래스 Actor 선택
생성한 블루프린트 클래스를 클릭합니다.
플레이어의 레벨 이동 이벤트를 위해 트리거가 되어줄 컴포넌트가 하나 필요합니다.
트리거를 위해 BoxCollision과, 콜리전의 범위를 시각적으로 볼 수 있는 Cube를 추가해 줍니다.
계층 구조는 모두 DefaultSceneRoot 바로 하위에 있도록 합니다.
바닥에 Cube를 까는 게 싫다면 퀵셀 브리지를 통해서 괜찮은 포탈 애셋을 사용해도 괜찮습니다.
블루 프린트 이벤트 그래프 작성
포탈은 여러 개의 인스턴스로 사용할 예정이기 때문에 변수를 하나 추가해 줍니다.
변수 유형은 이름으로,
이동할 레벨을 인스턴스에서 수정할 수 있도록 인스턴스 편집 가능 체크를 해줍니다.
이제 3개의 포탈을 설치한다면 각각 다른 레벨로 이동하도록 이름을 설정할 수 있게 됩니다.
다음과 같이 블루프린트 작성합니다.
Box 컴포넌트를 누른 상태로 우클릭하고 On Component Begin Overlap을 선택
On Component Begin Overlap은 해당 컴포넌트와 처음 충돌했을 때 한번 호출합니다.
만약 On Component Begin Overlap이 보이지 않는다면 좌측에서 BoxCollision을 누른 상태인지 확인해 줍니다.
이제 만든 블루프린트 클래스를 레벨에 배치해 줍니다.
기본/디폴트 항목에 보면 Level Name 변수가 있는데, 이동할 레벨의 이름으로 설정합니다.
결과
결과적으로 포탈에 플레이어가 충돌하면 설정한 이름의 레벨로 이동되는 것을 확인할 수 있습니다.
블루프린트를 활용하여 언리얼 엔진에서 간단하고 효율적인 레벨 이동 시스템을 구현했습니다.
하지만 여기서 문제점은 뚝 끊기듯 레벨을 이동하기 때문에 이질감이 많이 느껴집니다.
다음 글에서 레벨을 이동할 때 시퀀스를 이용해 화면이 페이드인, 페이드아웃 되도록 해보겠습니다.
'언리얼' 카테고리의 다른 글
[UE4] 언리얼 엔진 : 패키징 용량 최적화 (1) | 2023.09.09 |
---|---|
[UE4] 언리얼 엔진 : 레벨 전환시 화면 끊김 문제 해결하기 (0) | 2023.09.09 |
[UE4] 언리얼 엔진 : 나이아가라 시스템으로 눈 파티클 생성 및 이동 구현 (0) | 2023.09.09 |
[UE4] 언리얼 엔진 : 익스포넨셜 하이트 포그(ExponentialHeightFog) 색 자동 설정 (0) | 2023.09.06 |
[UE4] 언리얼 엔진 기초 : 머티리얼(Material),머티리얼 인스턴스(Material Instance) (0) | 2023.09.04 |