어드레서블 에셋 시스템으로 편집과 런타임 모두에서 콘텐츠 관리를 간소화하여 게임의 초기 및 업데이트 릴리스를 더 원활하고 쉽게 진행할 수 있는 방법을 알아보세요. 이 글은 유나이트 코펜하겐 2019에서 라이브 콘텐츠 팀의 빌 램수르가 진행한 강연을 바탕으로 작성되었습니다.
어드레서블 에셋 시스템(즉, 어드레서블)은 복잡한 라이브 콘텐츠 전달이 필요한 대규모 제작 팀에 대한 지원을 개선하는 Unity 에디터 및 런타임 에셋 관리 시스템입니다. 이 시스템은 비동기 로딩을 사용하여 종속성 컬렉션이 있는 모든 위치에서 로딩을 지원합니다. 에셋 번들을 보다 효율적으로 패킹하고 반복 시간을 줄임으로써 어드레서블은 게임을 더욱 역동적으로 만들 수 있는 간단한 방법을 제공합니다.
어드레서블은 반복 시간, 종속성 관리, 메모리 관리, 콘텐츠 패킹과 같은 개발자의 문제를 해결합니다.
에셋(예: 프리팹)이 '주소 지정 가능'으로 표시되면 어디에서나 호출할 수 있는 주소를 생성합니다. 자산이 어디에 있든(로컬 또는 원격) 시스템은 자산과 해당 종속성을 찾은 다음 반환합니다. 에셋은 게임이나 앱을 제작하는 데 사용하는 콘텐츠입니다. 에셋의 일반적인 예로는 프리팹, 텍스처, 머티리얼, 오디오 클립 및 애니메이션이 있습니다.
어드레서블은 에셋 번들을 추상화하여 콘텐츠 관리의 효율성을 높이는 동시에 에셋과 모든 기본 데이터를 포함합니다.
주소 지정 가능 워크플로에서 요청은 먼저 카탈로그 시스템을 통과합니다. 시스템은 주소를 위치로 디코딩하며, 이는 에셋이 무엇인지, 종속성, 로컬인지 원격인지 등에 대한 빌드 중에 생성된 데이터로 구성됩니다.
카탈로그에서 요청은 공급자 시스템을 통과합니다. 하나 이상의 제공업체가 이러한 위치를 사용하여 콘텐츠를 찾은 다음 장치로 반환합니다.
어드레서블에서 런타임은 비동기식입니다. 이렇게 하면 게임 코드를 변경하지 않고도 에셋이 어디에 있든(개발 단계에 따라 위치가 변경될 수 있음) 필요할 때 유연하게 에셋을 검색할 수 있습니다.
무언가를 어드레서블로 표시하면 어드레서블 에셋과 해당 데이터를 담는 컨테이너인 어드레서블 그룹의 일부가 됩니다. 어드레서블의 홈베이스인 그룹 창에서 그룹을 시각화할 수 있습니다. 그룹은 해당 자산을 디바이스에 로컬로 저장할지 서버에 저장할지 여부를 결정할 수 있습니다.
주소 지정 가능 그룹의 데이터는 데이터 계약인 스키마에 보관됩니다. 스키마 중 하나는 에셋과 콘텐츠가 번들로 빌드되는 방식에 중점을 둡니다. 빌드 경로 및 로드 경 로는 드롭다운 메뉴에서 변수를 선택하여 콘텐츠를 로컬 또는 원격으로 설정할 수 있는 보다 유용한 설정 중 하나입니다.
주소 지정 가능 프로필 시스템에서 주소 지정 가능 그룹에 대한 프로필을 만든 다음 지정된 프로필에 대해 변수를 평가할 대상을 정의합니다. 이를 통해 그룹의 데이터를 설정하고 해당 그룹의 일부를 다시 코딩할 필요 없이 원격으로 변경할 수 있습니다.
어드레서블을 최대한 활용하려면 게임 출시 방식에 따라 데이터를 시각화하면 도움이 됩니다. 개발 중에 프로필 변수를 쉽게 변경할 수 있으므로 구조에 집착할 필요는 없지만 번들을 구성하는 일반적인 접근 방식이 있어야 합니다.
예를 들어 원격 콘텐츠가 포함된 게임을 출시하고 싶지만 개발 중에는 해당 콘텐츠를 로컬로 유지하려는 경우, 원격 경로가 스트리밍 에셋을 가리키는 프로필을 생성할 수 있습니다. 이렇게 하면 그룹의 코드를 건드리지 않고도 모든 원격 콘텐츠를 로컬 콘텐츠가 되도록 전역적으로 변경할 수 있습니다.
서버에서 콘텐츠를 호스팅해야 하는 경우가 있습니다. 원격 경로를 설정하고 실제 URL을 가리키는 대신 호스팅 서비스에서 정의한 변수를 사용할 수 있습니다.
호스팅을 활성화하면 호스팅 서비스가 편집기 내에서 HTTP 호스트를 설정합니다. 장치 또는 플레이어를 이 호스트에 연결하여 테스트할 수 있습니다.
에디터 호스팅의 강력한 기능 중 하나는 모든 것을 원격으로 설정할 수 있다는 것입니다. 콘텐츠를 계속 반복하면서 플레이어를 빌드하고 디바이스에 배포할 수 있기 때문에 콘텐츠 개발자와 아티스트에게 특히 유용합니다. 플레이어를 다시 배포하거나 한 기기에서 다른 기기로 콘텐츠를 이동하는 것에 대해 걱정할 필요가 없습니다. 어드레서블을 사용하여 호스팅 서비스를 만들고 구성하는 방법에 대해 자세히 알아보려면 문서를 확인하세요.
동적 콘텐츠 지원의 주요 기술적 과제는 대부분 어드레서블을 통해 해결되었지만, 라이브 프로덕션 게임과 앱에 에셋을 호스팅하고 전송하는 '라스트 마일' 문제는 여전히 남아 있습니다. 올해 말에는 Addressables 시스템에 완전히 통합된 엔터프라이즈급 글로벌 콘텐츠 호스팅 솔루션을 출시할 예정입니다. 이 서비스에 대해 자세히 알아보려면 여기에서 가입하세요.
라이브 콘텐츠 팀은 에셋을 빠르게 로드하는 몇 가지 방법을 포함하여 작업 속도를 높이기 위한 워크플로우를 개발하기 위해 노력해 왔습니다.
어드레서블에 에셋을 로드하려면 어떻게 해야 하나요?
주소 기준: 코더는 런타임에 쉽게 검색할 수 있도록 에셋의 위치 식별자를 사용하여 어드레서블을 문자열로 로드하는 경우가 많습니다.
레이블별로: 유사한 아이템의 런타임 로딩을 위한 추가 어드레서블 에셋 식별자를 제공합니다.
에셋 참조로: AssetReference는 직접 참조처럼 작동하지만 초기화가 지연됩니다. AssetReference 객체는 필요에 따라 로드할 수 있는 주소 지정이 가능한 GUID를 저장합니다. 에디터에서 작업하는 아티스트는 이 워크플로를 선호할 수 있습니다.
참조하는 에셋에 하위 오브젝트(예: 스프라이트 아틀라스 내의 스프라이트)가 있는 경우 해당 하위 오브젝트를 추가로 참조할 수 있습니다.
어드레서블과 스프라이트 로딩 프로세스가 실제로 작동하는 모습을 보려면 세션의 스프라이트 데모 부분을 확인하세요.
어드레서블 패키지에는 앱 개발을 가속화하는 데 도움이 되는 플레이 모드 데이터를 생성하는 세 가지 빌드 스크립트가 포함되어 있습니다. 스크립트는 에셋 데이터베이스 사용, 그룹 시뮬레이션, 기존 빌드 사용입니다.
에셋 데이터베이스 사용 스크립트. 이를 통해 콘텐츠를 반복 작업하는 동안 플레이 모드를 드나들 수 있으므로 게임 흐름을 빠르게 진행하면서 게임을 실행할 수 있습니다. 에셋 데이터베이스를 통해 에셋을 직접 로드하여 분석이나 에셋 번들 생성 없이도 빠르게 반복할 수 있습니다.
시뮬레이트 그룹은 에셋 번들을 생성하지 않고도 콘텐츠의 레이아웃과 종속성을 분석하며, 게임플레이 중 번들의 로드 또는 언로드 시점을 확인하려면 어드레서블 이벤트 뷰어 창(창 > 에셋 관리 > 어드레서블 > 이벤트 뷰어)에서 에셋 사용량을 확인하면 됩니다. 이 모드를 사용하면 로드 전략을 시뮬레이션하고 콘텐츠 그룹을 조정하여 프로덕션 릴리스에 적합한 밸런스를 찾을 수 있습니다.
기존 빌드 사용 스크립트는 배포된 애플리케이션 빌드와 비슷하지만 별도의 단계로 데이터를 빌드해야 합니다. 에셋을 수정하지 않는 경우 플레이 모드로 전환할 때 데이터를 처리하지 않으므로 이 모드가 가장 빠릅니다.
프로젝트에서 어드레서블을 사용하려면 어드레서블 에셋 시스템 문서를 확인하여 시작하는 방법을 알아보세요. 블로그 게시물을 읽거나 GitHub 샘플을 확인하거나 포럼에서 토론에 참여하세요.
2020년 9월에 출시된 클라우드 콘텐츠 전송(CCD)은 어드레서블 시스템에 완전히 통합된 자체 엔터프라이즈용 글로벌 콘텐츠 호스팅 솔루션입니다. CCD를 사용하면 라이브 게임과 앱 운영에 필수적인 기능인 강력한 에셋 관리와 클라우드를 통한 콘텐츠 전송을 통해 손쉽게 게임 업데이트를 빌드하고 출시할 수 있습니다. 여기에서 자세히 알아보고 가입하세요.