Ключи анимации на объекты сцены можно расставлять как вручную (нажимая клавишу i), так и через Blender Python API, для этого разработчиками предусмотрена функция keyframe_insert().
В качестве простейшего примера использования этой функции, проставим ключи анимации на масштабирование текущего активного объекта последовательно по осям X, Y и Z.
Текущий активный объект:
1 2 3 |
active_object = bpy.context.object # bpy.data.objects['Cube'] |
Для того чтобы проставить начальный ключ анимации, вызовем функцию keyframe_insert().
1 |
active_object.keyframe_insert(data_path='scale', frame=1) |
В параметре data_path мы передаем текстовое имя того параметра объекта, который мы хотим анимировать, в нашем случае – масштаб.
В параметре frame мы передаем номер кадра анимации на котором надо зафиксировать данный ключ анимации – начинаем с 1 кадра.
Значения масштаба объекта записываются в ключ анимации из его текущих значений.
Например, мы хотим анимировать масштаб по оси X от 1 (текущее значение) до 3 на протяжении 25 кадров.
Сначала нам нужно изменить текущее значение масштаба по оси X, чтобы при следующем вызове функции keyframe_insert() в ключ анимации было записано новое значение.
1 |
active_object.scale.x *=3 |
И еще раз вызовем функцию keyframe_insert(), чтобы создать новый ключ анимации на 25-м кадре с новым значением масштаба.
1 |
active_object.keyframe_insert(data_path='scale', frame=25) |
Теперь если мы проиграем анимацию, мы увидим, как масштаб объекта меняется от 1 до 3 с первого по двадцать пятый кадр.
Добавим еще один ключ анимации, чтобы изменять масштаб объекта по оси Y с 25-го по 50-й кадры.
Для этого нам нужно снова предварительно изменить значение масштаба по нужной оси и вызвать функцию keyframe_insert(), указав новый ключевой кадр.
1 2 |
active_object.scale.y *=3 active_object.keyframe_insert(data_path='scale', frame=50) |
Сделаем такое же изменение масштаба с 50-го по 75-й кадры по оси Z.
1 2 |
active_object.scale.z *=3 active_object.keyframe_insert(data_path='scale', frame=75) |
Теперь если мы прокрутим анимацию, мы увидим, как наш объект “раскладывается” сначала по оси X, потом по оси Y и далее по оси Z в 3 раза.