레벨 스트리밍 개요

스트리밍 레벨의 로드는 레벨 스트리밍 볼륨 또는 블루프린트나 C++ 를 통한 프로그래밍 방식으로 처리할 수 있습니다.

Windows
MacOS
Linux

레벨 스트리밍 기능은, 메모리에 맵을 로드/언로드하거나 그 표시여부(visibility)를 토글시키는 작업 모두 플레이 도중 할 수 있도록 해 주는 기능입니다. 월드를 작은 덩어리로 잘개 쪼개, 언제고 관련이 있는 부분만 리소스를 차지하여 렌더되도록 할 수 있는 것입니다. 제대로만 해 주면 매우 커다란 심리스 게임을 만들 수 있으며, 여기서는 플레이어가 난장이 세상같은 크기의 월드에서 플레이하는 것과 같은 느낌을 줄 수 있습니다.

퍼시스턴트 레벨

다수의 레벨을 끊김 없이 로드되도독 만들기 위한 첫 단계는 퍼시스턴트 레벨을 만드는 것입니다. 이는 레벨의 스트림 인/아웃 여부를 관장하는 데 주로 사용되는 마스터 레벨로 생각해 볼 수 있습니다.

스트리밍 레벨

스트리밍 레벨은 레벨 을 통해 관리됩니다. 퍼시스턴트 레벨에 겹칠 수도 있고, 약간 빗겨 배치하는 방식으로 거대한 월드를 만들 수도 있습니다. 각각의 스트리밍 레벨은 스트리밍 유형을 Always Loaded (항상 로드됨) 또는 Blueprint (블루프린트) 로 설정할 수 있습니다. 이 설정을 레벨 창에서 서브레벨에 우클릭하여 껐다켰다 할 수 있습니다.

스트리밍 레벨을 Always Loaded (항상 로드됨)으로 설정하면, 퍼시스턴트 레벨과 같이 로드됩니다. 보이는 시점도 퍼시스턴트 레벨과 마찬가지입니다. 연결된 스트리밍 볼륨 뿐 아니라, 블루프린트 또는 C++ 에서 전송된 로드 / 언로드 요청도 무시합니다. 이러한 유형의 서브레벨은 보통 퍼시스턴트 레벨에 있는 콘텐츠를 다수의 레이어 에 나누어, 여러 명의 아티스트가 서로의 작업을 방해하지 않고 병렬 작업할 수 있도록 하는 데 쓰입니다. 이러한 작업방식 관련 상세 정보는, 서브레벨 공동작업 문서를 참고하세요. 게임에서 Always Loaded (항상 로드됨) 서브레벨은 게임에서 퍼시스턴트 레벨을 변경하지 않는 한 절대 스트림 아웃 되지 않습니다.

퍼시스턴트 레벨만

레벨 스트림 인 이후

동적인 스트리밍 방법

Blueprint (블루프린트) 스트리밍 유형으로 레벨을 스트리밍하면 레벨 스트리밍 볼륨, 블루프린트, C++ 코드로 스트리밍을 제어할 수 있습니다. 동적인 로드 / 언로드 제어가 가능한 것입니다.

레벨 스트리밍 볼륨

Level Streaming Volumes (레벨 스트리밍 볼륨)이 있으면 레벨 스트리밍 제어가 매우 쉬워집니다. 개념은 간단합니다: 어느 한 레벨에 연결된 레벨 스트리밍 볼륨 안에 시점이 있는지에 따라 그 스트리밍 레벨에 대한 로드/언로드 요청을 하는 것입니다.

구체적으로, 레벨 스트리밍을 활용할 수 있는 방법은 두 가지입니다:

  • 게임 에서, 레벨 스트리밍 볼륨은 플레이어의 시점이 볼륨 안에 있을 때 레벨을 로드하고, 볼륨 밖에 있을 때 레벨을 언로드하도록 만듭니다.

  • 에디터 에서, 레벨 스트리밍 볼륨은 원근 뷰포트 카메라의 위치에 따라 레벨을 자동으로 숨기고/해제하는 식으로 레벨 스트리밍을 미리보는 데 사용됩니다.

볼륨 기반 레벨 스트리밍은 사용하기 쉽고 별도의 스크립트가 필요치 않아, 레벨 스트리밍 제어에 이상적인 방식입니다. 게다가 볼륨 기반 레벨 스트리밍은 스크립트 방식 스트리밍보다 관리하기가 훨씬 쉽습니다: 로드 시스템에 필요한 부분이 바뀌면, 스트리밍 볼륨 크기를 조정하는 것만으로도 레벨 로드/언로드 작동방식을 변경할 수 있습니다.

스크립트 레벨 스트리밍

레벨 로드 / 언로드를 위의 잠긴 문 예제처럼 보다 복잡한 방식으로 구성하려면, 블루프린트나 C++ 로직을 사용하여 레벨 로드 / 언로드 구성을 하면 됩니다. 여기서 핵심이 되는 함수는 Load Stream LevelUnload Stream Level 이며, 그 뒤에 레벨을 이름으로 지정하면 됩니다.

Load Stream LevelUnload Stream Level 에 추가로, Get Streaming Level 함수로 보다 동적인 방식의 스트리밍도 가능합니다. 실제 레벨 스트리밍 오브젝트에 대한 접근 권한을 주는 것이므로, 그 상태를 변경 또는 질의할 수 있습니다. 이 함수와 Create Instance 를 같이 사용하면, 특정 서브레벨의 사본을 스트림 인 시킬 수도 있습니다. 그 사본에 트랜스폼을 적용하고 파라미터를 전송하는 식으로, 절차적 생성 방식의 월드를 만들 수 있습니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback