Version: 2023.1
언어: 한국어
에셋 번들 워크플로
에셋 번들 종속성

에셋 번들을 위한 에셋 준비

에셋 번들을 정의할 경우 알아 두어야 할 몇 가지 규칙이 있습니다.

  • 씬과 에셋은 동일한 에셋 번들에 함께 포함될 수 없습니다. 개별 에셋 번들은 씬 또는 에셋 중 하나만 포함할 수 있습니다.
  • 특정 씬 또는 에셋은 둘 이상의 에셋 번들에 할당될 수 없습니다.
  • 에셋 번들은 스크립트 에셋을 포함할 수 없습니다.
  • StreamingAssets 폴더 내 파일은 에셋 번들에 추가할 수 없습니다.
  • 에셋 번들의 이름은 출력 폴더의 이름과 일치할 수 없습니다.

이러한 규칙 외에는 원하는 번들에 자유롭게 에셋을 할당할 수 있습니다. 하지만 번들을 설정할 때 고려해야 할 몇 가지 전략이 있습니다.

논리적 엔티티 그룹화(Logical Entity Grouping)

논리적 엔티티 그룹화는 각 프로젝트의 에셋 번들에 들어갈 내용을 구성하는 방법을 결정할 때 사용할 수 있는 전략입니다. 원칙은 각 콘텐츠가 나타내는 프로젝트의 기능적 부분을 기준으로 결정해야 한다는 것입니다. 여기에는 사용자 인터페이스, 캐릭터, 환경 및 애플리케이션의 수명 주기 동안 자주 나타날 수 있는 기타 모든 섹션이 포함됩니다.

예제

  • 사용자 인터페이스 화면의 모든 텍스처 및 레이아웃 데이터 번들링
  • 문자/문자 집합의 모든 모델 및 애니메이션 번들링
  • 여러 레벨에서 공유되는 배경 조각의 텍스처 및 모델 번들링

논리적 엔티티 그룹을 기준으로 에셋 번들을 구성하면 사용자가 변경되지 않은 대량의 추가 에셋을 다시 다운로드할 필요 없이 프로젝트에 작은 변경 사항을 더 쉽게 적용할 수 있으므로 DLC(다운로드 가능한 콘텐츠)에 매우 적합합니다.

이 전략을 올바르게 이행하는 데 가장 중요한 비결은 에셋을 각 번들에 할당하는 개발자가 각 에셋이 프로젝트에서 사용될 시기와 위치를 정확히 알아야 한다는 것입니다.

타입 그룹화(Type Grouping)

타입 그룹화 전략에서는 오디오 트랙이나 언어 현지화 파일 등 타입이 비슷한 에셋을 하나의 에셋 번들에 할당합니다.

Type grouping can be useful to establish AssetBundles that change rarely, or are potentially identical across multiple target platforms. For example formats like Audio will tend to match between platforms so long as the compression settings are identical. And the format and settings of textures change rarely, so AssetBundles containing only Textures will tend to be compatible with a wider range of player versions than AssetBundles containing scenes, prefabs or script-based objects. Grouping AssetBundles this way may result in fewer AssetBundles changing and requiring distribution when a new build is done. The downside is that more AssetBundles may need to be downloaded and loaded to assemble all dependent objects together at runtime.

동시 콘텐츠 그룹화(Concurrent Content Grouping)

동시 콘텐츠 그룹화는 동시에 로드되고 사용될 에셋을 하나의 번들로 묶는 개념입니다. 이 번들 타입은 각 레벨의 캐릭터, 텍스처, 음악 등이 완전히 다른 레벨 기반 게임에 사용되는 번들 타입이라고 생각할 수 있습니다. 이런 에셋 번들 중 하나에 있는 에셋이 해당 번들의 나머지 에셋이 사용되는 시간에만 동시에 사용된다고 100% 확신할 수 있기를 원합니다. 동시 콘텐츠 그룹화 번들에 포함된 에셋 하나에 종속성이 있으면 로드 시간이 크게 증가합니다. 해당 에셋의 전체 번들을 다운로드해야 하기 때문입니다.

동시 콘텐츠 그룹화의 가장 일반적인 이용 사례는 씬 기반 번들입니다. 이 할당 전략에서는 각 씬 번들에 해당 씬 종속성이 모두 포함되거나 대부분 포함됩니다.

참고: 씬이 포함된 에셋 번들을 빌드할 때 에셋이 다른 에셋 번들에 명시적으로 할당되지 않는 한, 해당 씬에서 참조하는 모든 에셋도 자동으로 에셋 번들에 포함됩니다. 이는 동시 콘텐츠 그룹화를 수행할 때 편리하지만, 참조된 에셋이 별도의 에셋 번들로 빌드하는 다른 씬에서도 사용되는 경우 중복 에셋에 주의해야 합니다.

추가 팁

프로젝트는 필요에 따라 이러한 전략을 혼합하여 사용할 수 있으며, 그렇게 해야 합니다. 주어진 시나리오에 맞는 최적의 에셋 할당 전략을 사용하면 프로젝트의 효율성이 매우 높아집니다.

예를 들어. 한 프로젝트에서 다양한 플랫폼의 사용자 인터페이스(UI) 요소를 자체적인 플랫폼 UI 관련 번들로 그룹화하지만 대화식 콘텐츠는 레벨/씬별로 그룹화하기로 결정할 수 있습니다.

어떤 전략을 따르든 관계없이, 아래의 추가 팁을 항상 염두에 두는 것이 좋습니다.

  • 자주 업데이트되는 오브젝트는 변경 빈도가 낮은 오브젝트와 다른 별개의 에셋 번들로 나누십시오.
  • 동시에 로드될 가능성이 큰 오브젝트(모델, 텍스처 및 애니메이션 등)를 그룹화하십시오.
  • 완전히 다른 에셋 번들의 에셋 하나에 종속된 여러 에셋 번들에 오브젝트 여러 개 있는 경우, 별도의 에셋 번들로 종속성을 옮기십시오. 여러 에셋 번들이 다른 에셋 번들의 동일한 에셋 그룹을 참조하는 경우, 이런 종속성을 공용 에셋 번들로 모아서 중복을 줄이면 효과적일 수 있습니다.
  • SD 또는 HD 에셋처럼 두 오브젝트 집합이 동시에 로드될 가능성이 거의 없는 경우, 각 에셋이 서로 다른 에셋 번들에 포함되도록 하십시오.
  • 동시에 로드되는 경우가 드문 오브젝트가 에셋 번들의 50% 미만인 경우 번들을 분할하는 방법을 고려하십시오.
  • 작지만 콘텐츠가 동시에 로드되는 경우가 많은 에셋 번들을 합치는 방법을 고려하십시오.
  • 오브젝트 그룹이 단순히 같은 오브젝트의 다른 버전에 불과할 경우, 에셋 번들 배리언트를 고려하십시오.
에셋 번들 워크플로
에셋 번들 종속성