LEVEL

2025. 1. 24. 14:38·Unreal/Core Concepts
목차
  1. 레벨 생성 방법
  2. 🔹 3. 레벨의 주요 기능
  3. ✅ (1) 레벨 스트리밍(Level Streaming)
  4. ✅ (2) 서브 레벨(Sub Level)과 월드 파티션(World Partition)
  5. ✅ (3) 레벨 블루프린트(Level Blueprint)
  6. 🔹 4. 레벨 관련 추가 기능
  7. ✅ (1) 레벨 전환 (Seamless Travel)
  8. ✅ (2) 게임 모드(Game Mode) & 월드 설정(World Settings)
  9. 🎯 5. 결론: 언제 어떤 레벨 템플릿을 사용할까?
  10. 🔥 정리

레벨(Level)은 게임'월드'의 모든 것 또는 일부입니다. 환경, 사용 가능한 오브젝트, 다른 캐릭터 등 플레이어가 보고 상호작용할 수 있는 모든 것이 레벨에 포함 됩니다. 일반적으로 게임에서는 여러 레벨이 있으며 레벨 간 전환이 명확히 구분되어 있습니다.

언리얼 엔진은 각 레벨을 별도의 .umap 파일로 저장합니다. 그래서 때로는 레벨이 맵(Maps)로 불리기도 합니다. 레벨 하나를 생성하는 데 필요한 최소한의 요소는 다음과 같습니다.

✅ 레벨의 주요 구성 요소

  • 레벨 파일 (.umap): 레벨 자체를 담고 있는 기본 파일
  • 환경 요소 (Static Mesh, Landscape, Water 등): 배경, 지형, 건물, 바위 등
  • 캐릭터 & NPC (Skeletal Mesh Actor): 플레이어 캐릭터, 적, NPC 등
  • 라이트(Light Actor): 씬의 분위기를 조성하는 조명 (예: 디렉셔널 라이트, 포인트 라이트 등)
  • 사운드 (Ambient Sound, Sound Effect): 배경음, 발소리, 효과음 등
  • 트리거 & 상호작용 요소 (Trigger Volume, Blueprint Actor): 문이 열리거나 이벤트가 발생하는 요소
  • 월드 설정 (World Settings): 게임 모드, 중력, 날씨 등의 전반적인 환경 설정


레벨 생성 방법

언리얼 엔진에서 새 레벨을 생성하려면 다음과 같은 방법을 사용할 수 있습니다.

  • ✅ 레벨을 생성하는 3가지 방법
    1. 메뉴에서 생성
      • 파일(File) → 새 레벨(New Level) 선택
    2. 콘텐츠 브라우저에서 생성
      • 콘텐츠 브라우저에서 우클릭 → 기본 에셋 생성(Create Basic Asset) → 레벨(Level) 선택
    3. 단축키 사용
      • Ctrl + N (새 레벨 생성)

위의 방법 중 하나를 사용하면 아래와 같은 새 레벨 창이 열립니다.

New Level Panel

새 레벨 창에는 사용 가능한 모든 레벨 템플릿이 표시됩니다.

✅ 새 레벨 템플릿 선택

  • 새 레벨을 생성할 때, 언리얼 엔진은 몇 가지 템플릿을 제공합니다.
레벨 유형 사용예시
오픈 월드 (Open World) 월드 파티션(World Partition) 기능을 사용하여 대규모 스트리밍 가능한 월드를 생성 대규모 맵을 활용하는 오픈 월드 게임
빈 오픈 월드 (Empty Open World) 월드 파티션을 사용하지만 콘텐츠가 없는 상태 처음부터 자유롭게 제작할 때
기본 레벨 (Basic Level) 바닥, 조명, 애트머스피어, 익스포넨셜 포그가 포함된 기본 환경 일반적인 레벨 제작을 시작할 때
빈 레벨 (Empty Level) 아무런 요소도 없는 완전한 빈 공간 최적화 테스트, 특정 기능 구현

📌 TIP:

  • 오픈 월드는 성능 최적화를 위해 월드 파티션 기능을 활용하여 동적으로 로드되는 시스템을 갖추고 있음.
  • 빈 레벨은 완전히 새로운 환경을 직접 설계할 때 사용됨

🔹 3. 레벨의 주요 기능

✅ (1) 레벨 스트리밍(Level Streaming)

  • 여러 개의 레벨을 동적으로 로드/언로드하여 성능 최적화 가능
  • 큰 월드를 작은 조각으로 나누어 관리할 수 있음
  • 예: 오픈 월드 게임에서 특정 지역에 도착했을 때 해당 부분만 로드하고, 멀어진 지역은 언로드

🔹 레벨 스트리밍 방식

방식 설명
Blueprint 또는 C++로 수동 로드 LoadStreamLevel() 또는 UnloadStreamLevel() 사용
월드 파티션(World Partition) 시스템 사용 UE5에서 새롭게 도입된 대규모 맵 최적화 기능
레벨 블루프린트에서 트리거 이벤트 활용 플레이어가 특정 영역에 도착했을 때 자동 로드

📌 TIP:

  • Persistent Level(기본 레벨)에서 다른 서브 레벨을 관리할 수 있음.
  • 레벨을 분할하여 필요한 부분만 로딩하면 성능 최적화 효과를 얻을 수 있음.

