Часть кнопок панели инструментов Display (Отображение) уже была рассмотрена в предыдущих разделах. Дополнительными кнопками являются:
Помимо уже описанной кнопки Edit Ranges (Правка диапазонов действия) панель Ranges (Диапазоны) содержат следующие кнопки:
Панель Extras (Границы) содержит всего две кнопки:
Окно состоит из верхней части, имеющей разделы Source Objects (Объекты-источники), Source Time Range (Диапазон времени источника) и Apply To (Применить к), и нижней части, представленной свитком Object Mapping (Соответствие объектов). В правой половине нижней части окна в разделе Current Nodes (Текущие узлы) перечисляются все объекты текущей сцены, которые могут служить приемниками анимации.
Чтобы присоединить анимацию, необходимо выполнить следующие действия:
выбрать источник присоединяемой анимации, используя средства из раздела Source Objects (Объекты-источники) в верхней части окна Animation (Присоединение анимации); выбрать способ присоединения анимации, используя средства управления из раздела Source Time Range (Диапазон времени источника); указать, к каким именно параметрам объектов текущей сцены должна применяться присоединяемая анимация, используя элементы управления раздела Apply To (Применить к); установить соответствие объектов-источников и текущих объектов с помощью средств свитка Object Mapping (Соответствие объектов) в нижней части окна; выполнить операцию присоединения.Выбор источника: присоединение анимации из другого файла
Если требуется присоединить анимацию из файла другой сцены 3ds max, щелкните па кнопке Source File (Файл-источник) в разделе Source Objects (Объекты-источники). В появившемся окне Source File (Файл-источник) укажите нужный тип файла:
3ds max Animation (*. anm) - файлы анимаций персонажных сборок 3ds max; 3ds max (*. max) - файлы сцен 3ds max; xml scene (*. xml) - файлы анимаций персонажных сборок, сохраненные в текстовом формате.Выделите нужный файл в списке и щелкните на кнопке Open (Открыть). Все объекты сцены-источника анимации появятся в списке Source Nodes (Узлы-источники) в левой части свитка Object Mapping (Соответствие объектов), как показано на рис. 18. 49. Объекты, имеющие ключи анимации, выделяются красным цветом. Объекты, анимированные с использованием процедурных контроллеров, выделяются зеленым цветом.
Окно диалога Merge Animation (Присоединение анимации) после загрузки объектов из файла-источника присоединяемой анимации
Рис. 18. 49. Окно диалога Merge Animation (Присоединение анимации) после загрузки объектов из файла-источника присоединяемой анимации
Выбор источника: присоединение анимации от объектов этой же сцены
Чтобы присоединить анимацию от какого-то объекта или иерархической структуры объектов текущей сцены, щелкните на кнопке Source Object (Объект-источник). В результате появится типовое окно Select Objects (Выделение объектов). Выделите имена объектов-источников в списке окна и щелкните на кнопке Select (Выделить).
Выбранные объекты появятся в списке Source Nodes (Узлы-источники) в левой части свитка Object Mapping (Соответствие объектов). Объекты, имеющие ключи анимации, выделяются красным цветом. Объекты, анимированные с использованием процедурных контроллеров, выделяются зеленым цветом.
Выбор способа присоединения анимации
Выберите способ присоединения анимации, установив переключатель в разделе Source Time Range (Диапазон времени источника) в одно из двух положений:
Replace Animation (Заменить анимацию) - режим полной замены анимации текущих объектов на анимацию объектов-источников; Paste to Existing Animation (Вставить в существующую анимацию) - режим вставки заданного временного интервала анимации объектов-источиков в заданную точку диапазона анимации текущих объектов. При установке этого переключателя становятся доступными средства настройки временных параметров присоединяемой анимации: Match Source File Time (По интервалу времени источника) - интервал времени присоединяемой анимации устанавливается равным активному временному сегменту файла-источника анимации; Start Time (Время начала), End Time (Время окончания) - счетчики, позволяющие задать номера кадров начала и конца диапазона времени присоединяемой анимации; Insert Animation to Frame (Вставить анимацию с кадра) - задает номер кадра, начиная с которого в текущую сцену будет вставлен диапазон анимации объекта-источника. Если в этом кадре текущей сцены уже имеется ключ анимации, то он будет удален; Relative (Относительный) - величина вставляемого параметра анимации отсчитывается относительно величины параметра анимации объекта-приемника в точке вставки; Absolute (Абсолютный) - вставка параметра анимации производится без изменения его абсолютной величины.Выбор параметров анимации текущих объектов
С помощью флажков группы Apply To (Применить к) укажите, к каким трекам текущих объектов будет присоединяться анимация:
Transform (Преобразование) - анимация будет применена к трекам преобразования, которое дополнительно выбирается с помощью флажков Position (Положение), Rotation (Поворот), Scale (Масштаб); IK (Обратная кинематика) - анимация будет применена к трекам контроллеров обратной кинематики, описываемых в главе 19 «Анимация связанных объектов»; Modifiers (Модификаторы) - будет присоединена анимация модификаторов, однако для этого текущие объекты должны иметь в стеке те же модификаторы, что у объектов-источников; Custom Attributes (Специальные атрибуты) - будет присоединена анимация специальных атрибутов, добавленных пользователем. Порядок создания специальных атрибутов описывается в главе 19 «Анимация связанных объектов». Если у текущих объектов отсутствуют специальные атрибуты, имеющиеся у объектов-источников, то установка флажка Add New Defs (Добавить новые определения) обеспечит при необходимости создание таких атрибутов; Base Objects (Базовые свойства объектов) - будет присоединена анимация характеристических параметров объектов, таких как радиус или высота; Materials/Maps (Материалы/Карты текстур) - будет присоединена анимация параметров материалов и текстурных карт; Visibility Tracks (Треки видимости) - будет присоединена анимация на треках свойства видимости объектов.Установление соответствий объектов
Установление однозначных соответствий объектов-источников и текущих объектов, которым будут назначены треки присоединяемой анимации, производится в свитке Object Mapping (Соответствие объектов). Чтобы упростить выбор объектов-источников анимации, можно установить флажок Show Animated Only (Показывать только анимированные) в нижней части свитка. В итоге в столбце Source Nodes (Узлы-источники) останутся только объекты-источники, имеющие анимацию.
Установление соответствия можно осуществить двумя способами.
Первый способ состоит в том, чтобы вручную с помощью мыши перетащить копии имен объектов-источников анимации из столбца Source Nodes (Узлы-источники) в столбец Merge Nodes (Присоединяемые узлы), расположив их точно напротив перечисленных в столбце Current Nodes (Текущие узлы) имен текущих объектов, которым требуется присоединить треки анимации (рис. 18. 50).
Справа от имен текущих...
Рис. 18. 50. Справа от имен текущих объектов, перечисленных в столбце Current Nodes (Текушие узлы), в столбце Merge Nodes (Присоединяемые узлы) методом перетаскивания вручную расположены имена объектов-источников анимации
Второй способ состоит в автоматическом поиске соответствующих объектов. Программа считает соответствующими объекты с одинаковыми именами. Часто имена соответствующих объектов-источников и текущих объектов отличаются только префиксами. Это характерно для трехмерных персонажей, элементы структуры тел которых именуются одинаково, скажем, Golova, Sheia, Lev_ruka, Prav_ruka и т. п., с добавлением префикса по имени персонажа, например. Maxik-Golova, Maxik-Sheia, Maxik-Lev_ruka и т. п. В примере, показанном ранее на рис. 18. 49, среди объектов-источников и текущих объектов также имеются объекты, имена которых отличаются только префиксами Lamp0l- и Lamp02-. Это объекты из состава иерархических цепочек, образующих модели двух настольных ламп.
Чтобы программа max 6 могла автоматически установить соответствие между объектами, имеющими одинаковые имена, но разные префиксы, можно воспользоваться масками имен.
Введите в текстовое иоле Source Objects (Объекты-источники) маску префикса имен объектов-источников, например Lamp0l-*, а в текстовое поле списка Current Objects (Текущие объекты) - маску префикса имени текущих объектов, например LampOl-*. Щелкните на кнопке справа от обоих текстовых полей для обновления списков объектов. В списках
Кнопки со стрелками позволяют перемещать имена выделенных объектов вверх и вниз по списку для точной подгонки соответствия.
Выполнение процедуры присоединения анимации
После того как указаны нужные значения параметров и установлены соответствия объектов-источников и текущих объектов, щелкните на кнопке Merge Animation (Присоединить анимацию). При удачном завершении операции появится сообщение Merge Completed (Присоединение выполнено). Щелкните в окне сообщения на кнопке ОК.
Имена текущих объектов, которым назначена присоединенная анимация, также окрасятся красным или зеленым цветом в списке Current Nodes (Текущие узлы).
Кнопка Save Mapping (Сохранить соответствие) позволяет запомнить настроенное соответствие объектов-источников и текущих объектов в файле формата *. mam. В последующем можно будет загрузить параметры такого соответствия, используя кнопку Load Mapping (Загрузить соответствие).
Свитки со средствами управления контроллерами, основанными на ключах анимации, позволяют изменять числовые значения и параметры интерполяции каждого ключа методами, похожими на те, которые реализуются при помощи окна диалога Track View (Просмотр треков). Например, параметры, содержащиеся в свитках Key Info (Basic) (Справка о ключах (Базовая)) и Key Info (Advanced) (Справка о ключах (Дополнительная)) полностью идентичны параметрам, представленным в окне диалога Key Info (Справка о ключах), вызываемом с помощью меню ключей на строке треков или щелчком правой кнопкой мыши на значке ключа анимации в любой из модификаций окна Track View (Просмотр треков). Если в текущем кадре имеется ключ анимации контроллера, выделенного в свитке Assign Controller (Назначить контроллер), то в свитках параметров этого контроллера будут обозначены числовые характеристики ключа и метода интерполяции его значений.
Различные параметры свитков командной панели Motion (Движение) поясняются ниже в разделах, посвященных описанию конкретных типов контроллеров и ограничителей.
Переключитесь на командную панель Motion (Движение). В свитке Assign Controller (Назначить контроллер) обратите внимание на то, что выбранный контроллер не заменил собой прежний, а объединился с ним с помощью составного контроллера List (Список).
Предположим, к примеру, что требуется заставить объект, уже анимированный по положению, дополнительно подергиваться в такт музыке. Выделите объект и выберите в меню Animation (Анимация) команду Position Controllers > Audio (Контроллеры положения > Аудио). В результате поверх исходного контроллера Position XYZ (Положение по XYZ). управляющего треком Position (Положение), на этот трек помещается контроллер List (Список). Контроллер Position XYZ (Положение по XYZ) становится элементом списка контроллеров, а в качестве второго элемента добавляется выбранный контроллер Audio (Аудио), как показано на рис. 18. 56. С помощью данного контроллера можно заставить объект совершать движения в такт выбранному файлу звукозаписи в дополнение к анимации перемещения, управляемой контроллером Position XYZ (Положение по XYZ).
В свитке Assign Controller...
Рис. 18. 56. В свитке Assign Controller (Назначить контроллер) командной панели Motion (Движение) на треке Position (Положение) виден составной контроллер List (Список) с контроллерами Position XYZ (Положение по XYZ) и Audio (Аудио) в составе списка
Настройка контроллеров, добавляемых с помощью меню Animation (Анимация), выполняется в окне диалога Track View (Просмотр треков) или на командной панели Motion (Движение). Порядок настройки конкретных контроллеров описывается далее в разделе «Настройка параметров контроллеров и ограничителей анимации».
При назначении ограничителей с использованием меню Animation (Анимация) ведомому объекту назначается контроллер List (Список), а ограничитель помещается в состав списка наряду с уже имевшимся на данном треке контроллером анимации. Например, при назначении объекту ограничителя Path Constraint (Ограничитель Путь) на трек Position (Положение) объекта автоматически помещается контроллер List (Список), а в состав списка включается имевшийся на этом треке контроллер Position XYZ (Положение по XYZ) и ограничитель Path Constraint (Ограничитель Путь) (рис. 18. 58).
В свитке Assign Controller...
Рис. 18. 58. В свитке Assign Controller (Назначить контроллер) на треке Position (Положение) виден составной контроллер List (Список), включающий в себя контроллер Position XYZ (Положение по XYZ) и ограничитель Path Constraint (Ограничитель Путь)
Настройка параметров контроллера Audio
Для настройки параметров контроллера выполните следующие действия:
Для выбора источника звуковых колебаний щелкните на кнопке Choose Sound (Выбрать звук) и выберите звуковой файл форматов avi или wav в стандартном окне просмотра файлов. Для отмены источника звука, назначенного контроллеру, щелкните на кнопке Remove Sound (Удалить звук). Управляющие значения, формируемые контроллером, представляют собой результат деления текущей амплитуды звука на максимальную амплитуду. Сбросьте флажок Absolute value (Абсолютное значение), чтобы в качестве максимальной амплитуды использовалось максимальное возможное значение (для 8-битовых записей звука максимальная возможная амплитуда составляет 128, а для 16-битовых - 32 768). Если данный флажок установлен, в качестве максимальной амплитуды будет использовано наибольшее значение из текущего звукового файла, что увеличивает нормированные выходные значения. Если необходимо использовать «живой» звук, поступающий с внешнего устройства, установите флажок Enable Real-Time Device (Использовать источник реального звука) и выберите тип устройства в раскрывающемся списке раздела Real Time Control (Управление реальным звуком). Настройте параметры фильтрации шумов звука в разделе Sample (Выборка): Threshold (Порог) - задает уровень отсечки звуковых колебаний снизу для удаления шумов. Все значения ниже порогового обнуляются. При значении, равном О, порог не оказывает влияния на звук, а при значении, равном 1, все отсчеты звукового колебания обнуляются; Oversampling (Усреднение) - позволяет сгладить форму звукового колебания, усредняя соседние отсчеты, число которых задается в счетчике; Fast TrackView (Быстрый показ в окне Просмотра треков) - установка этого флажка позволяет оперативно наблюдать результаты усреднения в окне Track View (Просмотр треков). Определите минимальные и максимальные значения, выдаваемые контроллером, используя две группы счетчиков X, Y и Z. Счетчики группы Base Scale (Опорный масштаб) задают величины возвращаемых значений при амплитуде звука, равной 0, а счетчики группы Target Scale (Предельный масштаб) - при максимальной амплитуде звука. Выберите в разделе Channel (Канал) канал звука, который будет управлять анимацией, установив переключатель в одно из положений: Left (Левый), Right (Правый) или Mix (Объединенный).Завершив настройку, щелкните на кнопке Close (Закрыть), чтобы закрыть окно диалога.
Рассмотрим назначение отдельных кнопок сглаживания:
Щелкните на кнопке Assign Controller (Назначить контроллер). В появившемся окне диалога выделите строку MasterBlock (Мастер-блок) и щелкните на кнопке ОК. Появится окно Master Block Parameters (Параметры мастер-блока), показанное на рис. 18. 72. Щелкните в этом окне на кнопке Add (Добавить).
Окно диалога Master Block Parameters (Параметры мастер-блока) служит для создания мастер-блока
Рис. 18. 72. Окно диалога Master Block Parameters (Параметры мастер-блока) служит для создания мастер-блока
Появится окно диалога Track View Pick (Выбор треков), позволяющее указать треки анимации, ключи которых должны быть помещены в блок. В этом окне отображаются только треки параметров, имеющих анимацию. Выделите нужные треки, удерживая клавишу Ctrl, и щелкните на кнопке ОК. На рис. 18. 73 показан пример, где для включения в мастер-блок выделены три трека положения, хранящие ключи анимации ног и таза персонажа. С помощью ключей выполнена анимация одного цикла походки - шагов левой и правой ногой. С помощью контроллера Block (Блок) требуется выполнить анимацию нескольких шагов.
В окне диалога Track View Pick (Выбор треков) выделены треки анимированных параметров, которые нужно включить в мастер-блок
Рис. 18. 73. В окне диалога Track View Pick (Выбор треков) выделены треки анимированных параметров, которые нужно включить в мастер-блок
После щелчка на кнопке ОК в окне Track View Pick (Выбор треков) появится окно Block Parameters (Параметры блока), показанное на рис. 18. 74. В этом окне можно назначить блоку анимации имя. По умолчанию присваивается имя Block, но лучше указать смысловое имя, например Шаг, если речь идет об анимации походки персонажа. Далее следует указать временной диапазон действия блока, установив нужные номера кадров в счетчиках Start (Начало) и End (Конец). В счетчике End (Конец) следует устанавливать номер кадра, на единицу превышающий номер кадра последних ключей анимации на треках, включенных в блок, иначе последние ключи будут потеряны. Если щелкнуть на ноле образца цвета справа от счетчиков, то можно настроить цвет окраски блока при его отображении в окне просмотра треков. Выполнив нужные настройки, щелкните на кнопке ОК.
Окно диалога Block Parameters (Параметры блока) позволяет настроить имя, временные параметры и цвет блока
Рис. 18. 74. Окно диалога Block Parameters (Параметры блока) позволяет настроить имя, временные параметры и цвет блока
Произойдет возврат в окно диалога Master Block Parameters (Параметры мастер-блока), в списке которого появится имя созданного блока. Помимо упомянутой кнопки Add (Добавить) в этом окне имеются следующие инструменты:
Add Selected (Добавить выделенные) - позволяет добавить в состав создаваемого блока треки анимации, заранее выделенные в окне просмотра треков; Replace (Заменить) - позволяет заменить блок, имя которого выделено в списке окна, вновь вызывая окно диалога Track View Pick (Выбор треков); Remove (Удалить) - служит для удаления блока, имя которого выделено в списке; Save (Сохранить), Load (Загрузить) - служат для сохранения выделенного блока анимации в файле типа *. blk и загрузки ранее сохраненных блоков анимации. При загрузке вызывается окно диалога Attach Controls (Управление присоединением), позволяющее указать место вставки треков с анимацией в окно просмотра треков; текстовое поле и образец цвета в нижней части окна служат для переименования и изменения цвета блока, имя которого выделено в списке окна.Закончив настройку блока, щелкните на кнопке ОК. На треке параметра Block Control (Управление блоком) в окне просмотра треков появится ветвь MasterBlock (Мастер-блок), содержащая все ключи тех параметров анимации, которые были выбраны для включения в блок (рис. 18. 75). Чтобы внести изменения в параметры мастер-блока, щелкните на треке MasterBlock (Мастер-блок) в окне дерева иерархии правой кнопкой мыши и выберите в меню команду Properties (Свойства). Появится уже описанное окно диалога Master Block Parameters (Параметры мастер-блока).
В окне диалога Track View Pick (Выбор треков) выделены треки анимированных параметров, которые нужно включить в мастер-блок
Рис. 18. 75. В окне диалога Track View Pick (Выбор треков) выделены треки анимированных параметров, которые нужно включить в мастер-блок
Для добавления новых блоков с целью циклического повтора анимации раскройте окно Track View - Dope Sheet (Просмотр треков - Диаграмма ключей) и щелкните правой кнопкой мыши в окне ключей на треке MasterBlock (Мастер-блок), имеющем вид широкой белой полосы. В появившемся меню выберите команду, соответствующую имени ранее настроенного блока анимации. Будет создан блок в виде прямоугольника того цвета, который был задан для блока при его настройке. Можно создать несколько одинаковых блоков (рис. 18. 76). В центре блока указывается назначенное ему имя.
В окне диалога Track View - Dope Sheet (Просмотр треков - Диаграмма ключей) созданы три новых блока анимации
Рис. 18. 76. В окне диалога Track View - Dope Sheet (Просмотр треков - Диаграмма ключей) созданы три новых блока анимации
Для настройки каждого блока анимации используйте следующие приемы:
для перемещения блока по шкале времени щелкните на его центре и перетаскивайте блок влево или вправо; для изменения масштаба времени действия блока щелкните на его левом или правом нижнем углу, где изображен кружок, и перетаскивайте только один край блока, сжимая или растягивая интервалы между ключами анимации; выделите блок, щелкнув на нем, а затем щелкните на центре блока правой кнопкой мыши, чтобы вызвать окно диалога Block Key Properties (Свойства ключей блока), показанное на рис. 18. 77. В этом окне установите флажок Relative (Относительно), чтобы ключи анимации, включенные в состав блока, переносились во времени с учетом относительного изменения положений анимируемых объектов. Например, если с помощью блоков анимируется походка, то установка флажка Relative (Относительно) обеспечит последовательное движение персонажа вперед. В счетчиках Start (Начало) и End (Конец) можно указать точные значения номеров кадров, соответствующих началу и концу действия блока.
Окно диалога Block Key Properties (Свойства ключей блока)
Рис. 18. 77. Окно диалога Block Key Properties (Свойства ключей блока)
Для удаления блока анимации выделите его и просто нажмите клавишу Delete. Для полного удаления трека MasterBlock (Мастер-блок) на ветви трека Block Control (Управление блоком) следует щелкнуть на этом треке правой кнопкой мыши и выбрать в меню команду Properties (Свойства). В списке появившегося окна диалога List Controller (Контроллер списка), описываемого далее в разделе «List», нужно выделить строку HasterBlock (Мастер-блок) и щелкнуть на кнопке Delete (Удалить).
Для большего удобства использования контроллера поворота по Эйлеру в max 6 имеется система координат Gimbal (Карданная), описанная в главе 4 «Выделение и преобразование объектов».
В max 6 данный контроллер применяется для управления поворотом по умолчанию. В сценах, созданных в программе 3ds max прежних версий, для анимации поворота использовался контроллер ТСВ (Натяжение, непрерывность и смещение). Для замены этого контроллера на более удобный Euler XYZ (XYZ по Эйлеру) разверните в окне просмотра треков дерево треков объекта, анимируемого по повороту. Выделите трек преобразования Rotation (Поворот). Щелкните на кнопке Assign Controller (Назначить контроллер) и выберите в появившемся окне строку Euler XYZ (XYZ по Эйлеру).
Чтобы получить доступ к параметрам данного контроллера, щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) командной панели Motion (Движение) на кнопке Rotation (Поворот). Появятся свитки Euler Parameters (Параметры управления по Эйлеру), Key Info (Basic) (Справка о ключах (Базовая)) и Key Info (Advanced) (Справка о ключах (Дополнительная)), показанные на рис. 18. 80.
Свитки параметров управления по Эйлеру на панели Motion (Движение)
Рис. 18. 80. Свитки параметров управления по Эйлеру на панели Motion (Движение)
Настройка параметров контроллера поворота по Эйлеру
Выберите в раскрывающемся свитке Axis Order (Порядок осей) последовательность чередования осей координат, в которой будет рассчитываться поворот.
Для отображения параметров одномерных контроллеров поворота по каждой из осей щелкните на одной из кнопок X, Y или Z, входящих в группу Rotation Axis (Ось вращения).
Настройте параметры одномерных контроллеров, в качестве которых используются Bezier Float (Безье с плавающей точкой), в свитках Key Info (Basic) (Справка о ключах (Базовая)) и Key Info (Advanced) (Справка о ключах (Дополнительная)), как было описано в разделе «Bezier».
Настройка параметров контроллера Expression
Для создания новой переменной алгоритмического выражения задайте ее имя в поле Name (Имя), установите переключатель, определяющий тип переменной, в положение Scalar (Скалярная) или Vector (Векторная) и щелкните на кнопке Create (Создать). Имя переменной появится в списке Scalars (Скаляры) или Vectors (Векторы) в нижней части окна. Для удаления переменной выделите ее имя и щелкните на кнопке Delete (Удалить). К примеру, в окне на рис. 18. 81 создана скалярная переменная Alpha.
Задайте при необходимости величину временного сдвига анимации переменной, который будет учитываться при анимации, в счетчике Tick Offset (Сдвиг в тиках).
Чтобы присвоить переменной постоянное значение, выделите ее имя в соответствующем списке, щелкните на кнопке Assign to Constant (Назначить константе) и введите значение переменной в появившемся окне диалога, после чего щелкните на кнопке ОК. При присвоении значения векторной переменной в окне диалога будут представлены три счетчика но числу компонентов вектора. К примеру, в окне на рис. 18. 81 скалярной переменной Alpha присвоено постоянное значение 10.
Чтобы связать переменную с тем или иным контроллером анимации, выделите имя переменной в соответствующем списке и щелкните на кнопке Assign to Controller (Назначить контроллеру). Появится окно диалога, содержащее дерево иерархии окна Track View (Просмотр треков). Выберите трек анимации и щелкните на кнопке ОК.
Введите в поле Expression (Функция) алгоритмическое выражение, связывающее значения введенных переменных и описывающее поведение анимируемого параметра во времени. При этом можно использовать большое число встроенных функций, констант и предопределенных переменных max 6, перечень которых появляется в отдельном окне после щелчка на кнопке Function List (Перечень функций). Для ознакомления с ними обратитесь к электронному справочнику по max 6.
Щелкните на кнопке Debug (Отладка), чтобы вызвать окно диалога Expression Debug Window (Окно отладки алгоритмического выражения) с перечнем значений всех переменных и результирующим значением алгоритмического выражения (Expression value) на момент текущего кадра анимации (рис. 18. 82). Щелчок на кнопке Evaluate (Оценить) позволяет рассчитать значение функции на момент текущего кадра. Это значение нигде не отображается.
Окно диалога Expression...
Рис. 18. 82. Окно диалога Expression Debug Window (Окно отладки алгоритмического выражения) показывает значения назначенных и встроенных переменных, а также выражения в целом
Для сохранения созданного алгоритмического выражения в виде текстового файла с расширением. xpr щелкните на кнопке Save (Сохранить), а для загрузки готового алгоритмического выражения - на кнопке Load (Загрузить).
Закончив настройку алгоритмического выражения, щелкните на кнопке Close (Закрыть).
Для доступа к параметрам этого контроллера на командной панели Motion (Движение) щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) на кнопке преобразования, которому назначен данный контроллер. Появится свиток, в название которого включается тип преобразования, например Position List (Список контроллеров положения).
Контроллеры, включенные в список, применяются для анимации параметра последовательно, в порядке следования в списке сверху вниз. Каждый вновь добавляемый контроллер помещается в нижнюю строку списка. Под треком, управляемым контроллером List (Список), появляется дополнительный трек с именем Available (Доступный). Этот трек является пустым треком - местозаполнителем, позволяющим добавлять (или вставлять из буфера) новые контроллеры в список.
Настройка параметров контроллера List
Для добавления нового контроллера в список выделите в свитке Assign Controller (Назначить контроллер) командной панели Motion (Движение) или в окне контроллеров окна диалога Track View (Просмотр треков) трек Available (Доступный) на ветви преобразования, которому назначен контроллер управления по списку. Щелкните правой кнопкой мыши и выберите в появившемся меню команду Assign Controller (Назначить контроллер). Выберите нужный контроллер в появившемся окне диалога, и трек этого контроллера будет вставлен непосредственно над треком Available (Доступный), а название контроллера появится в нижней части списка.
Для управления списком используйте следующие элементы управления окна диалога List Controller (Контроллер списка):
Чтобы удалить контроллер из списка, вырезать и вставить его в другое место списка, выделите имя контроллера в списке и используйте кнопки Delete (Удалить), Cut (Вырезать) и Paste (Вставить). Для активизации любого контроллера в списке выделите его и щелкните на кнопке Set Active (Активизировать). Если активизированный контроллер основывается на ключах анимации, то можно в интерактивном режиме настроить ключи анимации тех треков, которым назначен контроллер List (Управление по списку), и эти ключи будут запомнены активным контроллером. Если же активизирован процедурный контроллер, то возможность интерактивной настройки ключей анимации будет отсутствовать.Настройка параметров ограничителя Link
Рассмотрим настройку параметров ограничителя на примере анимированной сцены, в которой система из двух механических захватов должна перемещать цилиндрическую деталь, передавая ее друг другу (рис. 18. 85). Ограничитель Link (Связь) назначен на трек Transform (Преобразование) цилиндрической детали, расположенной у левого края рис. 18. 85. Анимация имеет следующий сценарий. С кадра 0 по кадр № 22 первый рычаг (слева на рисунке) поворачивается к детали и сжимает захват. С кадра № 22 до кадра № 40 этот рычаг поворачивается обратно, перемещая цилиндр ко второму рычагу. С кадра № 40 до кадра № 42 первый рычаг разжимает захват, а второй сжимает, принимая деталь. С кадра № 42 до кадра № 80 второй рычаг поворачивается на 180°, перемещая деталь. С кадра № 80 до кадра № 100 второй рычаг разжимает захват и возвращается в исходное положение.
Исходное положение объектов анимации, основанной
Рис. 18. 85. Исходное положение объектов анимации, основанной на использовании ограничителя Link (Связь), на момент кадра 0
Установив ползунок таймера анимации на отметку кадра № 0, выделите цилиндр и щелкните на кнопке Link to World (Глобальная связь) в свитке Link Params (Параметры связи). Ани-мируемый объект связывается с глобальной системой координат (World). Это исключит его подчинение любому родительскому объекту до момента установления связи с таким объектом. В графе Target (Цель) списка появится строка World, а в графе Frame # (№ кадра) будет указан номер текущего кадра - № 0.
Чтобы указать, какой объект будет играть роль родительского по отношению к объекту, управляемому ограничителем Link (Связь), переместите ползунок таймера к отметке кадра, в котором должна начать действовать связь. В нашем примере переместите ползунок на отметку кадра № 22 (рис. 18. 86, а). Щелкните на кнопке Add Link (Добавить связь), а затем выделите нужный объект, скажем, сферу на конце первого рычага. Имя объекта-предка появится в столбце Target (Цель) в средней части свитка Link Params (Параметры связи). Объект, управляемый ограничителем Link (Связь), всегда должен иметь хотя бы один родительский объект.
На момент кадра №...
Рис. 18. 86. На момент кадра № 22 цилиндрическая деталь связывается со сферой на конце первого рычага (а), в результате чего начинает перемешаться вместе с рычагом (б)
Вновь переместите ползунок таймера к отметке кадра, в котором объект, управляемый ограничителем Link (Связь), должен быть связан с другим родительским объектом. В нашем примере это кадр № 42. К моменту этого кадра первый рычаг завершает поворот в сторону второго, увлекая за собой цилиндр (рис. 18. 86, 6). Переключите связь цилиндра с первого рычага на второй. Кнопка Add Link (Добавить связь) должна быть нажата, поэтому просто щелкните на нужном объекте, скажем, на сфере на конце второго рычага. Имя объекта-предка и номер текущего кадра появятся в столбце Target (Цель) свитка Link Params (Параметры связи).
Теперь при повороте второго рычага цилиндрическая деталь будет двигаться вместе с ним (рис. 18. 87, а).
Цилиндр связан со...
Рис. 18. 87. Цилиндр связан со сферой на конце второго рычага и перемешается вместе с ним (а), затем цилиндр связывается с глобальным пространством, и рычаг возвращается в исходное положение налегке (б)
Наконец, переместите ползунок таймера к отметке кадра № 80 и щелкните на кнопке Link to World (Глобальная связь), вновь связав цилиндр с глобальной системой координат. В результате второй рычаг может вернуться в исходное положение, а цилиндр остается у правого края экрана (рис. 18. 87, б). Еще раз щелкните на кнопке Add Link (Добавить связь), чтобы выключить режим добавления связей.
Список в средней части свитка Link Params (Параметры связи) должен теперь выглядеть, как показано ранее на рис. 18. 84.
При необходимости удалить связь анимируемого объекта с объектом-предком выделите имя объекта-предка в иоле списка и щелкните на кнопке Delete Link (Удалить связь).
Когда в списке выделяется имя того или иного объекта, в счетчике Start Time (Время начала) отображается момент времени (номер кадра), начиная с которого выделенный объект будет играть роль родительского по отношению к управляемому объекту. Для изменения этого момента установите в счетчике нужный номер кадра.
Переключатель Key Mode (Режим ключей) управляет тем, будут ли создаваться ключи в процессе переключения связей, и у каких объектов. Он может быть установлен в одно из трех положений:
No Key (Нет ключей) - при назначении связей ключи анимации не будут создаваться (этот вариант используется по умолчанию); Key Nodes (Ключи в узлах) - в моменты включения связей будут созданы ключи анимации для управляемого дочернего объекта, если установлен переключатель Child (Потомок), или для родительского объекта, если установлен переключатель Parent (Предок); Key Entier Hierarchy (Ключи для всей иерархии) - ключи в момент установления связи будут созданы как для объекта, так и для всех его предков, будь то управляемый объект, если установлен переключатель Child (Потомок), или родительский объект, если установлен переключатель Parent (Предок).На командной панели Motion (Движение) при этом появится свиток LookAt Constraint (Ограничитель Линия взгляда), показанный на рис. 18. 89. Имя ведущего объекта указывается в графе Target (Цель) списка, расположенного в средней части свитка.
Свиток LookAt Constraint (Ограничитель Линия взгляда)
Рис. 18. 89. Свиток LookAt Constraint (Ограничитель Линия взгляда)
При использовании описанного способа ограничитель линии взгляда не заменяет собой контроллер поворота, а добавляется к нему посредством составного контроллера List (Список).
Второй способ реализуется с помощью окна диалога Track View (Просмотр треков) или командной панели Motion (Движение) и состоит в том, чтобы просто заменить контроллер трека Rotation (Поворот) анимируемого объекта с EulerXYZ (XYZ по Эйлеру) на LookAt Constraint (Ограничитель Линия взгляда). В этом случае выбор целевого объекта следует произвести с помощью свитка LookAt Constraint (Ограничитель Линия взгляда), также появляющегося на панели Motion (Движение). Как это сделать, описывается далее.
Настройка параметров ограничителя линии взгляда
Для настройки параметров ограничителя выполните следующие действия:
Щелкните на кнопке Add LookAt Target (Указать цель взгляда) и выделите ведущий объект, на который должна быть направлена «линия взгляда» анимируемого объекта. По умолчанию в сторону целевого объекта ориентируется локальная ось Z ведомого объекта. Имя ведущего объекта указывается в графе Target (Цель) списка, расположенного в средней части свитка. В графе Weight (Вес) указывается доля влияния выбранной цели на анимируемый объект. Если целей будет несколько, то, изменяя значение параметра в счетчике Weight (Вес), можно управлять линией взгляда анимируемого объекта. Например, при наличии двух целей с весами по 50 % линия взгляда управляемого объекта будет направлена точно посередине между целевыми объектами. Чтобы удалить какой-то из целевых объектов, выделите его имя в списке и щелкните на кнопке Delete LookAt Target (Удалить цель взгляда). Чтобы установить, какая из осей локальной системы координат управляемого объекта должна указывать на объект-цель, используйте переключатель Select LookAt Axis (Выбор оси взгляда). Флажок Flip (Перевернуть) позволяет задать, должна выбранная ось указывать на объект или в противоположную от него сторону. Установка флажка Keep Initial Offset (Сохранить начальный сдвиг) заставит ведомый объект поворачиваться за ведущим, сохраняя при этом свою исходную ориентацию относительно ведущего объекта, как бы «глядя» несколько в сторону. Чтобы вручную установить исходную ориентацию ведомого объекта относительно ведущего, щелкните на кнопке Set Orientation (Установить орентацию) и поверните ведомый объект с помощью инструмента поворота. Для восстановления ориентации ведомого объекта точно на ведущий щелкните на кнопке Reset Orientation (Восстановить орентацию). Для управления длиной линии, указывающей направление взгляда, установите флажок Viewline Length Absolute (Абсолютная длина линии взгляда) и используйте счетчик Viewline Length (Длина линии взгляда). Если флажок сброшен, линия взгляда просто соединяет опорные точки управляемого и целевого объектов. Сбросьте флажок World (Глобальный) в разделе Select Upnode (Выделить выравниватель), чтобы отказаться от выравнивания управляемого объекта относительно осей глобальной системы координат и перейти к его выравниванию относительно любого объекта сцены, указываемого после щелчка на кнопке с надписью None (Отсутствует) справа от флажка. Укажите, чем будет управлять выравниватель, установив переключатель Upnode Control (Выравниватель управляет) в одно из положений: LookAt (Линия взгляда) или Axis Alignment (Выравнивание осей). Переключатели Source Axis (Ось источника) и aligned to Upnode Axis (Выравнивать по оси выравнивателя) служат для выбора оси выравниваемого объекта и влияющей на нее оси выравнивателя.Редактирование каждого такого ключа позволяет одновременно управлять анимацией большого числа подобъектов. Чтобы перейти к редактированию, щелкните на любом из ключей контроллера Master Point (Ведущая точка) правой кнопкой мыши. В результате появится окно диалога Key Info (Справка о ключах), показанное на рис. 18. 91.
Окно диалога Key Into (Справка о ключах) контроллера Master Point (Ведущая точка)
Рис. 18. 91. Окно диалога Key Into (Справка о ключах) контроллера Master Point (Ведущая точка)
В списке Subkeys (Дочерние ключи) перечисляются имена подобъектов, анимация которых управляется контроллером. В данном случае это отдельные вершины полисетки. Выделите имя любого из подобъектов, и в нижней части окна появится свиток с набором параметров контроллера, управляющего анимацией каждой отдельной вершины. В нашем примере было анимировано перемещение вершин, которое управляется контроллером Bezier Point3 (Трехкомпонентный Безье). Все параметры свитка Bezier Point3 (Трехкомпонентный Безье) и верхней части окна диалога Key Info (Справка о ключах) не отличаются от тех, которые были рассмотрены в разделе «Bezier».
Для выбора устройства, движение которого будет управлять объектом, щелкните на одной из кнопок с надписью None (Отсутствует) справа от надписей X/Y/Z Position (Положение no X/Y/Z). В появившемся окне Choose Device (Выбор устройства), показанном на рис. 18. 93, выделите строку Mouse Input Device (Устройство типа «мышь») и щелкните на кнопке ОК. На кнопке появится надпись Horizontal Mouse (Мышь горизонтально).
Окно диалога Choose Device (Выбор устройства) позволяет выбрать устройство, задающее движение объекта
Рис. 18. 93. Окно диалога Choose Device (Выбор устройства) позволяет выбрать устройство, задающее движение объекта
В нижней части окна Motion Capture\... \Position (Перехват движения\... \Положение) появится свиток Mouse Input Device (Устройство типа «мышь») со средствами настройки параметров перехвата движений мыши (рис. 18. 94).
Свиток Mouse Input Device (Устройство типа «мышь*) окна настройки параметров контроллера Motion Capture (Перехват движения)
Рис. 18. 94. Свиток Mouse Input Device (Устройство типа «мышь*) окна настройки параметров контроллера Motion Capture (Перехват движения)
Оставьте переключатель Mouse Axis (Ось мыши) в положении Horizontal (Горизонтально). Укажите в счетчике Scale (Масштаб) требуемый коэффициент масштаба между движениями мыши и движениями объекта. Установка флажка Flip (Перевернуть) приведет к тому, что движения мыши в одну сторону будут приводить к движениям объекта в противоположную сторону.
Переключитесь на командную панель Utilities (Утилиты) и щелкните на кнопке Motion Capture (Перехват движения). В свитке Motion Capture (Перехват движения), показанном на 18. 95, щелкните на строке... \Position (.. \Положение), где вместо многоточия будет указано имя анимируемого объекта, чтобы задать трек, управляемый перехватом движения Щелкни на кнопке Test (Тест), чтобы испытать качество движений объекта под действием перемещений мыши. При необходимости настройте масштабные коэффициенты в свитке Mouse Input Device (Устройство типа «мышь») окна диалога Motion Capture\... \Position (Перехват движения\.. \Положение).
Свиток Motion Capture (Перехват движения) командной панели Utilities (Утилиты)
Рис. 18. 95. Свиток Motion Capture (Перехват движения) командной панели Utilities (Утилиты)
Щелкните на кнопке Start (Пуск), чтобы включить режим записи. Перемещайте мышь, следя за сопровождающими ее движениями объекта. Программа автоматически создаст ключи анимации в каждом кадре. Запись завершится автоматически по достижении конца временного сегмента анимации. Чтобы уменьшить число ключей, создаваемых в процессе очередной записи, установите флажок Reduce Keys (Уменьшить число ключей) и увеличьте значение в счетчике Threshold (Порог).
С остальными параметрами свитка Motion Capture (Перехват движения) панели Utilities (Утилиты) ознакомьтесь самостоятельно с помощью справочной системы программы max 6.