Читать интересную книгу Написание скриптов для Blender 2.49 - Michel Anders

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 22 23 24 25 26 27 28 29 30 ... 58

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 (влияние) определяет, насколько сильно параметры ограничения будут влиять на объект анимации.

Различия между управляющими объектами (drivers) и ограничениями

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

Типы Ограничений

TrackTo

Стандартные атрибуты

Target (target object)

Track (axis to track)

Типы Ограничений

Floor

Стандартные атрибуты

Target (target object)

Типы Ограничений

StretchTo

Стандартные атрибуты

Target (target object)

Типы Ограничений

CopyLocation

Стандартные атрибуты

Copy (выбор   компонента(тов)   для копирования )

Заметьте, что возможно анимировать влияние ограничения (параметр influence), когда с Объектом связано  IPO типа constraint.

 Программирование  ограничений

Блендер имеет  много ограничений, которые Вы можете применить к объекту. Некоторые из них похожи на управляющие объекты (drivers), в том смысле, что они не ограничивают движение объекта, но могут копировать некоторые параметры, такие как вращение или расположение (location). С точки зрения разработчика, каждому объекту Блендера присущ атрибут constraints, который является последовательностью объектов ограничений. В эту последовательность можно добавлять элементы и удалять их из неё. Также можно менять порядок элементов.

Метод

append(type)

Действие

Добавляет новое ограничение к объекту и возвращает ограничение

Пример

ob.constraints.append( Constraint.Type.TRACKTO)

Метод

remove(constraint)

Действие

Удаляет ограничение с объекта

Пример

ob.constraints.remove( ob.constraints[0])

Метод

moveUp(constraint)

moveDown(constraint)

Действие

Изменят позицию ограничения в списке ограничений

Пример

ob.constraints.moveDown( ob.constraints[0])

Метод

[]

Действие

Доступ к атрибутам ограничений

Пример

Con = ob.constraints[0]

Con[Constraint.Settings. TARGET] = other

Новые Ограничения не становятся экземплярами объектов посредством конструктора, но посредством вызова метода append() атрибута  constraints вместе с переданным ему типом ограничения. на выходе append() мы получаем новое Ограничение, параметры настроек которого уже можно изменять.

 Программирование кривых IPO

IPO-каналы управляются из скриптов так же, как и ограничения, но они по своей сути более разнообразны, чем ограничения, поскольку существует много различных типов IPO-каналов, и некоторые из них, особенно текстурные каналы и ключи формы, нуждаются в специальной обработке. Про них существует отдельная глава (Глава 6: Ключи формы, IPO, и Позы), но различные варианты использования Питона для IPO - каналов будут показаны ниже.

 Управляющие объекты (PyDrivers)

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

1 ... 22 23 24 25 26 27 28 29 30 ... 58
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Написание скриптов для Blender 2.49 - Michel Anders.

Оставить комментарий