Функция Set Driven Key является мощнейшим средством для задания нужных связей между атрибутами объектов, так как позволяет задавать практически любые зависимости, не прибегая к программированию формул или сложным вычислениям. Более того, эти связи между атрибутами имеют прекрасное визуальное представление в Graph Editor и могут быть интерактивно отредактированы в любой момент.

Результаты проделанных выше действий сохранены в файле sdk.ma.

Анимация. Связь атрибутов с временем. Анимационные кривые как объекты сцены. Анимация и деформация времени

Продолжим работу с деревом зависимостей. Посмотрим, что происходит при анимации.

Выберите сферу, встаньте в первый кадр и нажмите shift-r это поставит ключ на атрибуты scale. Встаньте в двадцатый кадр, измените размер сферы и снова нажмите shift-r.

Встаньте в сороковой кадр, еще раз измените размер сферы и снова нажмите shift-r.

Проиграйте анимацию и обратите внимание, что меняется не только размер объекта, но и цвет материала, хотя от времени зависит только атрибут scale, на который мы ставили ключи.

Вернемся в Hypergraph. Как обычно, нажимаем кнопку Input And Output Connection. Видим, что в наше дерево добавились еще три ноды, которые присоединяются к атрибутам scale сферы. Это анимационные кривые, задающие зависимость атрибутов scale от времени.

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

Если вы пока еще ориентируетесь в этих дебрях (если же нет, просто откройте файл sdk-Final.ma), можете проделать следующий эксперимент.

Нажмите shift, а затем перетащите средней кнопкой анимационную кривую pSpherel_scaleY и бросьте ее на ноду pSpherel.

Откроется Connection Editor с загруженными в нужном порядке нодами. Если у pSphere1_ scaleY не видно никаких атрибутов, включите галочку Left Display=>Show Non-Keyable.

Соедините атрибут Output слева (он последний) и атрибут translateY справа.

Проиграйте анимацию. Теперь сфера не только раздувается, но и перемещается по вертикали, хотя мы не ставили никаких ключей, а всю работу сделали во «внутренностях» MAYA. Кроме того, одна анимационная кривая управляет сразу двумя атрибутами, чего невозможно было бы добиться, расставляя ключи традиционным способом. Хотя, как вы понимаете, того же результата (то есть синхронизации scaleY и translateY) можно было бы добиться, соединив scaleY и translateY в Connection Editor.

Для взрослых. Пытливые умы наверняка тут же возопят: «А почему мы не видим в Hypergraph связи между анимационными кривыми и временем?». Действительно, время в MAYA тоже является объектом. Его зовут timel, и он имеет атрибут out-Time, содержащий значение глобального времени в кадрах. Вы можете разыскать и выбрать его в Outliner, если снять галочку Display=>DAG Objects Only. Можете рассмотреть его в Attribute Editor. Но в Hypergraph его связь с анимационными кривыми не показана, хотя в неявном виде она существует. Точнее говоря, если к атрибуту input анимационной кривой ничего не присоединено, на него в этом случае подается значение timel.outTime. Кстати, вы всегда можете увидеть атрибут input в Channel Box, просто сделав его keyable через Channel Control. Более того, можете ставить на него ключи, тем самым «деформируя» глобальное время и добиваясь эффекта искажения времени (time-warping).


⇐ вернуться назад | | далее ⇒