← к содержанию

Урок 20. Экспорт мешей из Блендера

Этот урок не относится непосредственно к программированию, но если вы и правда взялись использовать DDD в своём проекте, то, чтобы использовать свои собственные модели, разобраться с этим понадобится.

В этом месте может возникнуть вопрос «А почему именно Блендер? А как же 3ds Max, Maya, Cinema 4D и т. д.?». Ответ здесь довольно прост: чем умею, тем и пользуюсь. Да и стóят они все, мягко говоря, дороговато. Кроме того, не скажу, что я никогда не скачивал пиратских версий этих пакетов, но с ними обычно дальше «потыкать непонятные кнопочки 10 минут и навсегда надолго закрыть» дело никогда не доходило. Исключением является Maya, которую я честно пытался изучать в течении 2-3 месяцев. Оказалось, что возможности сплайнового моделирования там не так уж велики (а изначально я возлагал на него некоторые надежды), да и падала она с этими сплайновыми моделями довольно часто. А полигональное моделирование в Maya по моему субъективному мнению вчистую проигрывает тем возможностям, что есть в Блендере. Так что никому не запрещается создать экспортёр для своего любимого 3D-пакета, но у меня такой есть только для Блендера.

Этот урок по экспортированию не является уроком работы в Блендере, таковых в Интернете сейчас достаточно (в том числе и на моём сайте). Если вы раньше Блендером никогда не пользовались, то лучше сначала почитать/посмотреть что-нибудь для понимания хотя бы на самом базовом уровне.

Блендер является программным обеспечением с открытым исходным кодом, с лицензией GNU GPL. Вы можете бесплатно скачать его с официального сайта www.blender.org. Все примеры здесь показаны для версии 2.81, которая является последней на момент написания урока. Итак, скачайте и установите Блендер. Урок будет вестись для русскоязычного варианта интерфейса.

  1. Сначала нужно установить в Блендер скрипт (или, как это теперь называется, аддон) экспорта в формат DDD. В составе архива с библиотекой DDD есть каталог blender_export, в котором представлены 2 варианта (на момент написания урока) аддонов экспорта: для Блендера 2.7x и для Блендера 2.8x (к сожалению, с переходом на версии 2.8x поломали совместимость). Выберите вариант для вашей версии Блендера и скопируйте оттуда весь каталог export_ddd в каталог расположения аддонов Блендера. Если Блендер у вас расположен в каталоге d:\blender\blender-2.81a-windows64\ (как у меня сейчас), то каталог export_ddd нужно скопировать внутрь каталога d:\blender\blender-2.81a-windows64\2.81\scripts\addons\. Теперь запускайте Блендер.

  2. Нам надо включить наш аддон экспорта. Для этого выберите в общем меню Правка – Настройки, в появившемся окне выберите Аддоны (для Блендера 2.7x надо выбрать Файл – Параметры, затем вкладка Дополнения). Вверху есть поле для поиска, наберите в нём DDD, и нужный аддон будет выбран. Осталось поставить у него галочку Включить аддон. Если хотите, чтобы этот аддон работал при каждом запуске Блендера, то в версии 2.8x это, скорее всего, уже будет так, а для версии 2.7x надо нажать кнопку Сохранить настройки. Закрывайте окно настроек.

  3. Создадим простой меш — кубик.

    1. Вполне возможно, что после запуска Блендера у вас в сцене уже будет кубик по-умолчанию. Если это так, то пропустите этот пункт. Если же у вас пустая сцена, то нажмите Shift-A, в появившемся меню выберите МешКуб. В окне 3D-вида, отображающем текущую сцену должен появиться куб. Его центр будет совпадать с положением 3D-курсора.




    1. У экспортируемого объекта обязательно должна быть создана UV-карта, даже если вы не собираетесь использовать текстуры. Для её создания войдите в Режим редактирования (нажмите Tab), затем убедитесь, что у вас выделены все вершины/грани (возможно, понадобится один или несколько раз нажать клавишу A). В той цветовой теме Блендера, которая настроена у меня, выделенные грани выглядят оранжевыми, невыделенные – серыми. Нажмите клавишу U, и в выпадающем меню выберите Умное UV-проецирование. На дополнительный вопрос ответьте Да.


Если сейчас перейти в раскладку UV Editing (одна из вкладок вверху, рядом с общим меню), то можно посмотреть на полученную UV-карту:


