728x90

목차.

  1. 개요
  2. 블루프린트 클래스 추가
  3. 블루 프린트 이벤트 그래프 작성
  4. 결과

 

개요

 

포탈에 접근하면 다른 위치, 스테이지로 이동하는 기믹들이 많은 게임들에서 볼 수 있습니다.

언리얼 엔진에서도 개발할 때 주로 최적화를 위해 다른 공간은 주로 레벨로 나누는 경우가 많습니다.

 

이 글에서는 블루프린트를 활용하여 간단하고 효과적인 레벨 간 이동 시스템을 만드는 방법에 대해 알아보겠습니다.

이를 통해 게임 내에서 원하는 위치로 캐릭터를 이동시키는 기능을 구현할 수 있습니다.

 

블루프린트 클래스 추가

 

먼저 블루프린트를 하나 생성해야 합니다.

블루프린트 클래스 -> 부모 클래스 Actor 선택

 

생성한 블루프린트 클래스를 클릭합니다.

 

플레이어의 레벨 이동 이벤트를 위해 트리거가 되어줄 컴포넌트가 하나 필요합니다.

 

트리거를 위해 BoxCollision과, 콜리전의 범위를 시각적으로 볼 수 있는 Cube를 추가해 줍니다.

계층 구조는 모두 DefaultSceneRoot 바로 하위에 있도록 합니다.

 

바닥에 Cube를 까는 게 싫다면 퀵셀 브리지를 통해서 괜찮은 포탈 애셋을 사용해도 괜찮습니다.

 

Box-컴포넌트-추가
두개의 컴포넌트 추가

 

블루 프린트 이벤트 그래프 작성

 

포탈은 여러 개의 인스턴스로 사용할 예정이기 때문에 변수를 하나 추가해 줍니다.

 

변수 유형은 이름으로,

이동할 레벨을 인스턴스에서 수정할 수 있도록 인스턴스 편집 가능 체크를 해줍니다.

 

 

변수-유형-설정-인스턴스-설정
변수 유형과 인스턴스 편집 가능 설정

 

이제 3개의 포탈을 설치한다면 각각 다른 레벨로 이동하도록 이름을 설정할 수 있게 됩니다.

 

다음과 같이 블루프린트 작성합니다.

 

레벨-이동을-위한-블루프린트-작성
레벨이동을 위한 블루프린트 작성

 

Box 컴포넌트를 누른 상태로 우클릭하고 On Component Begin Overlap을 선택

On Component Begin Overlap은 해당 컴포넌트와 처음 충돌했을 때 한번 호출합니다.

 

만약 On Component Begin Overlap이 보이지 않는다면 좌측에서 BoxCollision을 누른 상태인지 확인해 줍니다.

 

이제 만든 블루프린트 클래스를 레벨에 배치해 줍니다.

기본/디폴트 항목에 보면 Level Name 변수가 있는데, 이동할 레벨의 이름으로 설정합니다.

 

결과

 

결과적으로 포탈에 플레이어가 충돌하면 설정한 이름의 레벨로 이동되는 것을 확인할 수 있습니다.

블루프린트를 활용하여 언리얼 엔진에서 간단하고 효율적인 레벨 이동 시스템을 구현했습니다.

 

하지만 여기서 문제점은 뚝 끊기듯 레벨을 이동하기 때문에 이질감이 많이 느껴집니다.

 

다음 글에서 레벨을 이동할 때 시퀀스를 이용해 화면이 페이드인, 페이드아웃 되도록 해보겠습니다.

 

728x90

+ Recent posts