Запекание симуляции физики в анимацию: различия между версиями

Материал из CSM Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Для примера будем анимировать падение кубиков на плоскость. Я подготовил простую сцену…»)
 
м
Строка 1: Строка 1:
Для примера будем анимировать падение кубиков на плоскость. Я подготовил простую сцену из кубиков и плоскости. Так как арматура не может участвовать в симуляции физики, мы будем записывать анимацию прямо в кубики, а затем перенесём на арматуру. Внутри кубиков расположим арматуры, но кубики к ним '''привязывать не надо'''. Чтобы ориджин костей совпадал с ориджином соответствующего ей объекта, поможет такая последовательность действий:
+
[[Файл:2018-02-21_20_13_04-Blender.png|200px|thumb|right|Заготовка сцены для симуляции]]
 +
Анимировать будем падение кубиков на плоскость. Это простой пример, и данный метод не сработает с анимацией разрушения, в которй используются сотни и тысячи объектов.Я подготовил простую сцену из кубиков и плоскости. Так как арматура не может участвовать в симуляции физики, мы будем записывать анимацию прямо в кубики, а затем перенесём на арматуру. Внутри кубиков расположим арматуры, но кубики к ним '''привязывать не надо'''. Чтобы ориджин костей совпадал с ориджином соответствующего ей объекта, поможет такая последовательность действий:
 +
[[Файл:2018-02-21 20 07 25-Blender.png|200px|thumb|left|Физические свойства]]
 +
[[Файл:2018-02-21 20 49 54-Blender.png|200px|thumb|left|Запекаем]]
 +
[[Файл:2018-02-21 22 26 55-Blender.png|200px|thumb|left|Убираем анимацию у кубика]]
  
 
#Выделить кубик
 
#Выделить кубик
Строка 5: Строка 9:
 
#Shift+A -> Armature - Single Bone
 
#Shift+A -> Armature - Single Bone
  
 +
[[Файл:2018-02-21 21 38 02-Blender.png|200px|thumb|right|Первоначальные кривые]]
 +
[[Файл:2018-02-21 21 38 44-Blender.png|200px|thumb|right|Кривые после упрощения]]
 
Теперь на панели '''Physics''' нужно настроить свойства для всех объектов, кроме арматуры. К каждому объекту нужно применить такие параметры:
 
Теперь на панели '''Physics''' нужно настроить свойства для всех объектов, кроме арматуры. К каждому объекту нужно применить такие параметры:
  
Строка 10: Строка 16:
 
*Rigid Body
 
*Rigid Body
  
Для плоскости нужно <u>убрать</u> галочку '''Active''' в параметрах '''Rigid Body''', чтобы она не падала. Теперь можно протестировать симуляцию и заодно приблизительно засечь по таймлайну на каком кадре она завершится. Затем на таймлайне выбрать этот или чуть более поздний кадр  и сделать его конечным, нажав '''E'''. У меня получилось чуть менее 100 кадров, поэтому ставлю сотый кадр конечным.
+
Для плоскости нужно <u>убрать</u> галочку '''Active''' в параметрах '''Rigid Body''', чтобы она не падала. Теперь можно протестировать симуляцию и заодно приблизительно засечь по таймлайну на каком кадре она завершится. Затем на таймлайне выбрать этот или чуть более поздний кадр  и сделать его конечным, нажав '''E'''. У меня получилось чуть менее 100 кадров, поэтому ставлю сотый кадр конечным. Запуск симуляции: '''Alt+A'''.
 
 
Запуск симуляции: '''Alt+A'''
 
  
 
Если всё хорошо, можно приступать к запеканию:
 
Если всё хорошо, можно приступать к запеканию:
Строка 30: Строка 34:
 
#'''Ctrl+L''' -> Animation Data
 
#'''Ctrl+L''' -> Animation Data
  
 +
Теперь анимации необходимо отвязать от кубиков, для этого в окне '''Outliner''' нужно:
 +
 +
#Выбрать кубик и раскрыть его дерево
 +
#Выбрать правой кнопкой элемент '''Animation'''
 +
#Нажать '''Unlink Action'''
  
Теперь анимации необходимо отвязать от кубиков, для этого в окне '''Outliner''' выберите кубик, раскройте его дерево, выберите правой кнопкой '''Animation''' и нажмите '''Unlink Action'''. После этих действий можно привязать объекты к своим костям:
+
После этих действий можно привязать объекты к своим костям:
  
 
#Выбрать объект
 
#Выбрать объект

Версия 20:17, 21 февраля 2018

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

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

Физические свойства
Запекаем
Убираем анимацию у кубика
  1. Выделить кубик
  2. Shift+S -> Cursor to Selected
  3. Shift+A -> Armature - Single Bone
Первоначальные кривые
Кривые после упрощения

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

  • Collision
  • Rigid Body

Для плоскости нужно убрать галочку Active в параметрах 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 -> Animation Data

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