Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 6. Анимация.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.01 Mб
Скачать

Еще раз про основной принцип анимации в maya

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

Итак:

Анимация в MAYA = манипуляции с атрибутами объектов

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

652

Выбор типа анимации в конкретном случае: общий подход

Собственно, в определении предпочтений (а точнее, в адекватном выборе методов анимации для той или иной задачи) и состоит искусство технического аниматора. Вернемся к вышеописанным примерам.

Часы. Данную анимацию можно было сделать и с помощью обычных ключей (использовав тип тангенсов Stepped). Однако, чтобы иметь возможность заставлять часы бегать взад и вперед с переменной скоростью, проще всего использовать expression в совокупности с динамическими атрибутами.

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

Телескопическая антенна. Положение звеньев описывается словами типа: «если первое звено вытянулось больше, чем на некоторое расстояние, начинает двигаться второе звено, иначе ничто не двигается, кроме первого звена и т.д.». Здесь, конечно, на ум сразу приходит технология Set Driven Key, которая отлично описывает случаи типа «если здесь вот так, тогда там вот эдак». Однако описать логику типа «если вот так, то ничего не делать» с помощью анимационных кривых Set Driven Key довольно затруднительно, поэтому на помощь опять приходят expressions.

Шлагбаум. С первого взгляда понятно: речь идет о зависимости движения одного объекта от другого. Фраза «когда паровоз близко, опустить шлагбаум» сразу определяет логическую связь и поэтому остается выбрать между Set Driven Key и expressions. Использование последних также возможно в этом случае, но редактировать высоту шлагбаума или близость паровоза через expressions будет весьма ненаглядно и неудобно. Использование констрейнов в этом случае бессмысленно, так как поворот шлагбаума зависит не от позиции паровоза, а от расстояния между двумя объектами и не описывается в терминах «смотреть на» или «следовать за».

Коленвал. Передача вращений от одного вала к другому предполагает, что один объект целиком зависит от второго и поэтому первый кандидат на использование - это констрейны. Ориентация друг относительно друга типа «смотреть вдоль оси» сразу наводит на мысль об их использовании. Конечно, с помощью вездесущих expressions можно решить и эту задачу, так как в принципе зависимости углов поворота с трудом, но выписываются. Собственно, немного стереометрической тригонометрии (или тригонометрической стереометрии) - и всё. Но тригонометрия дает нам решения с особыми точками и всяческими сингулярностями, что чудовищно затрудняет программирование. А вот механическая суть задачи абсолютна ясна: "смотри туда-то, верх там-то".

Примечание. Один из не доказанных полностью, но весьма убедительных майских постулатов гласит следующее: «любую анимацию можно сделать с помощью ex­ pressions, вопрос только в длине кода». Похоже, что это так. Поэтому прежде, чем начать решать очередную задачу настройки объекта для анимации, попробуйте сначала использовать все остальные методы. Пусть expressions останутся вашим последним шансом.

Кривошип. Здесь вращательно движение переводится в поступательное, а не наоборот, поэтому использовать констрейны для содержательной части конструкции не представляется возможным. Обратившись к литературному описанию задачи типа «если вал повернулся настолько- то, поршень должен проползти до сюда», можно призвать на помощь технологию Set Driven Key и, отбросивгордость.быстропроставитьштуктридцатьключей, устанавливающих зависимость позиции поршня относительно угла поворота вала во всем диапазоне вращений последнего. Это, пожалуй, будет самый быстрый способ практического решения задачи. Менее доступный способ (поскольку не все ведь помнят теорему Пифагора) заключается в методе пристального взгляда и ухватывании сути или принципа зависимости перемещений от вращений с дальнейшим программированием с помощью expression. Констрейны в данной конструкции играют вспомогательную роль и служат не только согласователями движения, но и «поставщиками» информации об абсолютном положении

653

объектов в пространстве. Это, кстати, одно из довольно частых применений констрейнов.

