Узнайте, как система адресных активов может упростить управление контентом как во время редактирования, так и во время выполнения, чтобы первые и новые релизы вашей игры проходили более гладко и легко. Эта статья основана на выступлении Билла Рамсура из команды Live Content на конференции Unite Copenhagen 2019.
Addressable Asset System (т.е. Addressables) - это система управления активами Unity Editor и runtime, которая улучшает поддержку больших производственных команд со сложными потребностями в доставке живого контента. Система использует асинхронную загрузку для поддержки загрузки из любого места с любым набором зависимостей. Благодаря более эффективной упаковке пакетов активов и сокращению времени итераций Addressables предоставляет простой способ сделать вашу игру более динамичной.
Addressables решает такие проблемы разработчиков, как время итерации, управление зависимостями, управление памятью и упаковка контента.
Если актив (например, сборный объект) помечен как "адресуемый", он генерирует адрес, который можно вызвать из любого места. Где бы ни находился актив (локально или удаленно), система найдет его и его зависимости, а затем вернет его. Актив - это контент, который вы используете для создания игры или приложения. Обычные примеры активов - префабы, текстуры, материалы, аудиоклипы и анимация.
Addressables абстрагирует пакеты активов, чтобы сделать управление контентом более эффективным, и при этом содержит сам актив и все его базовые данные.
В рабочем процессе Addressables запрос сначала проходит через систему Catalog. Система декодирует адрес в местоположение, которое состоит из данных, полученных во время сборки, о том, что представляет собой актив, его зависимости, является ли он локальным или удаленным и так далее.
Из Каталога запрос проходит через систему Провайдера. Один или несколько провайдеров используют эти местоположения для поиска контента и возврата его на устройство.
В Addressables время выполнения является асинхронным. Это дает вам возможность извлекать актив, когда он вам нужен, независимо от того, где он находится - его местоположение может меняться в зависимости от стадии разработки - без необходимости изменять код игры.
Когда вы помечаете что-то как адресуемое, оно становится частью группы Addressables Group, которая представляет собой контейнер для адресуемых активов и их данных. Вы можете визуализировать группы в окне Groups, которое является домашней базой для Addressables. Группы могут определять, будет ли этот актив локальным на устройстве или размещен на сервере.
Данные о группах адресатов хранятся в схемах, которые представляют собой договоры о предоставлении данных. Одна из схем посвящена тому, как ваши активы и контент будут собираться в пакеты. Build Path и Load Path - одни из самых полезных настроек, позволяющие установить локальный или удаленный контент, выбрав переменную из выпадающего меню.
В системе Addressables Profile вы создаете профиль для группы Addressables Group, а затем определяете для данного профиля, что должны оценивать переменные. Это позволяет устанавливать данные в группе и вносить в них изменения удаленно, не перекодируя ни одну из частей группы.
Чтобы получить максимальную отдачу от Addressables, нужно визуализировать данные с точки зрения того, как вы хотите поставлять свою игру. Вам не обязательно придерживаться определенной структуры, поскольку переменные Profile легко изменить в процессе разработки, но у вас должен быть общий подход к организации ваших пакетов.
Например, если вы хотите поставлять свою игру с удаленным контентом, но хотите, чтобы этот контент был локальным во время разработки, вы можете создать профиль, в котором удаленные пути будут указывать на потоковые активы. Таким образом, вы можете глобально изменить весь удаленный контент и сделать его локальным, не трогая код группы.
Иногда вам нужно разместить содержимое на сервере. Вы можете задать удаленный путь и вместо ссылки на реальный URL использовать переменные, определенные службой хостинга.
Когда вы включаете хостинг, служба хостинга устанавливает HTTP-хост в редакторе. Вы можете подключить свое устройство или плеер к этому узлу, чтобы протестировать его.
Одна из мощных особенностей хостинга Editor заключается в том, что вы можете настроить все на удаленное использование. Это особенно полезно для разработчиков контента и художников, потому что вы можете создать плеер и развернуть его на устройстве, продолжая итерации своего контента. Вам не придется развертывать плеер или беспокоиться о переносе контента с одного устройства на другое. Ознакомьтесь с нашей документацией, чтобы узнать больше о создании и настройке хостинг-услуг с адресными таблицами.
Многие из ключевых технических проблем поддержки динамического контента решены с помощью Addressables, но остается проблема "последней мили" - хостинг и доставка активов в игры и приложения в режиме реального времени. Позже в этом году мы запустим готовое решение для глобального хостинга контента, полностью интегрированное в систему Addressables. Если вы хотите узнать больше об этой услуге, подпишитесь здесь.
Команда разработчиков живого контента работает над ускорением рабочих процессов, включая несколько быстрых способов загрузки активов.
Как загрузить активы в Addressables?
По адресу: Кодеры часто загружают адресуемые объекты по строке, используя идентификатор местоположения актива для удобства поиска во время выполнения.
По этикетке: Предоставляет дополнительный адресный идентификатор актива для загрузки аналогичных элементов во время выполнения.
По AssetReference: AssetReference работает как прямая ссылка, но с отложенной инициализацией. Объект AssetReference хранит GUID в виде адресуемой информации, которую можно загружать по требованию. Художники, работающие в редакторе, могут предпочесть этот рабочий процесс.
Если актив, на который вы ссылаетесь, имеет под-объекты (например, спрайты в SpriteAtlas), вы можете дополнительно ссылаться на под-объекты.
Если вы хотите увидеть Addressables и процесс загрузки спрайтов в действии, посетите демонстрационную часть сессии, посвященную спрайтам.
Пакет Addressables содержит три сценария сборки, которые создают данные Play Mode, чтобы ускорить разработку приложений. Сценарии: Use Asset Database, Simulate Groups и Use Existing Build.
Сценарий " Использовать базу данных активов ". Это позволяет вам переходить в режим Play Mode и выходить из него, пока вы итерируете контент; вы можете быстро запустить игру, пока вы работаете над ее течением. Он загружает активы непосредственно через базу данных активов для быстрой итерации без анализа и создания пакетов активов.
Simulate Groups анализирует содержимое на предмет компоновки и зависимостей без создания пакетов активов. Чтобы увидеть, когда пакеты загружаются или выгружаются во время игрового процесса, просмотрите использование активов в окне Addressables Event Viewer(Window > Asset Management > Addressables > Event Viewer). Этот режим помогает моделировать стратегии нагрузки и настраивать группы контента, чтобы найти правильный баланс для производственного релиза.
Сценарий Use Existing Build похож на сборку развернутого приложения, но он требует создания данных в качестве отдельного шага. Если вы не изменяете активы, этот режим является самым быстрым, поскольку при переходе в режим воспроизведения не обрабатываются никакие данные.
Если вы хотите использовать адресные системы в своем проекте, ознакомьтесь с документацией Addressable Asset System, чтобы узнать, как начать работу. Прочитайте нашу статью в блоге, проверьте образцы на GitHub или присоединитесь к обсуждениям на форумах.
Cloud Content Delivery (CCD), запущенная в сентябре 2020 года, - это наше собственное глобальное решение для хостинга контента, полностью интегрированное в систему Addressables. С помощью CCD вы можете легко создавать и выпускать обновления для игр с мощным управлением активами и доставкой контента через облако - необходимая функциональность для работы с живыми играми и приложениями. Узнать больше и зарегистрироваться можно здесь.