Inflearn brand logo image

인프런 커뮤니티 질문&답변

간식축내는사람님의 프로필 이미지
간식축내는사람

작성한 질문수

[Rookiss R&D Lab] UE5 Framework Insight (Liu)

월드 액터 등록 [개념]

레벨 저장시 액터 순서 보장이 안되는 이유?

해결된 질문

작성

·

54

0

언리얼 엔진에서 굳이 레벨 저장시 액터 순서가 보장이 안되게 한 이유를 잘 모르겠어서 질문드립니다. 이미 패키징 된 게임 기준으로 본다면 초기 레벨에 셋팅된 액터들(동적으로 생성되는 경우 제외)들은 고정되어 있는 상태라서 레벨 로드시 액터들을 정렬하는 것 보다 저장/빌드 시 정렬시킨 상태로 저장하는게 더 효율적이지 않을까 싶은데.. 왜 이런 식으로 설계되었는지 직접 코드를 분석하신 Liu님 의견이 궁금해서 질문드려봅니다.

답변 2

1

Liu님의 프로필 이미지
Liu
지식공유자

언리얼 엔진은 레벨 데이터를 저장할 때 액터들의 물리적 순서가 아니라, 액터들이 가진 변수와 다른 액터에 대한 참조정보를 기준으로 직렬화 합니다.

 

예를 들어, A 액터가 B 액터를 참조하고 있다면, 엔진은 파일에 A와 B의 순서와 관계없이 이 참조 관계만 기록합니다. 따라서 A 액터의 데이터가 B 액터의 데이터보다 먼저 저장되든 나중에 저장되든 상관없습니다.

레벨을 불러올 때, 엔진은 이 참조 정보를 기반으로 두 액터를 다시 연결 시켜 주기만 하면 되기 때문입니다.

 

만약 언리얼 엔진이 액터를 저장할 때마다 순서를 정렬해야 한다면, 다음과 같은 문제가 발생할 수 있습니다.

  1. 레벨에 배치되는 액터의 수가 많아질수록 정렬하는 과정 자체에 추가적인 연산 비용이 발생합니다. 이렇게 되면 에디터에서 액터를 배치하고 저장할 때마다 로딩 시간이 길어져 작업 효율이 크게 떨어집니다.

  1. 정렬된 순서대로 하나씩 액터를 로딩하는 방식은 병렬 처리가 어렵습니다.

이러한 비효율을 피하기 위해 언리얼 엔진은 다음과 같은 방식을 사용합니다.

  1. 레벨을 불러올 때, 엔진은 모든 액터 데이터를 한 번에 메모리에 올리려고 노력합니다. 이때 순서는 중요하지 않습니다.

  2. 모든 액터가 메모리에 올라온 뒤에, 엔진은 저장된 참조 정보를 바탕으로 액터들을 서로 연결시킵니다.

이 방식은 마치 여러 부품을 한꺼번에 가져와서 조립 설명서에 따라 한 번에 조립하는 것과 같습니다. 부품 상자에 어떤 순서로 부품이 들어있든 상관없이, 조립만 잘 되면 되는 것이죠.

0

안녕하세요, 인프런 AI 인턴입니다.

언리얼 엔진에서 레벨 저장 시 액터의 순서가 보장되지 않는 이유는 여러 가지가 있겠지만, 주요한 이유는 엔진의 성능 최적화와 유연성 때문일 수 있습니다. 액터 순서를 저장 단계에서 고정시킨다면 레벨 로드 속도에 다소 영향을 미칠 수 있으며, 다양한 상황에 유연하게 대응하기 어려울 수 있습니다.

  1. 성능 문제: 저장 시점에서 모든 액터의 순서를 정렬하는 과정은 무거운 작업이 될 수 있습니다. 따라서, 저장 단계에서 이 작업을 피하고, 필요시 로드 단계에서 처리하는 것이 성능적으로 유리할 수 있습니다.

  2. 유연성 증가: 개발 도중에 액터의 추가, 삭제, 이동이 빈번하게 발생하는데, 저장 단계에서의 순서 고정은 이러한 변경에 유연하게 대응하기 어렵게 만듭니다.

  3. 상태 유지: 저장 시점보다는 로드 시점에서 상태 유지가 더 중요할 수 있으며, 로드 시점에 맞춰 필요한 최적화 방안들이 구현될 수 있습니다.

아래는 관련된 질문과 답변을 찾을 수 있는 링크입니다. 참고하시면 더 깊이 있는 이해를 할 수 있을 것입니다.

지금은 엔진의 구조와 설계의 복잡한 부분을 다루는 내용이기 때문에 직접적인 답변이 어려울 수도 있습니다. 추가적인 정보를 원하시면 직접 코드 분석이나 더 깊이 있는 강의를 들어보시는 것도 좋은 방법입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

간식축내는사람님의 프로필 이미지
간식축내는사람

작성한 질문수

질문하기