Кроме выше описанных методов для анимации некоторых конструкций (типа кривошипа), можно применять методы инверсной кинематики, описанные ниже. Перевод перемещений в углы поворота костей может использоваться как альтернатива констрейнам или expressions и применяться не только внутри несчастных персонажей.

Кубик Рубика. Это довольно нетипичный способ применения деформеров для решения твердотельной задачи, требующий нетривиального мышления или альтернативных методов расширения сознания (например, холотропного дыхания). Я благодарю Володю Забелина за этот пример. Обычно применение деформеров можно описать как дополнительную или параллельную задачу, играющую вспомогательную роль по отношении к основной анимации. Кроме того, необходимость применения того или иного типа деформаций обычно довольно очевидна и основана на здравом смысле. Помните о том, что Blend Shape - король всех деформаций, а кластеры - рабочие лошади.

Как вы могли заметить, собственно анимации в вышеприведенных примерах было весьма немного. Львиная доля усилий была потрачена на подготовку объектов к анимации. В этом состоит еще один терминологический парадокс: как правило, говоря об анимации, речь идет о подготовке сцены (или части сцены) к анимации. Особенно это заметно при разговоре о персонажной анимации, перейти к которой я сейчас собираюсь. Впрочем я уже давно рассуждаю о ней на пространствах этой главы. Чем вышеупомянутые конструкции отличаются от персонажей? Ничем! Их тоже надо придумывать, разрабатывать, настраивать, тестировать. Более того, если для антропоморфных персонажей вы, как правило, можете попробовать подыскать уже существующее решение в виде скелетона, готового к анимации, то моделируя, например, гусеницу танка или снегоуборочную машину вы имеете дело с весьма хитрым персонажем, требующим довольно интенсивной подготовки к анимации. После таких мизантропических заявлений можно, наверное, переходить к персонажной анимации, в узком смысле этого термина.

Как я стал инструктором

Студенты часто спрашивают меня, как я докатился до такой жизни, что стал инструктором, преподающим MAYA. Началось с того, что я пал довольно низко. Полгода я безвылазно сидел в довольно глубоком, но уютном подвале, в одной небольшой частной студии, пребывая в должности технического директора и ежедневно разбирая MAYA 1.0 на части. Впрочем, реально началось все годом раньше...

В мае 1998 года компания Alias | Wavefront собственноручно убила будущие продажи MAYA в России, выпустив версию MAYA для WindowsNT. Все вокруг почему-то резко расхотели покупать дорогие станции от Silicon Graphics за 30-40 тысяч долларов и еще быстрее передумали приобретать MAYA за тридцать две тысячи долларов (без налогов и растаможки!). Однако инерция бизнеса гораздо сильнее инерции мышления, и я продолжал себе работать в компании Steepler Graphics Group, продавая и Silicon Graphics и Maya. Точнее, все еще пытаясь продавать, но чувствуя, что скоро этому придет конец.

Конец подкрался незаметно и с другой стороны, но это случилось чуть-чуть позже...

А тем временем я лихорадочно соображал, куда ринуться в летний отпуск. Время на подготовку виз, билетов и маршрутов было безнадежно упущено, и все, что оставалось мне и троим моим друзьям, это взять последние из оставшихся билеты до Стамбула и попытаться отдохнуть диким образом, вспоминая коктебельские вылазки. Добравшись до туретчины, мы сумели закрепиться на несколько дней на берегу Мраморного моря и смягчить акклиматизационный удар активным ничегонеделанием на песчаном пляже. Небольшое теплое море с молочно-белой водой, расположенное внутри материка между Черным и Эгейскими морями и отделяющее Европу от Азии, довольно быстро нам наскучило. Отчаявшись ждать заказанного в местном прокате джипа с откидным верхом, мы с Антонио рванули обратно в Стамбул и добыли удивительную машину

- Фиат-Тофаз, нечто вроде турецких этнических Жигулей, с колоритным дизайном и мегаваттными тормозами.

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