1. 퍼시스턴트 레벨과 서브(스트리밍) 레벨로 나뉜다.
- 퍼시스턴트 레벨은 월드에 포함되는 고정 레벨
- 서브 레벨은 필요에 따라 붙였다 뗏다 할 수 있는 레벨

2. 퍼시스턴트 레벨에 여러 개의 서브 레벨을 부착할 수 있다.
- 필요에 따라 초기 로딩하도록 설정이 가능.
- 서브 레벨의 원점 트랜스폼을 조절하면 다양하게 활용하는 것이 가능


 

1. 퍼시스턴트 레벨 :  월드에는 최소 하나의 지정되는 레벨
2. 스트리밍 레벨 : 월드에 무관하게 추가/삭제가 가능하도록 설계된 레벨

언리얼에서 게임 컨텐츠 구조는 
ABGameInstance와 WebConnection간의 관계와 동일하게 부모-자식 관계가 확장된 구조를 따릅니다. 

언리얼에서 모든 게임 컨텐츠의 기초은 월드에서부터 시작됩니다.

월드에는 최소 하나의 레벨이 지정되는데, 이를 퍼시스턴트 레벨(Persistent Level)이라고 합니다.
이 퍼시스턴트 레벨에는 추가로 월드의 초기 설정 값들을 지정한 월드세팅 언리얼 오브젝트가 있습니다. 

기본 생성된 월드에는 레벨을 실시간으로 추가할 수 있는데,
월드에 무관하게 추가/삭제가 가능하도록 설계된 레벨 스트리밍 레벨(Streaming Level)이라고 합니다.

이러한 레벨은 월드에서 독립적으로 행동하는 단위 오브젝트인 액터(Actor)의 묶음으로 구성되어 있습니다.

이 액터들은 다시 컴포넌트들로 구성되어 있지요.

지금까지 설명드린 월드의 계층 구성은 아래와 같이 정리할 수 있습니다. 

 

월드의 계층 구조


이렇게 생성된 계층 구조는 설계에 따라 
기본서브오브젝트 방식으로 관리할지, 런타임에서 실시간으로 생성해 관리할지 방식이 나뉘어지게 됩니다. 

설명을 위해 월드 내에서 게임의 룰을 관장하는 액터인 게임모드를 가지고 예시를 들어보겠습니다. 
FPS 게임을 제작할 때 레벨 디자이너가 레벨을 공들여서 제작했습니다. 

이렇게 제작된 레벨에 플레이어들이 접속해 플레이를 할 때에는 
데스매치(DeathMatch)룰을 적용할지, 
깃발 뺏기(Capture the Flag) 룰을 적용할지를
방장이 정하도록 유연하게 적용할 수 있게 만드는 것이 좋은 디자인일 겁니다.  
(레벨마다 변경이 될수 있으므로, 다이나믹인게 좋다?)

이 상황에서 월드세팅 오브젝트가 
퍼시스턴트레벨 오브젝트에 스태틱 방식인 기본서브오브젝트로 포함되어 버리면, 월드세팅마다 레벨이 하나씩 만들어져야 합니다.
이러면 중복된 맵으로 인해 용량이 낭비되겠지요.
그래서 월드에서 월드세팅과 게임 모드는 후자인 다이나믹 방식으로 로딩되게 설계되어 있습니다. 

반면에 액터 설계자가 지정한 컴포넌트의 조합에 따라 월드에서 스스로 동작하도록 설계되어 있습니다. 
그래서 액터는 스태틱하게 컴포넌트와 함께 생성하고 다 같이 소멸하는 것이 효과적입니다.

그래서 액터와 컴포넌트는 전자인 스태틱하게 로딩하도록 설계되어 있습니다.

아래는 이를 정리한 도식입니다. 

 

월드내 오브젝트 생성 방식의 구분 ( 파란색이 다이나믹 방식, 붉은색이 스태틱 방식 )

'Unreal > Concept' 카테고리의 다른 글

Actor, Pawn  (0) 2019.05.29
UObject , AActor  (0) 2019.05.29
레퍼런싱 - 작성 중  (0) 2019.05.29
언리얼 INI 파일 설정 기능  (0) 2019.05.29
BlueprintImplementableEvent, BlueprintNativeEvent  (0) 2019.05.28

+ Recent posts