Два ik Handles (ИКманипулятор) упрощают анимацию рук
Рисунок 8.4. Два ik Handles (ИК-манипулятор) упрощают анимацию рук
Используя два ik Handles (ИК-манипулятор), вы сможете управлять движением рук в соответствии с законами инверсной кинематики. Вам только нужно взять ik Handle (ИК-манипулятор) и перемещать его туда, куда вам нужно: две кости руки будут вращаться соответственно перемещению ik Handle (ИК-манипулятор). Мы прикрепим ik Handles к ручкам руля.
Выберите правую ручку руля и добавьте к выделенному объекту (с нажатой клавишей shift) правый IK Handle (ИК-манипулятор). Нажмите F2, выберите Constrain / Point (Принудительное согласование / Положение), для того чтобы принудительно связать ik Handle (ИК-манипулятор) с ручкой руля.Лучезапястный сустав правой ладошки встанет в центр ручки руля, как только вы установите ограничение. Через минуту мы снова поднимем руку.
Используя Point Constraint (Принудительное согласование позиций), свяжите левую ладошку с левой ручкой руля. Выберите обе ручки руля и в режиме Insert mode (Режим редактирования опорных точек) переместите их опорные точки вверх так, чтобы лучезапястные суставы находились немного выше ручек руля (Рисунок 8.5).Когда вес для ручки руля меняется
Рисунок 8.10.
Когда вес для ручки руля меняется на WO = 1, а вес для локатора на W1 = 0, запястье руки возвращается к ручке руля
Задайте ключевые кадры для обоих параметров. Передвиньтесь вперед на 50 кадров, в кадр 350. Измените вес: 0 - для ручки руля и 1 - для локатора. Снова задайте ключевые кадры для обоих параметров.
Меняя веса для двух принудительных согласований позиции, вы создали анимацию движения руки. Она отпускает руль в кадре 300 и через 50 кадров перемещается к локатору - там и остается все оставшееся время.
Математическое равенство заставляет двигаться руль велосипеда
Рисунок 8.6. Математическое равенство заставляет двигаться руль велосипеда
Отредактируйте выражение (для этого, как и раньше, следует вызвать Expression Editor (Редактор Выражений), увеличив амплитуду синуса в 20 раз
= 20 * sine (time);
Сохраните изменения, нажав Edit (Редактирование).Это выражение позволяет рулю медленно вращаться между -20 и 20 градусами вокруг оси Y, как если бы велосипед двигался по слалому. Поскольку Point Constraint (Принудительное согласование позиций) все еще активно, руки движутся в унисон с ручками руля. Выглядит это так, будто руки (а вовсе не математическое выражение) управляют велосипедом (см. Рисунок 8.7). Если длины рук недостаточно во время увеличения амплитуды управляющих движений, ни в коем случае не удлиняйте их - помогите им дотянуться до ручек, подвинув плечи или ключицу немного вперед.
Если вы хотите исключить одну руку из управления велосипедом, попробуйте сделать так: щелкните мышкой по ее ik Handle (ИК-манипулятор) и в окне Channel Box (Окно Каналов) в секции Shapes (Форма) установите Node State (Состояние Узла) с Normal (Нормальное) на Blocking (Блокированное) (Рисунок 8.8). Эта команда дезактивирует ограничение. Если хотите, можете установить здесь ключ.
Между кадрами 400 и 470 локатор оказывается «привязанным» к пути рисования знака @
Рисунок 8.13. Между кадрами 400 и 470 локатор оказывается «привязанным» к пути рисования знака @
Теперь рука, бросив руль, рисует в воздухе знак @, после чего возвращается к рулю и продолжает управление велосипедом (Рисунок 8.14). Взгляните на анимационные кривые для Motion Path (Путь Движения) в Graph Editor (Редактор Анимационных Кривых), для того чтобы убедиться, что движение не будет слишком поспешным. Вы также можете задать тип Flat (Горизонтальный) касательным ключевых кадров, используя контекстное меню временной шкалы.
Моделируем скелет несколькими щелчками мыши в соответствующем окне мы создаем левое плечо и руку
Рисунок 8.2. Моделируем скелет: несколькими щелчками мыши в соответствующем окне мы создаем левое плечо и руку
Обе руки крепко держась за ручки управляют велосипедом
Рисунок 8.7. Обе руки, крепко держась за ручки, управляют велосипедом
Переключите Node State (Состояние
Рисунок 8.8. Переключите Node State (Состояние Узла) с Normal (Нормальное) на Blocking (Блокированное). Привязка дезактивируется, и рука может снова свободно вращаться
Мы продвинемся еще немного вперед и вместо того, чтобы полностью исключить руку из управления велосипедом, добавим для нее еще одно принудительное согласование - Locator (Локатор). Затем, вместо того чтобы менять Node State (Состояние Узла) принудительного согласования, мы изменим его Weight (вес).
Создайте Locator (Локатор) - объект, который не рендерится. Его можно найти в меню Create (Создать). Переместите локатор немного правее правой руки. Оставляя локатор выделенным, выберите правый ik Handle (ИК-манипулятор) и свяжите его с локатором. Для этого выберите Constrain / Point (Принудительное согласование / Положение).Запястье моментально реагирует на это изменение и перепрыгивает в точку между ручкой руля и локатором. Если вы передвинете локатор в другую область сцены, ik Handle (ИК-манипулятор) последует за ним. Определяющими параметрами такого поведения являются Weights (Веса) двух принудительных согласований. Их вы найдете в окне Channel Box (Окно Каналов) прямо под полем Node State (Состояние Узла). Первое значение - это вес ручки руля, второе - вес локатора. Поскольку оба значения в данный момент равны, ладошка располагается между ними (Рисунок 8.9).
Перемещение опорных точек ручек руля вверх поднимает и запястья персонажа
Рисунок 8.5. Перемещение опорных точек ручек руля вверх поднимает и запястья персонажа
Теперь давайте немного подвигаем рулем.
Выделите группу руля (в которую входят и обе ручки). В окне Outliner (Схема сцены) выделите Rotate Z (Угол поворота по оси Z) и, используя контекстное меню, вызовите окно Expression Editor (Редактор Выражений). С помощью средней кнопки мыши скопируйте имя из поля Selected Obj & Attr и вставьте его в пустое поле для выражений (см. Рисунок 8.6). Завершите ввод функцией= sin (time) ;
Создайте новое выражение, нажав Create (Создать).В качестве аргумента функции синус можно использовать любое число, в нашем случае это будет количество секунд времени анимации. Однако значение функции синус ограничено. Оно может находиться только в промежутке между 1 и -1. Поэтому, когда вы воспроизведете анимацию, руль будет вращаться только между -1 и 1 градусами, что, конечно, едва заметно.
Персонаж управляет велосипедом
Рисунок 8.14. Персонаж управляет велосипедом только одной рукой. Руль продолжает двигаться. Правая рука рисует в воздухе знак @. После этого она возвращается к ручке руля и продолжает спокойно управлять
Если вы создадите велосипед и велосипедиста, не забудьте объединить локатор в одну группу с другими элементами. Было бы даже неплохо добавить небольшую анимацию знака @ в этой точке. Плечу тоже можно придать небольшое движение. А как насчет функции синус?
А теперь кое-что новенькое. Приходилось ли вам расчесывать мех?
Пишем знак @ в окне Side View (Вид Сбоку)
Рисунок 8.12. Пишем знак @ в окне Side View (Вид Сбоку)
Руль велосипеда с ручками состоит из трех NURBSцилиндров
Рисунок 8.1. Руль велосипеда с ручками состоит из трех NURBS-цилиндров
Со значениями WO = 0 и W1 = 1 запястье руки перепрыгивает к локатору
Рисунок 8.11. Со значениями WO = 0 и W1 = 1 запястье руки перепрыгивает к локатору
Верните руку к ручке руля между 500 и 600 кадрами, задав еще два ключевых кадра для значений веса ограничения. Отредактируйте анимацию в Graph Editor (Редактор Анимационных Кривых) на ваш вкус. Задайте касательным тип Flat (Горизонтальная) в точках начала и окончания движения.
Между 350 и 500 кадрами рука находится в статичном положении. Если вы создадите анимацию локатора в этом промежутке, например придав ему машущее движение, рука повторит его, поскольку она больше не привязана к ручке руля. Мы зададим руке совершенно определенное движение: пусть она нарисует в воздухе знак @. Это мы сможем получить путем установления ограничивающей связи локатора (но не для ik Handle (ИК-манипулятор) и пути рисования знака.
Переключитесь на окно Side View (Вид Сбоку) или Front View (Вид Спереди) и с помощью инструмента Pencil. Curve Tool (Карандаш) нарисуйте знак @ (Рисунок 8.12). Передвиньте полученную кривую поближе к локатору. Выделите локатор и добавьте к выделенному кривую. Откройте окно настроек команды Motion Path (Путь Движения), выбрав Animate / Motion Paths / Attach to Motion Path Option Box (Анимация / Пути Движения / Присоединить к Пути Движения Окно Настроек). В окне Option Window (Окно Настроек) команды Attach to Motion Path (Присоединить к Пути Движения) установите Time Range (Временной Диапазон) на Start / End (Начало / Конец). Задайте Start Time (Начальное Время) на 400, a End Time (Конечное Время) на 470. Выполните команду, нажав Attach (Присоединить) (Рисунок 8.13).Теперь создадим зеркальное отражение
Рисунок 8.3. Теперь создадим зеркальное отражение руки и плеча для другой половины (здесь относительно плоскости YZ)
Управляем велосипедом (и отвлекаем внимание)
Управляем велосипедом (и отвлекаем внимание)
Как сделать так, чтобы персонаж одной рукой управлял велосипедом, а другой одновременно рисовал в воздухе знак @?
Тема:
Анимация.
Используемые техники и инструменты:
Joint Tool (Сустав), ik Handle (ИК-манипулятор), Point Constraint (Принудительное согласование позиций), Motion Path (Путь Движения).
Анимация персонажей не сводится к цифровому изображению мимики, реалистичной ходьбе и синхронизированной с движениями губ речи. Персонаж также должен взаимодействовать с окружающим миром. Хотя в реальной жизни это предполагает огромное количество различных действий - прикасание, хватание, отпускание, взгляд, приближение, - в компьютерной анимации все это может быть сведено к Constraint (Принудительное согласование). Самое главное согласование - это то, которое связывает персонаж с другими элементами окружающего мира: с другим объектом или персонажем. В этом уроке мы рассмотрим основные процедуры при использовании такого вида ограничений. Мы создадим анимацию персонажа, управляющего велосипедом и одновременно рисующего другой рукой в воздухе знак @.
Создайте руль велосипеда с двумя ручками (см. Рисунок 8.1). Все, что вам для этого нужно, это три цилиндра соответствующих размеров. Оставьте центр руля в начале координат. Сгруппируйте все три компонента вместе и дайте группе какое-нибудь значащее имя. С помощью инструмента Joint Tool (Сустав) сконструируйте скелет для плеч и рук, состоящий из шести или семи костей. Начните с шеи, затем добавьте ключицу и вставьте в нее еще две кости рук, ведущие к лучезапястному суставу (см. Рисунок 8.2). Теперь выделите верхний сустав руки и создайте зеркальное отражение всей совокупности элементов с другой стороны, используя команду Mirror Joint (Зеркальное Отражение Сустава) (см. Рисунок 8.3). Создавать отражение шеи вовсе не обязательно. Для обеих рук добавьте ik Handles (ИК-манипулятор) от плеч к запястьям (см. Рисунок 8.4).Веса WO (для локатора) и W1 (для
Рисунок 8.9. Веса WO (для локатора) и W1 (для ручки руля) равны. Следовательно, запястье руки располагается между ними
Задайте длительность анимации 1000 кадров. Идите в кадр 300. Установите вес правой ручки руля на 1, а вес локатора на 0.