✅ (2) 서브 레벨(Sub Level)과 월드 파티션(World Partition)

  • UE4에서는 서브 레벨(Sub Level)과 레벨 스트리밍을 활용하여 맵을 최적화했음.
  • UE5에서는 월드 파티션(World Partition) 기능이 도입되어 자동 스트리밍 가능.

🔹 월드 파티션의 장점
✔ 전통적인 레벨 스트리밍보다 더 쉽고 효율적인 맵 로딩 제공
✔ HLOD(계층적 LOD) 지원 → 먼 거리의 객체를 저해상도로 표시하여 성능 향상
✔ 개발자가 직접 관리할 필요 없이 자동으로 맵을 최적화

📌 TIP:

  • 월드 파티션을 사용하면 대형 맵에서 메모리 사용량을 줄이고 FPS 성능을 향상 가능!

✅ (3) 레벨 블루프린트(Level Blueprint)

  • 각 레벨에는 레벨 블루프린트가 포함되며, 해당 레벨에서만 실행되는 이벤트와 로직을 추가할 수 있음.
  • 예: 특정 문이 열리는 이벤트, 플레이어가 특정 위치에 도착하면 NPC가 등장하는 이벤트 등
// 특정 트리거 볼륨에 플레이어가 들어왔을 때 이벤트 발생
void AMyLevelScriptActor::OnPlayerEnterTriggerVolume(AActor* OverlappedActor, AActor* OtherActor)
{
    if (OtherActor && OtherActor->IsA(ACharacter::StaticClass()))
    {
        UE_LOG(LogTemp, Log, TEXT("플레이어가 트리거 존에 들어왔습니다!"));
        // 이벤트 실행
    }
}

📌 레벨 블루프린트를 사용하면 특정 레벨 내에서만 동작하는 이벤트를 쉽게 구현 가능!


🔹 4. 레벨 관련 추가 기능

✅ (1) 레벨 전환 (Seamless Travel)

  • 언리얼 엔진에서는 Open Level 기능을 사용하여 레벨을 변경 가능
  • Seamless Travel 기능을 활성화하면 멀티플레이어 환경에서도 끊김 없는 전환 가능
UGameplayStatics::OpenLevel(GetWorld(), FName("NewLevel"));

📌 Seamless Travel을 사용하면 멀티플레이어에서도 자연스럽게 맵 이동 가능!


✅ (2) 게임 모드(Game Mode) & 월드 설정(World Settings)

  • 각 레벨마다 개별적인 Game Mode 설정 가능
  • World Settings에서 레벨의 중력, 게임 모드, 환경 설정 등을 조정 가능

🎯 5. 결론: 언제 어떤 레벨 템플릿을 사용할까?

✅ 대규모 오픈 월드를 만들고 싶다면?
➡ 오픈 월드(Open World) 템플릿 사용 + 월드 파티션 활용

✅ 빠르게 개발을 시작하고 싶다면?
➡ 기본(Basic Level) 템플릿 사용

✅ 완전히 새로운 환경을 만들고 싶다면?
➡ 빈 레벨(Empty Level) 사용

✅ 멀티플레이어 & Seamless Travel을 구현하고 싶다면?
➡ Seamless Travel 기능 활용


🔥 정리

✔ 레벨(Level)은 .umap 파일로 저장되며, 게임의 환경과 오브젝트를 포함
✔ 레벨 스트리밍을 활용하여 성능 최적화 가능
✔ 월드 파티션 시스템을 사용하면 대규모 맵을 쉽게 관리할 수 있음
✔ 레벨 블루프린트를 활용하면 특정 레벨에서만 실행되는 로직을 추가할 수 있음
✔ Seamless Travel을 사용하면 멀티플레이어에서도 자연스럽게 맵 전환 가능

'Unreal > Core Concepts' 카테고리의 다른 글

Reflection System (0) 2025.02.08
Interface (0) 2025.02.07
Actor Lifecycle (0) 2025.02.04
Actor (0) 2025.01.15
Component (0) 2025.01.15
  1. 레벨 생성 방법
  2. 🔹 3. 레벨의 주요 기능
  3. ✅ (1) 레벨 스트리밍(Level Streaming)
  4. ✅ (2) 서브 레벨(Sub Level)과 월드 파티션(World Partition)
  5. ✅ (3) 레벨 블루프린트(Level Blueprint)
  6. 🔹 4. 레벨 관련 추가 기능
  7. ✅ (1) 레벨 전환 (Seamless Travel)
  8. ✅ (2) 게임 모드(Game Mode) & 월드 설정(World Settings)
  9. 🎯 5. 결론: 언제 어떤 레벨 템플릿을 사용할까?
  10. 🔥 정리
'Unreal/Core Concepts' 카테고리의 다른 글
  • Interface
  • Actor Lifecycle
  • Actor
  • Component
Mr.Vulpes
Mr.Vulpes
여우비가 내리는 시간입니다.
  • Mr.Vulpes
    여우비 개발실
    Mr.Vulpes
  • 전체
    오늘
    어제
    • Browse All Categories (25) N
      • Unreal (9)
        • Core Concepts (6)
        • Unreal For C++ (3)
      • C++ Programming (1)
        • C Basic (1)
      • DirectX (1)
      • Math & Physics (3)
        • Vectors (3)
      • Software Engineering (11) N
        • Software Development Princi.. (7) N
        • Design Pattern (3)
  • hELLO· Designed By정상우.v4.10.3
Mr.Vulpes
LEVEL

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.