이번 예시에서 파티오 레벨 스트리밍을 받기 시작하여 플레이어가 모퉁이를 돌아 파티오에 접근할 때쯤에는 스트리밍 레벨이 완전히 로드되어 화면에 나타나도록 만들겠습니다.

초기 설정으로 두 가지 레벨인 SunTemple_Persistent 와 SunTemple_Streaming 이 준비되어 있습니다. 플레이어 스타트(Player Start) 는 SunTemple_Persistent 에 있으며, 게임 속 플레이어는 캐릭터(Character) 로 표현됩니다.
-
콘텐츠 브라우저(Content Browser) 에서 SunTemple_Persistent 를 엽니다.
-
플레이어 스타트 를 사원의 시작 지점으로 이동합니다.
-
창(Windows) 을 클릭한 다음 레벨(Levels) 을 선택합니다.
-
레벨 드롭다운 메뉴를 클릭한 다음, 기존 추가(Add Existing...) 를 선택하여 새로운 서브레벨을 추가합니다.
-
레벨 열기(Open Level) 대화창에서 추가할 SunTemple_Streaming 을 선택한 다음, 열기(Open) 를 클릭합니다.
-
퍼시스턴트 레벨(Persistent Level) 을 우클릭 한 다음, 드롭다운 메뉴에서 현재로 만들기(Make Current) 를 선택합니다.
블루프린트로 레벨 스트리밍 받기
-
콘텐츠 브라우저 를 열고 새 블루프린트 클래스(Blueprint Class) 를 생성합니다. 이 클래스는 액터(Actor) 를 기반으로 할 것입니다.
-
새 블루프린트 클래스 를 'LevelStreamer'로 명명하고 저장합니다.
-
블루프린트 에디터(Blueprint Editor) 에서 LevelStreamer 를 엽니다.
이 시나리오에서는 캐릭터(Character) 가 박스 컴포넌트와 오버랩되면 두 번째 레벨을 스트리밍으로 받겠습니다.
-
컴포넌트(Components) 탭에 있는 컴포넌트 추가(Add Component) 버튼을 사용하여 박스 콜리전(Box Collision) 컴포넌트를 추가합니다.
-
블루프린트의 이벤트 그래프(Event Graph) 를 엽니다. 컴포넌트 탭에서 박스(Box) 컴포넌트를 선택한 다음, 그래프를 우클릭 하여 컨텍스트 메뉴를 엽니다.
-
'begin overlap'을 입력한 다음, 컴포넌트 오버랩 시작 시(On Component Begin Overlap) 를 선택하여 이벤트를 추가합니다.
-
기타 액터(Other Actor) 핀을 클릭하고 드래그한 다음, 컨텍스트 메뉴의 검색창에 '='을 입력합니다. Equal (Object) 항목을 선택하여 노드를 추가합니다.
-
== 노드에서 두 번째 오브젝트 핀을 클릭하고 드래그한 다음, 컨텍스트 메뉴의 검색창에 'character'를 입력합니다. Get Player Character 항목을 선택하여 노드를 추가합니다.
-
B 키를 누른 상태로 그래프를 클릭하여 Branch 노드를 추가한 다음, == 노드의 부울 핀을 Branch 노드의 입력 핀에 연결합니다.
-
OnComponentBeginOverlap 노드의 실행 출력 핀을 Branch 노드의 실행 입력 핀에 연결합니다.
-
그래프를 우클릭 한 다음, 컨텍스트 메뉴의 검색창에 'level'을 입력합니다. 메뉴에서 Load Stream Level 을 선택합니다.
-
레벨 이름(Level Name) 핀을 우클릭 하고 변수로 승격한 다음, 변수 이름을 'LevelToStream'으로 지정하고 디테일 패널에서 편집가능(Editable) 을 체크합니다.
-
Load Stream Level 노드에서 로드 후 보이게 만들기(Make Visible After Load) 와 로드 시 블록 필요(Should Block on Load) 를 토글합니다.
이 예시에서는 이 블루프린트를 사용하여 모든 레벨의 기본 로딩 동작을 같게 만들겠지만 편집가능 변수로 만드는 방법도 있습니다.
-
Branch 노드의 True 실행 출력 핀을 Load Stream Level 노드의 입력 실행 핀에 연결합니다.
-
LevelStreamer 블루프린트를 레벨에 배치하고 그 위치와 스케일을 조절해서 퍼시스턴트 월드에서 캐릭터 가 들어설 때 스트리밍하기 시작할 영역을 감싸고 스트리밍 레벨이 배치되어 캐릭터가 걸어 다닐 전체 볼륨도 감싸도록 만듭니다.
-
SunTemple_Streaming 을 스트리밍할 레벨(Level to Stream) 로 입력합니다.
-
에디터에서 플레이(Play in Editor) 를 사용하여 스트리밍 레벨을 테스트해봅니다.
블루프린트로 레벨 언로딩하기
캐릭터 가 박스 컴포넌트를 나갈 때 레벨을 언로드하려면 그래프의 로직은 거의 똑같지만 Unload Stream Level 노드에서 끝나야 합니다.
