Version: 5.3 (switch to 5.4b)
Как мне работать с водой?
Как мне импортировать модели из моего 3D редактора?

Руководство по лучшим практикам работы с графическими ассетами

Unity поддерживает текстурированные 3D модели, созданные в различных программах. Это краткое руководство было создано игровыми художниками и разработчиками в Unity, чтобы помочь вам в создании ассетов, которые будут работать лучше и эффективнее в вашем Unity проекте.

Масштаб и единицы измерения

  • Установите единицы измерения системы и проекта в вашем программном обеспечении для согласованного использования с Unity, например, метрические.
    • Работа в правильном масштабе может быть важна как для освещения, так и для симуляции физики.
    • Учтите, что, например, в Max единицы по умолчанию - дюймы, а в Maya - сантиметры.
    • В Unity масштаб импортируемых FBX и файлов 3d приложений - разный; проверьте настройку масштаба импортируемого FBX в инспекторе.
    • Если вы сомневаетесь, экспортируйте метрический куб (куб с длиной ребра в 1 метр) с вашей сценой для сравнения с встроенным в Unity метрическим кубом.
  • В разных приложениях частота кадров анимации может быть различна, лучше установить постоянную частоту на протяжение всего цикла разработки, например, 30 fps.

Файлы и объекты

  • Давайте объектам в вашей сцене осмысленные и уникальные имена. Это может помочь найти и отладить определённые меши в вашем проекте.
  • Не используйте специальные символы *()?"#$ и т.д.
  • Для объектов и файлов используйте простые, но содержательные имена.
  • Сохраняйте наиболее простую иерархию по возможности.
  • При работе над большими проетками в вашем приложении для 3D моделирования, постарайтесь размещать файл проекта вне папки проекта Unity. Зачастую это может сэкономить время, требуемое для обновления и импортирования ненужных данных.
Осмысленные имена помогают вам быстро находить нужные вещи
Осмысленные имена помогают вам быстро находить нужные вещи

Меш

  • Моделируйте с эффективной топологией. Используйте полигоны только там, где они необходимы.
  • Оптимизируйте вашу геометрию, если она содержит слишком большое количество полигонов. Многие модели персонажей должны быть грамотно оптимизированы или даже пересобраны художником, особенно если они получены/собраны из:
    • Данных 3D захвата
    • Poser
    • Zbrush
    • Других высокоплотных Nurbs/Patch моделей, предназначенных для рендера
  • По возможности, равномерно распределяйте полигоны в зданиях, ландшафте и архитектуре, это поможет в распространении освещения и позволит избежать некрасивых изломов.
  • Избегайте очень длинных тонких треугольников.
Лестница в высокопроизводительный рай
Лестница в высокопроизводительный рай

Метод, который вы используете для сборки объектов может значительно влиять на количество полигонов, особенно, если не производить оптимизацию. На изображении выше показан один и тот же shape меш, со 156 треугольниками справа и 726 слева. 726 может звучать не так серьёзно, когда речь идёт о полигонах, но если такой меш использован на уровне 40 раз, вы начнёте замечать разницу. Хорошее правило для применения на практике - начинать с простого и затем добавлять детали по мере необходимости. Всегда проще добавить полигон, чем удалить.

Текстуры

Если вы создаёте текстуры с размером, кратным степени двойки (напр., 512x512), текстуры будут более эффективны и не потребуется изменение их масштаба во время сборки проекта. Вы можете использовать до 4096x4096 пикселей (хотя на некоторых видео картах и платформах максимально возможный размер - 2048x2048). Поищите в сети советы экспертов по созданию хороших текстур. Некоторые из этих советов могут помочь вам в получении наиболее эффективных результатов в вашем проекте:

  • Работайте с исходным файлом высокого разрешения вне проекта Unity (напр., PSD или файл Gimp). Вы всегда можете отмасштабировать размер исходной графики в меньшую сторону, но не наоборот.
  • Используйте требуемое в сцене разрешение для текстур (сохраните копию, например оптимизированный 256x256 PNG или TGA файл). Вы можете судить по тому, где будет отображаться текстура и где она будет видна.
  • Храните файлы текстур в одном месте в вашем Unity проекте (например: \Assets\textures).
  • Убедитесь, что ваш рабочий файл с 3D контентом ссылается на эти текстуры для сохранения целостности при сохранении / экспорте.
  • Используйте свободное место в вашей текстуре, но учтите, что разные материалы могут работать с разными частями одной и той же текстуры. Это может привести к многократному использованию / загрузке этой текстуры.
  • Разделяйте текстуры для альфы (cutout) и элементов, которые могут обрабатываться различными шейдерами. Например, одиночная текстура, показанная ниже (слева) была заменена тремя меньшими по размеру текстурами (справа).
