Документация/Уроки/Экспорт моделей из Autodesk 3ds Max

From NeoAxis Engine Wiki

Jump to: navigation, search
Перейти на уровень выше
Max export1.jpg

Contents

Введение

В данном уроке будет рассмотрен экспорт моделей и материалов из пакета моделирования Autodesk 3ds Max.

Для экспорта используется NeoAxis Engine Exporter, входящий в состав NeoAxis Engine SDK, предназначенный для экспорта трехмерных моделей из пакетов моделирования. Вы можете использовать его для экспорта моделей, материалов, анимации, а также сцен, состоящих из нескольких объектов.

В результате экспорта получаются следующие файлы:

  • .mesh - формат трехмерных моделей. Формат OGRE mesh.
  • .skeleton - формат для хранения скелета модели. Формат OGRE skeleton.
  • .highMaterial - материал NeoAxis Engine.
  • .scene - промежуточный формат сцены для импорта группы объектов в редактор карт.

Установка

Для установки экспортера зайдите в папку SDK\Tools\Exporters\3dsMax и запустите приложение NeoAxisEngineExporterInstaller_3dsMax.exe.

Max export2.jpg

Отметьте те версии 3ds Max, в которые собираетесь установить экспортер и нажмите кнопку Install. Когда установка завершится, вы получите соответствующее сообщение.

Max export3.jpg

На этом установка завершена, экспортер готов к использованию.

Экспорт статичной модели

В качестве примера экспортируем из 3ds Max обычную сферу с текстурой.

Max export4.jpg

Первым делом настроим меню экспортера. Щелкните по вкладке Utilities, а затем нажмите кнопку Configure Button Sets.

Max export5.jpg

В появившемся окне в левом списке Utilities выберите NeoAxis Engine Exporter и перетащите его на место одного из элементов в правом списке Utilities. После этого нажмите кнопку Ok.

Max export6.jpg

Теперь NeoAxis Engine Exporter будет доступен во вкладке Utilities.

Max export7.jpg

Чтобы вызывать меню NeoAxis Engine Exporter, нажмите на соответствующую экспортеру кнопку во вкладке Utilities. В появившемся ниже меню нажмите на кнопку Settings.

Max export8.jpg

Первое, что необходимо указать, это путь к директории "Data" вашего проекта. Туда будут экспортироваться модели. Чтобы выбрать папку для экспорта, нажмите на кнопку "...".

Max export12.jpg

Удобно использовать для экспорта моделей ту же директорию, что используется Resource Editor. Таким образом вы сможете сразу посмотреть на конечный результат в редакторе NeoAxis Engine. Чтобы добавить сферу в список экспортируемых объектов, нажмите на кнопку +.

Max export9.jpg

В списке объектов выберите сферу и нажмите кнопку Ok.

Max export10.jpg

Сфера добавлена в список объектов, на этом настройка завершена. Нажимайте кнопку Ok.

Max export11.jpg

Теперь приступим к экспорту. В меню NeoAxis Engine Exporter во вкладке Utilities нажмите кнопку Export.

Max export13.jpg

Чтобы приступить к экспорту, в появившемся окне нажмите кнопку Export!.

Max export14.jpg

Дождитесь завершения экспорта. После того как появилась строчка "Export is successfully finished!", экспортирование завершено.

Max export15.jpg

Запустите редактор ресурсов, чтобы увидеть полученный результат.

Max export16.jpg

Экспорт анимированной модели (на примере скелетной анимации)

Max export17.jpg

Экспорт анимированной модели отличается от экспорта статичной модели необходимостью указывать список экспортируемых анимаций. Для этого зайдите в меню настроек, добавьте экспортируемую модель в список объектов и настройте свойство Animations.

Max export18.jpg

Добавьте в список необходимое количество анимаций.

Max export19.jpg

Каждая анимация характеризуется уникальным именем, типом, начальным и конечным кадрами. Все эти параметры нужно указать для каждой анимации. Наконец, для экспортирования скелетной анимации нужно установить свойство ExportSkeleton в значение True. Это свойство отвечает за экспортирование файла со скелетом трехмерной модели.

Max export20.jpg

Теперь ваша модель со скелетной анимацией готова для экспорта.

