Анимация по опорным кадрам
Программа LightWave специально разрабатывалась для облегчения работы художников-аниматоров, в этом и заключается одно из ее значительных преимуществ. Так, в Layout можно автоматически создавать новые опорные кадры, переместив элемент в каком-нибудь из кадров, или редактировать уже существующие. У этого подхода есть как положительные так и отрицательные стороны, но в конечном счете все решать вам.
Одно из преимуществ использования опции Auto Key Create (Автоматическое создание опорных кадров) заключается в том, что можно достаточно быстро создать траекторию движения объекта. Просто перейдите в кадр, который хотите сделать oпoрным, и переместите объект.
С помощью опции Auto Key (Автоматический опорный кадр), расположенной под указателем кадров, автоматически обновляется уже существующий текущий опорный кадр. Но необходимо помнить, что включение опции Auto Key не означает, что активирована еще и опция Auto Key Create. Поэтому может сложиться такая ситуация, что, редактируя элементы в кадре, вы изменяете существующий опорный кадр, а не создаете новый.
Функция Auto Key служит главным переключателем между двумя опциями. Если она неактивна, функции Auto Key Modify и Auto Key Create недоступны. Если функция Auto Key Create включена, то обязательно активна и функция Auto Key. Однако обратное утверждение будет неверным: при включении Auto Key функция Auto Key Create окажется недоступной. Таким образом, выбрав соответствующие опции, вы можете редактировать опорные кадры, а не создавать новые. С первого взгляда принцип действия Auto Key может показаться весьма запутанным, но все постепенно встанет на свои места, когда вы выполните приведенное ниже упражнение. В стандартной установке LightWave присутствуют обе функции, Auto Key и Auto Key Create. В дальнейшем будем полагать, что обе функции активны, чтобы вы быстрее смогли уяснить их назначение. В главе 6 вы отключили эти опции, поэтому до сих пор они были неактивными.
Не волнуйтесь, сейчас вы узнаете, как включить их снова.
Включение опций Auto Key
1. Чтобы активировать опцию Auto Key, щелкните по кнопке Auto Key под указателем кадров (рис. 10.1).4. Закройте окно Preferences (Настройки).

