
- •Лекция 5. Анимация
- •12 Приемов художников Disney для оживления анимации
- •Типы анимации.
- •Главный принцип анимации в maya
- •Общие принципы и внутреннее устройство анимации в maya
- •Защита от анимации
- •Скорость воспроизведения анимации
- •Анимация по ключам
- •Режим Auto Key
- •Работа с ключами в Attribute Editor
- •Основы работы с Graph Editor.
- •Dope Sheet - альтернативный графический редактор
- •Иерархическая анимация. Слоеная анимация
- •Типы ключей. Breakdowns
- •Короткие вставки. Inbetweens
- •Анимация по пути
- •Пресмыкание по пути
- •Редактирование анимации по пути
- •Деформация по пути
- •Порядок работы с констрейнами. Их устройство и отличия от других видов связи между объектами
- •Типы констрейнов. Их общие и уникальные атрибуты
- •Смешивание анимации - старый добрый подход
- •Борьба с переворачиванием
- •Совместимость констрейнов.
- •Удаление и добавление дополнительных управляющих объектов
- •Работа с весами.
- •Констрейны как потенциальный источник циклов в дереве зависимостей
- •Пример использования констрейнов. Конструирование карданной передачи
- •Порядок создания expressions
- •Разница между скриптами и expressions. Порядок выполнения expressions
- •Примеры использования expressions. Часы
- •Приручение Expression Editor
- •Примеры использования expressions. Телескопическая антенна
- •Циклические движения. Устаканивание с помощью expressions
- •Скорость объекта. Использование expressions для ориентации объекта по направлению движения. Работа с динамическими атрибутами
- •Коленвал.
- •Операция Set Driven Key. Формула произвольной гибкости
- •Интеллектуальный шлагбаум
- •Управление множеством атрибутов с помощью Set Driven Key.
- •Set Driven Key некоторые замечания
- •Порядок смешивания анимаций
- •Кватернионы, эйлеровские углы, синхронизация вращений и прочие ужасы
- •Бесплатный гхостинг, или классическая фазовка
- •Playblast: предварительный просмотр анимации
- •Работа со звуком
- •Еще раз про основной принцип анимации в maya
- •654 Книга Сергея Цыпцына
- •Типичный ритуал применения деформеров. Создание и удаление деформеров
- •Типы деформеров. Нелинейные деформации
- •Деформация частиц
- •Решетки Lattice. Free Form Deformation
- •Wrap deformer. Решетка произвольной формы. Обобщенные деформации
- •Деформеры Sculp и Wire
- •Кластеры - группирование компонент и объектов
- •Еще немного теории деформаций.
- •Порядок деформаций
- •Членство в партии деформеров. Вступление и выход из партии. Партиции и эксклюзивные деформеры
- •Окно для работы с Blend Shapes
- •Устройство объекта blendShape.
- •Совместимость форм и принцип работы морфинга
- •Последовательный морфинг
- •Морфинг групп и иерархий
- •Локальны й и глобальны й морфин г
- •Симметричный морфинг
- •Некоторые замечания по поводу лицевой анимации
- •Используйте Wrap и Wire деформеры
- •Оптимизируйте количество объектов
- •Wrap не любит изменения масштаба объекта влияния
- •Чего следует избегать при работе с Wrap-деформером
- •Wrap-деформер и параллельные деформации
- •Wrap-деформер в составе Skin Cluster-деформера
- •Wire и его dropoff-локаторы
- •Wrap для одежды
- •Wrap как непрямой скининг
Приручение Expression Editor
Некоторые из вас, наверное, уже столкнулись с некоторыми «бестактностями» в поведении Expression Editor. Если вы, печатая свою магическую формулу, вдруг решили на секундочку выбрать другой объект, чтобы, например, проверить значения его атрибутов, все ваши «печатные труды» тут же исчезнут! Чтобы сохранить свои нервы, напечатанный текст, а заодно призвать к порядку Expression Editor, следует знать о двух режимах работы с ним.
По умолчанию включен первый режим, когда в Expression Editor отображаются expres sions только для выбранного объекта. Поэтому при случайном щелчке мыши в окне камеры весь введенный текст пропадает.
Второй, более гуманный (на мой взгляд) режим, отображает в окне Expression Editor все имеющиеся в текущей сцене expressions.
Эти режимы переключаются в меню Expression Editor с помощью пунктов Select Filter=>By Object Name и Select Filter=>By Expression Name, соответственно.
Два этих режима отражают два идеологических подхода к expressions. Первый рассматривает expressions как, например, анимационные кривые, которые жестко закреплены за определенными атрибутами и рассматриваются только вместе с объектом. В этом режиме, чтобы увидеть код нужного expression, недостаточно выбрать объект: надо дополнительно в окне Expression Edi tor выбрать атрибут объекта, на который этот expression влияет. В этом режиме весьма полезно ограничить отображение в Expression Editor только тех атрибутов, для которых уже созданы expres sions. Это можно сделать в меню Expression Editor, выбрав Attribute Filter=>Connected to Expressions. Заметьте также, что в меню Object Filter также существуют разные варианты, «фильтрующие» отображение в списке Objects объектов тех или иных типов.
617
Здесь, наверное, стоит уточнить, что значит «expression влияет на атрибут». Неформально выражаясь, в этом случае expression «висит» на атрибуте. Формально говоря, в дереве зависимостей атрибут имеет входящую связь, приходящую к нему от expression. А с точки зрения написании формул это означает, что в коде expression встречается выражение типа "object.attr=..." в котором имя атрибута стоит в левой части оператора присваивания. Как вы понимаете, в одном expression может встречаться несколько таких выражений для разных атрибутов. Все они создают связь одного expression с этими атрибутами.
Второй режим идеологически предполагает, что вы рассматриваете expressions как самостоятельные объекты сцены, выполняющие определенные действия. В этом режиме вы можете видеть в верхней части окна Expression Editor список всех expressions, уже имеющихся в текущей сцене (включая предназначенные для частиц). Вы можете не бояться, что код expres sion пропадет при случайном выборе объекта и спокойно редактировать любой expression, просто выбирая его из списка. Не забывайте при этом нажимать кнопку Edit: она сохраняет результаты вашего редактирования, и ее действие аналогично традиционной операции Save. Кнопка Reload возвращает вас к последнему сохраненному варианту кода. Помните о том, что после того, как вы изменили код expression, ваша сцена изменилась, и ее нужно будет сохранить для сохранения нового варианта expression.
Лично мне ближе второй режим работы: как бывший программист, я оперирую с expres sions как с самостоятельными, а не с вспомогательными объектами. Однако с точки зрения общей идеологии MAYA, возможно, более последовательным будет использование первого режима.
Совет. Если вы хотите избежать пропадания всего набранного текста expres sion при случайной смене выбранного объекта, тогда либо включите режим Select Filter->By Expression Name, либо в меню Object Filter выберите любой вариант, кроме Selected Objects - например, Transforms. Сделайте эт о при первом же открытии Expression Editor после запуска MAYA. Если вы хотите сделать эт и режимы задаваемыми по умолчанию, сделайте так, чтобы соответствующие этим действиям команды EEselectFilterCB expression; или EEobjFilterCB trans forms; выполнялись автоматически при открытии MAYA. О том, как это сделать, читайте в главе, посвященной MEL.
Заметьте также, что MAYA достаточно «интеллектуальна», чтобы отслеживать изменившиеся имена объектов. Если вы переименуете любой из объектов, «участвующих» в expression, то MAYA автоматически изменит текст этого expression, заменяя старое имя объекта на новое.
Совет. Если число expressions в вашей сцене превышает три, хорошо завести привычку переименовывать их сразу после успешного их создания. Это можно быстро сделать в Expression Editor. В имени expression можно отразить, что именно он делает и для чего предназначен. Позднее гораздо проще будет выбирать нужные expressions из списка, чем просматривать их все, пытаясь найти нужные команды.
Вы можете также обнаружить в Expression Editor загадочное поле Default Object, в котором, как правило, содержится имя выбранного объекта (особенно, если вы открываете Expression Editor через Channel Box). Это поле предназначено для суперленивых создателей expression и для тех, кто совершенно не умеет набирать тексты на клавиатуре. Для того объекта, чье имя содержится в этом поле, можно писать в тексте набираемого expression не полное имя атрибута, включающее имя объекта, а лишь имя самого атрибута. Например, если в поле Default Object содержится имя объекта pTorus1, вы можете написать просто:
ty = noise(time);
При этом после нажатия кнопки Edit MAYA сама добавит имя объекта к короткому имени атрибута и превратит этот текст в следующую формулу:
pTorus1.translateY = noise(time);
Также для ленивых (и любопытных) пользователей предназначено меню Insert Functions в окне Expression Editor. Оно позволяет вставлять имена различных полезных функций в то место
618
текста, где находится курсор. Такие действия, естественно, не освобождают от необходимости знать, что делают эти полезные функции.
Кнопка Delete удаляет expression как объект сцены. Помните о том, что если вы выполняете операцию Break Connection в контекстном меню Channel Box, вы лишь разрываете связь между атрибутом объекта и expression, не удаляя последнего.
Примечание. Предположим, вы собираетесь проанимировать два объекта с помощью expressions.
Для этого вы можете создать один expression, в котором будет описана анимация обоих объектов, например:
pTorus1.translateY = noise(time); pCube1.translateY = sin(time);
Однако, если следовать по иному пути, а именно выделять атрибуты в Channel Box и создавать индивидуальные expressions для каждого объекта, вы можете получить два отдельных expression, каждый из которых описывает анимацию только одного объекта. Какой способ лучше? С точки зрения производительности, наверное, первый, хотя вряд ли вам когда-нибудь удастся заметить разницу. Идеологически, возможно, корректнее второй способ, когда каждый объект, связан только со своей процедурной анимацией. Однако редактировать формулы будет быстрее и удобнее в общем expression, то есть первым способом. Таким образом, нельзя сказать, какой способ лучше это дело вкуса. Результат будет совершенно одинаковым в обоих случаях.