Michel Anders - Написание скриптов для Blender 2.49
- Название:Написание скриптов для Blender 2.49
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Michel Anders - Написание скриптов для Blender 2.49 краткое содержание
Расширьте мощность и гибкость Блендера с помощью Питона: высокоуровневого, легкого для изучения скриптового языка
Написание скриптов для Blender 2.49 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
• Как покрывать кожей кости
Далее мы выйдем за пределы статики, и увидим как управлять перемещением объектов.
4
PyDrivers и Constraints (Управляющие объекты и Ограничения)333
Перевод: S.Lavik, Striver
Проектируя сложные объекты с подвижными частями, мы хотели бы управлять перемещением этих частей относительно друг друга. Иногда, для достижения цели мы можем использовать физические движки, например, такие как Bullet physics, но часто этого не достаточно для точного воспроизведения анимации, физический движок не всегда предоставляет необходимый контроль над сценой. Большую часть времени умное использование многократных ограниченийбудет вполне достаточным, но иногда взаимосвязи между объектами (другими словами хорошая анимация) не могут быть выражены с точки зрения простых ограниченийи ключевой анимации. В таких случаях мы можем расширить возможности Блендера, определив собственные ограниченияили отношениямежду анимируемыми объектами, используя Питон.
В этой главе мы увидим, как можно связать встроенные ограниченияс объектами Блендера и как определить сложные отношениямежду анимированными объектами используя так называемые pydrivers. Мы также определим новые сложные ограничения, которые могут использоваться точно так же, как и встроенные ограничения. Мы пока не будем изучать такие определения, как ключевые кадры (key frames), поскольку мы столкнемся с ними в более поздних главах.
В этой главе мы узнаем:
• Как управлять одним IPOиз другого в выражениях Питона
• Как работать с некоторыми ограничениями, присущими pydrivers
• Как управлять движением объектов и костей, добавляя ограничения
• Как написать ограничениев Питоне, которое привяжет один объект к ближайшей к нему вершине на другом объекте
Для начала давайте познакомимся с некоторыми определениями, чтобы получить ясное представление о том, с чем мы имеем дело.
Акцентируем внимание на свойствах анимации
Блендер универсален, но достаточно сложен. Прежде, чем мы сможем манипулировать анимацией объектов с помощью Питона, необходимо, чтобы мы разобрались с основными понятиями.
В Блендере почти любой объект может быть анимирован. Обычно это делается, с помощью фиксации некоторых параметров, таких как положение в пространстве некоего объекта в определенных ключевых кадрах и интерполяция этих параметров для остальных промежуточных кадров. В Блендере группы объектов, задействованные в анимации собираются в так называемые кривые IPO. Например, все пространственные параметры, такие как местоположение, вращение, и масштаб сгруппированы как тип объекта IPO и могут быть связаны со многими объектами Блендера: мешем, камерой, или лампой. Большинство свойств материалов в Блендере также могут быть сгруппированы в соответствующем IPO. Получается, что ''Материальный'' тип IPO может быть связан с любым объектом, которому присвоен материал. Аналогично, тип IPO Лампы должен быть связан с объектом Лампы.
IPOэто аббревиатура, но что она обозначает кажется немного неясным. Wiki Блендера заявляет, что она происходит от слова Inter POlation, то есть от математической функции ( почитайте 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-объекта является LocX
(x-компонент местоположения) и RotY
(вращение вокруг оси Y). Каждый канал представлен объектом IPOCurve
, который реализует необходимую функциональность для возвращения значений, интерполированных между ключевыми кадрами анимации.
Интервал:
Закладка: