Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Документация для продвинутых пользователей
                Анимация моделей в Blender с Mixamo

Анимация моделей в Blender с Mixamo

Опубликованно: 05.06.2017, 13:42
Последняя редакция, Andry: 28.02.2018 17:59

Использование Mixamo для анимации моделей

Используя Adobes Mixamo вы можете с минимальными усилиями осуществлять полную анимации моделей в Blender. Как только вы поймете сам процесс.

Для этого руководства вам потребуется:

  • Blender версии 2.78c с настройками по умолчанию. Исключением является Выделять объект кн. мыши(Select With:) в разделе Файл ▸ Параметры ▸ Ввод(File ▸ User Preferences ▸ Input) установленный на Слева(Left Click).
  • Blender Ogre exporter 0.6.0, найденный здесь, включен.
  • Включенные Blender FBX-файл Импортёр и Экспортёр.
  • Небольшое количество знаний Blender.
  • Аккаунт в Mixamo.

Подготовка к экспорту

Чтобы правильно анимировать ваши модели, вы должны следовать нескольким правилам.

  • Для начала прочтите руководство по устранению неполадок с ошибкой Auto-Rig, прежде чем делать что-либо еще.
  • Перед экспортированием очистите файл Blender. Это означает, что вы должны приготовить игровую модель, которая станет основой для всех ваших анимаций. Для вашего удобства предоставляется следующий контрольный список.
    • У вас нет анимации.
      У вас есть UV отображение вашей модели.
      Основание ваших моделей лежит в основе полисетки.
      У вас есть один материал, названный так же, как ваша полисетка(mesh).
      Вы запекли и упаковали Текстуру. Для этого урока мы используем диффузную текстуру (т.е. Используем атлас текстуры), никаких карт нормалей или зеркальных.
      Вы очистили буферы UV, Материалов и Текстур от неиспользуемых изображений, материалов и текстур.
      В буфере редактора Экспозиционный лист(Dope Sheet) отсутствуют действия. Откройте контекст Редактор действий(Action Editor), нажмите кнопку [Выбор связываемых действий], чтобы проверить, нет ли сохраненных действий.
      Вы применили Положение, Вращение и Масштаб к своей модели.
      САМОЕ ВАЖНОЕ ИЗ ВСЕХ, на панели Свойства ▸ вкладка Сцена ▸ Единицы измерения задайте [Unit of Measure](Единицы измерения) в Meters и Length в Metric. Adobe использует сантиметры для экспортера FBX, и если это не будет задано, то масштаб моделей будет не тот что нужно, если не сказать больше. Кроме того, в JME3 использует 1 WU = 1 Метр, так что это будет поддерживать согласованность. Если вы делаете это только сейчас, то вам, возможно, придется повторно подгонять масштаб своей модели перед продолжением.
См. Очистка буфера Blender, если вы еще не знаете, как очистить буферы.

См. Раздел Создание игровых ресурсов в Blender3D для получения информации о создании моделей, совместимых с jME3.

Blender FBX Export

  1. В окне 3D-вида выберите свою модель, она будет подсвечена оранжевым цветом.
  2. В заголовке Информация выберите Файл ▸ Экспортировать ▸ FBX.
  3. Введите путь к файлу для экспортёра, для простоты как правило, в ту же папку, что и ваш .blend файл.
  4. Введите название файла.
  5. На панели Экспортировать FBX, расположенной в левом нижнем углу диалогового окна экспорта:
  6. Вкладка Main

      Выделенные объекты
      Масштаб = 1
    Нажмите кнопку рядом с полем Масштаб:, чтобы отменить выбор масштаба всех данных. Несоблюдение этого требования приведет к нарушению масштаба вашей модели. Если кнопка выбрана, она будет темной по цвету.
      Вперёд = Вперёд по -Z
      Вверх = Вверх по Y
      Типы экспортируемых объектов = Полисетка

    Вкладка Geometries

      Применить модификаторы
  7. Когда вы закончите, нажмите кнопку [Экспортировать FBX], чтобы экспортировать файл.
Вы можете сохранить эти настройки экспорта FBX, нажав кнопку [+] рядом с [Установки оператора].

Mixamo FBX Импортирование

  1. Создайте учетную запись на сайте Mixamo и войдите в систему.
  2. На панели Default Character(Персонаж по умолчанию) выберите Upload Character(Загрузить персоонажа).
  3. Перейдите к загружаемому файлу или перетащите его в загрузчик-файлов.
  4. Выберите Open.
