Независимо от того, создаёте ли вы ресурсы с помощью инструментов моделирования Unreal Editor для Fortnite (UEFN), импортируете приобретённые ресурсы в UEFN или же создаёте ресурсы в другом инструменте моделирования, таком как Blender, важно учитывать масштаб, размеры, материалы и другие свойства ресурсов. Также важно учитывать ограничения устройств, на которых будет запускаться Fortnite. Например, мобильные устройства и Nintendo Switch могут предъявлять иные требования к ресурсам по сравнению с ПК или консолью Playstation 5.
Это руководство поможет вам определить, пригодны ли ресурсы, используемые в вашем проекте, для использования в Fortnite.
Ваши настройки моделирования
Убедитесь, что единицы измерения и масштаб настроены правильно, будь то UEFN или другой инструмент моделирования, такой как Blender. Эти и другие настройки, которые нужно проверить, представлены в таблице ниже. Это гарантирует, что вы будете работать с такими же настройками, что и авторы Fortnite.
| Настройка | Единица измерения или другое значение |
|---|---|
Длина/линейность | Сантиметры (1 единица равна 1 см) |
Углы/вращение | Градусы |
Таймеры | Кадров в секунду |
Ось направления вверх | Ось Z |
Цветовое пространство карты нормалей | DirectX |
Размер решётки
В UEFN решётка мира измеряется в сантиметрах (1 см = 1 единица Unreal). При создании ресурсов в программном обеспечении для моделирования или UEFN убедитесь, что размер решётки составляет 512 см (512 единиц). Это стандартный размер в Fortnite.
Масштабирование мира
Рост персонажей игроков в Fortnite равен 192 см. Помните об этом, когда создаёте архитектурные объекты или мебель, чтобы масштаб игроков соответствовал создаваемой обстановке.
Объём памяти, выделяемой ресурсам
В таблице ниже представлены диапазоны памяти, выделяемой на ресурсы разного размера и сложности. Эти объемы памяти обеспечивают приблизительную оценку минимального уровня детализации для ваших творений. Выделенный объём памяти напрямую связан со сложностью деталей объекта, а не с его размерами.
Если для каких-либо ресурсов не установлены правильные уровни детализации, будьте осторожны с количеством используемых ресурсов, число вершин которых превышает 20 тыс.
| Уровень сложности | Маленькая сетка | Средняя сетка | Большая сетка |
|---|---|---|---|
Простые объекты | Макс. для LOD0: 400 полигонов | Макс. для LOD0: 900 полигонов | Макс. для LOD0: 2500 полигонов |
Средние объекты | Макс. для LOD0: 700 полигонов | Макс. для LOD0: 2000 полигонов | Макс для LOD0: 6000 полигонов |
Сложные объекты | Макс для LOD0: 1200 полигонов | Макс. для LOD0: 4000 полигонов | Макс для LOD0: 9000 полигонов |
Эти выделенные объёмы памяти приведены для справки. Однако лучший способ проверить ресурсы — это импортировать и протестировать их в UEFN.
Другой способ оценить выделенный объём памяти — это сравнить создаваемый объект с размером персонажа, используя количество вершин, как показано ниже.
| Размер ресурса | В сравнении с Игрок | Количество вершин |
|---|---|---|
Маленький | Половина персонаже или меньше | Макс. 1000 |
Средний | До размера персонажа | Макс. 3000 |
Большой | Больше, чем персонаж | Макс. 5000 |
В следующих разделах приведены примеры выделенных объёмов памяти для ресурсов некоторых общих типов. Указано количество вершин для ряда уровней детализации.
Деревья
| Размер дерева и уровень детализации | Маленькое LOD0 | Маленькое LOD3 | Среднее LOD0 | Среднее LOD3 | Большое LOD0 | Большое LOD3 |
|---|---|---|---|---|---|---|
Количество вершин | 1700 | 150 | 5000 | 1200 | 15 000 | 2000 |
Камни
| Размер камня и уровень детализации | Маленькое LOD0 | Маленькое LOD3 | Среднее LOD0 | Среднее LOD3 | Большое LOD0 | Большое LOD3 |
|---|---|---|---|---|---|---|
Количество вершин | 600 | 50 | 1200 | 100 | 2500 | 150 |
Знаки
| Размер знака и уровень детализации | Маленькое LOD0 | Маленькое LOD3 | Среднее LOD0 | Среднее LOD3 | Большое LOD0 | Большое LOD3 |
|---|---|---|---|---|---|---|
Количество вершин | 400 | 50 | 1700 | 300 | 7000 | 300 |
Объекты окружения
| Размер объекта окружения и уровень детализации | Маленькое LOD0 | Маленькое LOD3 | Среднее LOD0 | Среднее LOD3 | Большое LOD0 | Большое LOD3 |
|---|---|---|---|---|---|---|
Количество вершин | 900 | 60 | 1500 | 150 | 3200 | 250 |
Транспорт
| Размер транспортного средства и уровень детализации | Маленькое LOD0 | Маленькое LOD3 | Среднее LOD0 | Среднее LOD3 | Большое LOD0 | Большое LOD3 |
|---|---|---|---|---|---|---|
Количество вершин | 1200 | 200 | 6000 | 400 | 9000 | 1000 |
Уровни детализации (LOD) ресурсов
Уровень детализации (LOD) — это важный способ оптимизировать работу острова на разных устройствах. Вы можете сгенерировать уровни детализации в UEFN после создания или импорта ресурса, но если вы создаёте ресурсы в другом приложении для моделирования, вы также можете сгенерировать уровни детализации вручную при создании ресурса. Функции автоматической генерации уровней детализации упрощают создание уровней детализации, и их можно рекомендовать для большинства ресурсов. Однако для некоторых ресурсов с разъединёнными геометрическими элементами может потребоваться создать уровни детализации вручную.
Ресурсы для работы в реальном времени должны иметь пять уровней детализации (LOD0 и LOD1–LOD4), чтобы обеспечить хорошую производительность на разных устройствах.
Оптимизируйте каждую сетку уровня детализации, используя предыдущий уровень детализации, отображаемый одновременно, либо в UEFN, либо в другой программе для моделирования. Учитывайте швы на предыдущем уровне детализации. Так вы сможете оптимизировать ресурсы UV-островов. Это позволяет избежать ситуаций, когда текстура смещается при переключении игры с одного уровня детализации на другой.
При создании уровней детализации учитывайте следующее:
Уменьшите количество полигонов в соответствии с силуэтом, чтобы вид объекта не слишком изменялся при переключении уровней детализации. Сохраняйте вид силуэта со всех сторон, насколько это возможно, на всех уровнях детализации.
Количество полигонов на каждом уровне детализации должно быть вдвое меньше, чем на предыдущем.
Не нарушайте границы UV-развёртки при создании уровней детализации, иначе растяжение текстур будет некачественным.
Протестируйте свои уровни детализации, а затем соответствующим образом скорректируйте расстояние, на котором действует каждый уровень.
Уровни детализации 1–3 можно создать автоматически с помощью оптимизатора сетки вашего инструмента моделирования только при соблюдении следующих условий:
UV-развёртки совпадают без какого-либо смещения или вращения UV-островов при переходе от одного уровня детализации к другому.
Для всех уровней детализации используется один и тот же материал.
Коллизии ресурсов
Все объекты статических сеток должны иметь свойства коллизии, чтобы игроки могли взаимодействовать со статичными сетками во время игры. Свойства коллизии влияют на движение игроков, воздействие на сетки и игроков при столкновении, а также на трассировку мира. Области коллизии часто генерируются и настраиваются непосредственно в редакторе, таком как UEFN, но, если вы создаёте ресурсы в другом инструменте моделирования, рекомендуется включать области коллизии в свои ресурсы.
Постройте выпуклые модели, чтобы получить приближённую форму, охватывающую ресурс. Настройте примитивы, чтобы закрыть базовую форму сетки. Старайтесь, чтобы количество сеток коллизии UCX не превышало 10.
Используйте в названиях префикс UCX_, за которым следует название низкополигональной экспортируемой сетки из вашего инструмента моделирования. Например, если ресурсом является стул, используйте название UCX_Chair.
Если у вас несколько копий сетки, добавьте номер после названия ресурса, например: UCX_Chair_01, UCX_Chair_02 и т. д.
Для получения дополнительной информации см. раздел Настройка коллизий для статической сетки.
Рекомендации по материалам и текстурам
Этот и последующие разделы содержат рекомендации по созданию материалов и текстур для ресурсов, спроектированных в сторонних инструментах моделирования. Инструменты моделирования UEFN работают иначе, поэтому см. раздел Материалы документации UEFN, чтобы узнать больше о том, как материалы работают с ресурсами, создаваемыми в UEFN.
Желательно, чтобы ваши ресурсы хорошо работали в самых разных ситуациях. Важно помнить, что ресурс будет отображаться в разнообразных сценариях освещения — вне помещений в разное время суток, вне помещений ночью, в помещениях с ярким или тусклым светом и т. д. Чтобы учесть это, имейте в виду следующее:
Выбирайте значения альбедо в физически корректном диапазоне.
Выбирая уровни излучения, убедитесь, что они хорошо работают в разных условиях освещения, таких как день, ночь, в помещении и на улице.
Даже если ваш ресурс не фотореалистичен, всё равно важно понимать, как работает отрисовка с учётом физики (PBR).
Создание материалов
Представьте, как объект выглядит в реальной жизни, и смоделируйте материалы и текстуры по образцу соответствующего предмета. Текстуры могут быть настолько детальными, насколько требуется.
Когда текстуры будут готовы, их можно импортировать в формате TGA или PNG. Однако авторы Fortnite используют для большинства текстур формат PNG.
Запекание текстур для высокополигональных и низкополигональных сеток
Когда вы будете готовы начать запекание своей карты, обязательно сделайте следующее:
Используйте бесконечное заполнение текстурой (также известное как растяжение текстуры).
Обязательно зафиксируйте и сверните все преобразования своей карты текстуры.
Запекание текстур для низкополигональных моделей
Создайте дубликаты своих низкополигональных моделей для запекания. Модели должны в максимальной степени сохранять квадраты. Добавляйте триангуляцию в дубликат модели только в случае крайней необходимости, прежде чем экспортировать его для запекания. Дубликат должен быть вашей окончательной внутриигровой сеткой.
Прежде чем начать запекание текстур, убедитесь, что диапазон UV-развёртки вашей модели находится в интервале 0–1.
Запекание текстур для высокополигональных моделей
Высокополигональная сетка используется только для запекания. UV-развёртки для этой сетки не требуются, но вы можете разделить назначения материалов, чтобы изменить идентификационную маску.
Если вы используете Marmoset, то можете разделить объект на части с высокой и низкой детализацией, чтобы выделить запекаемые детали. Более подробную информацию см. в документации к Marmoset.
Масштабирование текстуры
Используйте для карт текстур масштабирование по степеням двойки (64, 128, 256, 512, 1024, 2048). Это позволяет применять MIP-текстурирование.
В случае уникальных текстур, используемых для замощения, выпрямите UV-острова там, где это необходимо, и сделайте швы развёртки как можно меньше.
Все карты текстур должны иметь размер/разрешение не более 2K.
Материалы обычно включают в себя следующие карты текстур:
Если вы включаете карты глянца текстур, глянцевая текстура должна быть настроена следующим образом:
Карта глянца в канале R
Карта металла в канале G
Карта шероховатости в канале B
Обычно рекомендуется запекать карты текстур в Marmoset, но вы можете использовать и другие решения. К примеру, если у вас нет доступа к Marmoset, вы можете использовать для запекания ресурсов Xnormal.
Убедитесь, что ваши карты включают Нормали, Нормали мирового пространства, Окружающее затенение, Идентификационную маску и Кривизну. Полученные запекаемые карты текстур можно использовать в таком приложении, как Substance Painter, для создания готовых карт рассеяния, нормалей, а также глянца, металла, шероховатости, альфа, используемых в Fortnite.
Настройки Substance Painter
Ниже приведены настройки каналов карт текстур для отрисовки сетки с помощью Substance Painter. Если вы используете другое приложение, установите в нём аналогичные настройки.
| Тип карты текстуры | Настройка канала |
|---|---|
Рассеяние | RGB или RGBA (с альфа-каналом) |
Нормали | RGB |
Глянец | Красный канал — глянец, зелёный канал — металл, синий канал — шероховатость и альфа-канал — только излучение |
В разделе Converted Maps (Преобразованные карты) должна быть установлена настройка Normal DirectX (DirectX нормали).
Оптимизация производительности для Nintendo Switch и мобильных устройств
В Fortnite играют на самых разных устройствах. Когда вы создаёте в UEFN ресурсы, которые собираетесь использовать в Fortnite, рекомендуется подумать об их оптимизации, чтобы они хорошо работали на всех устройствах, поддерживаемых Fortnite.
Вот несколько способов оптимизировать ресурсы для Nintendo Switch и мобильных устройств.
Количество полигонов: старайтесь, чтобы полигонов было как можно меньше.
Количество материалов: используйте минимально возможное количество материалов. В идеале используйте для каждой сетки единственную секцию материала.
Качество материала: на таких устройствах вместо материалов очень высокого качества можно использовать их низкокачественные версии. Если вы используете инструмент, в котором есть функции, снижающие качество материала для повышения производительности, эти функции нужно задействовать. В UEFN используйте функции Переключатель качества материала и Переключатель способа затенения материала в Каталоге материалов UEFN.
Разрешение текстуры: память для текстур на этих устройствах обычно весьма ограничена. Вы можете оптимизировать производительность, используя текстуры только размера 512 x 512 пикселей и по возможности избегая больших размеров.
Устранение неполадок с ресурсами
При первом создании сетки для UEFN могут возникнуть проблемы. Ниже приведён список частых проблем и некоторые возможные решения.
У вашего ресурса неправильное разрешение: когда вы создаёте 3D-ресурс высокого разрешения, вы не можете вернуться к более низкому разрешению. Сетки высокого разрешения труднее редактировать, и вашему компьютеру сложнее их отрисовывать. Это означает, что просмотр вашего ресурса будет требовать больше времени. Также это приводит к увеличению размеров файлов и слишком большому количеству вершин для UEFN и Fortnite.
Неверный масштаб ресурса: убедитесь, что вы применяете масштаб единообразно. Вот некоторые примеры того, почему ваш масштаб может работать неправильно:
В настройках масштаба заданы сантиметры, а не метры.
Необходимо обновить масштаб мира в среде моделирования.
В процессе экспорта масштаб на выходе преобразуется.