Акцентируем внимание на свойствах анимации

We use cookies. Read the Privacy and Cookie Policy

Акцентируем внимание на свойствах анимации

Блендер универсален, но достаточно сложен. Прежде, чем мы сможем манипулировать анимацией объектов с помощью Питона, необходимо, чтобы мы разобрались с основными понятиями.

IPO

В Блендере почти любой объект может быть анимирован. Обычно это делается, с помощью фиксации некоторых параметров, таких как положение в пространстве некоего объекта в определенных ключевых кадрах и интерполяция этих параметров для остальных промежуточных кадров. В Блендере группы объектов, задействованные в анимации собираются в так называемые кривые IPO. Например, все пространственные параметры, такие как местоположение, вращение, и масштаб сгруппированы как тип объекта IPO и могут быть связаны со многими объектами Блендера: мешем, камерой, или лампой. Большинство свойств  материалов в Блендере также могут быть сгруппированы в соответствующем IPO. Получается, что 'Материальный' тип IPO может быть связан с любым объектом, которому присвоен  материал. Аналогично, тип IPO Лампы должен быть связан с объектом Лампы.

IPO это аббревиатура, но что она обозначает кажется немного неясным. Wiki Блендера заявляет, что она происходит от слова InterPOlation, то есть от математической функции (почитайте Wiki там есть интересная информация на этот счет - прим. пер), но в Блендере мы столкнемся с интерполяцией как с объектом. И большую часть времени будем использовать  IPO как существительное, однако,  это обсуждение становится немного академическим.

Каждый IPO может быть связан с более чем одним объектом. Например, возможно анимировать вращение нескольких объектов, объединив их с одним объектом IPO. В Блендер API кривые IPO представлены объектами IPO. Объект IPO может быть связан с другим объектом посредством метода setIpo(). Следующая таблица дает краткий обзор типов IPO,  IPO-каналов, и список объектов с которыми они могут взаимодействовать. Обратитесь к API документации о модуле Blender.IPO за подробной информацией.

(http://www.blender.org/documentation/249PythonDoc/index.html).

Тип IPO

Object

IPO каналы (некоторые примеры, см. полный список в API документации)

LocX, LocY, LocZ (перемещение)

RotX, RotY, RotZ (вращение)

ScaleX, ScaleY, ScaleZ (маштаб)

Соответствующие объекты в Блендере

Все объекты Блендера, которые можно перемещать: Меш, Лампа, Камера и др.

Тип IPO

Pose

IPO каналы (некоторые примеры, см. полный список в API документации)

RotX, RotY, RotZ (вращение)

Соответствующие объекты в Блендере

Кости (Bone)

Тип IPO

Material

IPO каналы (некоторые примеры, см. полный список в API документации)

R,G,B (рассеянный цвет)

Соответствующие объекты в Блендере

Любые объекты, использующие материалы

Тип IPO

Texture

IPO каналы (некоторые примеры, см. полный список в API документации)

Contrast (контрастность)

Соответствующие объекты в Блендере

Любые объекты, использующие текстуры, например: Меш, Лампа, Мир и др.

Тип IPO

Curve

IPO каналы (некоторые примеры, см. полный список в API документации)

Speed (скорость)

Соответствующие объекты в Блендере

Кривые (Curve)

Тип IPO

Lamp

IPO каналы (некоторые примеры, см. полный список в API документации)

Energ (энергия)

R,G,B (цвет)

Соответствующие объекты в Блендере

Лампы

Тип IPO

World

IPO каналы (некоторые примеры, см. полный список в API документации)

HorR,HorG,HorB (цвет горизонта)

Соответствующие объекты в Блендере

Мир (World)

Тип IPO

Constraint

IPO каналы (некоторые примеры, см. полный список в API документации)

Inf (влияние)

Соответствующие объекты в Блендере

Ограничения

Тип IPO

Sequence

IPO каналы (некоторые примеры, см. полный список в API документации)

Fac (фактор, например громкость звуковой дорожки) Обратитесь к API документации для Blender.IPO module за подробной информацией

Соответствующие объекты в Блендере

Последовательности

IPO-каналы и IPO-кривые

Кривые IPO, перечисленные в таблице, содержат целую коллекцию связанных между собой анимационных параметров. Каждый из этих параметров упоминается как канал. Примером канала IPO-объекта является LocX (x-компонент местоположения) и RotY (вращение вокруг оси Y). Каждый канал представлен объектом IPOCurve, который реализует необходимую функциональность для возвращения значений, интерполированных между ключевыми кадрами анимации.

Примером канала в IPO материала (Material) является SpecB – синий компонент зеркального цвета (specular color).

IPOCurve-объекты доступны как атрибуты приведенных в таблице IPO, например, myipo.LocX обратится к LocX IPOCurve, если myipo будет IPO - объектом.

Чтобы проиллюстрировать эти понятия предположим, что мы хотим анимировать движение простого куба вдоль оси X. Мы начнем движение с 1 кадра и закончим его в кадре номер 25. В Блендере выполним следующие шаги:

1. Добавьте простой Куб, выбрав в меню Add | Mesh | Cube и удостоверьтесь, что Вы находитесь в объектном режиме (object mode).

2. Перейдите к первому кадру анимации (чтобы выбрать необходимый кадр, просто введите число в виджет, показанный на скриншоте).

3. Добавьте ключевой кадр, выбрав Object | Insert keyframe | Loc. В окне редактора  IPO добавленный ключевой кадр расположения нашего куба в пространстве обнаружится как IPO типа Object (см. скриншот).

Текущий кадр отображается в виде зеленой вертикальной линии. Расположение IPO зафиксировано тремя  каналами (для положения куба вдоль оси X - LocX, вдоль осей Y и Z - LocY и LocZ соответственно). Каналы представлены в виде графиков различных цветов (они могут перекрывать друг на друга). Этими линиями можно управлять прямо в редакторе IPO Кривых, но пока мы только добавим второй ключевой кадр.

1. В окне Timeline выберите 25 кадр.

2. Выберите Куб и переместите его вправо вдоль оси X.

3. Добавьте второй ключевой кадр, выбрав Object | Insert keyframe | Loc (или просто нажав I - прим. пер.). Теперь мы видим что каждый из графов, представляющих три  IPO-канала (направления по осям X, Y, Z) получили вторые точки-пересечения с зеленой линией. Поскольку мы изменили местоположение куба только вдоль оси X, графы других каналов остались плоскими, но линия канала LocX изменилась вслед с изменением положения куба по оси  X.

Добавляя больше ключевых кадров, мы можем сделать любое движение настолько сложным, насколько нужно, но задача становиться более тяжелой, если мы например захотим заставить наш объект следовать по предварительно вычисленному точному пути. Позже в этой главе мы увидим, как можно управлять объектами IPOCurve, которые представляют  IPO-каналы с помощью программирования.

Ограничения

Ограничения в Блендере связаны с объектами Блендера верхнего уровня или Bone-объектами и представлены в виде объекта Constraint. У Объектов Блендера и Bone-объектов есть атрибут constraint,   с   помощью   которого   осуществляется последовательность ограничений. Также выше перечисленные объекты имеют методы, для добавления, удаления, и изменения ограничений в этой последовательности.

Когда ограничение связано с объектом, результатом будет объединение параметров ограничений и расчетных параметров объекта. Атрибут influence (влияние) определяет, насколько сильно параметры ограничения будут влиять на объект анимации.