…древний закон гласит: все, что рождено мыслью, может стать явью.

Р. Желязны, Р. Шекли


В предыдущей статье (№7-8 2002 г.) описывалось оживление персонажей в 3d studio MAX при помощи plugin'а Character Studio. Как вы, наверное, помните, движение персонажа было привязано к точкам на земле - Footstep'ам.

 

Тема этой статьи - Freeform animation (анимация, не зависимая от footstep'ов) и еще некоторые приемы анимации персонажей.

 

Для начала


Для начала хотелось бы дополнить тему предыдущего урока - речь о модификаторе Physique. Было получено достаточно много писем с вопросом: как быть с персонажем, состоящим из нескольких частей (например, кисти рук и голова - отдельные Mesh'и)? Самый простой способ - объединить их в один Mesh при помощи Attach или Boolean.

Но Physique позволяет закреплять объекты не только к "центру тяжести" (center of mass), но и к промежуточным элементам скелета. Это происходит аналогично прикреплению Mesh'а к "центру тяжести" при помощи кнопки Attach to Node.
 

Даже при минимальном знании 3ds max анимировать скелет персонажа без footstep'ов несложно. В стандартном Tutorial'е к Character Studio анимация персонажа в свободном пространстве описана на примере плывущего biped'а, и, по-моему, придумать более наглядный пример довольно сложно. Процесс анимации ничего сложного собой не представляет. Он сводится к той же расстановке ключевых кадров. На простой анимации останавливаться не стоит - она аналогична, например, движению руки из первой части статьи. Давайте слегка усложним задачу.


Возьмем яркий пример из Книги Джунглей. Пусть персонаж передвигается по деревьям а-ля шимпанзе. Footstep'ы нам здесь не помогут, а пригодится одна из возможностей Character Studio - Planted Keys. Для начала подготовим сцену (см. рис. 1). Что значит - "Гринписа на тебя нет"? Вы думаете, деревья легко рисовать?

 

 

Поместите biped на место, "удобное" для запрыгивания на первую ветвь (в данном случае - фонарный столб). Выделите ступни персонажа, перейдите к вкладке Motion и кликните "set planted key" в свитке IK key settings (это нужно проделывать с каждой ступней в отдельности, и хорошо, что осьминоги не прыгают). Теперь ноги "привязаны" к земле. При движении центра тяжести ступни ног остаются на месте. Нажав кнопку Animate и прокрутив time slider на несколько кадров вперед, переместите центр тяжести вниз. Руки перед прыжком должны быть позади туловища. Голова - гордо запрокинута. Сдвигаем time slider вперед еще на несколько кадров, поднимаем центр тяжести вверх - так, чтоб ноги были максимально вытянуты. На том же кадре активизируем ступни и снова задаем Planted key, а на следующем кадре - free key.

 


Ноги отрываются от земли, энергичный взмах руками, кисти расслаблены и готовы схватиться за холодную сталь фонарного столба, туловище, постепенно замедляя свой полет, рвется ввысь… а мы все еще в 3d studio max. В тот момент, когда кисти рук коснутся перекладины, установите для них Planted Keys. Далее центр тяжести под действием силы земного притяжения движется вниз, до полного "натяжения" рук. Эти движения можно пронаблюдать на рис. 2. Далее тело персонажа следует "раскачать" и, как в случае с ногами, во время последнего взмаха "отцепить" одну руку (задайте ей еще один Planted Key, а на следующем кадре - free key). И, используя те же методы, продвигайте персонажа от столба к столбу.

 

Изложенных в этой и предыдущей статьях приемов достаточно для создания не слишком сложной анимации. Далее я постараюсь изложить еще некоторые аспекты, связанные с анимацией.

 

Взаимодействие с предметами

 

Если в вашей анимации какой-либо персонаж на протяжении всей сцены должен прыгать с транспарантом "Свободу попугаям!" в руках/клюве, то этот самый транспарант достаточно "прилинковать" к руке при помощи max'ового инструмента Select and Link. Но что делать, если персонаж должен взаимодействовать с предметом какое-то ограниченное время? В этом случае нам поможет Link Constraint.

 


Допустим, что на земле лежит кирпич, который нашему персонажу вдруг захотелось поднять и бросить (см. рис. 3), чтобы лишний раз убедиться в правильности закона Ньютона (хотя в 3d studio max этот кусок обожженной глины можно вывести хоть на околоземную орбиту). Активизируйте "кирпич" и перейдите во вкладку Motion. В свитке Assign controller (см. рис. 4) кликните по одноименной кнопке и выберите Link constraint. Убедитесь, что time slider установлен на нуле и кликните Link to World. Допустим, персонаж берет кирпич в руку на сороковом кадре. Установите time slider на 40 и после клика по Add Link выберите часть тела, к которой необходимо привязать "кирпич". В нашем случае это рука. Не забудьте согнуть пальцы... Да не свои, а biped'а! В том кадре, где персонаж должен "отпустить" кирпич, опять кликните Link to World (см. рис. 4а).

 

   

  
В случае если нужно заставить biped двигаться вместе с "подстилающей поверхностью" (например, с лодкой или сиденьем кресла, рис. 5), необходимо просто прилинковать центр тяжести к необходимому объекту или же вновь воспользоваться Link Constraint.

 


"Эти глаза напротив…"

 

Неотъемлемой частью живого персонажа являются глаза. Причем не просто застывшие кругляшки, поворачивающиеся только вместе с головой,- а настоящие, живые. Делать глаза частью mesh'а в таком случае нельзя. Для "мультяшных" персонажей вполне подойдут глаза из двух сфер: белой (глазное яблоко) и черной (зрачок). В случае с более реалистичными персонажами есть смысл помучиться с рисованием карты. Кстати, к плагину Digimation Head Designer прилагаются довольно качественно сделанные текстуры для глаз. Но как заставить глаза смотреть на что-либо? Конечно, можно вращать их при помощи инструмента Rotate. Но направление "взгляда" будет крайне неточным, и придется вращать каждый глаз отдельно - в результате персонаж станет похожим на хамелеона, выискивающего добычу. Вновь обратимся за помощью к Assign Controller.

 


Создайте какой-либо Helper (например, Create > Helpers > Point). Это будет точка, на которую будет направлен неусыпный взгляд нашего персонажа. Выделите "глаз", перейдите во вкладку Motion и свиток Assign Controller. Выберите Rotation: TCB Rotation и кликните по уже знакомой нам кнопке с двумя зелеными треугольниками. В появившемся списке остановите свой выбор на Look at Constraint. Настройки этого контроллера просты - после клика по Add Point выделяем наш Helper. Необходимо также настроить ориентацию (в самом низу свитка). Проделайте то же самое для второго глаза и попробуйте сдвинуть Helper. Персонаж будет выглядеть намного интереснее с осмысленным (ну, может, и не совсем осмысленным, но очень выразительным) взглядом (рис. 6).

 

Скажи "А-а-а"…

 

Двигается наш персонаж уже вполне естественно, даже без шеста прыгает круче Сергея Бубки. Использовать кирпич для самозащиты? Элементарно! Глаза - "умные, как у собаки", но вот сказать ничего не может. Вернее, может, но не раскрывая рта… (Первую часть "Корсаров" помните? Тот же эффект.) Давайте попытаемся устранить и этот недостаток.

 


Для начала определитесь с тем, какие звуки должен издавать ваш персонаж. Произнесите его реплики перед зеркалом и постарайтесь запомнить при этом положение губ (если у вас есть красноречивый помощник или веб-камера, задача существенно облегчается). Создайте копию той части Mesh'а, которая участвует в "воспроизведении", n раз (где n - количество различных положений губ, рис. 7). Теперь выделите нужную часть Mesh'а и примените к ней модификатор Morpher. Этот модификатор позволяет осуществлять плавную смену формы объекта на основе неких "каналов" (Channels). В его настройках вы увидите список этих самых каналов - Channel list. Кликом правой клавиши мыши по одному из каналов вызывается меню (рис. 8). Его пункт Pick from scene позволяет "запомнить" в канале форму объекта. Заполните нужное число каналов всеми имеющимися образцами Mesh'а.

 


В том, что все действия выполнены правильно, можно убедиться, изменив числа в полях, которые находятся справа от каждого из каналов. Форма губ персонажа должна изменяться. Анимация параметров модификатора Morpher не должна вызвать каких-либо затруднений. К сожалению, более или менее серьезная работа со звуком в 3ds max не предусмотрена, что затрудняет синхронизацию речи с движениями губ. Восполнить этот недостаток можно при помощи дополнительных модулей - например, Flex Sound от Digimation.

 

***


Взгляните на нашего персонажа. Он уже умеет бегать, прыгать, фокусировать взгляд, шевелить губами в попытке что-либо произнести. Но ему еще "учиться, учиться и еще раз учиться".

2004.06.17
19.03.2009
В IV квартале 2008 г. украинский рынок серверов по сравнению с аналогичным периодом прошлого года сократился в денежном выражении на 34% – до $30 млн (в ценах для конечных пользователей), а за весь календарный год – более чем на 5%, до 132 млн долл.


12.03.2009
4 марта в Киеве компания Telco провела конференцию "Инновационные телекоммуникации", посвященную новым эффективным телекоммуникационным технологиям для решения задач современного бизнеса.


05.03.2009
25 февраля в Киеве компания IBM, при информационной поддержке "1С" и Canonical, провела конференцию "Как сохранить деньги в условиях кризиса?"


26.02.2009
18-19 февраля в Киеве прошел юбилейный съезд ИТ-директоров Украины. Участниками данного мероприятия стали ИТ-директора, ИТ-менеджеры, поставщики ИТ-решений из Киева, Николаева, Днепропетровска, Чернигова и других городов Украины...


19.02.2009
10 февраля в Киеве состоялась пресс-конференция, посвященная итогам деятельности компании "DiaWest – Комп’ютерний світ" в 2008 году.


12.02.2009
С 5 февраля 2009 г. в Киеве начали работу учебные курсы по использованию услуг "электронного предприятия/ учреждения" на базе сети информационно-маркетинговых центров (ИМЦ).


04.02.2009
29 января 2009 года в редакции еженедельника "Computer World/Украина" состоялось награждение победителей акции "Оформи подписку – получи приз!".


29.01.2009
22 января в Киеве компания "МУК" и представительство компании Cisco в Украине провели семинар для партнеров "Обзор продуктов и решений Cisco Small Business"

 

 
 
Copyright © 1997-2008 ИД "Комиздат".