Запекание симуляции физики в анимацию: различия между версиями
Slux (обсуждение | вклад) м |
Slux (обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
[[Категория:Blender]] | [[Категория:Blender]] | ||
− | [[Файл: | + | |
− | Анимировать будем падение кубиков на плоскость. Это простой пример, и данный метод не сработает с анимацией разрушения, в которой используются сотни и тысячи объектов. Я подготовил простую сцену из кубиков и плоскости. Так как арматура не может участвовать в симуляции физики, мы будем записывать анимацию прямо в кубики, а затем перенесём на арматуру. Внутри кубиков расположим арматуры, но кубики к ним '''привязывать не надо'''. Чтобы ориджин костей совпадал с ориджином соответствующего ей объекта, поможет такая последовательность действий: | + | [[Файл:Untitled.jpg|400px]] |
− | + | ||
− | + | Анимировать будем падение кубиков на плоскость. Это простой пример, и данный метод не сработает с анимацией разрушения, в которой используются сотни и тысячи объектов. Я подготовил простую сцену из кубиков и плоскости. | |
− | + | ||
+ | [[Файл:2018-02-21_20_13_04-Blender.png|400px|Заготовка сцены для симуляции]] | ||
+ | |||
+ | Так как арматура не может участвовать в симуляции физики, мы будем записывать анимацию прямо в кубики, а затем перенесём на арматуру. Внутри кубиков расположим арматуры, но кубики к ним '''привязывать не надо'''. Чтобы ориджин костей совпадал с ориджином соответствующего ей объекта, поможет такая последовательность действий: | ||
#Выделить кубик | #Выделить кубик | ||
Строка 10: | Строка 13: | ||
#Shift+A -> Armature - Single Bone | #Shift+A -> Armature - Single Bone | ||
− | |||
− | |||
Теперь на панели '''Physics''' нужно настроить свойства для всех объектов, кроме арматуры. К каждому объекту нужно применить такие параметры: | Теперь на панели '''Physics''' нужно настроить свойства для всех объектов, кроме арматуры. К каждому объекту нужно применить такие параметры: | ||
*Collision | *Collision | ||
*Rigid Body | *Rigid Body | ||
+ | |||
+ | [[Файл:2018-02-21 20 07 25-Blender.png|Физические свойства объектов]] | ||
Для плоскости нужно <u>убрать</u> галочку '''Active''' в параметрах '''Rigid Body''', чтобы она не падала. Теперь можно протестировать симуляцию и заодно приблизительно засечь по таймлайну на каком кадре она завершится. Затем на таймлайне выбрать этот или чуть более поздний кадр и сделать его конечным, нажав '''E'''. У меня получилось чуть менее 100 кадров, поэтому ставлю сотый кадр конечным. Запуск симуляции: '''Alt+A'''. | Для плоскости нужно <u>убрать</u> галочку '''Active''' в параметрах '''Rigid Body''', чтобы она не падала. Теперь можно протестировать симуляцию и заодно приблизительно засечь по таймлайну на каком кадре она завершится. Затем на таймлайне выбрать этот или чуть более поздний кадр и сделать его конечным, нажав '''E'''. У меня получилось чуть менее 100 кадров, поэтому ставлю сотый кадр конечным. Запуск симуляции: '''Alt+A'''. | ||
Строка 24: | Строка 27: | ||
#На панели инструментов слева перейти на вкладку '''Physics''' | #На панели инструментов слева перейти на вкладку '''Physics''' | ||
#Нажать кнопку '''Bake To Keyframes''' | #Нажать кнопку '''Bake To Keyframes''' | ||
+ | |||
+ | [[Файл:2018-02-21 20 49 54-Blender.png|Запекаем]] | ||
+ | [[Файл:2018-02-22 04 28 37-Blender.png|269px|Запекаем]] | ||
'''Примечание:''' после запекания симуляции у всех выбранных объектов автоматически отключится свойство '''Rigid Body'''. | '''Примечание:''' после запекания симуляции у всех выбранных объектов автоматически отключится свойство '''Rigid Body'''. | ||
Если перейти в интерфейс анимации, там будет видно кривые анимаций в '''Graph Editor''' и ключевые кадры в '''Dope Sheet'''. Скорее всего ключевых кадров будет очень много, но можно сократить их количество и сгладить кривые с помощью аддона '''Simplify F-Curves''' (предварительно его нужно активировать в настройках), но будьте осторожны, используйте '''Shift''' на ползунке '''Distance Error''' и следите за изменением формы кривых. | Если перейти в интерфейс анимации, там будет видно кривые анимаций в '''Graph Editor''' и ключевые кадры в '''Dope Sheet'''. Скорее всего ключевых кадров будет очень много, но можно сократить их количество и сгладить кривые с помощью аддона '''Simplify F-Curves''' (предварительно его нужно активировать в настройках), но будьте осторожны, используйте '''Shift''' на ползунке '''Distance Error''' и следите за изменением формы кривых. | ||
+ | |||
+ | [[Файл:2018-02-21 21 38 02-Blender.png|400px|Первоначальные кривые]] | ||
+ | [[Файл:2018-02-21 21 38 44-Blender.png|485px|Кривые после упрощения]] | ||
Теперь анимации можно перенести на арматуру, последовательность действий такая: | Теперь анимации можно перенести на арматуру, последовательность действий такая: | ||
Строка 40: | Строка 49: | ||
#Выбрать правой кнопкой элемент '''Animation''' | #Выбрать правой кнопкой элемент '''Animation''' | ||
#Нажать '''Unlink Action''' | #Нажать '''Unlink Action''' | ||
+ | |||
+ | [[Файл:2018-02-21 22 26 55-Blender.png|Убираем анимацию у кубика]] | ||
+ | [[Файл:2018-02-21 22 27 19-Blender.png|Убираем анимацию у кубика]] | ||
После этих действий можно привязать объекты к своим костям: | После этих действий можно привязать объекты к своим костям: |
Версия 23:38, 21 февраля 2018
Анимировать будем падение кубиков на плоскость. Это простой пример, и данный метод не сработает с анимацией разрушения, в которой используются сотни и тысячи объектов. Я подготовил простую сцену из кубиков и плоскости.
Так как арматура не может участвовать в симуляции физики, мы будем записывать анимацию прямо в кубики, а затем перенесём на арматуру. Внутри кубиков расположим арматуры, но кубики к ним привязывать не надо. Чтобы ориджин костей совпадал с ориджином соответствующего ей объекта, поможет такая последовательность действий:
- Выделить кубик
- Shift+S -> Cursor to Selected
- Shift+A -> Armature - Single Bone
Теперь на панели Physics нужно настроить свойства для всех объектов, кроме арматуры. К каждому объекту нужно применить такие параметры:
- Collision
- Rigid Body
Для плоскости нужно убрать галочку Active в параметрах Rigid Body, чтобы она не падала. Теперь можно протестировать симуляцию и заодно приблизительно засечь по таймлайну на каком кадре она завершится. Затем на таймлайне выбрать этот или чуть более поздний кадр и сделать его конечным, нажав E. У меня получилось чуть менее 100 кадров, поэтому ставлю сотый кадр конечным. Запуск симуляции: Alt+A.
Если всё хорошо, можно приступать к запеканию:
- Выделить объекты, для которых нужно записать анимацию
- На панели инструментов слева перейти на вкладку Physics
- Нажать кнопку Bake To Keyframes
Примечание: после запекания симуляции у всех выбранных объектов автоматически отключится свойство Rigid Body.
Если перейти в интерфейс анимации, там будет видно кривые анимаций в Graph Editor и ключевые кадры в Dope Sheet. Скорее всего ключевых кадров будет очень много, но можно сократить их количество и сгладить кривые с помощью аддона Simplify F-Curves (предварительно его нужно активировать в настройках), но будьте осторожны, используйте Shift на ползунке Distance Error и следите за изменением формы кривых.
Теперь анимации можно перенести на арматуру, последовательность действий такая:
- Выбрать арматуру
- Выбрать объект
- Ctrl+L -> Animation Data
Теперь анимации необходимо отвязать от кубиков, для этого в окне Outliner нужно:
- Выбрать кубик и раскрыть его дерево
- Выбрать правой кнопкой элемент Animation
- Нажать Unlink Action
После этих действий можно привязать объекты к своим костям:
- Выбрать объект
- Выбрать арматуру
- Ctrl+P -> Animation Data
На этом всё. Можно экспортировать в нужный формат и наслаждаться реалистичными столкновениями в любимом игровом движке без использования физики.