Как правило, если во время процесса импорта и оснастки, модель не появляется в течение времени, указанного в диалоговом окне, значит что-то пошло не так, и вам придется перезапустить процесс.

Mixamo Auto-Rigger

Если все пойдет хорошо, Auto-Rigger откроется, и ваша модель будет обращена к вами. Если нет, исправьте свою модель в Blender перед продолжением.

  1. Если модель обращена к вам, нажмите [Next].
  2. На этой панели вы будете выполнять оснастку своей модели. Поместите маркеры, как показано в диалоговом изображении Auto-Rigger.
    Помните, что модель обращена к вам, поэтому ее право находится от вас слева.
  3. Выберите LOD, который вы хотите использовать. Этот принцип основано на том, сколько костей вы хотите получить от руки модели. Не стесняйтесь перебирать варианты, чтобы увидеть, что делается в каждом.
  4. Когда вы нажмете кнопку [Next], вы оснастите свою модель.
  5. Когда модель появится, если результат вас устраивает то кликните [Finish].


Mixamo Анимации

  1. В дальней правой панели выберите [Find Animations](Найти анимацию).
  2. После выбора анимации кликните по анимацию, чтобы она применилась к вашей модели.
  3. После того, как анимация будет применена к вашей модели, установите флажок [In Place](На месте
    ), если это движущаяся анимация.

    Вы можете внести небольшие корректировки в анимацию с помощью ползунков. Чаще всего вы будете регулировать Character Arm-Space. Если вы обнаружите, что руки моделей обрезаются по модели, используйте этот ползунок, чтобы исправить ситуацию.
  4. Когда анимация вас устраивает, выберите кнопку [Download] и следуйте инструкциям Mixamo Download ниже.


Mixamo Загрузка(Mixamo Download)

При загрузке Анимации из Mixamo:

  1. Убедитесь, что флажок [In Place] установлен, если это движущаяся анимация.
  2. В диалоговом окне Download Settings(Параметры Загрузки) используйте настройки по умолчанию.
    • Format = FBX
    • Skin = With Skin
    • Frames per second = 30
    • Keyframe Reduction = none
  3. Нажмите [Download] и сохраните её на своем компьютере.

При загрузке Персонажей из Mixamo:

  1. В диалоговом окне Download Settings
    • Format = FBX
    • Pose = TPose
  2. Нажмите [Download] и сохраните его на своем компьютере.


Создание Blender Анимаций

Загрузите вашу модель TPose, используя инструкции для загрузке Персонажей, приведенные выше. Мы будем использовать её в качестве нашей только что оснащенной модели для Blender. Чтобы упорядочить всё, мы создадим .blend файл для каждой анимации и затем будем использовать отдельный .blend файл, чтобы объединить все анимации в одну jME3-совместимую анимацию.

Следующие шаги применимы к любой анимации, которую вы хотите добавить в будущем.

  1. В заголовке Информация в верхней части программы выберите Файл ▸ Создать ▸ Перезагрузить начальный файл.
  2. Выберите куб который идёт по умолчанию и удалите его.

    Вкладка Сцена

    • На панели Свойства, расположенной в правом нижнем углу, выберите вкладку Сцена.
    • В пункте Единицы измерения измените [Unit of Measure](Единицы измерения) в Meters и Length в Metric. У вас всегда должны быть эти настройки при импорте или экспорте с Mixamo.
      Вы должны создать и сохранить файл запуска по умолчанию в Blender. Файл ▸ Сохранить файл запуска. Таким образом вам не придется постоянно перенастраивать настройки. Настройка Единиц измерения — это всё, что вы должны так настроить. Вы всегда можете восстановить файл запуска по умолчанию, выбрав Файл ▸ Сбросить настройки в любое время.
  3. В заголовке Информация выберите Файл ▸ Импортировать ▸ FBX.
  4. Выберите FBX файл, который вы загрузили ранее.
  5. На панели Импортировать FBX, расположенной в левом нижнем углу диалогового окна импорта, оставьте все настройки по умолчанию.

    Main

      Масштаб = 1
      Импортировать нормали
      Импортировать анимацию
      Animation offset = 1
      Поиск изображений
      Смещение наклеек = 0
      Использование пред/пост-вращение

    Armatures

    • Ничего не выбрано
  6. Когда будете готовы кликните [Import FBX].
  7. После того, как Blender импортирует файл, выберите скелет, и модель, далее в заголовке окна 3D-вида выберите Объект ▸ Применить ▸ Вращение. Повторите это для Положения и Масштаба. Поочерёдно отдельно друг от друга, выберите скелет и модель и повторите процесс.
  8. Выберите Скелет.
  9. В окне Временная шкала задайте длину анимации [ПК Мыши], выбрав последний ключевой кадр на временной шкале.
    Задайте параметру Конец: это значение.
  10. Нажмите кнопку [|<<], чтобы сбросить временную шкалу обратно к первому кадру.
  11. В заголовке Информация измените разметку экрана с Default на Animation.
  12. В редакторе Экспозиционный лист измените режим/контекст с Экспозиционный лист на Редакторе действий. В [Выбор связываемых действий] теперь будут показано название действия импортированной анимации.
  13. Переименуйте это название импортированной анимации. В этом случае это было TPose
  14. Выберите кнопку [F], чтобы сохранить действие.
  15. Сохраните файл с тем же название, что и у действия.
