Примером канала в 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
(влияние) определяет, насколько сильно параметры ограничения будут влиять на объект анимации.
Различия между управляющими объектами (drivers) и ограничениями
Управляющие объекты и ограничения похожи тем, что они влияют на изменение свойств пути (речь идет о параметрах анимации — прим. пер.), но в тоже время они очень разные: ограничения действуют непосредственно на объекты, в то время как управляющие объекты определяют то, как IPO-кривая будет изменяться относительно изменений других IPO-кривых в процессе анимации. Ограничения влияют только на пространственные свойства объекта, такие как положение, масштаб или вращение, а с помощью управляющих объектов любой кривой IPO можно управлять с помощью другой кривой IPO. Это означает, что даже параметры материалов, такие как цвет, или параметр лампы, такой как энергия, может управляться другим IPO. Однако есть ограничение: IPO-кривые, управляющие другими IPO-кривыми должны в настоящее время обладать специальными свойствами объекта, таким образом, Вы можете управлять цветом материала, вращая некоторый объект, но Вы не можете изменить цвет объекта энергией лампы. Кроме того, факт, что ограничения могут затронуть только пространственные свойства, означают, что нет никакого способа, которым Вы можете ограничить, например, рассеянный цвет (diffuse color) материала. Следующая таблица показывает некоторые ограничения и их соответствующее атрибуты. Обратитесь к документации API по модулю Blender.Constraint
за подробной информацией.