Запекание симуляции физики в анимацию

Материал из CSM Wiki
Перейти к навигации Перейти к поиску


Untitled.jpg

Урок актуален для Blender 2.79.
Для тех, кто хочет сделать по-быстрому или если сцена содержит множество объектов, nemyax написал скрипт, который автоматически скиннит и запекает анимации. Нужно лишь настроить объектам физику и запустить скрипт в текстовом редакторе Blender. Истинных джедаев, которые не боятся ручной работы и хотят понять как это работает, приглашаю читать далее.

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

Заготовка сцены для симуляции

Так как арматура не может участвовать в симуляции физики, мы будем записывать анимацию прямо в кубики, а затем перенесём на арматуру. Внутри кубиков расположим арматуры, но кубики к ним привязывать не надо. Чтобы ориджин костей совпадал с ориджином соответствующего ей объекта, поможет такая последовательность действий:

  1. Выделить кубик
  2. Shift+S -> Cursor to Selected
  3. Shift+A -> Armature - Single Bone

Теперь на панели Physics нужно настроить свойства для всех объектов, кроме арматуры. К каждому объекту нужно применить такие параметры:

  • Collision
  • Rigid Body

Физические свойства объектов

Для плоскости нужно убрать галочку Dynamic в параметрах Rigid Body, чтобы она не падала. Теперь можно протестировать симуляцию и заодно приблизительно засечь по таймлайну на каком кадре она завершится. Затем на таймлайне выбрать этот или чуть более поздний кадр и сделать его конечным, нажав E. У меня получилось чуть менее 100 кадров, поэтому ставлю сотый кадр конечным. Запуск симуляции: Alt+A.

Если всё хорошо, можно приступать к запеканию:

  1. Выделить объекты, для которых нужно записать анимацию
  2. На панели инструментов слева перейти на вкладку Physics
  3. Нажать кнопку Bake To Keyframes

Запекаем Запекаем

Примечание: после запекания симуляции у всех выбранных объектов автоматически отключится свойство Rigid Body.

Если перейти в интерфейс анимации, там будет видно кривые анимаций в Graph Editor и ключевые кадры в Dope Sheet. Скорее всего ключевых кадров будет очень много, но можно сократить их количество и сгладить кривые с помощью аддона Simplify F-Curves (предварительно его нужно активировать в настройках), но будьте осторожны, используйте Shift на ползунке Distance Error и следите за изменением формы кривых.

Первоначальные кривые Кривые после упрощения

Теперь анимации можно перенести на арматуру, последовательность действий такая:

  1. Выбрать арматуру
  2. Выбрать объект
  3. Ctrl+L -> Animation Data

Теперь анимации необходимо отвязать от кубиков, для этого в окне Outliner нужно:

  1. Выбрать кубик и раскрыть его дерево
  2. Выбрать правой кнопкой элемент Animation
  3. Нажать Unlink Action

Убираем анимацию у кубика Убираем анимацию у кубика

После этих действий можно привязать объекты к своим костям:

  1. Выбрать объект
  2. Выбрать арматуру
  3. Ctrl+P -> Bone

На этом всё. Можно экспортировать в нужный формат и наслаждаться реалистичными столкновениями в любимом игровом движке без использования физики.