Mixamo устанавливает режим вращения костей на Кватернион, что целесообразно для предотвращения Шарнирного замка. Имейте это в виду, если вы решите изменить свою анимацию. Blender по умолчанию использует XYZ Эйлер, поэтому вам нужно будет изменить этот параметр перед вставкой новых ключевых кадров.

Запекание Действий

Существует много способов экспорта или импорта файлов для jMonkeyEngine. Если вы планируете использовать метод, отличный от Ogre Exporter, то вам может потребоваться запечь ваши действия. Запекание — это деструктивный процесс, поэтому после завершения создания анимации в Blender рекомендуется тестировать анимацию в игре.

Если вам нужно запекание, то процесс выглядит следующим образом.

  1. При открытом файле анимации, созданном в предыдущем разделе, в заголовке Информация выберите Файл ▸ Сохранить копию.
  2. Сохраните файл где-нибудь, вне текущей папки. Это избавит вас от необходимости повторного создания файла анимации, если он вам понадобится в другое время.
  3. В заголовке Информация измените разметку экрана с Default на Animation.
  4. В редакторе Экспозиционный лист измените режим/контекст Экспозиционный лист на Редактор действий.
  5. Нажмите кнопку [Выбор связываемых действий] и выберите ваше действие.
  6. В заголовке окна 3D-вида выберите скелет.
    • В зависимости от выбранного режима выберите:
      1. Режим объекта: Объект ▸ Анимация ▸ Запечь действие.
      2. Режим позы: Поза ▸ Анимация ▸ Запечь действие.
  7. В диалоговом окне Запечь действие отмените выбранные и установите следующие параметры:

    Запечь действие

      Только выделенное
      Визуальная вставка
      Очистить ограничения
      Очистить родителей
      Перезаписать действие
      Данные запекания = Поза
  8. Когда будете готовы, нажмите [Да].
  9. [Выбор связываемых действий] в редакторе Экспозиционный лист изменится на вновь запечённое действие с названием Action. Переименуйте это название импортируемой анимации.
  10. Выберите кнопку [F], чтобы сохранить действие.
  11. Сохраните файл.
  12. Очистите старое действие из буфера [Выбор связываемых действий]. См. Очистка буфера Blender для получения дополнительной информации об этом.


Создание файла оснастки анимации

Рекомендуется иметь отдельный файл для объединения анимаций. Все может пойти не так как надо, анимация может измениться, а вам бы не хотелось случайно испортить исходный файл модели, поэтому лучше всегда держать такие вещи по отдельности. Наш план атаки — мы создаем файл .blend для каждой анимации, а затем используем этот отдельный файл оснастки, чтобы объединить их в один файл. Чтобы это было просто, мы будем использовать копию первой загруженной нами анимации и создадим .blend файл.