Автоматическое создание и изменение опорных кадров
1. Создайте объект или загрузите его в Layout.2. Перейдите на вкладку Items (Элементы), затем щелкните по кнопке Move (Переместить) на панели инструментов или нажмите клавишу Т. Запустится инструмент Move. Переместите объект на 2 м в отрицательном направлении вдоль оси Z (рис. 10.4).
4. Переместите объект в точку с координатами 0 m по оси Z и 2 m по оси X. Заметьте, что для отображения траектории вам не пришлось вызывать окно Create Motion Key (Создать опорный кадр). При перемещении объекта Layout автоматически создаст опорный кадр с номером 30 (рис. 10.5).
6. Переместите объект в точку с координатами 2 m по оси Z и 0 m по оси X. И снова Layout автоматически создаст опорный кадр и покажет траекторию движения объекта (рис. 10.6).
8. Переместите объект в точку с координатой 1 т, расположенную на оси X. Layout автоматически изменит траекторию перемещения объекта, так как кадр с номером 30 является опорным для создаваемой анимации (рис. 10.7).
С одной стороны, автоматическое создание опорных кадров очень удобно, поскольку позволяет сэкономить массу времени, но с другой стороны, это может привести к случайным изменениям уже существующих опорных кадров, поэтому используйте эту опцию очень осторожно. Дело в том, что команда Undo (Отменить) не сможет восстановить измененный опорный кадр, поскольку он создан функцией Auto Key, а не вами.
Управление опорными кадрами
При создании анимации сцены вам придется работать с огромным количеством опорных кадров. В действительности можно легко запутаться при манипуляциях уже с несколькими кадрами различных элементов сцены, что уж и говорить о десятках или сотнях... Конечно, указатель кадров в Layout является неплохим средством для визуальной идентификации опорных кадров, но он совсем не подходит для управления ими.Самый простой и удобный инструмент для работы с опорными кадрами - это Graph Editor (Редактор кривых).
Значительную часть времени вы проведете, работая именно с Graph Editor (рис. 10.8), поэтому очень важно получше изучить его возможности. Многие тонкие настройки редактора кривых не рассматриваются в этой книге, здесь описываются лишь наиболее важные функции, необходимые для повседневной работы.
Интерфейс Graph Editor
Channel list (Список каналов). При помощи этого иерархического списка можно выделять каналы текущей сцены и добавлять их в Channel bin;
Motion Graph (График движения). В этой области отображаются анимационные кривые для каналов, расположенных в Channel bin. Здесь вы можете управлять опорными кадрами. Вдоль горизонтальной оси отсчитывается время, вдоль вертикальной - значения анимационных кривых;
Curves (Кривые). В этой области содержится информация о выделенном опорном кадре.
Выбор каналов для редактирования
1. Создайте или загрузите сцену с анимацией.2. Щелчком мыши выберите элемент сцены.
3. Щелкните по кнопке Graph Editor, расположенной на панели инструментов, или нажмите клавиши Ctrl+F2. Откроется окно Graph Editor. В Channel bin будут находиться каналы выделенного элемента (рис. 10.10).
Добавление каналов в Channel bin
1. Создайте или загрузите сцену с несколькими объектами.2. На панели инструментов щелкните по кнопке Graph Editor или нажмите клавиши Ctrl+F2. Откроется окно Graph Editor.
3. Дважды щелкните по имени одного из элементов в Channel list. Каналы элемента, который вы выбрали в Channel list, заменят каналы, помещенные в списке Channel bin (рис. 10.14).
Graph Editor не будет автоматически показывать каналы выделяемого в Layout элемента. Если вы все же хотите, чтобы это происходило, включите опцию Track Item Selection (Отслеживать выделение элементов), поставив галочку в соответствующем окошке метки в окне Graph Editor.
Редактирование движений при помощи Graph Editor
Вы знаете, как выделять и добавлять каналы в Channel bin, теперь пора научиться редактировать траектории движений. В Graph Editor есть ряд инструментов для работы с опорными кадрами (рис. 10.18):Add Key (Добавить опорный кадр). При помощи этого инструмента можно добавлять и удалять ключевые кадры выделенной траектории. Щелкнув по кривой, вы добавляете опорный кадр, а если при щелчке удерживать нажатой клавишу Ctrl, опорный кадр удаляется;
Scale Key (Масштабировать опорный кадр). Инструмент позволяет масштабировать величины и временные параметры выделенных опорных кадров или всей кривой целиком. Чтобы осуществить масштабирование, щелкните в области Motion Graph и перемещайте мышь. Если при этом нажать клавишу Ctrl, опорные кадры масштабируются вдоль временной оси;
Roll Key (Вращать опорный кадр). Инструмент инвертирует значения в опорных кадрах в выделенном диапазоне. Например, если вы создали движения правой ноги при ходьбе персонажа, то для анимации левой ноги можете использовать уже готовые движения. Для этого необходимо скопировать опорные кадры и инвертировать их с помощью данного инструмента;
Zoom Box (Масштабирование). Данный инструмент необходим для изменения масштаба в области Motion Graph.
Создание и удаление опорных кадров
1. Создайте или загрузите сцену в Layout.2. Щелкните по элементу сцены, для которого созданы опорные кадры.
3. На панели инструментов щелкните по кнопке Graph Editor или нажмите клавиши Ctrl+F2. Откроется окно Graph Editor. В области Motion Graph изображены траектории выделенного объекта (рис. 10.19).
5. Удалите выделенный опорный кадр, нажав клавишу Del (рис. 10.21).
7. Щелкните в любом месте Motion Graph, чтобы создать опорный кадр к выбранной кривой (рис. 10.22).
Перемещая мышь в области Motion Graph и удерживая нажатой правую кнопку, вы можете выделить сразу несколько опорных кадров при помощи ограничивающего многоугольника.
Изменение существующего опорного кадра
1. Создайте или загрузите сцену с анимацией.2. Щелкните по анимированному объекту.
3. На панели инструментов щелкните по кнопке Graph Editor или нажмите клавиши Ctrl+F2. Откроется окно Graph Editor.
4. В Channel bin щелкните по каналу, имеющему траекторию (рис. 10.23).
. Щелкните по одному из опорных кадров на кривой движения (рис. 10.24).
При наведении указателя мыши на опорный кадр в Motion Graph отобразится информация о его значениях.
Чтобы изменить масштаб анимации по временной оси или одновременно переместить несколько опорных кадров, понадобится изменить сразу несколько опорных кадров, принадлежащих одной или нескольким кривым движения одновременно. На примере следующей процедуры вы научитесь масштабировать траекторию по временной шкале.Изменение нескольких опорных кадров
1. Создайте или загрузите сцену с анимацией.2. На панели инструментов щелкните по кнопке Graph Editor или нажмите клавиши Ctrl+F2. Откроется окно Graph Editor.
3. В Channel bin щелкните по каналу, имеющему несколько опорных кадров (рис. 10.27).
5. Чтобы выделить несколько опорных кадров, перемещайте мышь, удерживая нажатой правую кнопку (рис. 10.28).
Изменение масштаба участка кривой движения
1. На панели инструментов щелкните по кнопке Graph Editor или нажмите клавиши Ctrl+F2. Откроется окно Graph Editor.2. В списке Channel list дважды щелкните по камере (рис. 10.31).
4. В канал Camera.Position.X (Камера.Положение.Х) добавьте 10-15 опорных кадров (рис. 10.32).
6. При помощи ограничивающего прямоугольника выделите участок кривой с опорными кадрами (рис. 10.33). Motion Graph увеличит выделенный участок (рис. 10.34).
7. Чтобы отменить увеличение выделенного участка, щелкните правой кнопкой мыши.
В следующем примере вы будете работать над несложной анимацией - создадите прыгающий мячик. Сюжет прост: требуется, чтобы мяч три раза отскочил от поверхности с периодом в шесть секунд. Сделать это можно двумя способами - вручную создать нужные опорные кадры или для опции Post Behavior канала Y установить значение Repeat.
Настройка свойств кривой
Как вы уже, наверное, заметили, при выделении опорного кадра меняется набор элементов управления в нижней части окна Graph Editor, то есть отображаются свойства опорного кадра. Вы можете использовать эти настройки, чтобы вручную изменять опорные кадры, если с помощью мыши нельзя добиться необходимой точности (рис. 10.35): Frame (Кадр). В этом поле отображается номер опорного кадра. Чтобы изменить его, введите новое значение, точно так же, как делали это в Layout;Value (Значение). Здесь отображается значение выделенного опорного кадра. Изменения в это поле вы можете внести точно таким же образом, как перемещали кадр в интерфейсе Layout;
Pre Behavior (Поведение до). Этот элемент управления позволяет определить поведение кривой перед первым опорным кадром;
Post Behavior (Поведение после). Данный элемент управления позволяет задавать поведение кривой после завершающего опорного кадра;
Incoming Curve (Входящая кривая). Здесь определяется тип входящей кривой выделенного опорного кадра;
Tension (Напряжение). Данный элемент можно рассматривать как «облегчение» или «утяжеление» опорного кадра. Отрицательное значение в этом поле говорит о том, что объект, приближаясь к выделенному опорному кадру, замедляет движение, а положительное - ускоряет. В данном поле можно ввести любое значение от -1.0 до +1.0;
Continuity (Длительность). Этот элемент можно интерпретировать как преобразование движения при переходе через опорный кадр. Если в поле указать отрицательное значение, то траектория в точке, соответствующей опорному кадру, образует излом, а при положительном значении она будет проходить плавно. В данном поле можно ввести значения в интервале от -1.0 до +1.0;
Bias (Смещение). Данный параметр определяет, как элемент будет проходить через опорный кадр: огибать его сверху или снизу. Если в этом поле указать отрицательное значение, то объект минует опорный кадр несколько выше, а если ввести положительное - ниже. В этом поле также можно ввести любое значение в интервале от -1.0 до +1.0. При помощи меню Рге и Post Behavior можно определить траекторию движения. Например, выбрав из меню Post Behavior пункт Repeat, вы заставите объект повторять траекторию движения бесконечно. Если вы хотите более подробно изучить настройки Tension, Continuity, Bias и Incoming Curve, обратитесь к справочному руководству пользователя LightWave 3D.
Определение опции Post Behavior
1. В Modeler создайте сферу диаметром 1 м и загрузите ее в Layout.2. Перейдите к кадру с номером 30.
3. В окне проекции Layout щелкните по сфере.
4. Перейдите на вкладку Items (Элементы), чтобы на панели инструментов отобразился новый набор функций.
5. На панели инструментов щелкните по кнопке Move (Переместить) или нажмите клавишу Т. Переместите сферу в точку с координатой 2 ш, расположенную на оси Y (рис. 10.36).
7. Чтобы переместить сферу в исходное положение (рис. 10.37), щелкните по кнопке Reset (Восстановить) на панели инструментов.
10. Чтобы остановить анимацию, щелкните по кнопке паузы, которая находится под указателем кадров.
11. На панели инструментов щелкните по кнопке Graph Editor или нажмите клавиши Ctrl+F2. Откроется окно Graph Editor.
12. Чтобы поместить каналы сферы в список Channel bin, дважды щелкните по ее имени в Channel list (рис. 10.38).
14. Из выпадающего меню Post Behavior (Поведение после) выберите команду Repeat (Повторить). Обратите внимание, как изменился вид кривой: она повторяется через каждые 60 кадров (рис. 10.39).
15. Снова щелкните по кнопке Play. Цель достигнута: мячик подскакивает три раза за шесть секунд!
Модификаторы анимационных каналов
В LightWave есть несколько модификаторов каналов (Channel modifier), которые удобно использовать при создании стандартных движений. Здесь будет рассмотрен один из них - Oscillator (Осциллятор). Все модификаторы LightWave описываются в справочном руководстве пользователя.Используем сцену, созданную в предыдущем примере. Сфера перемещалась вверх-вниз, имитируя скачущий мяч. Но созданная анимация выглядит не очень правдоподобно. В реальном мире при контакте мяча с поверхностью происходит частичная потеря энергии, в результате каждый следующий подскок ниже предыдущего. Это происходит до тех пор, пока мяч не исчерпает весь запас энергии и не остановится.
Чтобы не создавать опорные кадры для такого движения вручную, можно воспользоваться модификатором канала, который сделает эту рутинную работу за вас. Модификатор для Y-канала сферы выполнит все необходимые вычисления, при этом вам не придется мучительно вспоминать физические законы движения подобной сферы. Модификаторы каналов - это существенная часть процесса создания анимации. Их использование позволяет сэкономить время, чтобы потратить его на отладку более сложных элементов.
Использование модификатора канала для создания траектории движения
1. Загрузите сферу, созданную для выполнения предыдущего примера.2. В поле последнего кадра сцены введите значение 180.
3. На панели инструментов щелкните по кнопке Graph Editor или нажмите клавиши Ctrl+F2. Откроется окно Graph Editor.
4. Дважды щелкните по имени сферы в списке Channel list, чтобы поместить ее каналы в Channel bin.
5. В списке Channel bin щелкните по каналу Sphere.Position.Y (Сфера.Положение.У).
6. В Graph Editor перейдите на вкладку Modifiers (Модификаторы), чтобы на экране отобразился новый набор опций (рис. 10.40).
10. В поле Wave Size (Амплитуда волны) введите 2 т.
11. В поле Damping (Спад) введите 75.
12. Закройте окно Oscillator, щелкнув по кнопке Continue (Продолжить). В области Motion Graph построена пунктирная кривая - кривая модификатора канала (рис. 10.44).
Нацеливание элементов в Layout
В восьмой главе рассказывалось, как использовать целевые объекты для направления источников света. В Layout можно нацеливать любые объекты. Давайте рассмотрим, как нацелить камеру на нулевой объект (null object).Нацеливание элементов
1. Перейдите на вкладку Items (Элементы), чтобы получить доступ к новому набору инструментов.2. Из выпадающего меню Add (Добавить) выберите пункты Objects -> Add Null (Объекты -> Добавить нулевой объект).
3. В диалоговом окне Null Object name (Имя нулевого объекта) введите Camera-Target. Чтобы присвоить имя, нажмите клавишу Enter.
4. Щелкните по кнопке Move (Переместить), расположенной на панели инструментов, или нажмите клавишу Т. Переместите объект Camera-Target в точку с координатой 2 т, расположенную на оси Y.
5. В окне проекции щелкните по камере.
6. На панели инструментов щелкните по кнопке Motion Options (Настройки движения) или нажмите клавишу М. Откроется окно Motion Options.
7. Из выпадающего меню Target Item (Целевой элемент) выберите пункт СаmraTarget (рис. 10.45). Камера будет нацелена на указанный объект, а в окне проекции отобразится пунктирная линия, указывающая на этот объект.
10. Перетащите объект в точку с координатой 4 т, расположенную на оси X (рис. 10.47).
Относительное позиционирование
При помощи такой мощной возможности Light Wave, как относительное позиционирование, вы можете определять координаты, угловое положение, размеры объекта относительно какого-либо другого объекта. При создании отношений типа «родитель-ребенок» все действия объекта-родителя повторяются объектом-ребенком. Самый простой пример, иллюстрирующий использование такой связи, -два синхронно перемещающихся по сцене объекта.Связь типа «родитель-ребенок» применима не только к двум объектам. Таким образом может быть соединено любое количество объектов. Вы можете связать несколько объектов с одним, который, в свою очередь, будет связан с еще одним объектом, и т.д. Число таких вариантов не ограничено. При этом формируется так называемая иерархия элементов.
Связывание элементов
1. Создайте объект, например, сферу, или загрузите его в Layout.2. Перейдите на вкладку Items.
3. Из выпадающего меню Add (Добавить) выберите пункты Objects -> Add Null (Объекты -> Добавить нулевой объект).
4. В появившемся диалоговом окне Null Object (Пустой объект) введите имя Object-Parent и нажмите клавишу Enter.
5. На панели инструментов щелкните по кнопке Move (Переместить) или нажмите клавишу Т. Переместите объект в точку с координатой 2 т, расположенную на оси Y (рис. 10.48).
7. На панели инструментов щелкните по кнопке Motion Options (Настройки движения) или нажмите клавишу М. Откроется окно Motion Options.
8. Из выпадающего меню Parent Item (Родительский элемент) выберите Пункт Object-Parent (рис. 10.49). Только что вы создали связь типа «родитель-ребенок», теперь сфера (объект-ребенок) переместится туда, где находится родительский объект, Object-Parent (рис. 10.50).
10. Переместите объект Object-Parent в точку на оси X с координатой 2 т. Заметьте, что сфера перемещается вслед за ним (рис. 10.51).
12. На панели инструментов щелкните по кнопке Reset (Восстановить), чтобы вернуть объект-родитель в исходное положение. Сфера переместится вслед за ним (рис. 10.52).
Например, нужно смоделировать движение колес автомобиля. Очевидно, что автомобиль имеет четыре колеса и каждое расположено на своем определенном месте. Конечно, можно создать анимацию для одного из колес, а затем установить связи типа «родитель-ребенок». Однако перемещение всех колес в положение объекта-родителя вряд ли будет выглядеть естественным. Нужно, чтобы они оставались на своих законных местах, то есть были соединены с шасси. В этом случае необходимо использовать опцию Parent in Place (Связь по месту нахождения).
Связь элементов по месту нахождения
1. Создайте объект или загрузите его в Layout. В данном примере используется уже знакомая вам сфера.2. Чтобы получить доступ к новым функциям, перейдите на вкладку temsI (Элементы).
3. Из выпадающего меню Add (Добавить), расположенного на панели инструментов, выберите пункты Object -> Add Null (Объект -> Добавить нулевой объект). В появившемся диалоговом окне введите имя объекта - Object-Parent.
4. На панели инструментов щелкните по кнопке Move (Переместить) или нажмите клавишу Т. Переместите объект в точку на оси Y с координатой 2 т.
5. Нажмите клавишу О. Откроется окно Preferences (Настройки), вкладка General Options (Общие настройки).
6. Отметьте галочкой опцию Parent in Place (Связь по месту нахождения) - рис. 10.53.
8. На панели инструментов щелкните по кнопке Motion Options (Настройки движения) или нажмите клавишу М. Откроется окно Motion Options.
9. Из выпадающего меню Parent (Родитель) выберите пункт Object-Parent. Обратите внимание, что сфера не переместилась в место расположения объекта-родителя.
10. Чтобы проверить существование связи между объектами, щелчком мыши выделите объект Object-Parent.
11. Переместите Object-Parent в точку с координатой - 2 т, расположенную на оси Z. Сфера передвинулась вдоль оси Z вслед за объектом-родителем, но при этом перемещение произошло относительно ее исходного положения (рис. 10.54).
13. Перетащите объект-родитель в точку с координатой 2 т, расположенную на оси Z (рис. 10.55).
14. Просмотрите созданную анимацию, щелкнув по кнопке Play.
Инверсионная кинематика
Чтобы освоить инверсную кинематику (Inverse Kinematics- IK), необходимо разобраться, что представляет собой прямая кинематика (Forward Kinematics - FK). В действительности все не так сложно. Прямая кинематика - это то, чем вы занимались до сих пор, перемещая объекты и создавая опорные кадры.По сути, инверсная кинематика - это один из вариантов нацеливания. По принципу инверсной кинематики создается анимация целевого объекта, в которой конец связанной цепочки (посредством связи типа «родитель-ребенок») всегда нацелен на него. Помните, ранее в этой главе была рассмотрена камера, направленная на нулевой объект? При перемещении объекта камера поворачивалась вслед за ним. Подобным образом действует и инверсная кинематика. Только вместо одного элемента на объект нацелена целая цепь связанных элементов. Настоящая инверсная кинематика начинается в тот момент, когда конец такой связки уже не может оставаться направленным на целевой объект, и остальные элементы цепочки начинают изменять свое положение, чтобы нацеливание вновь стало возможным.
Легче всего проиллюстрировать IK на каком-либо несложном примере. Возьмите карандаш и поднесите его к лицу. Теперь представьте, что карандаш - это целевой объект. Восстановите последовательность выполненных действий. Так, вы совершали движения рукой, чтобы поднести карандаш к лицу, при этом работали кисть, запястье и локоть. Все кости руки действовали подобно элементам, связанным в одну цепочку. Это и есть инверсная кинематика.
Создание цепочки инверсной кинематики
1. Из выпадающего меню View (Вид), расположенного в верхнем левом углу окна проекции, выберите пункт Right (ZY).2. Чтобы получить доступ к новым инструментам, щелкните по кнопке Items.
3. Из выпадающего меню Add, расположенного на панели инструментов, вы берите пункты Object -> Add Null (Объект -> Добавить нулевой объект). В появившемся диалоговом окне введите его имя - IK-Chain.
4. Чтобы добавить в нулевой объект кость, из выпадающего меню Add (Добавить) выберите пункты Bones -> Add Bone (Кости ->Добавить кость) или нажмите клавишу = (Равно).
5. В появившемся диалоговом окне введите имя созданной кости (например, Upper-Arm) и нажмите клавишу Enter.
6. Чтобы добавить еще одну кость, нажмите клавишу = (Равно). Присвойте ей имя Lower-Arm.
7. Снова нажмите клавишу = (Равно). Эту кость назовите Hand. В результате должна получиться цепочка костей, изображенная на рис. 10.56.
9. На панели инструментов щелкните по кнопке Move (Переместить) или нажмите клавишу Т. Переместите объект Arm-Goal в точку с координатой 4 т, расположенную на оси Z. Он будет находиться в конце цепочки (рис. 10.57).
10. Выделите объект Hand, щелкнув по нему в окне проекции (рис. 10.58).
12. Из выпадающего меню Goal Object (Целевой объект) выберите пункт Arm-Goal (рис. 10.59); Активируются все настройки движения инверсной кинематической цепочки, Layout нарисует синюю штриховую линию между объектом Arm-Goal и конечной точкой объекта Hand, а также сплошную синюю линию между объектами IK-Chain и Arm-Goal (рис. 10.60). Сплошная линия показывает, к какой цепочке относится целевой объект, а штриховая - направление от конца цепочки к целевому объекту.
15. Из выпадающего меню Pitch Controller (Контроллер наклона) выберите пункт Inverse Kinematics (Инверсная кинематика) - рис. 10.63.
18. В окне проекции щелкните по объекту Upper-Arm.
19. Выполните шаг 15 для объекта Upper-Arm, затем закройте окно Motion Options.
20. В окне проекции, щелкните по нулевому объекту Arm-Goal.
21. Щелкнув по зеленому маркеру, перемещайте объект Arm-Goal вверх-вниз по оси Y. Цепочка костей поворачивается таким образом, чтобы объект Hand всегда был направлен на целевой объект (рис. 10.65).
23. Щелкните по синему маркеру и переместите Arm-Goal в точку с координатой 600 mm по оси Z. Чем ближе объект Arm-Goal находится к объекту IK-Chain, тем больше приходится поворачиваться объектам Upper-Arm и Lower-Arm, чтобы объект Hand по-прежнему указывал на целевой объект (рис. 10.66).
25. Назовите сцену IK-Rig.lws и щелкните по кнопке ОК или нажмите клавишу Enter, чтобы сохранить ее в указанном файле. Не удаляйте файл, он пригодится для следующих упражнений.
Чем больше IK-цепочек включено в сцену, тем больше вычислений необходимо осуществлять. При включенной опции Full-Time IK Layout будет постоянно рассчитывать и обновлять IK-цепочки сцены, даже если они не задействованы в настоящий момент. Если вы заметите, что производительность системы снизилась, то отключите опцию Full-Tlme IK, чтобы Layout рассчитывал только ту инверсную кинематическую цепь, над которой вы работаете. Однако при этом можно вовремя не заметить возникновение нежелательных эффектов. Если это произойдет, следует немедленно активировать указанную опцию.
Удержание целевого объекта в зоне досягаемости
Вы познакомились с принципом действия IK-цепочек, теперь следует приступить к изучению их настроек. В этом разделе затронуты лишь основные опции инверсной кинематики, поскольку рассмотрение более глубоких вопросов и сложных методов применения IK выходят за рамки данной книги.При работе с несколькими 1К-цепочками можно очень легко запутаться во множестве целевых объектов, разбросанных по всему экрану. Синяя штриховая линия, несомненно, является хорошим индикатором связи цепочки с целевым объектом, однако даже по ней иногда нельзя определить, какой цепочке принадлежит объект.
Очистить рабочую область позволяет опция Keep Goal Within Reach (Удерживать объект в пределах досягаемости), расположенная в окне Motion Options (Настройки движения). Эта команда свяжет целевой объект с характерной точкой конечного объекта IK-цепочки и будет удерживать его там. Некоторые художники предпочитают использовать именно такой метод. При этом целевой объект превращается в что-то вроде анимационного маркера.
Использование опции Keep Goal Within Reach
1. Загрузите сцену IK-Rig.lws, созданную в предыдущем примере. 2. В окне проекции выделите кость Hand. 3. Перейдите на вкладку Items, затем на панели инструментов щелкните по кнопке Motion Options (Настройки движения) или нажмите клавишу М. Откроется окно Motion Options. 4. Отметьте галочкой опцию Keep Goal Within Reach и закройте окно Motion Options. Объект Arm-Goal будет связан с характерной точкой объекта Hand (рис. 10.67). 5. В окне проекции щелкните по объекту Arm-Goal. 6. Переместите объект в любое место окна проекции.Не имеет значения, куда вы переместите мышь, объект Arm-Goal останется в характерной точке объекта Hand (рис. 10.68). Таким образом, работа с применением опции Keep Handle Within Reach более похожа на создание анимации IK-цепочки при помощи анимационного маркера.
Опция Match Goal Orientation
Вспомните пример инверсной кинематики, приведенный в начале главы. Вы берете в руки карандаш и подносите к лицу, чтобы хорошенько его рассмотреть. Но чтобы изучить карандаш, вы сначала развернули его. В Layout конечный элемент IK-цепочки может точно так же повторять угловое положение целевого объекта, для этого следует воспользоваться опцией Match Goal Orientation (Соответствие углового положения). Это очень полезная функция, она незаменима в таких случаях, как, например, анимация кисти персонажа, поднимающего какой-нибудь предмет, или оживление головы змеи, следящей за своей жертвой. Можно очень долго перечислять возможности ее применения, кроме того, эта функция позволяет сэкономить массу времени, поскольку значительно облегчает создание самой сложной анимации.Применение опции Match Goal Orientation
1. Загрузите сцену IK-Rig.lws в Layout.2. В окне проекции щелкните по кости Hand.
3. Перейдите на вкладку Items (Элементы), затем на панели инструментов щелкните по кнопке Motion Options (Настройки движения) или нажмите клавишу М. Откроется окно Motion Options.
4. Отметьте галочкой опцию Match Goal Orientation (Соответствие углового положения) - рис. 10.69.
6. Чтобы переместить объект Arm-Goal вниз по оси Y, щелкните по зеленому маркеру. Обратите внимание, что Hand не изменяет своей угловой ориентации при перемещении целевого объекта (рис. 10.70).
8. Щелкните по зеленому маркеру и поверните объект Arm-Goal относительно оси Pitch. Теперь объект Hand отслеживает угловое положение целевого объекта (рис. 10.71).
Ограничения поворотов
Вы, вероятно, заметили, что чем ближе целевой объект к оси Y, тем сильнее изгибается рука, однако это выглядит не очень реалистично (если вы, конечно, не йог). В действительности суставы могут обеспечить лишь некоторый ограниченный угол поворота, при превышении которого рука ломается. Layout позволяет определить ограничения для каждой оси объекта, управляемого с помощью IK.Определение ограничений поворота
1. Загрузите сцену IK-Rig.lws в Layout.2. В окне проекции щелкните по объекту Lower-Arm.
3. Перейдите на вкладку Items, затем на панели инструментов щелкните по кнопке Rotate (Вращать) или нажмите клавишу Y.
4. Щелкните по кнопке Motion Options (Настройки движения) или нажмите клавишу М. Откроется окно Motion Option.
5. Перейдите на вкладку Controllers and Limits (Контроллеры и ограничения), затем отметьте галочкой опцию Pitch Limits (Ограничения по оси Pitch), чтобы определить ограничение на поворот относительно оси Pitch (рис. 10.72).
8. Выполните шаг 5 для объекта Upper-Arm.
9. В поле Min введите -90, а в поле Мах укажите 100. Как только вы определили граничные значения угла поворота, в окне проекции Layout снова нарисует затененную окружность, соответствующую введенным ограничениям (рис. 10.74).
Ограничения на поворот можно задать не только для элементов инверсной кинематики, но и для любого другого элемента сцены.
10. В окне проекции щелкните по объекту Arm-Goal.11. Щелкните по кнопке Move (Переместить), расположенной на панели инструментов, или нажмите клавишу Enter.
12. Перемещайте объект Arm- Goal по экрану. Попробуйте повернуть его на 180 градусов относительно объекта IK-Chain. Вы обнаружите, что не можете заставить объекты цепочки поворачиваться на углы, превышающие ограничение (рис. 10.75-10.76).
Ограничения на поворот можно задать не только для элементов инверсной кинематики, но и для любого другого элемента сцены.
Использование окна Motion Options
Вы, вероятно, обратили внимание на различные опции в выпадающем меню Pitch Controller (Контроллер наклона). В предыдущем разделе рассматривалась только Inverse Kinematics (Инверсная кинематика). Опция Key Frames (Ключевые кадры) установлена по умолчанию, она позволяет определять поворот объекта, по оси Pitch при помощи информации опорного кадра. Две другие опции - Align to Path (В соответствии с траекторией) и Point at Target (Направить на объект) - используются для решения особых задач.Использование опции Align to Path
1. В окне проекции щелкните по камере.2. Из выпадающего меню View (Вид) выберите пункт Top (XZ).
3. Перейдите к кадру с номером 30.
4. Перейдите на вкладку Items, затем щелкните по кнопке Move или нажмите клавишу Т. Переместите камеру в точку с координатой 3 т, расположенную на оси X (рис. 10.77).
6. Переместите камеру в точку с координатой 4 m на оси Z (рис. 10.78). Layout построит плавную траекторию перемещения объекта.
7. Чтобы просмотреть созданную анимацию, щелкните по кнопке Play. При движении камеры по траектории на правление ее объектива остается неизменным (рис. 10.79). Предположим, что требуется показать движение персонажа в тоннеле. Однако большую часть времени зрителю придется наблюдать малопривлекательные стены! Чтобы устранить этот недостаток, необходимо включить контроллер Align to Patch.
9. Перейдите на вкладку Controllers and Limits.
10. Из выпадающего меню Heading Controller (Контроллер направления) выберите пункт Align to Path (В соответствии с траекторией) - рис. 10.80. Теперь при движении камеры по кривой ее объектив отслеживает все изгибы (рис. 10.81).
Опция Align to Path действует относительно положительного направления оси Z объекта. Вне зависимости оттого, куда направлена его продольная ось, поворот объекта будет происходить именно по положительной полуоси Z. Например, модель автомобиля, капот которого направлен вдоль оси X, при использовании Align to Path будет перемещаться по траектории боком.
Аналогично, при перемещении нацеленный объект не всегда будет направлен на указанный вами целевой элемент. Если вы хотите, чтобы при любых обстоятельствах объект оставался нацеленным на другой объект, воспользуйтесь контроллером Point at Target (Направить на объект).Использование опции Point at Target
1. Выполните первые 9 шагов предыдущей процедуры «Использование опции Align to Path».2. Из выпадающего меню Heading Controller (Контроллер направления), расположенного в окне Motion Options, выберите пункт Key Frames.
3. Из выпадающего меню Target Item (Целевой элемент) выберите Light в качестве целевого объекта для камеры (рис. 10.82). При перемещении камеры ее угловое положение снова оказывается неизменным (рис. 10.79).
Модификаторы движения
Вы уже знаете, как использовать модификатор канала для имитации движения. Модификаторы каналов применяются только для одного канала. Это означает, что если требуется определить движение объекта по каждой из осей, необходимо ввести для каждого из каналов отдельный модификатор, что занимает много времени. К счастью, разработчики LightWave создали особый тип модификаторов - модификаторы движения (Motion Modifier) -которые работают одновременно по всем осям.В качестве примера снова рассмотрим созданный ранее ролик с прыгающим мячиком.
1. Загрузите сферу в Layout.
2. Установите номер последнего кадра равным 150.
3. Перейдите на вкладку Items (Элементы), затем щелкните по кнопке Move или нажмите клавишу Т. Переместите сферу в точку с координатой 2 т, расположенную на оси Y.
4. На панели инструментов щелкните по кнопке Motion Options (Настройки движения) или нажмите клавишу М. Откроется окно Motion Options.
5. Из выпадающего меню Add Modifier (Добавить модификатор) выберите в закладке Dynamics Gravity (Гравитация) - рис. 10.85. В иерархическом списке, расположенном под меню Add Modifier, должно появиться имя введенного модификатора.
7. Измените значение в поле Elasticity (%) (Упругость (%)) на 50, а в поле End Time (Время окончания) введите 150, что соответствует окончанию анимации (рис. 10.86).
9. Чтобы просмотреть созданную анимацию, щелкните по кнопке Play. Модификатор движения берет всю рутинную работу по созданию прыгающего мячика на себя. С течением времени высота прыжков уменьшается, а к концу ролика сфера уже неподвижно лежит на плоскости.
Кроме модификаторов движения, поставляемых непосредственно с Lightwave, множество их разновидностей существует в Internet. Если вы хотите подробнее узнать о всех модификаторах движения Lightwave, обратитесь к справочному руководству пользователя.
Системы координат
Иногда при создании анимации объекты двигаются не так, как вы того ожидаете. Если две оси (или более) объекта оказываются зафиксированными, то он перемещается только поступательно, повороты в данном случае невозможны. Например, вы поворачиваете объект вокруг оси Bank, а он ни с того ни с сего поворачивается вокруг оси Heading. Что же делать в этой ситуации? В действительности такое частенько случается, особенно при анимации персонажей.В LightWave эта проблема решается при помощи различных систем координат: World (Мировая). Угловая ориентация элемента в пространстве определяется относительно сетки Layout;
Parent (Родительская). Объект ориентируется в системе координат родительского объекта, которая по умолчанию назначается каждому объекту, добавляемому в сцену;
Local (Локальная). Угловая ориентация элемента в пространстве определяется относительно его самого. Для каждого элемента можно назначить отдельную систему координат, что позволяет гибко управлять их движениями. В следующем примере будет показано, как использовать различные системы координат в сложных ситуациях.
Изменение системы координат
1. Перейдите на вкладку Items (Элементы).2. Из выпадающего меню Add (Добавить), расположенного на панели инструментов, выберите пункты Object -> Null Object (Объект -> Нулевой объект) и назовите объект Gimbal-Lock (Шарнирный замок).
3. Чтобы добавить кость к объекту Gimbal-Lock, нажмите клавишу = (Равно). Присвойте ей имя Leg.
4. На панели инструментов щелкните по кнопке Rotate (Вращать) или нажмите клавишу Y. Поверните объект Leg на 90 градусов относительно оси Pitch (рис. 10.87).
6. Поверните кость Foot на -90 градусов относительно оси Pitch. Вероятно, вы уже обнаружили возникшую проблему: красная (Н) и синяя (В) окружности накладываются друг на друга (рис. 10.88).
8. Удерживая нажатой правую кнопку, перемещайте мышь, чтобы повернуть объект Leg относительно оси Bank. Обратите внимание, что кость двигается влево-вправо, как будто вращается вокруг оси Heading. Это и есть так называемый «шарнирный замок».
9. Из выпадающего меню Coord (Системы координат), расположенного на панели инструментов, выберите пункт Coordinate System: World (Система координат: Мировая) - рис. 10.89. Теперь окружности поворота будут сориентированы относительно мировой системы координат (рис. 10.90).
Использование локальной системы координат
1. Из выпадающего меню Coord System (Система координат), расположенного на панели инструментов, выберите пункт Coordinate System: Parent (Система координат: Родительская).2. Выделите камеру, щелкнув по ней в окне проекции.
3. Из выпадающего меню View (Вид) выберите пункт Right (ZY).
4. Перейдите на вкладку Items (Элементы), затем щелкните по кнопке Rotate или нажмите клавишу Y.
5. Поверните камеру на 25 градусов относительно оси Pitch (рис. 10.91).
8. Щелкните по зеленому маркеру и переместите камеру вдоль оси Y. Теперь перемещение происходит не вверх-вниз (вдоль оси Y мировой системы координат), а одновременно вдоль осей Z и Y (мировой системы координат).