F-кривые анимации в Blender. Интерполяция

Когда ранее мы говорили о том, что современная анимация создается таким образом, что свойства объекта в промежуточных кадрах вычисляются автоматически, мы игнорировали вопрос о том, как именно происходят эти расчеты. Например, движение может быть как равномерным, так с ускорением, может быть по прямой, а может по дуге. Мы исходили из того, что изменение определенного свойства во времени между двумя последовательными ключевыми кадрами происходит постепенно, то есть за равные промежутки времени на равную величину. На самом деле в Blender по умолчанию это не так.

Проведем небольшой эксперимент. Установим вид на сцену сверху (7), переместим куб к левому краю сцены и создадим анимацию в 250 кадров его движения только по оси X, вправо. Если внимательно присмотреться к тому как двигается куб, можно заметить, что в середине пути он ускоряется, в то время как в начале и конце движется более медленно.

Чтобы понять, почему так происходит, потребуется освоить работу в новом для нас редакторе Блендера ‒ редакторе графов (Graph Editor). Откроем его вместо Timeline.

В рабочей области (которая масштабируется как и в других редакторах колесом мыши) красным цветом отображен график изменения значения координаты X объекта во времени. Подобные графики называются F-кривыми. Горизонтальная ось системы координат ‒ это кадры, вертикальная ‒ значения свойства. Так на скрине выше текущий кадр 100-ый, и в это время куб находится немного слева от центра сцены, и значение его координаты X примерно равно -3. В 250 кадре значение координаты больше 10-ти. До 1-го кадра и после 250-го значение X не меняется, и кривая на этих отрезках имеет вид горизонтальной прямой.

Отрезок между 1-м и 250-м кадром имеет вид кривой Безье. На графике мы видим, что в начале и конце кривой значение координаты X объекта меняется не так сильно, как в центральной части. Именно поэтому куб движется неравномерно. Кривую Безье можно редактировать, меняя тем самым характер движения объекта (кривая анимация редактируется примерно также как было описано в теме про кривые-объекты на сцене). Узлы кривой это ключевые кадры. Так на рисунке ниже был добавлен еще один ключевой кадр путем создания дополнительного узла на F-кривой. Непосредственно в редакторе графов это можно сделать через контекстное меню, вызываемое кликом правой кнопки мыши. Кривая при этом должна быть выделена, ключ создается в текущем кадре.

Опишем движение объекта по оси X, опираясь на график на скрине выше. С 1-го по примерно 70-й кадр куб быстро двигается направо (исходя из установленного вида сцены) и уходит за центр координат справа. Об этом говорит то, что значение его координаты X становится больше 5-ти. Где-то с 70-го по 170-й кадр значение свойства X куба уменьшается. Это значит, что он движется в обратном направлении (справа налево) и уходит по левую сторону от центра координат. И только после этого опять быстро перемещается вправо.

Таким образом, волнообразное изменение F-кривой говорит нам о возвратно-поступательном или пульсирующем движении объекта в данном случае. Значение свойства меняется туда-сюда во времени.

Вернемся к случаю с двумя ключевыми кадрами, когда объект двигается прямолинейно. Если требуется сделать так, чтобы куб двигался еще и равномерно (с одинаковой скоростью в любой момент времени), следует изменить способ интерполяции, то есть способ вычисления значений свойства в промежуточных кадрах. Делается это на боковой панели редактора графов. Обратите внимание, какой ключевой кадр сейчас активен.

Итак, интерполированная анимация ‒ это автоматическое определение свойств объекта во всех кадрах между ключевыми в зависимости от выбранного метода интерполяции. Интерполяция контролируется кривыми анимации (F-Curves) в редакторе графов. В его главном регионе горизонтальная ось соответствует времени, вертикальная ось представляет значение свойства. Точки на кривой ‒ это ключевые кадры.

Учитывая, что может анимироваться сразу несколько свойств объекта, в редакторе графов мы будем видеть множество кривых.

Слева можно выделять отдельные каналы (и соответствующие им кривые) или скрывать для удобства редактирования. Обратим внимание, что F-кривые вращения объекта резко уходят вверх или вниз по сравнению с графиками положения. Это связано с несовпадением единиц измерения. При поворотах значения ‒ это градусы, а при перемещении ‒ условные метры. Так на скрине выше объект был повернут по оси Y (выделенная зеленая кривая) совсем немного, примерно на 8 градусов. В то же время, если было бы изменение локации на 8 метров, оно выглядело бы на сцене значительным.

Анимация в Blender 4.2.2




Все разделы сайта