Вы создаете файл оснастки анимации для каждой модели, только один раз.

  1. Если вы закрыли файл TPose.blend, то откройте его. В заголовке Информация выберите Файл ▸ Сохранить как и сохраните файл, используя название модели, с добавлением слова Rigged(Оснастка). С этого момента, это будет единственный файл, в который мы будем добавлять анимации, для этой модели. Он имеет свое действие TPose идущее по умолчанию, с которого мы начнём нашу анимационную дорожку для экспорта анимации с помощью Ogre.
  2. Выберите ваш Скелет.

    Вкладка Объект

    1. На панели Свойства перейдите на вкладку Объект. В пункте Отображение поставьте галочку для Рентген.
  3. С помощью мыши в окне 3D-вида нажмите NumPad1, а затем NumPad5.
  4. Нажмите Tab для перехода в Режим правки.
  5. Установите 3D-курсор в основание модели.
  6. Выберите Добавить ▸ Скелет ▸ Одна кость.
    Основание моделей и начало Root(Корневой) кости должны находиться в одном месте.
  7. Масштабируйте корневую кость вниз или вверх по мере необходимости, выбрав Конец (шарик в самой узкой части кости) и перетаскивая стрелку Z (синюю стрелку) манипулятора вверх или вниз, пока вы не получите нужный вам масштаб. НЕ ИЗМЕНЯЙТЕ УГОЛ И НЕ ПЕРЕМЕЩАЙТЕ ОСНОВАНИЕ КОСТИ ИЗ ЦЕНТРА.
  8. Когда вы получите нужный масштаб, выберите тело кости, чтобы выбрать всю кость.

    Вкладка Кость

    1. На панели Свойства перейдите на вкладку Кость.
    2. Переименуйте кость в Root(Корень).
    3. Уберите галочку напротив пункта/панели Деформация.
  9. В окне 3D-вида выберите тело скелета Hip(Бедренная) кость, самая низкая кость которая располагается в центре скелета, выберите всю кость.
  10. Удерживая нажатым Shift, [ЛК Мыши] выберите Root кость.
  11. Нажмите Ctrl+P.
  12. В диалоговом окне Make Parent выберите Keep Offset.
  13. С помощью мыши в окне 3D-вида нажав Tab выйдите из Режим правки.
  14. Выберите свою модель.
      Вкладка Данные
    1. На панели Свойства перейдите на вкладку Данные и убедитесь, что Полисетка имеет то же название, что и ваша модель.
      Вкладка Материал
    1. На панели Свойства перейдите на вкладку Материал и убедитесь, что в списке материалов есть один материал, с тем же названием, что и у вашей модели.
    2. На пункте Прозрачность переместите ползунок Альфа на 1.
      Есть ошибка, при которой импортер FBX добавляет текстуру альфа-карты к вашей модели. Если ползунок Alpha находится не на один, и вы используете импортер Blender в SDK или конвертируете .blend файл, он будет прозрачным. Экспортёр Ogre не затронут.
    3. Уберите галочку с панели/пункта Прозрачность.

    Вкладка Текстура

    1. На панели Свойства перейдите на вкладку Текстура, вы заметите, что ваша текстура имеет дубликаты её названия в Cписке текстур. Нижняя текстура на самом деле является прозрачной Альфа текстурой и кажется ошибкой. Выберите вторую текстуру в Списке текстур, чтобы выделить её.
    2. Удерживая нажатой клавишу Shift, нажмите кнопку [X] рядом с Блоком данных текстуры, чтобы удалить её.
    3. Выберите оставшуюся текстуру в Списке текстур, чтобы выделить её. Вы заметите, что Блок данных текстуры теперь покраснел из-за отсутствия текстуры
    4. Нажмите кнопку [Выбор связываемой текстуры], чтобы связать ее рядом с блоком данных текстуры и выберите текстуру.
    5. На панели Изображение нажмите кнопку [Small Box], расположенный рядом с путём текстуры, чтобы упаковать файл изображения.
  15. В заголовке Информация измените разметку с Animation на UV Editing.
  16. С помощью мыши в окне 3D-вида при всё ещё выбранной модели нажмите Tab для перехода в Режиме правки. Если ваша модель не целиком оранжевая, нажимайте A до тех пор, пока не будут выбраны все вершины. Вы увидите, ваше UV-отображение полисетки в окне Редактор UV/изображений.
  17. В Редактор UV/изображений нажмите кнопку [Выбор связываемого изображения], и выберите своё UV изображение.
  18. Нажмите Tab что бы выйти Режима правки.
  19. В заголовке Информация измените разметку с UV Editing на Default и затем нажмите кнопку [+], чтобы создать новую разметку.
  20. Переименуйте эту новую разметку NLA Editing.
  21. Нажмите кнопку [Текущий тип редактора для этой области], расположенную в левом нижнем углу (маленький куб) у окна 3D-вида, и измените его с 3D-вида на Редактор NLA. Наше действие TPose теперь отображается.
    Если действие не отображается, перейдите к редактору Экспозиционный лист и из контекста Редактора действий, выберите Action.
  22. Нажмите кнопку [Двойная стрелка вниз], чтобы вывести действие в стек.
  23. Под лентой TPose вы увидите ползунок. Перетаскивайте этот ползунок вправо до тех пор, пока ваша лента не будет вставлена крайней с лева в окне.
  24. Сохраните ваш файл.


Ogre Export

