Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Контроллеры




Анимация

Контекст coordsys

Для изменения текущей системы координат служит контекст coordsys. В этом случае префикс контекста coordsys следует указывать перед операторами в начале выражения, например:

in coordsys local rotate c1 (quat 45 y_axis)

В этом примере локальная система опорных координат выбирается для последующего кода, указанного в круглых скобках. Если же систему координат требуется установить для всех команд вплоть до особого уведомления, то используется следующая конструкция:

set coordsys local

С помощью контекста coordsys можно установить систему мировых координат, локальную, родительскую, сеточную, экранную систему координат, а также локальную систему координат другого объекта.

Ранее было показано, что при установке свойств.pos,.rotation и.scale с помощью оператора значения этих свойств присваиваются непосредственно и в абсолютном виде, а при повторе оператора они не подлежат приращению.
Глава 5

 

Это справедливо для всех систем координат, кроме локальной. Если выбрана локальная система координат, она изменяет свое положение, ориентацию и масштаб всякий раз, когда устанавливается свойство. Следовательно, при повторе одного и того же оператора преобразование вновь повторяется, но в относительном виде.

Анимация в 3dsMax осуществляется с помощью контроллеров управления анимацией. Контроллеры рассчитывают значения оживляемых свойств объекта с помощью самых разных методов интерполяции в зависимости от типа выбранного контроллера. Чаще всего применяются контроллеры управления положением, вращением и масштабированием, называемые также контроллерами управления преобразованием.

Анимация сцены организуется по трекам. Трек содержит информацию об изменениях, происходящих в объекте, модификаторе, параметре или другом элементе в ходе анимации. С каждым оживляемым элементом сцены связан отдельный трек анимации, для которого может быть назначен контроллер.

Треки анимации сцены и их свойства доступны для правки в окне Track View. Кроме того, контроллеры управления преобразованием можно назначать и править на панели Motion. Для того чтобы извлечь максимальную пользу из материала этого раздела, вы должны уметь пользоваться окном Track View, чтобы просматривать и править треки анимации, а также назначать контроллеры на панели Motion и в том же окне Track View.

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

Конкретные типы контроллеров указываются в подсвойстве.controller всякого оживляемого свойства объекта:

s = sphere()

s.pos.controller

При выполнении этого фрагмента кода возвращается значение Controller: Position_XYZ, указывающее на то, что для трека анимации положения сферы назначен контроллер Postion_XYZ.

Свойство.controller имеет подсвойство.value. Как только для параметра будет назначен контроллер, значение этого контроллера может быть установлено следующим образом:

s.pos.controller.value = [20,0,50]

Некоторые контроллеры, например Position_XYZ, имеют три составляющие, каждая из которых имеет свой контроллер. Доступ к этим контроллерам осуществляется по индексу 1,2 и 3:

s.pos.controller[1].controller

При выполнении этой строки кода возвращается контроллер, назначенный для составляющей X стандартного контроллера Position_XYZ, в качестве которого


Преобразования и анимация

служит Bezier_Float, т.е. контроллер управления по кривой Безье с плавающей точкой. Подсвойство.value может быть использовано и для этого подконтроллера:

s.pos.controlIer[1].controller.value

При выполнении этой строки кода возвращается значение составляющей X контроллера Position_XYZ.

У каждого контроллера имеются свои подсвойства. Так, если для объекта назначен контроллер Position_XYZ в качестве контроллера анимации его положения, следующая строка окажется равнозначной предыдущей строке кода: s.pos.controller.X_Position.controller.value

Доступ к контроллеру, состоящему из подконтроллеров, а также к его значениям может быть всегда осуществлен несколькими способами. Многие программисты предпочитают конструкцию controller[1].controller вместо более явно выраженной конструкции controller.X_Position, поскольку это дает им возможность работать с любым назначенным для объекта контроллером при условии, что он имеет три составляющие. Если в сценарии используется первая кон­струкция, используемый в объекте контроллер можно изменить без ошибок.

Для того чтобы назначить новый контроллер для оживляемого параметра объекта, достаточно создать сначала экземпляр этого контроллера, а затем присвоить его:

c = linear_float()

s.radius.controller = c

В дальнейшем экземпляр контроллера можно использовать для изменения свойств данного контроллера.

c.value = 40

Если контроллер из переменной c назначается для других параметров в сцене, при изменении значения переменной c изменяются также все экземпляры c.value подобно тому, как это происходит с экземплярами других элементов сцены.

Во многих случаях вместо свойства.controller может быть использовано подсвойство.track. Тем не менее рекомендуется пользоваться свойством.controller, чтобы ваши сценарии работали при любых обстоятельствах.




Поделиться с друзьями:


Дата добавления: 2014-10-15; Просмотров: 533; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.