본문 바로가기
프로그래밍/Unreal Engine 3

Level Streaming

by neive 2012. 4. 2.
728x90

 

레벨 스트리밍이라하면 기본적으로 심리스같이 내 주변의 맵들을 자동으로 로드해오는 것으로 인지하기 쉽지만

언리얼에서의 레벨 스트리밍은 맵 대 맵으로의 이동도 지원을 합니다

예를 들어 처음에 타이틀용 레벨을 읽어 왔다가 어떤 입력을 하면 로비 맵으로 넘어간다고 했을 때 어떻게 만들어야

할까-

지금은 애석하게 됐지만 라그나로크2 오베 당시 나름 신선했던 통짜레벨 타이틀/로그인 화면

상용 언리얼3 라면 별로 고민할 문제는 아니지만 UDK 에서 하려면 아직 분석이 부족해서 당장 쉽게 보이는건 레벨 스

트리밍을 사용하는게 가장 합리적으로 보이죠

 

레벨 스트리밍을 추가하려면 일단 컨텐츠 브라우저 창에서 Levels 탭을 선택하고

 

메뉴바에서 Level 을 고르고 Add Existing Level... 을 선택하면 기존에 생성되어있던 맵을 골라 스트리밍 리스트에

추가 할 수 있습니다.

레벨 스트리밍에서는 퍼시스턴트 레벨이라는게 필요한데 게임이 실행되고 나서 내내 사용되진 않지만 개념적으로

존재해야 되는 레벨을 만들어줘야 됩니다. 보통 아무것도 없는 넓은 공간을 하나 만들어주죠..

레벨 스트리밍 http://udn.epicgames.com/Three/LevelStreamingHowToKR.html

레벨 브라우저 http://udn.epicgames.com/Three/LevelBrowserReferenceKR.html

퍼시스턴트 레벨을 만들고 (보통 샘플로 들어있는 거의 모든 맵이 퍼시스턴트가 기본이니 따로 설명은 필요 없음..)

추가할 때 자동적으로 시야에 보일 때, 혹은 무조건 로드해놓는다던가 키즈멧에서 사용할지 선택하는게 나오는데

여기서는 키즈멧을 고르기로 합니다

추가를 했으면

 

키즈멧을 열고 New Action > Level > Stream Level 을 추가하여 Level Name 에 스트리밍할 레벨의 이름을 적어

줍니다

키즈멧 http://udn.epicgames.com/Three/KismetReferenceKR.html

맵이 유효하면 빨간 x 에서 초록색 나이키(;)로 변합니다

 

이제 가상의 Entry 레벨에서 시작하자마자 타이틀 레벨로 넘어가게끔 키즈멧을 만들어 보면-

레벨이 시작되자마자 스트림 레벨이 로드되도록 (키즈멧이 2중으로 있어야 됩니다)

 

퍼시스턴트 레벨의 키스멧에서 스트림 레벨을 불렀으니 이쪽으로 들어오겠죠 :)

 

스트림 레벨이 시작되자마자 그 레벨의 키즈멧의 Load and Visible 로 out 이 되고 (Beginning of Level 은 작동 안함)

해당 레벨에 걸려있는 이벤트가 수행되면 됩니다, 그리고 레벨 이동이니까 플레이어를 적당한 위치로 텔레포트 시켜줘

야 겠지요 (혹은 새로 스폰하던가)

 

이야 ㅠ.ㅠ 이제 정식적으로 로비도 있고 타이틀도 있는 UDK 예제들 많이 나오겠네요 이거만 보면 쉽게 되니까!

 

728x90

댓글