Ваш файл оснастки теперь готов к экспорту с помощью Ogre. Прежде чем мы пойдем дальше, мы проверим наш экспорт, чтобы убедиться что не будет ошибок.

  1. В заголовке Информация измените макет с NLA Editing на Default.
  2. Shift+[ЛК Мыши] выберите ваш скелет и вашу модель.
  3. В заголовке Информация, выберите Файл ▸ Экспортировать ▸ Ogre3D.
  4. Выберите путь назначения в папке Assets игры, обычно в папке Textures.
  5. Убедитесь, что Selected Only галочка стоит, а Only Deformable Bones галочка убрана.
  6. Когда вы довольны настройками экспорта, нажмите [Export Ogre].

Если ваш экспортируемый файл чист, то выполняйте следующий шаг. Если нет, исправьте ошибки перед продолжением.

Подробнее о настройках Ogre можно найти в Создание моделей и сцен.

Добавление анимации Blender

Следуйте инструкциям по Mixamo Анимации, Mixamo Загрузке, Созданию Blender анимации и Очистке буфера связываемых действий для всех анимаций, которые вы хотите добавить в свой файл оснастки анимации.

  1. Если ваш файл Rigged(Оснастки) закрыт, откройте его.
  2. Из заголовка Информация измените разметку на Default.
  3. В окне 3D-вида выберите скелет модели.
  4. В заголовке Информация выберите Файл ▸ Присоединить.
  5. Перейдите к нужному файлу и выберите этот .blend файл анимации, который вы хотите добавить.
  6. В списке папок выберите папку Action, а затем ваше действие.
  7. Когда будете готовы, выберите кнопку [Присоединить из библиотеки], чтобы завершить выбор.
  8. Из заголовка Информация измените макет на Animation.
  9. В редакторе Экспозиционный лист измените контекст на Редактор действий, если он еще не выбран.
  10. Нажмите кнопку [Выбор связываемых действий] и выберите ваше присоединённое действие из списка.
  11. Из заголовка Информация измените разметку с Animation на разметку NLA Editing, которую мы создали в разделе Создание файла оснастки анимации этого урока. В верхней части списка вы увидите ваши присоединённые Action.
  12. В заголовке Редактора NLA выберите Добавить ▸ Добавить треки. В начало списка добавится новый трек.
  13. Нажмите кнопку [Двойная стрелка вниз] рядом с Action, чтобы вставить его в стек.
  14. [ЛК Мыши] кликните по ленте, чтобы сделать выбранной только одну ленту.
  15. [ЛК Мыши] перетаскивайте выделенную ленту вправо до тех пор, пока не получится зазор не менее 4 ключевых кадров между самой последней ленто справа в списке, и добавленной лентой, которую вы перетаскиваете.
    Когда лента находится в режиме перетаскивания, она будет фиолетовой. В режиме перетаскивания вам не нужно удерживать [ЛК Мыши].
  16. Когда вас устраивает позиция, [ЛК Мыши] кликните по ленте, чтобы завершить перетаскивание. Ваша присоединённая лента теперь должна быть самой последней лентой справа в списке.
    Вы можете использовать колесо прокрутки мыши для масштабирования окна лент, чтобы было проще расставлять все ленты по своим местам.

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

  17. Выбрав мышью окно лент, вы можете открыть окно свойств, нажатием клавиши N.
  18. На панели Активная лента в разделе Обрезать за рамками вы увидите номер конечного кадра. На Временной шкале установите Конец: на это число. Каждый раз, когда вы добавляете действие, вы должны увеличивать это число, чтобы оно было равно общей длине всех комбинированных лент, включая промежутки между лентами.
  19. Сохраните файл.

Теперь ваш файл готов к экспорту.

Перед экспортом:

В Редакторе NLA убедитесь, что никакие Действия не ожидают, устанавливания в стек. Если такое есть, его необходимо либо удалить, либо вставить в ленту перед экспортом.

В редакторе Экспозиционный лист убедитесь, что в контексте Редактор действий не выбрано никаких Действий. Если он выбрано, то он будет сидеть в верхней части стека Редактора NLA.

Действие, которое не было отправлено в стек NLA, блокирует вашу NLA Стек для игры.

Ваша лента NLA должна выглядеть примерно так:

MixamoNLA

Заметки

  • Вы можете увидеть видео-демонстрацию подобную всему этому процессу в Анимации и Сцены под заголовком CadNav → Mixamo → JME Workflow.
  • См. Hello Animation и Анимация в JME3, чтобы узнать, как использовать вашу анимированную модель.

Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.