본문 바로가기

3D 게임 개발이 처음이어도 언리얼 블루프린트로 쉽게 배우는 3D 게임

본 캠프 2일차 (레벨을 구성하고 스트리밍 해보기)

3D 게임 개발이 처음이어도 언리얼 블루프린트로 쉽게 배우는 3D 게임 개발 강의 5-3

레벨을 구성하고 스트리밍 해보기

레벨을 로딩하고 로딩을 해제하는 방법을 알아보자.

게임 모드

레벨, 즉 맵 이상의 상위에서 게임이 실행되는 동안 항상 돌아가는 존재가 게임 모드이다.

 

게임 모드는 게임의 규칙을 정의하는 에셋으로, 게임의 주요 구조와 규칙을 포함합니다.

이는 블루프린트 클래스를 만들어 재 정의가 가능한데, 먼저 콘텐츠 드로어에서 “게임 모드” 클래스를 부모로 두는 “블루프린트 클래스”를 생성해 적용할 수 있습니다.

 

실습

BP_Gamemode 생성

BP_Gamemode 실행 후 디폴트 폰 클래스 BP_Character로 변경 후 저장

레벨에 배치된 BP_Character를 삭제하고 프로젝트 세팅에서 게임모드를 방금 생성한 BP_Gamemode로 변경한다.

실행을 하면 BP_Character를 삭제했지만 자동으로 생성이 되어 플레이가 된다.

 

게임모드에서 레벨을 로드하고 언로드 해보자.

함수를 생성하고 Load Level Instance 노드를 생성한다.

파일 - 새 레벨 - 기본으로 레벨을 새로 만든다.

새로 불러오는 로드 레벨에서는 기존 레벨이 있는 상태에서 로드를 하는 것이기 때문에 빛이나 다른 액터들이 필요가 없다.

액터들을 모두 삭제하고 BP_Character만 배치하고 이름을 AILevel로 저장한다.

다시 게임모드 블루프린트로 가서 에셋을 AILevel로 변경하고 ReturnValue를 변수로 승격한다.(변수 이름 Level로 변경)

 

언로드하는 함수도 생성하고 변수 Level을 드래그하여 Set Is Requesting Unload and Removal 노드를 생성하고 연결한다.

Set Is Requesting Unload and Removal는 연결된 Target을 언로드하고 제거하는 노드이다.

원래 작업했던 레벨로 돌아와서 어느 구역에 겹치면 레벨이 로드되도록 구현하자.

레벨에 겹쳐질 구역을 큐브 액터로 지정하고 블루프린트에서 겹쳐지면 게임모드의 Load AILevel 함수가 실행되도록 한다.

겹쳐지면 레벨을 Load하는 박스
부딪힐때마다 캐릭터가 하나씩 늘어난다.