블루프린트로 레벨 로드 및 언로드

블루프린트로 만든 커스텀 스트리밍 액터로 레벨을 스트리밍하는 법입니다.

Windows
MacOS
Linux

레벨 스트리밍 시나리오

Sun Temple (태양의 사원) 프로젝트의 메인 레벨로 시작해서 레벨을 둘로 나눕니다. 하나는 실내 공간, 다른 하나는 기둥과 바다가 보이는 파티오 공간입니다. 아래 와이어프레임 뷰에서, 청록 와이어프레임은 퍼시스턴트 실내 레벨, 노랑 와이어프레임은 스트림 인 예정인 파티오 레벨입니다. 하늘과 바다는 퍼시스턴트 레벨에 있는데, 메인 레벨인 사원에서도 하늘과 외부를 볼 수 있는 창이 몇 곤데 있기 때문입니다.

LevelSplit.png

사원 내부에는 굽은 통로가 있어 파티오 영역이 시야에서 가려집니다.

StartLoading.png

여기서부터 파티오 레벨을 스트림 인 시키고자 하는데, 플레이어가 코너를 돌아 파티오에 접근하기 시작하면, 스트리밍 레벨이 로드되어 보일 것입니다.

StreamingLevelVisible.png

구성의 일부로 레벨이 둘 있는데, SunTemple_PersistentSunTemple_Streaming 입니다. Player StartSunTemple_Persistent 에 있으며, 게임의 플레이어는 Character 로 표현되고 있습니다.

  1. SunTemple_Persistent콘텐츠 브라우저 에서 엽니다.

  2. Player Start 를 사원 시작 위치로 옮깁니다.

    PlayerStart.png

  3. - 레벨 을 클릭합니다.

    WindowLevels.png

  4. 레벨 드롭다운 메뉴에서 기존 추가... 를 선택하여 서브레벨을 새로 추가합니다.

    AddExisting.png

  5. SunTemple_Streaming 을 선택하여 레벨 열기 대화창에 추가한 뒤, 열기 를 클릭합니다.

    SunTempleStreaming_Select.png

  6. 퍼시스턴트 레벨우클릭 하고 드롭다운 메뉴에서 Make Current (현재로 만들기)를 선택합니다.

블루프린트로 레벨 스트림 인

  1. 콘텐츠 브라우저 를 열고 블루프린트 클래스 를 새로 만듭니다. 이 클래스는 Actor (액터) 기반입니다.

  2. 블루프린트 클래스 이름은 LevelStreamer 라 하고 저장합니다.

  3. LevelStreamer블루프린트 에디터 에서 엽니다.

이 시나리오에서는, 캐릭터 가 박스 컴포넌트에 겹치면 두 번째 레벨을 스트림 인 시키도록 하겠습니다.

  1. 컴포넌트 탭의 컴포넌트 추가 버튼을 사용하여 Box Collision (박스 콜리전) 컴포넌트를 추가합니다.

  2. 블루프린트의 이벤트 그래프 를 엽니다. 컴포넌트 탭에서 Box (박스) 컴포넌트를 선택한 뒤, 그래프에 우클릭 하여 컨텍스트 메뉴를 띄웁니다.

  3. begin overlap 이라 친 뒤 On Component Begin Overlap 을 선택하여 이벤트를 추가합니다.

  4. Other Actor (다른 액터) 핀을 클릭하여 끌어 놓은 뒤, 컨텍스트 메뉴 검색창에 = 을 입력합니다. Equal (Object) 항목을 선택하여 노드에 추가합니다.

  5. == 노드의 두 번째 오브젝트 핀을 클릭하여 끌어 놓은 뒤, 컨텍스트 메뉴의 검색창에 character 라 입력합니다. Get Player Character 항목을 선택하여 노드에 추가합니다.

  6. B 키를 누른 채 그래프를 클릭하여 Branch (분기) 노드를 추가한 뒤, == 노드의 부울 핀을 Branch (분기) 노드의 입력에 연결합니다.

  7. OnComponentBeginOverlap 노드의 실행 출력 핀을 Branch (분기) 노드의 실행 입력 핀에 연결합니다.

  8. 그래프에 우클릭 한 뒤 컨텍스트 메뉴의 검색창에 level 이라 입력합니다. Load Stream Level 을 선택합니다.

  9. Level Name 핀에 우클릭 하고 변수로 승격시킨 뒤, 변수 이름을 LevelToStream 이라 하고 디테일 패널에서 Editable (편집가능)하도록 설정합니다.

    LevelToStreamVar.png

  10. Load Stream Level (스트림 레벨 로드) 노드의 Make Visible After Load (로드 후 보이게 만들기)와 Should Block on Load (로드시 블록 여부) 옵션을 true 로 설정합니다.

    이 예제에서는, 이 블루프린트를 사용하여 모든 레벨에 동일한 기본 로드 방식을 적용하도록 하겠습니다만, 이것도 마찬가지로 Editable (편집가능) 변수로 만들 수 있습니다.

  11. Branch (분기) 노드의 True 실행 출력 핀을 Load Stream Level 노드의 입력 실행 핀에 연결합니다.

    FinalLoadBP.png

  12. LevelStreamer 블루프린트를 레벨에 배치하고, 퍼시스턴트 월드에서 캐릭터가 들어서면 스트리밍을 시작하도록 만들고자 하는 영역을 덮도록 배치하고 스케일을 조절합니다. 스트리밍 레벨에서 걸어다닐 수 있는 부분도 같이 설정해 주도록 합니다.

  13. Level to Stream (스트리밍할 레벨)에는 SunTemple_Streaming 을 입력합니다.

  14. 에디터에서 플레이 기능으로 스트리밍 레벨을 테스트합니다.

블루프린트로 레벨 언로드

캐릭터가 박스 컴포넌트를 빠져나갈 때 레벨을 언로드하려면, 그래프는 매우 비슷한 로직에 끝부분만 Unload Stream Level 노드로 끝나면 됩니다.

UnloadLevel.png

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