СПРАВОЧНЫЙ МАТЕРИАЛ

Основные параметры digital-одежды в играх, приложениях и метавселенных

Как моделить так, чтобы не переделывать по 100 раз
Важные вопросы к самому себе и разработчикам в случае отсутствия внятного технического задания.
Стилистика одежды
Перед началом проектирования game ready одежды в первую очередь стоит отталкиваться от формы и силуэта, так как общее пятно контура определяет характер персонажа или объекта дополненной примерки. Если укрупненно, то круглые формы – что-то доброе, неагрессивное, острые формы – жесткое, динамичное. Проверяется это так, уберите из вашей модели одежды объем, цвет, оставьте такое пятно Роршаха. Что вы видите в контуре, какие эмоции вызывает, не сильно облизанный контур, есть за что глазу зацепиться? После этого уже можно заниматься визуальным причесыванием образа.

Количество полигонов и топология

Лимит рассчитывается для обеспечения требуемого FPS (частоты кадров рендеринга в секунду) из общего ограничения полигонов и текстур на локацию, зависит от движка и устройств, под которые делается проект.
В мобильной игре на важном объекте суммарно может быть 1-7к полигонов вместе с одеждой. В средних играх важные объекты по 20-30к полигонов. Современные игры тянут модели по 50-150к полигонов и больше.
Например:
Тревор и Майкл в GTA V – 24к и 30к
Элли и Джоел в The Last Of Us – 31к и 40к
Райдер в Mass Effect: Andromeda – 65к
Джек Джойс в Quantum Break – 75к
Мариус в Ryse: Son of Rome – 80к
Джек Бейкер в Resident Evil 7 – 121к
Автомобиль Ruf в Project CARS – 180к
Лара Крофт в Rise of the Tomb Raider – 200к
Элой в Horizon: Zero Dawn – 600к

Какие текстурные карты требуются, какие могут быть в принципе, разрешение текстур

Кто-то использует полные PBR-текстуры, а кто-то ограничивается плоским цветом даже без карт металличности и/ или шероховатости. Не забываем про необходимость POT-текстур и предварительную подготовку UV-развертки вашей одежды в квадрат.
Общий пайплайн разработки game ready одежды в AAA-студиях предполагает создание модели, ее ремеш и ретопологию – создание чистой сетки с нужной формой и количеством полигонов. Раньше для этих функций в одежде необходимо было использовать сторонние 3D-редакторы, например, Maya. Но сейчас приличный ретоп можно сделать в Marvelous Designer (в Clo3D нет такой функции) в комбинации автоматического и ручного режимов. Скажем спасибо, что одежда создается по лекалам и не надо резать UV-развертку ручками. Затем создают супердетализированную высокополигональную модель в ZBrush, после чего ее запекают и текстурируют в Substance Painter. Полученные текстуры используют на нашей первоначальной низкополигональной одежде, тем самым сохраняя визуальную привлекательность без создания дополнительной геометрии.
Обычно количество полигонов и текстуры четко пописывается в техзадании или есть в документации к платформе, если вы размещаете на сторонних ресурсах.
В Spatial требования распространяются на загружаемый файл в целом. Рекомендуемое количество трианглов менее 15к для объектов (60к для окружения). POT-текстуры 1024x1024 px до 8 текстур единовременно. Рекомендуемый плоский шейдер Unlit без учета освещения, но поддерживает Metallic/Roughness, Specular/Glossiness PBR. В одном файле единовременно может быть 10 объектов для окружения, 3 (максимально 5) – для всех остальных объектов, поэтому лучше не загружать аватара с отдельными глазами и 15-тью пуговицами на жакете. Максимальный объем контента – 60 МБ.
В AltspaceVR собственный мир создается в Unity и интегрируется через Unity Uploader. Есть общие рекомендации по количеству полигонов на экран – не более 100к одновременно, и напоминание внимательно следить за целевым FPS, который для того же Oculus Quest 2 должен быть порядка 60-72. А там уже необходимо рассчитывать самостоятельно и оптимизировать в зависимости от количества и сложности объектов, размещаемых в сцене. Используется URP (Universal Render Pipeline) со стандартным набором текстурных карт (цвет, металличность, нормали, окклюзия, эмиссия, прозрачность, альфа-канал).
В Roblox есть два типа аватаров классические R6 и пока что нелюбимые в сообществе, но более антропоморфные, R15, состоящие из 6 и 15 частей соответственно. Экспорт происходит через собственное приложение Roblox Studio. Для многослойной одежды Roblox положились на осознанность разработчиков, поэтому официальные рекомендации еще более туманные: при проектировании учитывайте передовые методы моделирования, текстурирования объекта и минимизацию количества полигонов. Для блочных аватаров в качестве создания одежды также предлагается раскрашивать 2D-шаблон с текстурой 585х559 px. Персонажи-гуманоиды должны находиться в пределах 10к трианглов, не считая аксессуаров. Меши с меньшей детализацией, аксессуары – в пределах 4к трианглов.
В Decentraland есть несколько категорий носимых предметов, которые существуют как часть меша аватара – wearables – от скинов полностью, одежды до сережек или нимба над головой. Ограничения на количество треугольников и текстур, которые можно использовать для каждого носимого предмета или аксессуара: не более 1,5к трианглов (если считать полигонами, то делим на 2 и получаем не более 750) на носимый предмет, не более 500 трианглов (не более 250 полигонов) на аксессуар, не более двух POT-текстур с соотношением сторон 1:1 с разрешением 512x512px или ниже на носимый предмет (например, карта цвета и карта эмиссии). В случае полного скина допустимое количество 5к трианглов и 5 текстур единовременно.
Для AR-примерки в Snapchat рекомендуемые параметры экспорта одежды не более 5к полигонов (10к трианглов), POT текстуры с разрешением до 1024х1024 px. Поддерживает различные типы шейдеров (кроме карт дисплейсмента), также есть собственный PBR-шейдер с темплейтом для Substance Painter, где на выходе получаются 3 текстурные карты – карта цвета, карта нормалей и карта Material Params, которая сочетает в себе свойства карт металличности, шероховатости и окклюзии окружения. Максимальный размер загружаемого контента – 8 МБ. Вы можете загрузить объекты и с бОльшими параметрами, но либо это приведет к некорректному опыту на различных устройствах, либо Lens Studio самостоятельно внутри себя так заоптимизирует, что мама родная не узнает. Поэтому для наилучшего контроля за происходящим на дисплее лучше сразу идти в требуемых параметрах.

Нужно ли анимировать модель

Например, развевающийся плащ персонажа требует риггинга (создания костей скелета), скиннинга (оптимизации карты весов) и зацикленной скелетной анимации.

Формат экспорта одежды: FBX/ OBJ/ GLTF/ GLB/ …

Spatial поддерживает загружаемые форматы для 3D: GLB (рекомендуемый), glTF, FBX,OBJ, DAE, PCD.
AltspaceVR: FBX, OBJ – для 3D-объектов, загружаемых в Unity.
Roblox: FBX – для одежды, FBX, OBJ, rbxm – для жестких аксессуаров, импортируемых в Roblox Studio.
Decentraland: glTF.
Lens Studio: FBX и OBJ.

Нужно ли дополнительно делать лоды

Лоды, производное от LOD (Level of detail) – упрощенные модели того же объекта разной степени детализации, которые подгружаются на расстоянии.

Какой движок используется в проекте

Пригодится, чтобы предварительно протестировать, натянуть текстуры, проверить анимацию. Источники освещения и физическое небо очень влияют на восприятие текстур на объекте, поэтому здесь лучше не лениться.