Max export21.jpg

Экспорт сцены (группы мешей)

Экспорт сцены включает в себя экспорт сразу всего списка объектов. Кроме файлов с моделями, создается промежуточный файл формата .scene. Он хранит в себе данные о положении объектов на сцене и прочую информацию. С помощью него модели импортируются в редактор карт. Рассмотрим экспорт сцены на примере экспорта трех примитивов.

Max export22.jpg

Необходимо добавить все объекты, которые нужно экспортировать, в список. В данном случае это три примитива. Помимо этого, требуется установить значение свойства ExportScene в значение True. Эти и другие настройки сцены становятся доступны при выделении корневого объекта в списке.

Max export23.jpg

Помимо этого, необходимо указать для каждого экспортируемого объекта значение False для свойства ApplyWorldTransform. Это необходимо, чтобы объект экспортировался без глобальной трансформации, которая будет храниться в файле сцены.

Max export24.jpg

Теперь остается лишь экспортировать объекты сцены и импортировать их в редакторе карт. Импорт сцены осуществляется нажатием кнопки Import objects в меню Scene File Import, которое, в свою очередь, располагается в меню File.

Max export25.jpg

Объекты сцены из 3ds Max за несколько кликов появляются на карте в виде статических мешей.

Max export26.jpg

Полное описание экcпортера

В настройках экспортера имеется большое количество различных параметров. Они делятся на общие настройки экспорта и настройки объекта. В то же время все настройки группируются по типам.

Общие настройки

Свиток свойств Materials:

Параметр Описание
ExportMaterials В значении true модели экспортируются вместе с назначенным им материалами.
MaterialsDirectory Путь к директории, куда экспортируются материалы. Указывается относительно директории "Data". Если путь не указан, то материалы экспортируются в папку "Data".

Свиток свойств Meshes:

Параметр Описание
MeshesDirectory Путь к директории, куда экспортируются меши. Указывается относительно директории "Data". Если путь не указан, то меши экспортируются в папку "Data".

Свиток свойств Scenes:

Параметр Описание
ExportScene В значении true помимо моделей экспортируется промежуточный файл формата .scene, с помощью которого можно быстро импортировать все объекты сцены на карту в Map Editor.
SceneScale Коэффициент масштабирования сцены с объектами. Используется при импорте в Map Editor.
ScenesDirectory Путь к директории, куда экспортируется файл сцены. Указывается относительно директории "Data". Если путь не указан, то файл сцены экспортируется в папку "Data".

Свиток свойств Textures:

Параметр Описание
BaseMapFormat Формат, в который преобразовываются текстуры моделей, кроме карт нормалей.
ExportTextures В значении true материалы моделей экспортируются вместе с назначенным им текстурами.
NormalMapFormat Формат, в который преобразуются карты нормалей.
TexturesDirectory Путь к директории, куда экспортируются текстуры. Указывается относительно директории "Data". Если путь не указан, то текстуры экспортируются в папку "Data".

Настройки объекта

Свиток свойств General:

Параметр Описание
AllowMergeSubMeshes В значении true сабмеши одной модели объединяются, если им назначен одинаковый материал. В качестве сабмеша может выступать объект из группы.
EdgeList В значении true меш экспортируется со списком его ребер. Это необходимо только для стенсильных теней.
Name Имя объекта сцены.
Tangents В значении true меш экспортируется вместе с тангентами. Это необходимо только для карт нормалей (Normal Mapping).
VertexColors В значении true вершины меша экспортируются вместе с назначенными им цветами.

Свиток свойств Transform:

Параметр Описание
ApplyWorldTransform В значении true к мешу применяется глобальная трансформация. Таким образом вершины меша располагаются в тех же координатах, что и на сцене.
Scale Коэффициент масштабирования модели.

Свиток свойств Animation:

Параметр Описание
Animations Список анимаций модели.
ExportSkeleton В значении true модель экспортируется вместе с файлом скелета.
FrameStep Шаг, с которым экспортируются кадры анимации. Это значение показывает на сколько кадров анимации в пакете моделирования будет приходиться 1 кадр анимации экспортированной модели.
MorphInterpolationError Погрешность интерполяции при подсчете ключевых кадров в морф-анимации. Чем значение больше, тем меньше будет ключевых кадров и соответственно, меньше размер файла модели. Чем значение меньше, тем точнее будет анимация, но ключевых кадров будет больше и размер файла модели увеличится.

