Прежде чем приступать к созданию ресурсов в своём любимом приложении трёхмерного моделирования для проекта Unreal Editor для Fortnite (UEFN), изучите приведённые ниже рекомендации по моделированию, благодаря которым вы сможете создавать объекты, полностью оптимизированные для работы в UEFN.
Чтобы проверить правильность используемого масштаба, ознакомьтесь с информацией, представленной в разделе «Создание ресурсов в UEFN, готовых к использованию в Fortnite», где представлена подробная информация о единицах измерения, масштабе и размере решётки.
Ориентация ресурсов
Blender
Направьте ось Z вертикально вверх, а положительную ось Y — вперёд.
Направьте модель вперёд с помощью положительной оси Y.
Maya
Задать координаты в точке по оси Z, направленной вверх. Отрицательное значение для оси Y будет представлять собой верный вектор, направленный вперёд.
При импорте в UEFN это значение преобразуется в положительное значение по оси Y.
3DS Max
Используйте правую систему координат с осью Z, направленной вверх в системе координат мира. Вид спереди в окне просмотра — это вид в направлении положительной оси Y, ориентированной вглубь экрана.
Советуем импортировать сетку на этапе создания макета, чтобы проверить, что в UEFN используются верные координаты, а также чтобы выявить любые имеющиеся ошибки до детализации.
Чтобы проверить правильность отображения ресурса в магазине Fab, выполните следующее:
В процессе разработки обеспечьте направление оси Z вверх либо преобразуйте её во время экспорта в соответствии с системой координат UEFN. В противном случае ресурс при импорте может быть ориентирован неправильно.
Точки вращения должны быть размещены таким образом, чтобы обеспечить плавную компоновку, и должны определяться самой сеткой, а не сценой. Как правило, точка вращения располагается в нижней части, однако у сеток, которые должны вращаться в произвольных направлениях, точка вращения должна располагаться по центру.
Создание объекта окружения
Создавайте пользовательские ресурсы для UEFN с помощью инструмента трёхмерного моделирования, который подходит вам больше всего.
При создании основной сетки объекта и работе с ней руководствуйтесь рекомендациями ниже, чтобы создать ресурс, готовый для использования и в магазине Fab, и в UEFN.
См. раздел Устранение неполадок с ресурсами в блоке «Создание ресурсов в UEFN, готовых для использования в Fortnite», где представлен список возможных ошибок, с которыми вы можете столкнуться при создании ресурсов для UEFN.
Моделирование полигонов
Начните с прототипа (специального ресурса), чтобы задать контур и общий вид ресурса, и посмотрите, как он соотносится с размерами персонажа. Если всё в порядке, тогда создайте этот ресурс и детализируйте его.
Сетка должна быть ориентирована таким образом, чтобы её часть, обращённая вперёд, совпадала с положительной осью X в UEFN.
У объектов должна быть задана толщина. Исключением является двухсторонний материал.
Скошенные рёбра не должны быть меньше 0,5 см.
По возможности создайте сплошную сетку. Обращайте внимание на внутренние полигоны.
Поверхность сетки должна быть как можно проще, чтобы файлы ресурса имели минимально возможные относительные размеры.
Если ваш ресурс включает элементы, которые можно использовать отдельно, он должен быть модульным. Представьте, что ваш ресурс — это рыночный прилавок с корзинами и фруктами. Это может быть единый прилавок, однако вы также можете создать корзины и фрукты в виде отдельных сеток, которые можно будет использовать сами по себе.
Удалите ненужные элементы.
При создании материалов для размещения текстур для более сглаженных рёбер трёхмерных ресурсов используйте взвешенные нормали граней.
Полигоны, вершины и квадранты
Создавайте простые ресурсы с небольшим числом полигонов.
Склеивайте отдельные части вместе, чтобы избежать пробелов в сетке. Между элементами не должно быть пробелов. Обратите внимание, если объект можно использовать самостоятельно (например, стол и стулья к нему — это разные объекты с разными наборами текстур, которые можно использовать по отдельности).
Уделите время оптимизации, а также работайте с квадратами сетки. По возможности всегда используйте квадраты, а треугольники выбирайте при необходимости. Следите за появлением двойных граней.
На участках с более плоской поверхностью плотность должна быть меньше, в отличие от участков со сложной структурой поверхности. Плоские поверхности должны состоять из меньшего количества полигонов.
Извлекайте количество используемых вершин из UE, а не из используемого вами отдельного редактора. Жёсткие ребра, несколько групп сглаживания и дополнительные развёртки могут увеличить итоговое количество вершин ресурса в движке.
Герметичная конструкция
Вы можете создавать герметичные ресурсы с учётом факторов разработки игры. В вашей авторской программе должна быть предусмотрена возможность выделения граничных рёбер. Это поможет найти рёбра, которые не приклеены друг к другу. Чтобы проверить ресурс на наличие обратных сторон или пробелов, используйте инструмент для очистки, который поможет выявить ошибки геометрии.
Соглашения об именах для статичных сеток
Из названий ресурсов должно быть понятно, для чего они нужны. Например, если сетка — это стул, но название сетки тоже должно включать слово "стул".
Если у вас есть несколько экземпляров сетки, добавьте номер после названия ресурса: Blue_Highback_Chair_01, Blue_Highback_Chair_02 и т. д.
Развёртка
Для сетки требуется хотя бы один набор развёрток. При разработке архитектурных ресурсов используется второй набор координат развёртки, чтобы распределять задачи между наборами текстур. При разработке пользовательских материалов можно использовать несколько наборов координат развёртки для создания дополнительных эффектов.
Для правильной упаковки развёртки вся развёртка должна находиться в пространстве [от 0 до 1], если она была прописана в рабочем процессе с высоким разрешением. Если вы используете материалы для размещения текстур, они могут находиться в пространстве [от 0 до 1] и накладываться друг на друга.
Не растягивайте развёртку и UV-острова. Упаковывайте развёртку максимально компактно.
При создании развёртки:
Используйте плотность текселей 1024 пикселя на метр (это значение может отличаться в зависимости от объекта).
Группируйте наборы текстур по объекту. Например, стол и стулья должны состоять из базы T_Table01Base_[TextureSet] и T_Chair01_[TextureSet].
Размещайте UV-острова в квадрате [от 0 до 1].
Стыкуйте UV-острова так, чтобы избежать швов, и используйте минимальное количество таких островов.
Создайте развёртку для всех элементов объекта.
Что ещё следует учитывать при создании развёртки для разбиваемых на плитки материалов:
UV-острова с разным смещением можно накладывать друг на друга.
Размещайте UV-острова горизонтально, чтобы в дальнейшем материал можно было легко переключать: это позволит изменять материал объекта и создавать его вариации.
Выровняйте развёртку по горизонтали и вертикали с помощью настройки Ослабление и инструментов для выравнивания рёбер и колец. Это избавит элементы от избыточного растяжения.
Сделайте UV-острова максимально гладкими.
Некоторые программы для моделирования могут добавлять растяжение при выравнивании выделенной области для сглаживания UV-острова.
Соглашения об именах файлов материалов
Для названий файлов текстур и материалов действуют те же правила, что и для названий статичных сеток. В названии материала должно быть указано его назначение и тип.
Если материал относится к группе ресурсов, необходимо, чтобы у всех элементов группы был один идентификатор. Например, если вы создаёте набор объектов окружения, материалов и текстур в стиле цирка, добавьте тему в название (Circus_Stripe_Material). Если вы зададите другое название, нужно будет создать другой материал.