Одна текстура (слева) vs три текстуры (справа)
Одна текстура (слева) vs три текстуры (справа)
  • Используйте тайлинг текстуры (те, которые могут повторяться бесшовно), тогда вы сможете использовать более высокое разрешение на повторяющихся участках.
  • Удаляйте из вашего изображения повторяющиеся элементы, которые легко заметить и будьте осторожны с контрастностью. Если вы желаете добавить деталей, используйте декали и объекты для разряжения повторений.
Тайлинг текстур ftw
Тайлинг текстур ftw
  • Unity заботится о сжатии для целевой платформы, так что, если ваш исходный файл уже не является JPG верного разрешения, лучше использовать lossless формат для ваших текстур.
  • При создании текстуры из фотографии, уменьшайте её используя отдельные модульные секций, которые могут повторяться. Например, вам не нужны 12 одинаковых окон, использующих текстурное пространство. Таким образом, вы можете иметь больше деталей на пиксель для этого одного окна.
Нужны ли вам ВСЕ эти окна?
Нужны ли вам ВСЕ эти окна?

Материалы

  • Организуйте и именуйте материалы в вашей сцене. Таким образом вам будет намного проще редактировать ваши материалы в Unity после импорта.
  • Вы можете выбрать создание материалов в Unity из:
    • <имямодели> имя материала> либо: or
    • <имя текстуры> - убедитесь, что вы знаете, какой из вариантов выбрать.
  • Не все настройки материалов из вашего пакета моделирования будут импортированы в Unity:
    • Diffuse цвет, Diffuse текстура и имена обычно поддерживаются
    • Shader model, specular, normal, другие вторичные текстуры и настройки субстанций не будут опознаны/импортированы (должно появиться в Unity 3.5)

Импорт / экспорт

Unity может использовать два типа файлов: сохранённые файлы приложений для 3D моделирования и экспортированные 3D форматы. Выбор в пользу одного из них может быть довольно важен:

Сохранённые файлы приложений для моделирования

Unity может импортировать путём конвертации: файлы Max, Maya, Blender, Cinema4D, Modo, Lightwave & cheetah3D, напр., .MAX, .MB, .MA и т.д. см. раздел Импортирование объектов для дополнительной информации.

Преимущества:

  • Быстрый итеративный процесс (сохраняете изменения и Unity их “подхватывает”)
  • Изначально просто

Недостатки:

  • Лицензионная копия программы (чей формат используется) должна быть установленна на всех машинах, на которых используется проект Unity
  • Файлы могут быть неоправданно большими из-за ненужных данных
  • Большие файлы могут замедлить “живое” обновление Unity
  • Меньше проверок и сложнее отлаживать поблемы

Экспортированные 3D форматы

Unity также может читать FBX, OBJ, 3DS, DAE & DXF файлы. Для подробного руководства по экспорту, вы можете обратиться к этому разделу.

Преимущества:

  • Экспортируются только необходимые файлы
  • Вы можете проверить ваши данные (повторно импортировав в пакет 3D моделирования) до того, как использовать в Unity
  • Обычно вы получите файлы меньшего размера
  • Позволяет использовать модульный подход

Недостатки:

  • Прототипирование, итерации и весь рабочий процесс может быть медленней
  • Проще запутаться в версиях исходника (рабочего файла) и игровых данных (экспортированного FBX)
Как мне работать с водой?
Как мне импортировать модели из моего 3D редактора?