Свиток свойств LODs:

Параметр Описание
LODsCount Количество лодов (упрощенных копий с меньшим количеством полигонов) у объекта. Более подробно об автоматическом создании лодов можно узнать здесь.
LODsDistance Дистанция до камеры, после которой начинается следующий уровень LOD.
LODsReduction Процент граней, убирающихся на уровне LOD, по отношению к предыдущему.

Свиток свойств Scene Export Only:

Параметр Описание
AllowDecals Позволяет/запрещает прикрепление декалей к данному объекту. Если запрещено, то декали не будут отображаться на объекте (к примеру, следы от пуль, взрывов).
CastDynamicShadows Позволяет включить/выключить генерацию динамических теней об этого объекта.
CastStaticShadows Позволяет включить/выключить генерацию статических (лайтмап) теней об этого объекта.
Collision Позволяет включить/выключить просчет столкновений с объектом. Если выключено, то другие физические тела (например персонажи) будут проходить сквозь объект.
CollisionMaterialName Физический материал. Позволяет выбрать из 4 значений - Metal, Wood, Rubber, Ice. Данный параметр влияет на свойства взаимодействия физических тел. К примеру, если поставить на карту ящик, выставить в параметре Ice и подойти к нему и толкнуть, то он будет кататься и скользить как по льду.
CollisionSpecialMeshName Данный параметр позволяет заменить геометрию столкновений для данного объекта. Может использоваться для облегчения просчета сложных физических объектов. Если указать другой меш, то при столкновениях будет просчитываться именно он, а виден будет меш, указанный в параметре MeshName.
ForceMaterial Позволяет задать другой материал для объекта.
ReceiveStaticShadows Позволяет рисовать тени на данном объекте. Если параметр включен, то тени, отбрасываемые другим объектами будут рисоваться на данном объекте.
RenderingDistance Позволяет указать дистанцию, после которой объект будет не виден. При значении 0 будет прорисовываться всегда.
RenderQueueGroup Определяет очередь рендеринга объекта относительно других объектов.
SplitGeometry Позволяет автоматически разрезать меш на маленькие куски размером SplitGeometrySize. Это позволяет менеджеру сцены лучше отсекать геометрию, не попавшую в экран. Используется для больших объектов (типа комнат, зданий, внутри которых находится персонаж).
SplitGeometryPieceSize Позволяет указать размер ячеек разрезания. Чем выше значение, тем ячейки крупнее. См. SplitGeometry.

Экспорт материалов

NeoAxis Engine Exporter поддерживает экспорт основных свойств из материалов 3ds Max. Перечень соответствий приводится в таблице ниже.

Параметр материала NeoAxis Engine Параметр материала 3ds Max
Diffuse1Map Текстура, назначенная параметру Diffuse Color.
DiffuseColor Если материалу назначена текстура к параметру Diffuse Color, то используется ее Amount. Если текстуры нет, то используется цвет параметра Diffuse Color.
SpecularMap Текстура, назначенная параметру Specular color.
SpecularColor Если материалу назначена текстура к параметру Specular Color, то используется ее Amount. Если текстуры нет, то используется цвет параметра Specular Color.
SpecularShininess Вычисляется самим 3ds Max на основе параметров Specular Level, Glossiness и Soften.
EmissionMap Текстура, назначенная параметру Self-Illumination.
EmissionColor Если материалу назначена текстура к параметру Self-Illumination, то используется ее Amount. Если текстуры нет, то используется цвет параметра Self-Illumination, если он назначен, или значение параметра Self-Illumination, если цвет не указан.
NormalMap Текстура, назначенная параметру Bump.

Кроме того, при экспорте материалов учитывается параметры Opacity и 2-Sided. В материалах NeoAxis Engine на прозрачность влияют два параметра: AlphaBlend и альфа-канал параметр DiffuseColor. AlphaBlend включает прозрачность, а альфа-канал у DiffuseColor указывает степень прозрачности. Если включено свойство 2-Sided, то у материала NeoAxis параметр DoubleSided будет включен.