Контроллеры по умолчанию автоматически присваиваются трекам трансформации при создании объекта. Если, например, создать простейшую сферу и затем открыть вкладку Motion (на пиктограмме которой изображено колесо), то в разворачивающейся панели Assign Controller (Присвоение контроллера) появится список треков трансформации. По умолчанию контроллером трека Position (Позиционирование) является Position XYZ. трека Rotation (Вращение) — Euler XYZ, трека Scale (Масштабирование) — Bezier Scale.
Тип контроллера по умолчанию напрямую зависит от типа объекта. Например, контроллер Barycentric Morph автоматически присваивается при создании сложных объектов с морфингом; Master Point присваивается всем вершинам и управляющим точкам анимируемых субобъектов.
Поскольку трекам анимации контроллеры присваиваются автоматически, удалить их невозможно. Вместо этого разрешается назначить другой контроллер. |
Когда впервые сталкиваешься с анимацией и начинаешь работать с ключами, поражаешься, с какой легкостью 3ds max 5 просчитывает кадры между начальным и конечным ключами. Те, кому приходилось создавать двухмерные анимации, прорисовывая каждый кадр, по достоинству оценят эту особенность. И все же постепенно приходит осознание того, что для сложных реалистичных движений даже анимация с ключами несет в себе определенные трудности. И вновь на помощь приходит 3ds max. Автоматизировать генерацию ключей для определенных движений помогут контроллеры анимации.
Контроллеры хранят ключевые значения всех анимаций в 3ds max 5 и управляют ими. Анимация объекта с помощью кнопки Auto Key сопровождается обязательным присвоением контроллера. Используя параметры вкладки Motion (Движение) или диалогового окна Track View, вы можете изменять или настраивать параметры уже присвоенных контроллеров. В этой главе описываются основные принципы работы с контроллерами, а также детально рассматриваются контроллеры, входящие в состав 3ds max 5. Например, с помощью контроллера Noise можно добавить случайное движение к развевающемуся на ветру флагу, а с помощью контроллера Waveform, напротив, получить периодически повторяющиеся формы (например, синусоид или прямоугольный сигнал).
Теперь, когда вы знакомы с процедурой присвоения контроллеров, самое время рассмотреть контроллеры, входящие в состав 3ds max. Программа включает огромное количество контроллеров, большинство из которых добавляются как дополнения.
Вы уже знаете о существовании шести типов контроллеров. Каждый из них определяет тип данных, с которыми работает контроллер. В следующих разделах этой главы последовательно описываются контроллеры в соответствии с типами треков, которым они присваиваются.
Просмотр кривых функций для контроллеров позволяет намного лучше понять принцип управления контроллерами, поэтому многие рисунки этой главы содержат изображения кривых функций. |
Чтобы упростить идентификацию контроллеров в окне Track View, каждый из них имеет собственную пиктограмму.
Позволяет управлять трансформацией, цветом и значениями параметров объекта в зависимости от изменения амплитуды звукового файла. Используемое при присвоении контроллера Audio (Аудио) диалоговое окно Audio Controller (рис. 28.5) включает кнопки Choose Sound (Выбрать звук) и Remove Sound (Удалить звук), применяемые соответственно для загрузки и удаления звуковых файлов.
Данный контроллер автоматически присваивается при создании сложного объекта с морфингом. Ключи создаются на основе набора целевых объектов морфинга, определяемого в разворачивающейся панели Current Targets (Текущие цели) вкладки Modify. Впоследствии эти ключи можно редактировать в диалоговом окне Key Info (Информация о ключах) контроллера Barycentric Morph. Чтобы открыть его, щелкните правой кнопкой мыши на ключе морфинга в диалоговом окне Track View или на панели треков.
Возможность присвоения значений веса различным ключам морфинга является основным отличием контроллера Barycentric Morph от Cubic Morph.
Обратите внимание, что диалоговое окно Key Info контроллера Barycentric Morph содержит список целей морфинга. После выбора цели можно определить степень ее воздействия в поле Percentage. В поле Time указывается номер кадра, в котором размещается ключ. Три последующих поля используются для управления параметрами напряженности, непрерывности и наклона. Параметр Constrain to 100% (Ограничить до 1009с) приравнивает все весовые значения к 1007с; поэтому при его активизации изменение одного значения сопровождается пропорциональным изменением всех остальных.
Устанавливается как контроллер по умолчанию для большинства параметров. Позволяет интерполировать значения между ключами с помощью настраиваемого сплайна Безье. Перетаскивание маркеров вершин кривой позволяет управлять кривизной сплайна. Маркеры касательных обеспечивают плавный переход значений, если они лежат на одной линии. Однако при желании можно создать между ними острый угол. Так, на рис. 28.7 показан пример контроллера Bezier, присвоенного треку Position.
Параметры контроллера Bezier отображаются в разворачивающихся панелях Key Info (Basic) и Key Info (Advanced) вкладки Motion.
В верхней части панели Key Info (Basic) (Основная информация о ключах) размещаются две кнопки со стрелками, а также поле, отображающее номер ключа. Щелкая на кнопках, вы можете перемешаться на предыдущий и следующий ключи. На кривой функции все ключи представляются маркерами. Поле Time содержит номер кадра, в котором располагается ключ. Находящаяся справа от него кнопка Time Lock (Блокировка времени) позволяет заблокировать ключ от дальнейшего перемещения в окне Track View. В полях X, Y и Z Values отображаются значения для выделенного трека (выделение другого трека может привести к изменению этих значений).
В нижней части разворачивающейся панели Key Info (Basic) располагаются раскрывающиеся кнопки, позволяющие определить параметры In (Вход) и Out (Выход) кривой ключа. Кнопки со стрелками, размещенные по обе стороны больших кнопок, позволяют переключаться между различными типами кривых. В 3ds max доступны следующие типы кривых: Smooth (Сглаженные), Linear (Линейные), Step (Ступенчатые), Slow (Медленные), Fast (Быстрые), Custom (Пользовательские) и Tangent Copy (Копия касательной).
Более детально эти типы кривых описываются в главе 25, "Работа с треками". |
Значения полей столбцов In и Out разворачивающейся панели Key Info (Advanced) становятся доступными лишь при выборе типа кривой Custom. В этих полях вы можете определить степень применения контроллера вдоль каждой оси кривой. Расположенные между полями кнопки Lock (Блокировка) делают значения соответственно равными или обратно противоположными. Кнопка Normalize Time (Нормализовать время) выравнивает положения ключей, а параметр Constant Velocity (Постоянная скорость) интерполирует их значения в соответствии с расположенными рядом ключами, обеспечивая тем самым более плавные переходы.
Этот контроллер объединяет несколько треков в один блок, что позволяет впоследствии обрабатывать их как единое целое. Он располагается внутри трека Global Tracks (Глобальные треки). При добавлении какого-либо трека к контроллеру Block (Блок) на месте исходной позиции трека располагается контроллер Slave.
Для добавления контроллера Block выделите субтрек Available внутри трека Block Control (Блочное управление) трека Global Tracks и щелкните на кнопке Assign Controller. Откроется диалоговое окно Assign Constant Controller (Присвоить постоянный контроллер), в котором необходимо выделить элемент Master Block (Управляющий блок) и щелкнуть на кнопке ОК. При щелчке правой кнопкой мыши на треке Master Block откроется диалоговое окно Master Block Parameters (Параметры управляющего блока), показанное на рис. 28.30.
Подобно On/Off, этот контроллер может находиться в одном из двух состояний: О (Выключен) или 1 (Включен). Но, в отличие от On/Off, контроллер Boolean изменяется только тогда, когда встречаются различные состояния. На рис. 28.24 показан контроллер Boolean. Обратите внимание, что различные ключи с одним состоянием не влияют на контроллер.
Для анимации цветов используется контроллер Color RGB (Цвет RGB). Значения цветов отличаются от обычных значений параметров, поскольку они включают три отдельных числа, представляющих количество в текущем цвете оттенков красного, зеленого и синего (так называемые RGB-значения). Этот тип данных известен как Point3.
Контроллер Color RGB разбивает трек цвета на отдельные составляющие его RGB-треки. После этого к каждому компоненту цвета можно применить какой-либо другой контроллер либо анимировать его.
Например, на рис. 28.28 показаны кривые функций для контроллера Color RGB, присвоенного субтреку Diffuse Color (Цвет рассеивания) трека Material # 1 (Материал). Как видите, этот цвет включает субтреки Red (Красный), Green (Зеленый) и Blue (Синий). В данном случае треку Red присвоен контроллер Bezier, треку Green — контроллер Noise, треку Blue — контроллер Waveform с треугольной формой волны.
Этот контроллер может применяться для морфинга составных объектов. Трек такого объекта располагается внутри трека Objects (Объекты). Внутри объекта с морфингом размещается субтрек Morph, который содержит все ключи морфинга.
Для управления процессом перехода из одного объекта в другой контроллер Cubic Morph использует значения Tension (Напряженность), Continuity (Непрерывность) и Bias (Наклон). Для доступа к ним необходимо открыть диалоговое окно Key Info, щелкнув правой кнопкой мыши на любом ключе морфинга либо щелкнув на треке Morph и выбрав команду Properties из появившегося контекстного меню.
Для доступа к значениям параметров Tension, Continuity и Bias можно также щелкнуть правой кнопкой мыши на панели треков. |
С помощью контроллера Euler XYZ Rotation (XYZ-вращение по Эйлеру) можно управлять углом поворота вокруг оси X, Y или Z, устанавливая определенные значения для каждого кадра. Это вращение отличается от обычного метода вращения 3ds max (которое по своей природе не является сглаженным). Основное отличие между ними в том, что вращение по Эйлеру предоставляет доступ к кривым функций, с помощью которых можно определить плавное вращательное движение объекта.
Значения поворота для контроллера Euler XYZ Rotation задаются не в градусах, а в более мелких значениях — радианах. Как вы наверняка знаете, полный поворот составляет 360°, или 2-пи радиан; один градус равен соответственно 0,0174 радиана. |
В разворачивающейся панели Euler Parameters (Параметры вращения по Эйлеру) вкладки Motion вы можете выбрать порядок расчета осей, а также ось, с которой работает контроллер. Все три трека Rotation (с примененным контроллером Bezier) после применения контроллера Euler XYZ Rotation показаны на рис. 28.22.
Для определения значений треков с помощью математических выражений применяется контроллер Expression (Выражение). Причем для управления анимационными ключами в таких выражениях можно задавать значения других треков и простейшие математические функции, например синус и логарифмы.
Более детально контроллер Expression описывается в главе 29, "Использование выражений". |
Для применения к объектам костей системы обратной кинематики используется контроллер IK (Inverse Kinematics — обратная кинематика). Определять ограничение точек соединения и другие параметры работы этого контроллера можно с помощью нескольких разворачивающихся панелей.
Контроллер IK детально описывается в главе 33, "Основы применения систем обратной кинематики". |
Строит прямую линию между двумя точками, интерполируя значения в нужных точках. Не содержит каких-либо параметров и может быть применен как к значениям времени, так и к значениям параметров. Например, на рис. 28.8 показаны кривые из предыдущего примера после применения контроллера Linear (Линейный). Как видите, все кривые заменены прямыми линиями.
Такой контроллер используется для одновременного применения нескольких контроллеров. Это позволяет, например, создавать небольшие отклонения движения, добавляя немного шума к результатам применения контроллера Path (Маршрут).
После применения контроллера List (Список) трек, заданный по умолчанию, отображается как субтрек с пометкой Available (Доступный). Выделив субтрек Available и щелкнув на кнопке Assign Controller, можно присвоить текущему треку какой-либо дополнительный контроллер.
Все присвоенные субтреку контроллеры отображаются в разворачивающейся панели List (Список) вкладки Motion. Для доступа к этому списку можно также просто щелкнуть правой кнопкой мыши на треке и выбрать команду Properties из появившегося контекстного меню. Порядок записи контроллеров в списке играет очень большую роль, поскольку определяет, какой контроллер будет рассчитываться первым.
После щелчка на кнопке Set Active (Установить активным) можно выбрать, какой кон-троллер доступен для интерактивного управления в окне проекции. Такой активный контроллер помечается стрелкой слева от его имени. Работая со списком, вы можете вырезать
и вставлять различные контроллеры. Если возникает необходимость использовать контроллер одного типа несколько раз, можете вводить его новые имена в расположенном ниже списка поле. Это облегчит дальнейшую работу с контроллерами.
На рис. 28.29 показаны результаты применения контроллера List к треку Position сферы. Как видите, в списке указывается контроллер по умолчанию (Bezier Position) и трек Available. Контроллер Noise (Шум) был добавлен с помощью щелчка на треке Available и последующего щелчка на кнопке Assign Controller. Кривые функций помогают понять, что контроллер шума является второстепенным после контроллера Bezier.
Трансформациями любой точки или вершины выделения субобъектов управляет контроллер Master Point (Управляющая точка). Его же можно добавлять и как трек к объекту, части которого подлежат трансформации. Для каждого субобъекта внутри такого трека имеются отдельные субтреки. Ключи трека Master выделяются зеленым цветом.
Щелчок правой кнопкой мыши на зеленом ключе трека приводит к появлению диалогового окна Master Track Key Info (Информация о ключах основного трека), показанного на рис. 28.35. В левом верхнем углу этого окна указывается номер ключа и расположены две кнопки со стрелками, позволяющие выделить предыдущий или следующий ключ. В расположенном справа поле Time отображается номер текущего кадра, а ниже представлен список всех доступных вершин. Выделение какой-либо вершины в этом списке сопровождается отображением всех значений ее параметров в нижней части диалогового окна.
Используя контроллер Motion Capture (Захват движения), можно управлять трансформацией объекта с помощью внешнего устройства, например мыши, клавиатуры, джойстика или MIDI-устройства. Для сбора данных о движении этот контроллер используют вместе со средством Motion Capture.
Присвоив контроллер Motion Capture треку, щелкните правой кнопкой мыши на треке и выберите команду Properties из появившегося контекстного меню; откроется диалоговое окно Motion Capture (рис. 28.9). В этом окне можно определить устройство, которое будет управлять значениями трека: Keyboard Input Device (Клавиатура), Mouse Input Device (Мышь), Joystick Input Device (Джойстик) или MIDI Device (MIDI-устройство).
Если для управления значениями трека выбрана клавиатура, в нижней части диалогового окна Motion Capture появится разворачивающаяся панель Keyboard Input Device (рис. 28.10). Щелчок на кнопке Assign позволяет выбрать клавишу для управления треком; в разделе Envelope Graph можно установить, как часто отслеживается нажатие выбранной клавиши.
С помощью контроллера Noise (Шум) параметрам трека присваиваются случайные значения. В поле Seed (Начальное число) диалогового окна Noise Controller (рис. 28.13) определяется случайность шума, а поле Frequency (Частота) задает его неравномерность. Кроме того, вы можете установить параметр Strength (Сила) для каждой оси. При установке параметра >0 (больше нуля) для какой-либо оси значения шума вдоль нее остаются всегда положительными.
Этот контроллер применяется к трекам, содержащим двоичные значения, например к треку видимости (Visibility). Его используют для включения или отключения трека, а также для активизации или деактивизации параметров. В диалоговом окне Track View разделы On отображаются синим цветом. Контроллер On/Off (Включить/Выключить) не содержит никаких параметров. На рис. 28.23 представлен добавленный к объекту сферы трек Visibility. Данный трек был добавлен с помощью кнопки Add Visibility Track в режиме редактирования ключей. Для добавления ключей можно применять кнопку Add Keys, причем каждый новый ключ будет включать или отключать трек в определенном кадре.
Используя кнопки разворачивающейся панели PRS Parameters (рис. 28.3), можно создавать (группа Create Key) и удалять (группа Delete Key) ключи для любой трансформации, будь то позиционирование, вращение или масштабирование. Расположенные ниже кнопки Position, Rotation и Scale определяют набор полей в разворачивающейся панели Key Info, которую можно найти под разворачивающейся панелью PRS Parameters.
Этот контроллер разбивает трансформации позиции на три отдельных трека, по одному для каждой оси. Затем к треку каждой оси применяется контроллер Bezier. хотя можно присвоить и какой-либо другой. Используя разворачивающуюся панель Position XYZ Parameters вкладки Motion, вы можете легко переключаться между компонентами различных осей. На рис. 28.21 показан результат применения контроллера Position XYZ к треку Position. При этом треку X Position присвоен еще и контроллер Noise, треку Y Position — контроллер Linear, а треку Z Position — контроллер Bezier.
Создает кривые анимационные маршруты аналогично тому, как это делает контроллер Bezier. Единственным отличием является возможность определения формы кривой с помощью параметров напряженности (Tension), непрерывности (Continuity) и наклона (Bias).
Эти параметры контроллера Quaternion (TCB) задаются в разворачивающейся панели Key Info, которая, аналогично панелям контроллера Bezier, содержит кнопки и поля Key, Time и Value. Кроме того, она включает график ТСВ-значений. На этом графике красный символ "+" отражает положение текущего ключа, а остальная часть графика показывает постоянное приращение времени в виде черных символов "+". Изменение значений полей Tension, Continuity и Bias соответствующим образом отражается на форме графика. Чтобы открыть диалоговое окно с таким графиком (рис. 28.15), щелкните правой кнопкой мыши на треке и выберите команду Properties из появившегося контекстного меню.
Этот контроллер изменяет свои значения в ответ на действие другого контроллера. Он немного отличается от контроллера Attachment, поскольку позволяет выполнять перемещения в разных направлениях (контроллер Attachment обеспечивает движение только в одном направлении). Так, например, используя контроллер Reactor (Реактор), можно заставить один объект подниматься вверх, в то время как другой будет двигаться вправо.
Не путайте контроллер Reactor с одноименной утилитой, которая просчитывает движение, основываясь на физической динамике. Более подробно утилита Reactor рассмотрена в главе 30, "Имитация динамики". |
После применения контроллера Reactor к треку можно настроить его параметры с помощью диалогового окна Reactor Parameters (Параметры реактора), показанного на рис. 28.17. Чтобы открыть это окно, выделите трек, которому присвоен контроллер Reactor, щелкните на нем правой кнопкой мыши и из появившегося контекстного меню выберите команду Properties.
Это единственный контроллер, применяемый только к трекам масштаба (Scale). Он разбивает трансформацию масштабирования на три отдельных трека, по одному для каждой оси. В дальнейшем это позволит более точно управлять масштабированием объекта вдоль отдельных осей. Лучше использовать контроллер Scale XYZ (Масштаб XYZ), чем кнопку Select and Non-Uniform Scale (Выделить и неравномерно масштабировать) основной панели инструментов, поскольку он не зависит от геометрии объекта.
Для выбора рабочей оси достаточно щелкнуть на одной из кнопок разворачивающейся панели Scale XYZ Parameters (Параметры масштаба XYZ). Действует данный контроллер так же. как и остальные XYZ-контроллеры, предназначенные для треков Position (Позиционирование) и Rotation (Вращение).
Этот контроллер аналогичен контроллеру Expression; единственное отличие в том. что он позволяет работать со строками кода MAXScript. Щелчок правой кнопкой мыши на треке с присвоенным контроллером Script и последующий выбор команды Properties из появившегося контекстного меню открывает диалоговое окно Script Controller (рис. 28.4).
Для автоматического создания плавного вращения используется контроллер Smooth Rotation (Плавное вращение). Он не добавляет каких-либо новых ключей, а просто изменяет временные характеристики уже существующих ключей для достижения плавности вращения.
Этот контроллер по своим функциональным возможностям во многом похож на модификатор Flex (Изгиб). Контроллер Spring (Пружина) позволяет создавать дополнительные движения, напоминающие раскачивание пружины до и после применения некоторой силы. Использование этого контроллера приводит к тому, что во вкладке Motion появляются две разворачивающиеся панели (рис. 28.19). С помощью параметров этих панелей можно управлять физическим свойствами пружины и применяемой силы.
С помощью контроллера Waveform (Форма волны) можно создавать периодические колебания, например синусоидальную волну. Для создания сложной волны можно применять несколько различных типов простых форм. Список всех комбинированных форм представлен в диалоговом окне Waveform Controller (рис. 28.25). Для добавления в этот список новой формы достаточно щелкнуть на кнопке Add (Добавить).
Эти контроллеры работают с треками Position, Rotation и Scale одновременно. Для доступа к ним достаточно выделить трек Transform во вкладке Motion и щелкнуть на расположенной выше кнопке Assign Controller или выбрать команду Animation>Transform Controllers (Анимация>Контроллеры трансформации).
Эти типы контроллеров включают некоторые общие контроллеры, заданные по умолчанию, которые могут быть назначены трекам Rotation (Вращение) и Scale (Масштаб). Эти контроллеры обычно работают с тремя уникальными значениями, представляющими оси X, Y и Z; их можно назначить с помощью команд меню Animation>Rotation Controllers и Animation>Scale Controllers. Многие контроллеры из этих меню можно также найти в меню Animation>Position Controllers (Анимация>Контроллеры позиционирования). Ниже рассмотрены только те контроллеры, которые предназначены для треков Rotation и Scale.
К ним относится несколько контроллеров, присваиваемых по умолчанию треку Position. Все эти контроллеры работают с тремя уникальными величинами, соответствующими координатам осей X, Y и Z. Чтобы присвоить эти контроллеры треку Position, необходимо выбрать соответствующую команду меню Animations Positions Controllers (Анимация>Контроллеры позиционирования). Большинство команд этого меню можно найти в подменю Rotation Controllers (Контроллеры вращения) и Scale Controllers (Контроллеры масштабирования).
Существует еще одна группа весьма разнородных контроллеров, которые не могут быть отнесены ни к одной из рассмотренных ранее категорий. Многие являются лишь их комбинациями, как, например, контроллеры List и Block: остальные, например Waveform (Форма волны), для определения функций включают специальные интерфейсы.
Большинство параметрических контроллеров можно присвоить только в диалоговом окне Track View, поскольку во вкладке Motion представлены только треки для контроллеров трансформации.
Присваивать контроллеры можно также и в диалоговом окне Track View (Просмотр треков). Для этого отыщите и выделите трек, которому желаете присвоить контроллер, и щелкните на кнопке Assign Controller панели инструментов Controllers окна Track View. Для этого можно также воспользоваться командой Controller>Assign (Контроллер>Присвоить) (<С>) или щелкнуть на треке правой кнопкой мыши и из появившегося контекстного меню выбрать команду Assign Controller (Присвоить контроллер). В любом случае появится диалоговое окно Assign Controller, в котором можно выбрать присваиваемый контроллер.
Более детально работа со средством Track View описывается в главе 25, "Работа с треками". |
Панель инструментов Controller диалогового окна Track View используется также для копирования и вставки контроллеров на другие треки. Однако вставить какой-либо контроллер можно только на трек аналогичного типа. При вставке контроллера на экране появляется диалоговое окно Paste. В нем можно определить, следует вставлять новый контроллер как копию (Сору) или как экземпляр (Instance). Помните: изменение параметров контроллера-экземпляра сопровождается одновременным изменением параметров всех связанных с ним экземпляров. В диалоговом окне Paste предусмотрен параметр Replace All Instances (Заменить все экземпляры). Активизация этого параметра позволяет заменить все экземпляры контроллера — как выделенные, так и нет.
Любому анимируемому объекту или параметру автоматически присваивается контроллер. Это так называемый контроллер по умолчанию. Для смены контроллера по умолчанию воспользуйтесь вкладкой Animation (Анимация) диалогового окна Preference Settings (Настройка параметров). Это же можно сделать в диалоговом окне Track View или с помощью вкладки Motion панели Command.
Несмотря на то что ограничивающие контроллеры (Constraints) расположены в отдельном подменю, они так же управляют ключами анимации, как и обычные контроллеры. |
Меню Animation (Анимация) предоставляет самый простой способ присвоения контроллера. Для этого в меню Animation предусмотрено четыре следующих подменю: Transform (Трансформация). Position (Позиционирование). Rotation (Вращение) и Scale (Масштаб).
Когда объекту назначается контроллер с помощью команд меню Animation, существующий контроллер не удаляется, а новый добавляется как часть списка вместе с другими контроллерами. Список всех контроллеров находится во вкладке Motion.
Например, на рис. 28.1 показана вкладка Motion для объекта Sphere (Сфера). Треку Position этого объекта назначен контроллер Position XYZ. заданный по умолчанию. Если выбрать команду Animation>Position Controllers>Noise, то контроллер Position List будет добавлен в трек Position. Таким образом, для доступа к контроллерам Position XYZ и Noise вам необходимо лишь развернуть иерархию трека Position: Position List.
В верхней части вкладки Motion располагаются две кнопки: Parameters (Параметры) и Trajectories (Траектории). При щелчке на кнопке Parameters появляется разворачивающаяся панель Assign Controller (Присвоить контроллер) со списком контроллеров, присвоенных трекам Position, Rotation и Scale выделенного объекта.
Для изменения контроллера трека трансформации выделите сам трек и щелкните на кнопке Assign Controller, расположенной выше списка. Появится диалоговое окно Assign Controller, которое может видоизменяться в зависимости от выделенного трека.
Использование кнопки Trajectories детально рассматривается в главе 24, "Основы анимации". |
На рис. 28.2 показано диалоговое окно Assign Position Controller для трека Position. Текущий контроллер трека помечен стрелкой (>). В нижней части этого окна указано название контроллера по умолчанию. Если в списке вы выделите другой элемент и щелкнете на кнопке ОК, новый контроллер отобразится в треке и его разворачивающаяся панель появится под панелью Assign Controller.
Контроллер Position List позволяет изменить значение параметра Weight (Вес) для всех контроллеров, находящихся в его иерархии. В разворачивающейся панели Position List можно активизировать (кнопка Set Active) или удалить (кнопка Delete) нужный контроллер. Кнопки Cut (Вырезать) и Paste (Вставить) предназначены для вырезания и вставки контроллера в другие треки.
Присваивать контроллеры можно и параметрам материалов или модификаторов, но трекам трансформации присваивать контроллеры можно только во вкладке Motion. Для всех остальных объектов это разрешено выполнять в диалоговом окне Track View. |
Это диалоговое окно включает разделы Script (Сценарий) и Result (Результат), а также кнопки сохранения (Save) и загрузки (Load) сценариев. Для выполнения загруженного сценария необходимо щелкнуть на кнопке Evaluate (Выполнить).
Более детально средство MAXScript рассматривается в главе 40, "Язык сценариев MAXScript". |
Из раскрывающегося списка раздела Real Time Control (Управление временем) можно выбрать управляющее системой устройство. Для управления звуковым входом используются значения полей Threshold и Oversampling. Также можно установить базовую (Base point) и целевую (Target point) точки для каждой оси. Используя переключатели раздела Channel (Канал), вы можете выбрать, какой канал применять: левый (Left), правый (Right) или смешанный (Mix). Например, на рис. 28.6 представлен результат применения контроллера Audio к треку Position. В данном случае для настройки положения объекта загружен файл boing. wav.
Рис. 28.6. Контроллер Audio изменяет значение позиции в зависимости от амплитуды воспроизводимого звука
Рис. 28.8. Вид кривых после применения контроллера Linear
Используя диалоговое окно Motion Capture, довольно просто определить, какое устройство какими значениями управляет. Реальный сбор данных выполняется с помощью средства Motion Capture. Выбор его из списка во вкладке Utilities приводит к появлению разворачивающейся панели Motion Capture (рис. 28.11), которая содержит кнопки для запуска, остановки и проверки процесса сбора данных.
Прежде чем щелкнуть на одной из кнопок — Start (Запуск), Stop (Остановка) и Test (Тестирование), необходимо выделить треки в списке раздела Tracks. В разделе Record Range (Диапазон записи) можно ввести значения в полях Preroll, In и Out, определяющие номера включаемых кадров. В разделе Samples (Образцы) устанавливается число образцов в одном кадре. Установка флажка Reduce Keys (Уменьшить ключи) приводит к удалению всех ненужных ключей.
В этом же диалоговом окне находится параметр Fractal Noise (Фрактальный шум) с полем Roughness (Резкость). Значения полей Ramp In (Подъем) и Ramp Out (Спад) определяют длину временной последовательности до или после достижения полного значения шума. В приведенном в нижней части окна графике характеристики представлено разделение шума по диапазону. Пример применения контроллера Noise к треку Position показан на рис. 28.14.
Значение поля Tension определяет степень кривизны: высокие значения отражаются прямыми линиями. а низкие — более искривленными. Значение поля Continuity определяет непрерывность, или сглаживание, кривой возле ключа. Устанавливаемое в нем по умолчанию значение 25 позволяет получить наиболее сглаженную кривую. Его увеличение или уменьшение приводит к появлению пиков вверху или внизу соответственно. Значение поля Bias определяет, как кривая входит в точку ключа и исходит из нее. Высокие значения способствуют появлению выпуклости справа от ключа, а низкие — слева.
Значения полей Ease To и Ease From определяют взаимодействие анимации и ключа.
Отображение маршрута траектории с помощью кнопки Trajectory вкладки Motion позволяет увидеть изменения маршрута, вносимые с помощью разворачивающейся панели Key Info. |
Пример ТСВ-кривых, присвоенных треку Position, представлен на рис. 28.16.
Щелчок на кнопке React To (Реагировать на) позволяет выбрать объект в любом окне проекции. После того как вы щелкнете на объекте, появится контекстное меню, в котором следует выбрать параметр трансформации. Все реакции заносятся в список, для пополнения которого используется кнопка Create Reaction (Создать реакцию). При щелчке на кнопке Delete Reaction (Удалить реакцию) выделенная реакция удаляется из списка, а с помощью кнопки Set Reaction Value (Установить значение реакции) можно определить ее значение. Все эти значения приводятся в поле Reaction Value. Для каждой реакции можно задать значения влияния (Influence), силы (Strength) и спада (Falloff).
В разворачивающейся панели Spring Dynamics (Динамика пружины) можно изменять значения параметров Mass и Drag. Чем больше значение в поле Mass, тем большим будет раскачивание объекта во время движения. Значением поля Drag определяется, как быстро это раскачивание должно прекратиться. Подобных пружин (или раскачиваний) можно добавить несколько (кнопка Add), причем каждая из них может иметь собственные значения параметров Tension (Натяжение) и Dampening (Демпфирование). Значения этих двух параметров могут быть относительными (переключатель Relative) или абсолютными (переключатель Absolute).
В разворачивающейся панели Forces, Limits and Precision (Силы, ограничения и точность) добавляются значения сил, влияющих на движение пружины. Кнопка Add (Добавить) позволяет указывать эти силы, которые обычно являются искривлениями пространства. С помощью полей X, Y и Z Effect можно ограничить действие силы вдоль соответствующих осей.
К трекам Rotation (Вращение) применяется большое количество общих контроллеров, многие из которых с таким же успехом используются и с треками Position. В следующих разделах вы ознакомитесь с контроллерами треков Rotation и Scale.
Контроллер Boolean впервые появился в пятой версии 3ds max. |
Выделив в списке название формы, можно присвоить ей новое имя либо изменить ее форму с помощью кнопок и полей. Вашему вниманию предлагаются уже готовые формы: Sine (Синусоидальная). Square (Прямоугольная), Triangle (Треугольная), Sawtooth (Пилообразная) и Half Sine (Полусинусоидальная). Эти формы также можно инвертировать.
Значение поля Period (Период) определяет число кадров, необходимое для завершения одного полного цикла. В поле Amplitude (Амплитуда) задается высота волны, а в поле Phase (Фаза) — ее положение в начале цикла. Поле Duty Cycle (Длина импульса) используется только для прямоугольных колебаний, поскольку определяет длину импульса
Параметры раздела Vertical Bias (Вертикальный наклон) определяют диапазон значений волны. Так. можно установить переключатель Centered (Центрированный), при котором центр волны находится в точке 0. Auto > 0 (Авто > 0), при котором все значения положительны, или Auto < 0 (Авто < 0), при котором все значения отрицательны. Активизировав переключатель Manual (Вручную), можно в расположенном рядом поле ввести значение центра волны.
Переключатели раздела Effect (Эффект) определяют способ объединения различных форм волны. Их можно сложить (Add), перемножить (Multiply), наложить сверху (Clamp Above) и наложить снизу (Clamp Below). Установка переключателя Add приводит к простому сложению значений волн, а переключателя Multiply — к их перемножению. Активизация переключателей Clamp Above и Clamp Below заставляет одну кривую достигать максимума и минимума, не выходя при этом за пределы другой кривой. В левой нижней области Characteristic Graph (График характеристики) отображается выделенная форма волны (This Wave), вывод (This Output) и результирующая кривая (Final Output).
Для сравнения на рис. 28.26 показаны графики всех параметров раздела Effect при совмещении синусоидальных колебаний и последовательности прямоугольных импульсов.
На рис. 28.27 показан результат применения к треку радиуса сферы синусоидальной кривой, созданной с помощью контроллера Waveform. В конечном итоге это приведет к последовательному увеличению или уменьшению размеров сферы.
Щелкнув на кнопке Add диалогового окна Master Block Parameters, можно добавить в контроллер Block новый трек. Все добавленные ранее треки указываются в расположенном слева списке. Используя поле Name, можно присваивать каждому треку новое имя. Для добавления всех выделенных треков достаточно щелкнуть на кнопке Add Selected (Добавить выделенные). Кнопка Replace (Заменить) используется для замены выделенного трека, а кнопки Load (Загрузить) и Save (Сохранить) — соответственно для загрузки и сохранения блоков в отдельных файлах.
Щелчок на кнопке Add открывает диалоговое окно Track View Pick (Выбор просмотра треков), показанное на рис. 28.31. В этом окне все доступные треки отображаются черным цветом, а недоступные — серым, что упрощает выбор.
Выделите треки, которые вы желаете включить в контроллер Block, и щелкните на кнопке ОК. Появится диалоговое окно Block Parameters (Параметры блока), показанное на рис. 28.32.
В нем можно присвоить имя блоку, указать начальные и конечные кадры, а также задать цвет. Завершив работу с этим окном, щелкните на кнопке ОК. Вернувшись в диалоговое окно Master Block Parameters, щелкните на кнопке Load, чтобы открыть диалоговое окно, с помощью которого можно загрузить сохраненный ранее блок анимационных параметров. Файлы сохраненных блоков имеют расширение .blk. После этой загрузки откроется диалоговое окно Attach Controls (Присоединить элементы управления), показанное на рис. 28.33. Как видите, это окно имеет два списка. Левый список Incoming Controls (Входящие элементы управления) содержит все движения сохраненного блока. Щелкнув на кнопке Add. можно добавить из текущей сцены треки, в которые затем следует скопировать сохраненные движения.
Поскольку сохраненные движения списка Incoming Controls соответствуют элементам списка Сору То, щелчок на кнопке Add Null (Добавить пустое место) позволяет добавить вместо трека, который вы не желаете копировать, пустое место. Кнопка Match by Node (Сравнить по узлам) сравнивает треки с помощью диалогового окна Track View Pick.
На рис. 28.34 показан контроллер Block с несколькими движениями. Трек MasterBlock включает субтрек Blend, определяющий взаимодействие различных треков.
Например, на рис. 28.36 показан результат автоматического присвоения контроллера Master Point во время перемещения выделенного набора вершин при активизированной кнопке Auto Key. Обратите внимание, что для каждой вершины создается отдельный трек.
Контроллеры {controllers) предназначены для установки ключей анимационной последовательности и присваиваются всем анимнруемым объектам и параметрам. Наряду с этим, практически каждый контроллер характеризуется определенным набором параметров, изменение которых позволяет настроить его функциональные возможности. Параметры одних контроллеров можно найти во вкладке Motion, а других — в диалоговом окне Properties.
В 3ds max 5 существует пять основных типов контроллеров (управляют каким-либо одним параметром или треком) и один специальный (управляет сразу несколькими треками). Тип контроллера непосредственно зависит от типа значений, которые он обрабатывает.
Float Controllers (плавающие контроллеры). Используются для всех параметров с одним числовым значением, например Wind Strength (Сила ветра) или Radius (Радиус) сферы. Point3 Controllers (контроллеры категории Point3). Включают отдельные компоненты красного, зеленого и синего цветов, например для цвета Diffuse (Диффузный) или Background (Задний фон). Position Controllers (контроллеры позиции). Управляют координатами позиции объекта, включающими значения по осям X, Y и Z. Rotation Controllers (контроллеры вращения). Управляют значениями поворота объекта вдоль каждой оси. Scale Controllers (контроллеры масштабирования). Управляют значениями масштаба объектов, например процентным увеличением вдоль осей. Transform Controllers (контроллеры трансформации). Специальный тип, применяемый к сложным трансформациям (одновременное позиционирование, вращение и масштабирование). К этому типу относятся контроллеры, предназначенные для одновременной работы с треками Position, Rotation и Scale (PRS-контроллеры).
Очень важно знать и отличать контроллеры разных типов. Например, копировать и вставлять параметры между треками можно только в том случае, если к ним применены однотипные контроллеры. |
Так называемые плавающие контроллеры управляют параметрами, значения которых представлены числами с плавающей запятой, например радиус сферы или процентное значение масштаба. (Числами с плавающей запятой называются числовые значения с дробной частью, например 2,3 или 10,99.) Контроллер Float можно применять к любому анимируемому параметру. После его присвоения вы получите доступ к кривым функций и ключам данного контроллера в диалоговом окне Track View или на панели треков.
Некоторые движения, например рисование карандашом, анимировать с помощью ключей довольно сложно. В этом примере для рисования карандашом воспользуемся контроллером Motion Capture и одноименным средством.
Для того чтобы анимировать движение карандаша на бумаге, выполните описанные ниже действия.
В папке Chapter Example Files на прилагаемом компакт-диске найдите файл Chap 28.zip, распакуйте его и откройте файл Drawing with a pencil.max. В файле находится наведенный на лист бумаги карандаш. Выделите карандаш, откройте вкладку Motion и выделите трек Position. Затем щелкните на кнопке Assign Controller и в списке появившегося окна дважды щелкните на элементе Position Motion Capture. Появится диалоговое окно Motion Capture Position. Щелкните на кнопке X Position и дважды на элементе Mouse Input Device. Затем щелкните на кнопке Y Position и вновь дважды на элементе Mouse Input Device. Установите переключатель Vertical в разворачивающейся панели Mouse Input Device и закройте это диалоговое окно. Таким образом горизонтальное перемещение мыши изменит положение объекта по оси X, а вертикальное — по оси Y. Активизируйте вкладку Utilities и щелкните на кнопке Motion Capture. Выделите трек Position в разворачивающейся панели Motion Capture и приготовьтесь перемещать мышь. Щелкните на кнопке Start раздела Record Controls и начинайте перемещать мышь так, будто вы рисуете карандашом на бумаге. В окне проекции карандаш начнет двигаться, повторяя движения указателя мыши. Средство Motion Capture автоматически создаст ключи для всех кадров анимационной последовательности. Захват движений закончится, когда анимация достигнет кадра 100. Щелкните на кнопке Play Animation (или нажмите клавишу </>) для просмотра результатов.На рис. 28.12 показан кадр сцены после расчета всех кадров средством Motion Capture.
Шестеренки применяются во многих механических устройствах, а их анимация — не такое уж простое дело: ведь расположенные рядом шестеренки должны поворачиваться в противоположных направлениях. Если вы попытаетесь установить связь между ними, то увидите, что в процессе анимации одна из них вращается вокруг второй. Поэтому для получения правильного движения вам придется либо анимировать движение каждой шестеренки в отдельности, либо воспользоваться контроллером Reactor, чтобы движение одной шестеренки приводило в движение другую. Именно последний способ попробуем реализовать в этом примере.
Для поворота шестеренок с помощью контроллера Reactor выполните ряд действий.
В папке Chapter Example Files на прилагаемом компакт-диске найдите файл Chap 28 . zip, распакуйте его и откройте файл Reactor rotating gears .max. В файле находится несколько шестеренок, созданных на основе примитива RingWave (Волнообразное кольцо). Выделите первую шестеренку, щелкните на кнопке Auto Key (или нажмите клавишу <N>) и перетащите бегунок Time Slider на кадр 100 (или нажмите клавишу <End>). Щелкните на кнопке Select and Rotate, а затем щелкните на ней еще раз правой кнопкой мыши, чтобы открыть окно Rotate Transform Type-In. Введите значение 180 в поле Z раздела Offset. Откройте диалоговое окно Track View и отыщите трек Rotation для второй шестеренки. Выделите его и щелкните на кнопке Assign Controller. Выделите элемент Rotation Reactor и щелкните на кнопке ОК. Появится диалоговое окно Reactor Parameters. Верните бегунок Time Slider обратно в кадр 0 (горячая клавиша <Ноте>). Щелкните на кнопке React To, выделите первую шестеренку и выберите команду Transform>Rotation из появившегося контекстного меню. В списке появится новая реакция (Reaction0I). Перетащите бегунок Time Slider на кадр 100 (или нажмите клавишу <End>) и щелкните на кнопке Create Reaction, что приведет к созданию еще одной реакции в списке (Reaction02). Щелкните на кнопке Edit Reaction State (Изменить состояние реакции). Затем выделите вторую шестеренку, щелкните на кнопке Select and Rotate, а затем на этой же кнопке щелкните правой кнопкой мыши. Введите значение -180 в поле Z раздела Offset. Щелкните еще раз на кнопке Edit Reaction State, чтобы деактивизировать ее. Чтобы увидеть плавное движение шестеренок, щелкните на кнопке Play Animation (или нажмите клавишу </>).Две созданные шестеренки и диалоговое окно Reactor Parameters показаны на рис. 28.18. Теперь шестеренки созданного механизма будут поворачиваться в разные стороны.
Один из самых лучших способов использования контроллера Spring — это имитация вторичного движения, которое выполняется в соответствии с основным движением объекта. Например, после применения этого контроллера хвост персонажа будет двигаться в соответствии с движением самого персонажа.
Для того чтобы "раскачать" набор связанных сфер с помощью контроллера Spring, выполните следующее.
В папке Chapter Example Files на прилагаемом компакт-диске найдите файл Chap 28.zip, распакуйте его и откройте файл Spring controlled row of spheres.max. В файле находится набор из нескольких связанных сфер. Головная сфера анимирована, что позволяет этому набору перемещаться вперед и назад. Выделите самую маленькую сферу и в главном меню программы выберите команду Animation>Position Controllers>Spring. В результате выполнения этой команды выделенная сфера будет перемещена к своему родительскому объекту. Активизируйте кнопку Select and Move (или нажмите клавишу <W>) основной панели инструментов и переместите сферу в ее первоначальное положение. Повторите действия, описанные в п. 2, для оставшихся сфер, начиная с наименьшей и заканчивая наибольшей. Щелкните на кнопке Play Animation (или нажмите клавишу </>) для просмотра полученного результата.На рис. 28.20 показан один из кадров окончательного движения. Обратите внимание, что сферы не выстроены в точную линию. Самая маленькая сфера проходит наибольший путь, поскольку на нее оказывают влияние все пружины других сфер.
В диалоговом окне Assign Controller, открывающемся при присвоении контроллера с помощью диалогового окна Track View, расположена кнопка Make Default (Установить по умолчанию). После щелчка на ней выделенный контроллер становится контроллером по умолчанию для выделенного трека.
Можно также установить глобальный контроллер по умолчанию для каждого типа треков. Для этого в главном меню программы выберите команду Customize>Preferences (Настройка> Параметры), активизируйте вкладку Animation (Анимация) и щелкните на кнопке Set Defaults. Появится диалоговое окно Set Controller Defaults (Установить контроллеры по умолчанию), в котором можно установить параметры по умолчанию, например входящие и исходящие кривые контроллера. Чтобы настроить контроллер по умолчанию, выделите его название в списке и щелкните на кнопке Set. Откроется еще одно диалоговое окно со специфическими для данного контроллера параметрами. Если необходимо вернуться к исходным установкам контроллера, щелкните на кнопке Restore to Factory Settings (Возвратиться к исходным установкам) вкладки Animation.
Установка контроллера по умолчанию не сопровождается изменением уже присвоенных контроллеров. |