Именно для такой карты у меня заготовлена отдельная простенькая текстура кубик.png. Выходите из Режима редактирования (Tab).

  1. Теперь наш объект готов к экспорту в DDD. Убедитесь, что у вас выбран кубик, затем нажмите в общем меню Файл – Экспортировать – DDD-mesh (.me). В появившемся окне нужно выбрать каталог, куда вы будете экспортировать свой кубик, и ввести имя файла. Если вы уже успели сохранить blend-файл с кубиком под каким-то именем, то именно оно и появится в поле имени файл по-умолчанию, в противном случае там будет что-то вроде Untitled.me. Введите имя кубик.me:


Настройки экспорта сейчас трогать не будем, там всё должно быть нормально (но убедитесь, что они совпадают с теми, что на иллюстрации). Тем не менее, требуется их разъяснить:

  1. Полученный файл кубик.me нужно поместить в каталог с ресурсами своей программы. Туда же добавьте простой файл описания объекта кубик.ob:

{
    "имя": "кубик",
    "меш": {
        "имя": "кубик"
    },
    "материал": {
        "диффузная_текстура": "кубик"
    }
}

Саму программу я здесь приводить не буду (возьмите её в материалах к 20-му уроку), в ней просто выводится на экран один объект кубик, и предоставляется возможность «полетать» по сцене.

Вот что у вас должно получиться в результате:




  1. Осталось попробовать проэкспортировать объект со скелетной анимацией. Мы не будем сейчас создавать такой объект с нуля (это бесполезно делать даже, как мне кажется, в рамках десятка небольших уроков). Возьмите готовый blend-файл с моделью девушки Кленовый лист.blend из каталога файлы/заготовки в материалах к урокам по DDD. Именно эта модель использовалась в уроках 16-18. Наверное, опытный моделлер-аниматор, сделает гораздо лучше анимированную модель человека за пару дней, но мне даже для такого откровенно халтурного слабого результата понадобилось несколько месяцев.


    1. Файл сохранён в раскладке Animation, именно здесь в Блендере принято работать с анимацией. Слева вверху отображено окно Экспозиционный лист, но оно переведено в режим Редактор действий (он удобнее для редактирования отдельных анимаций, которые будут экспортироваться в DDD). В заголовке этого окна есть поле-выпадающий список Выбор связываемых действий, нажав на него, вы можете посмотреть список всех созданных анимаций в этом файле. Чтобы попробовать различные доступные анимации, сначала в окне 3D-вида выберите вместо меша девушки объект скелета Armature, затем в этом выпадающем списке нужную анимацию. Если у вас Блендер 2.8x с настройками по-умолчанию, то нажмите Пробел (с моими настройками нужно нажимать Shift-Пробел, в Блендере 2.7x нужно нажать Alt-A), и выбранная анимация должна воспроизвестись. Остановить анимацию – клавиша Esc.

    2. Обычно при создании анимаций так и происходит, но всё-таки я обязан тут добавить указание, что все анимации, которые должны быть проэкспортированы, должны иметь свою ленту в Редакторе нелинейной анимации (Редактор NLA в терминах Блендера 2.7x).

  1. Выполним теперь сам экспорт анимированной модели. Снова выберите объект меша девушки Кленовый лист (если будет выбран скелет, то экспорт завершится с ошибкой), и, также, как в п. 4., выберите Файл – Экспортировать – DDD-mesh (.me). В данном случае, кроме выбора каталога и ввода имени, отметьте галочку Скелетная анимация:


Если у экспортируемого меша среди стека модификаторов отсутствует модификатор типа Armature, то независимо от установки этой опции меш будет выгружен без скелета как простой статический меш. В нашем же случае должно получиться два файла: файл с анимированным мешем Кленовый лист.me и файл со скелетом Кленовый лист.sk. Это должны быть те же самые файлы, которые использовались в уроках 16-18. Чтобы убедиться в этом, перезапишите их в каталоге с ресурсами к урокам, и выполните программы, создаваемые в тех уроках.

Дополнительное замечание по поводу опции Применить модификаторы: в данном случае применяются все модификаторы, кроме самого модификатора типа Armature. Если (но лучше так не делать) в стеке модификаторов больше одного модификатора такого типа, то файл скелета строится по первому из них, а остальные считаются «просто модификаторами», и применяются наряду со всеми.