Практика: создание скелета в Maya

Наилучший  способ изучить оснащение  персонажа — это осуществить его на  практи­ ке. Остальная часть этой главы будет посвящена  созданию скелета с  элементами  управ­ ления и  правильной  привязке к нему геометрической формы.

Первый этап создания оснастки — это планирование  работы.  Разработаем  при- мер оснастки  для модели  персонажа Машизмо,  созданной в  предыдущих главах.

Чтобы получить завершенную, готовую к оснащению модель, можно либо  использовать собственную модель,  либо открыть  имеющийся  на  прилагаемом   компакт-диске файл MachismoGeo. ma. Машизмо — это массивный и более чем  мускулистый персонаж, а по­ тому  в   процессе  привязки   геометрической формы  к  скелету  следует  обратить особое внимание  на области  торса и  рук.  Кроме того,  ему необходимо  управление отдельными пальцами. Но поскольку он носит обувь, то для каждой его ступни будет достаточно про­ стой цепи, состоящей из одного сустава.


Создание прототипа структуры скелета  с использованием кривых  

Сразу после определения общего направления  компоновки  скелета Машизмо  можно было бы немедленно приняться за работу и  начать его создание. Тем не  менее такой ме­ тод создания скелета чреват потенциальными  проблемами,  наибольшая из  которых за­ ключается в.том, что при  создании  сложного скелета  правильно  расположить   все суста­ вы  с первого раза почти  невозможно. Когда без  перемещения суставов  их  невозможно правильно подогнать к  геометрической  форме,  возникает  проблема осей поворота, при­ водящая впоследствии  (при  привязке  и   анимации  персонажа)  ко  всякого рода трудно­ стям.  В  дополнение при  построении  скелета запросто можно  забыть  создать  какой-то сустав — и  это также  в  дальнейшем может стать причиной проблем. В Maya существует множество способов предварительного создания скелета; тут будет создан комплект кри­ вых для каждой важной части  скелета (ноги, руки, позвоночника и  т.д.), используемый в качестве ориентира  при  построении  полнофункционального  скелета.  Поскольку  точки кривой  можно свободно перемещать, а расположение   кривых можно  наблюдать в  окне сцены, а также потому, что скелет можно привязать  к кривой,  выбранный метод преду­ сматривает быстрое и  точное создание скелета, как только  кривые  будут правильно раз­ мещены внутри  геометрических форм.

ЕСЛИ  оси  вращения  сустава не совпадают с костью, то при  вращении  дочерних суставов  он не будет вращаться вокруг кости, что приведет  к  необходимости  контроля  движения  при анимации.  Работа специалиста  по оснастке заключается в  том,  чтобы  упростить, а  не ус­ ложнить анимацию,  поэтому следует создавать оснастки  без  проблем с вращением.  Таким образом, дополнительное  время, потраченное на  создание кривых  прототипа скелета, ста­ нет залогом успеха.

Для  создания опорного  комплекта  кривых потребуется  всего лишь пара  настроек. Сначала выберите пункт меню Create => EP Curv e Tool • (Создать => Инструмент кривой ЕР •) и  в  открывшемся окне параметров  инструмента установите  переключатель Curve Degree (Степень кривой)  в значение 1 Linear (1 , линейная). В этом случае каждый щел­

чок мышью будет одновременно определять точку кривой   и контрольную вершину;  по­ скольку  дальше  планируется использовать сценарий, размещающий суставы   в   кон­ трольных вершинах,  то такой первый шаг просто необходим. Для удобства  выделения  и перемещения кривых  из  всех установленных  масок выделения  объектов  сцены оставьте только  выделение  кривых.  (Для этого в  строке состояния щелкните  на черном направ­ ленном  вниз  треугольнике и   в   появившемся  контекстном  меню  выберите пункт  АLL Objects Off (Отключить  все маски  выделения  объектов)), а  затем, чтобы разрешить  вы­ деление только  кривых,  щелкните на пиктограмме  Curve s  (Кривые).)  Возможно, для удобства просмотра кривых внутри тела Машизмо  следовало бы установить режим рент­ геновского тонирования  (для  чего  в   меню  панели  выберите  пункт  Shadin g => X-ra y (Тонирование => Рентген)).

Создать набор опорных кривых так же просто, как выбрать инструмент ЕР Curve

(Кривая  ЕР )  и,  щелкая  мышью, пройти  вдоль рук,  спины, ног, пальцев  и  т.д., создавая при  этом кривую для каждой важной части  скелета. Как только будет  получено базовое  размещение  каждой   кривой, перейдите  в    режим  выделения    компонентов (нажмите  клавишу <F8> ) и  перемещайте каждую точку кривой  до тех  пор, пока она не займет необходимую  позицию. Для текущего скелета посередине  каждой верхней и  ниж-

ней части руки и ноги были добавлены суставы вращения (roll joint); эти суставы можн о использовать для закручивания кожи вдоль предплечий и икр (они добавлены для пол­ ноты скелета). Эти дополнительные суставы можн о было и не включать. В  качестве справки можн о открыть имеющийс я на прилагаемом компакт-диске файл Machismo – SkelCurves .ma. По окончании должен получиться набор кривых, аналогичный пока­ занному на рис. 8.20.

Рис. 8.20. Набор опорных кривых для скелета Машизмо

Для того чтобы ускорить дальнейший рабочий процесс, кривым следует подобрать подхо­ дящие имена. Поскольку инверсная кинематика  всего тела  может  быть построена исходя из имен суставов, очень важно точно называть кривые (а следовательно, и суставы). (В качестве альтернативы перед применением к скелету инверсной кинематики всего тела, суставам мож­ но присвоить метки  (label).) Назовите  кривые  следующим   образом: SpineCurve (Кривая позвоночника), LeftLegCurve (Кривая левой ноги), rightLegCurve (Кривая правой но­ ги), LeftFootCurve (Кривая левой ступни), right Foot Curve (Кривая правой  ступни), LeftArmCurve  (Кривая  левой руки),   rightArmCurve (Кривая  правой руки), Left- HandThumbCurve (Кривая большого пальца левой руки), LeftHandlndexCurve (Кривая указательного пальца левой руки), LeftHandMiddleCurve (Кривая среднего пальца левой руки), LeftHandringCurve (Кривая безымянного  пальца  левой руки),   LeftHand- PinkyCurve (Кривая мизинца левой руки), rightHandThumbCurve (Кривая большого пальца правой руки), rightHandlndexCurve (Кривая указательного пальца правой руки), rightHandMiddleCurve (Кривая среднего  пальца правой руки), rightHandringCurve (Кривая безымянного пальца правой руки), rightHandPinkyCurve (Кривая мизинца пра­ вой руки)  и JawCurve (Кривая челюсти). Удостоверьтесь, что имена введены точно, как здесь (включая  верхний и нижний регистр):  эти имена будут использованы в сценарии,   который в следующем разделе проделает большую часть работы по созданию скелета.

Важность именовани я  элементо в  

Именуйте в  оснастке все, особенно такие кажущиеся несущественными  элементы,  как  эти кривые, используемые  для создания скелета. Это вовсе не  пустая  трата времени: небольшие дополнительные   усилия по именованию  позже  помогут существенно сэкономить время. Не сделав  этого,  придется потратить  уйму  времени  на  попытки  вычислить,   что  такое  сустав

joint143 и    почему  он  расположен  именно там,  где  расположен.  Но  если   назвать   его leftupArm (верхний сустав левой руки), то будет точно известно предназначение  этого сус­ тава, а также, почему он занимает свое место. Вдобавок  именование всех элементов оснастки является способом ее самодокументации:  выделение любого узла оснастки  уже только по од­ ному его имени  позволит узнать назначение узла. Такая самодокументация  бесценна как для специалиста по оснащению в конце работы над оснасткой, так и для анимации персонажа.

Создание скелета  

Сейчас  есть  два  способа  создания  скелета.   Можно  выбрать  инструмент  Joint  

(Сустав), включить  привязку  к кривым  (щелкнув  в  строке состояния на  кнопке Snap To Curve s (Привязка к кривым)), разместить  суставы на кривых,  а затем  присво­ ить им  имена, руководствуясь табл. 8.1. Но зачем же тратить столько времени  и  усилий на  то,  что  может  выполнить  сценарий MEL?  На  прилагаемом к  книге  компакт-диске найдите файл  сценария drawBase.me l  и   загрузите его  (в   окне  редактора  сценариев Script Editor выберите пункт меню File => Sourc e Script (Фай л => Загрузить сценарий)). За­ тем выделите   все  кривые,   введите  в командной строке  команду  drawBas e и  нажмите клавишу <Enter> .  Вуаля!  По большей части  созданный и  правильно именованный  ске­ лет готов  к использованию  (рис. 8.21). Если  при  выполнении  процедуры drawBas e воз­ никли  какие-то ошибки, то  наиболее  вероятная их  причина  кроется  в   неправильных именах  кривых; поэтому загляните в  предыдущий  раздел и  еще раз проверьте их,  чтобы удостовериться  в   правильности  именования  (не  забывайте, что  в   языке  MEL  регистр имеет значение). При  желании создать скелет вручную, добавить или  изменить какой-то из его суставов, воспользуйтесь приведенным в  табл. 8.1 полным списком  имен суставов, поддерживаемых  постановкой  FBIK.

Рис. 8.21. Применение сценария drawBase. mel позволило создать скелет автоматически!

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

своены неправильные  имена: количество  созданных разработчиком спинных и  шейных суставов  (т.е. контрольных вершин соответствующей  кривой) невозможно знать  загодя, поэтому имена большинства  суставов  в   области  шеи  и  головы, скорее  всего,  окажутся

неправильными. Перейдите  к первому суставу шеи  и  переименуйте  его в  Neck. Второй сустав  шеи  (если  таковой имеется) должен стать Neckl, третий —  Neck2 и  т.д. Первый сустав головы должен получить  имя Head, второй — Headl и т.д. (Постановка FBIK рас­ познает только первый сустав  головы Head, но в  области  головы их  можно разместить сколько  угодно.)  Во-вторых, используя  подчинение,  из  отдельных частей скелета необ­ ходимо собрать полный иерархический скелет. Например,  выделите сустав  LeftUpLeg, нажав  клавишу  <Shift>, выделите сустав  Hip s и,  чтобы подчинить  первый выделенный сустав  второму, нажмите клавишу  <Р> .  Продолжайте обход скелета,  связывая  его  не­ подчиненные разделы. В конце процесса при  выделении сустава Hip s должны  подсвечи­ ваться все  кости  скелета (т.е.  сустав  Hip s должен стать старшим  суставом иерархии). (Если  этого  не  произошло, подчините   зависший  раздел  основному скелету.)  В  конце скелет должен принять  вид, показанный на рис. 8.22. В качестве справочной информации можно обратиться к имеющемуся на компакт-диске файлу MachismoSkeleton. та .

Рис. 8.22. Полный иерархический скелет

Как видно  в табл. 8.1, в  Майя система построения FBIK может идентифицировать об­ рабатываемые части  тела  по  именам их  суставов. Кроме  того,  в   процессе  построения FBIK для  обозначения создаваемых частей  тела  можно  использовать  не  только  имена суставов,  но и  метки (label).  Преимущества  и  недостатки, связанные с каждым методом идентификации  суставов,  таковы: именование  суставов  предусматривает  намного боль­ ший диапазон суставов (например, leftArmroll), чем метки суставов; но если у студии уже  есть  определенная  система именования  суставов, то  использование  меток  вместо имен суставов  позволит продолжить  рабочий процесс, не нарушая  текущие соглашения по именованию.

В связи  с отсутствием  соглашения об именовании  будем использовать  схему с  име­ нами  суставов.  Если  же более предпочтительно   использование меток  суставов,  то выде­ лите некий сустав (например, сустав leftArm), выберите пункт меню Skeleto n => Joint Labelling => Ad d FBIK Labels => Label Left (Скелет => Разметка сустава => Добавить метки FBIK => Разметить левую часть). Таким образом, далее будут ставиться метки для левой стороны персонажа, а потому  этот этап (или  аналогичный для правой стороны или  цен­ тра) достаточно  выполнить  для стороны персонажа только  один раз.  Затем из  того же

меню  Skeleton  =>  Joint  Labelling  =>  Ad d  FBIK  Labels  выберите пункт  Label  Shoulde r (Отметить плечо).  В качестве альтернативы  можно выделить  сустав,  открыть  редактор атрибутов, раскрыть раздел Joint (Сустав), а затем раздел Joint Labelling (Разметка сус­ тава) и  из раскрывающегося  списка Side (Сбоку) выбрать вариант Left (Левая), а из  рас­ крывающегося списка Тур е (Тип) — вариант Ar m (Рука).

Таблица  8 .1 . Корректные имена для всех возможных суставов в постановке FBIK  

Любой способ даст одинаковый  результат; выбирайте  тот, который наиболее  эффек­ тивен  в конкретной ситуации.  Процедура drawBas e из сценария drawBase.me l при­ сваивает каждому суставу не только правильное  имя, но и  правильную метку, так что в следующем  разделе  можно  использовать каждый  из   приведенных способов   создания реализации  системы инверсной  кинематики  всего тела.  Если  хотите использовать  метки суставов,  измените метки  в  области  шеи  и  головы  скелета так же, как это делалось ранее для переименования суставов  вручную.

Хотя это может быть и  не столь очевидным, но многие из  только что  созданных суставов  имеют обратную  (inverted) или   безосевую  (off-axis)   ориентацию:  ось  Y отдельных суставов  может быть направлена в  непредсказуемом направлении,  не согла­ суясь с другими суставами.  Возможно, это и  не покажется большой проблемой, но отсут­ ствие однообразия ориентации  суставов  приведет к трудностям при оснащении  и  анима­ ции, поэтому сейчас необходимо устранить эту проблему. К счастью,  был написан сцена­ рий   MEL,  который  показывает ориентацию сустава (его   локальных  осей  вращения) и предоставляет несколько удобных способов  решения всех трудностей, связанных с ориента­ цией. Запустите имеющийся  на  прилагаемом компакт-диске сценарий jointFlip.mel (в окне редактора сценариев выберите пункт меню File => Sourc e Script (Фай л => Загрузить сценарий)). Затем, чтобы выполнить определенную в  сценарии  процедуру  jointFlip, интерфейс  которой   приведен на   рис. 8.23,   введите    в    командной   строке   команду jointFli p и  нажмите клавишу <Enter> . Если  пользователь  предпочитает использовать

встроенные инструменты Майя,  то  он  может  использовать инструмент  Orient  Joint  (Ориентация суставов), доступный после выбора в  наборе меню Animatio n (Анимация) пункта Skeleto n => Orient Joint • (Скелет => Ориентация суставов), который работает ана­ логично сценарию jointFlip. Фактически, поскольку каждый инструмент  имеет эле­ менты, отсутствующие у других, используя сразу оба средства, можно решить даже наи­ более трудные проблемы ориентации  суставов.

а                                                            6                                              в

Рис. 8.24. Вращение цепи суставов (а) с различной ориентацией (б) и с оди­ наковой ориентацией (в)

Выделив  скелет  Машизмо, выполните  из  командной  строки  процедуру  jointFlip . Эта процедура позволяет выделить в окне сцены => целый скелет или только какой-то его раздел (например, руку),  отобразить оси  вращения,  перемещаться вверх   и  вниз   по  ие­ рархии и  изменить ориентацию  любого сустава. Дл я  каждой цепи суставов  (спины,  руки, ноги и т.д.) важно расположить оси Y и  Z в одном направлении, как на рис. 8.25. Обрати­ те внимание  на то, что ориентация  последнего  сустава цепи  (например, последнего сус­ тава пальца)  несущественна, так  как  его  вращение  ни  на что не влияет. Когда все  оси вращения различных  частей скелета  обращены в  одном направлении,  скелет готов  к ос­ нащению и  созданию оболочки.

Рис. 8.25.  Корректировка  локальных   осей вращения суставов Машизмо для  обеспече­ ния совместимости ориентации всех частей

Добавление к скелету инверсной кинематики всего тела

Появление системы инверсной кинематики  всего тела чрезвычайно упростило  созда­ ние скелета, движение  которого напоминает   движение человека. Инверсная  кинематика всего тела является прямым  наследием программного  обеспечения  Motion Builder. Те­ перь система Motion Builder интегрирована  в   Майя  в  виде  первоклассного дополнения, а не автономной программы (хотя,  конечно,  систему  Motion Builder можно  приобрести

как отдельное приложение компании Autodesk). Дл я тех, кто оснащал персонажи в  Майя раньше, инверсная  кинематика  всего тела стала изменением парадигмы: система  инверс­ ной   кинематики   всего  тела   (FBIK )   основана  на   новом  исполнительном   элементе hikEffector (сокращение от human IK effector — исполнительный  элемент инверсной кинематики человека), способном поддерживать несколько узлов.  В то время как все ос­ тальные исполнительные элементы и  маркеры IK допускают  только один вход, исполни­ тельный элемент hikEffecto r в  одном узле  размещает все исполнительные  элементы (стопы ног, кисти рук и  т.д.). Эта новая  схема данных делает возможным  автоматическое реагирование элементов  тела на  манипулирование  персонажем в  окне сцены. Например, перемещение  вверх и  вниз  тазобедренных суставов  персонажа с FBIK приводит   в  соот­ ветствующее  движение  позвоночник,  руки  и  ноги, чем не только создает реалистичную вторичную анимацию,  но и  упрощает работу аниматора.

Используя систему инверсной кинематики всего тела, можно создать оснастку  четвероно­ гих животных, а также "нестандартную" оснастку человека (например, с дополнительными пальцами рук или ног).  Хотя тут основное внимание сосредоточено на создании стандарт­ ной двуногой оснастки, в документации Майя описывается создание и других типов оснасток. Если выбрать пункт меню Skeleton => Full Body IK => Get FBIK Example (Скелете Инверсная кине­ матика всего тела => Получить пример FBIK), то вполне можно получить типичную оснастку для четвероногого животного (или двуногого существа).  Примеры содержат оснастки верблю­ да и человека.

Как только суставы будут правильно названы или  получат правильные  метки,  созда­ ние  системы инверсной  кинематики  всего тела не составит  особого труда.  Однако  для достижения  желаемого поведения  системы, после ее создания, обычно  приходится  вы­ полнять  несколько  дополнительных действий. Дл я  создания  системы FBIK  выделите корневой сустав  скелета, а затем в  наборе меню Animatio n  (Анимация)  выберите пункт меню Skeleton => Full Bod y IK => Ad d Full Bod y IK • (Скелет => Инверсная кинематика всего тела => Добавить инверсную кинематику  всего тела • ) . В окне параметров для переклю­ чателя Identify Joint s  (Идентифицировать  суставы) выберите  значение By  Nam e  (По имени), а для параметра Posture (Поза)  оставьте значение Biped (Двуногая). Щелкните на кнопке Ad d (Добавить),  и  через несколько секунд появится  оснащенный скелет, как показано на рис. 8.26.

Сразу     после     создания    системы    FBIK     опробуйте     работу     с     исполнительными элементами: захватите  любую из  прямоугольных оболочек  или  больших ок­ ружностей скелета  (расположенных в  кистях рук,  ступнях ног,  шее, голове и  т.д.)  и переместите их.  Тело персонажа должн о реагировать  на это  более ил и   менее естест­ венными   движениями.    Обратите внимание,   что  при   выделении   исполнительного элемента  FBI K  все  суставы, на  которые  он  воздействует, становятся пурпурными. (Таким образом,  при   выделении   исполнительного  элемента  HipsEf f пурпурным становится  весь скелет.)  В  качестве справки  можно  открыть  прилагаемый на  ком­

пакт-диске фай л MachismoFBlKStart.ma .

Настройка инверсной кинематики всего тела

Хотя львиная  доля работы по созданию оснастки  уже сделана самим созданием  сис­ темы  FBIK,  чтобы  добиться правильного  поведения имеющейся оснастки, все  равно придется сделать еще несколько корректировок.  Самая важная из  них заключается в  до­ бавлении  вторичных исполнительных  элементов  к каждой пятке  персонажа, что обеспе-

чит правильную  анимацию  переката ступни. Чтобы создать вторичный исполнительный элемент для левой ступни, выделите узел LeftFootE f f (прямоугольную оболочку  во­ круг  левой щиколотки) и    из   набора  меню  Animatio n  (Анимация) выберите   пункт Skeleton => Full Body IK => Ad d Secondar y Effector (Скелет  => Инверсная кинематика всего тела => Добавить вторичный исполнительный  элемент). В результате  вокруг щиколотки появится сфера, соответствующая узлу LeftFootEffPivo t (этот узел можно переиме­ новать, например в  LeftFootEffHeel). Переместите этот  исполнительный  элемент к пятке левой ноги, как показано на рис. 8.27.

Рис. 8.26. Добавление инверсной ки­ нематики  всего  тела  к  скелету Машизмо

Рис. 8.27.  Правильно  располо­ женный   вторичный  исполни­

тельный элемент пятки

Также можно уменьшить масштаб исполнительного  элемента, чтобы привести  его  в соответствие  с размерами  остальных исполнительных элементов  персонажа. Далее,  пока выделен узел  LeftFootEffHeel, для  выбора исполнительного  элемента  выберите пункт  меню Skeleton  => Full Body IК => Activate Secondar y Effector (Скелет => Инверсная кинематика всего тела => Активизировать вторичный  исполнительный  элемент). Повто­ рите этот процесс для правой ноги  и  при этом следите за тем, чтобы в  виде сбоку испол­ нительные  элементы находились,  насколько это возможно, на одной  линии.  Теперь при повороте вторичного исполнительного  элемента будет видно, что  каждая ступня враща­ ется вокруг пятки, обеспечивая тем самым корректное движение при ходьбе от пятки.

Чтобы организовать шаг с правильным переходом с пятки на носок, необходимо создать еще по одному вторичному исполнительному  элементу в  подъеме каждой  стопы. Следуя предыдущим этапам,  добавьте вторичный исполнительный элемент  к   каждой   ступне (переименуйте добавленные элементы в  LeftFootEffBall и  rightFootEffBall), рас­ положите каждый из  них  в подъеме соответствующей  ступни  и  выберите.  По окончании ступни  должны выглядеть примерно так,  как  на рис.  8.28.  После добавления  этих двух исполнительных  элементов  при  повороте первичного  исполнительный  элемента ступня будет перемещаться правильно.

По умолчанию все  персонажи  с  FBIK должны контактировать  с  полом,  установлен­ ным на уровне сетки  сцены (значение 0 по оси Y). Поскольку в  настоящий  момент ступ­ ни  персонажа расположены именно на данном уровне, эти  параметры  корректировать не надо; но на них  полезно взглянуть на тот случай, если  когда-нибудь придется изменить уровень пола  для  создаваемого, персонажа.  Чтобы   увидеть контактные  маркеры  пола (floor  contact  marker),  зачастую  называемые   просто  контактными  маркерами  (contact marker), выделите узел HipsEff (корневой  узел персонажа), а затем в  панели  каналов

для узла hikFloorContactMarker l установите параметр Feet Contac t (Контакт ступ­ ней)   в     значение  On   (Включено).  (Убедитесь, что    параметр    Draw   Feet   Contact (Отображать контакт ступней) также имеет  значение On (Включено).) В результате во­ круг  каждой  ступни  должен  появиться  ряд  прямоугольных оболочек,  как  показано  на рис. 8.29.  (Отображение  контактных маркеров  с полом для рук задает параметр Hand s  Contact (Контакт кистей).) Каждый набор  из  шести  прямоугольных  оболочек  должен непосредственно окружать каждую ступню, определяя  область, в  которой ступни  сопри­ касаются с полом.

Рис. 828. Добавление к ступням                                 Рис. 829. Отображение мар- Машизмо  вторичных исполни-                                  керов контакта с полом тельных  элементов пятки  и

подъема

Для  настройки  контактных  маркеров  не  следует  непосредственно  манипулировать прямоугольными  оболочками; вместо этого в  панели  каналов  следует откорректировать  значения атрибутов  узла  hikFloorContactMarkerl . Параметр Foot Height (Высота ступни)  позволяет устанавливать  высоту, на которой происходит  контакт с полом; уве­ личение этого значения  придаст скелету такой вид,  как будто он стоит на более  высоком  основании. Другие параметры  регулируют место  расположения   контактных  маркеров вокруг ступни.  Параметры Foot Back (Задняя часть  ступни),  Foot Middle (Средняя часть ступни) и   Foot  Front  (Передняя  часть  ступни) устанавливают  расположение задней, средней и  передней пар контактных маркеров, a Foot In Side (Внутренняя часть ступни) и  Foot Out Side (Наружная часть ступни) регулируют расположение  трех внутренних и внешних маркеров  каждой ступни.

Для хорошо сконструированного  скелета с не слишком необычной  геометриче­ ской формой начальные параметры контактных  маркеров  будут почти  правиль­

ными. Не бойтесь корректировать  параметры,  если  они  не  совершенны, но  помните о том, что главное — окружить геометрию ступней маркерами  и  что  маркеры сзади, посе­ редине и  спереди  ступни должны быть расположены на  уровне исполнительных элемен­ тов  пятки, подъема и  носка ступни  соответственно.  Если  выделить контактные маркеры и  открыть редактор  атрибутов, то в  нем на вкладке hikFloorContactMarker l  в  раскры­ вающемся разделе Feet То Floor Contac t Attributes (Атрибуты контакта ступней с  полом) можно получить доступ к нескольким другим, недоступным в  панели  каналов, атрибу­ там. Параметр Feet Floor Pivot (Опорная точка ступней на  полу) позволяет установить

опорную точку ступни, разрешая выбрать при  этом вариант auto  (автоматически), ankle (щиколотка)  или  toes (носок). Для параметра Feet  Contact Type (Тип  контакта ступней) возможны  такие  варианты: normal    (обычный)   (для   двуногого  персонажа),   ankle (щиколотка), toe base  (основание носка) и  hoof (копыто). По умолчанию значение пара­ метра Feet Contact Stiffness (Жесткость контакта ступней) равно о, но для придания сус­ тавам ступней большей жесткости его можно увеличить.  После корректировки  параметров

контактного маркера пола отображение этих маркеров  можно отключить, сбросив  фла­ жок Draw Feet Contac t (Отображать контакт ступней); после этого маркеры будут скры­ ты, но останутся на сцене. Для Машизмо конкретные значения  параметров  приведены в имеющемся на компакт-диске файле MachismoFBIKComplete . ma.

Кроме того, на различной высоте от уровня базового пола можно добавить

контактные плоскости  (contact  plane).  Это  может  пригодиться,  если  пер­ сонажу необходимо, скажем, положить руку на стул, в  то время как он нагибается,  чтобы поднять что-то с пола.  Чтобы создать плоскость  контакта с полом, выделите  исполни­ тельный элемент, к которому следует добавить плоскость, а затем выберите  пункт меню Skeleton => Full Bod y IK => Ad d Floor Contact Plane (Скелет => Инверсная кинематика всего тела => Добавить контактную плоскость пола). При этом прямо под исполнительным эле­ ментом  появится небольшая  плоскость.  Однако  перед  тем  как  контактная  плоскость начнет  работать, для  параметра Hand s   Contact  (Контакт   кистей) или    Feet  Contact (Контакт ступней) должно быть установлено значение On  (Включено). Например, если для параметра Hand s Contact еще не установлено значение On , выделите узел HipsEf f и установите для него это значение параметра. Теперь кисть  руки  (или  ступня) при  пере­ мещении   должна  остановиться, когда  достигнет   контактной  плоскости.  Контактную плоскость можно двигать   вверх  и вниз,  перемещать вдоль плоскости  X-Z и  благодаря но­ вовведению  Майя 8  изменять ее  угол,  поворачивать.   При  изменении  угла  контактной плоскости  кисть (или  стопа)  будет  поворачиваться,  оставаясь на  ее  поверхности. При этом для каждой кисти  и  ступни  можно добавить сколько угодно контактных плоскостей пола, что упрощает создание лестницы или другого многоярусного контактного объекта.

Для    исполнительных  элементов     можно    также    откорректировать     закрепление (pinning). Например,  для исполнительных элементов  ступни  закреплено  перемещение и вращение,  исполнительный  элемент бедер не закреплен, а для  исполнительных элемен­ тов  кистей закреплено  только  перемещение. Закрепленное  состояние задает  реакцию конкретного  исполнительного  элемента  на  движение  тела.   При   манипуляциях  телом вместе с ним  будет свободно перемещаться и  поворачиваться  незакрепленный исполни­ тельный элемент. Исполнительные  элементы, для которых закреплено перемещение,  ос­ танутся зафиксированными  в  пространстве (если  не будут перемещены непосредствен­ но), но могут свободно  вращаться. Исполнительные элементы с закрепленным вращени­ ем  будут свободно  перемещаться в   пространстве, но  не  смогут  вращаться, если  их  не повернут  непосредственно. Исполнительные элементы, для которых закреплено и  пере­ мещение, и   вращение,  могут  перемещаться и  (или)   вращаться только  тогда,  когда  эти действия  будут производиться  непосредственно над ними.  Но из  этого правила  есть  ис­ ключение. Если  закрепление должно  привести  к  тому,  что  растяжение цепи  суставов превысит  суммарную длину ее костей  (например, если  вытянуть  тазобедренный сустав так далеко, чтобы ноги  стали  совершенно прямыми), то в  этом  случае закрепленные ис­ полнительные  элементы будут перемещаться так, чтобы  кости  не растягивались.  Попро­ буйте установить  и  снять закрепление различных  исполнительных  элементов  построен­ ного скелета и  посмотрите, как при  этом  изменяется реакция тела на его перемещение  в пространстве.

Различные закрепленные состояния отражают изменение  формы  исполнительных  элемен­ тов: незакрепленные исполнительные  элементы отображаются как  сферические;  исполни­ тельные  элементы  с  закрепленным  перемещением  отображаются  в   виде   прямоугольных оболочек;  исполнительные  элементы, для  которых  закреплено вращение,  имеют вид  полу­ сфер; а исполнительные элементы, для  которых закреплено перемещение и  вращение,  ото-

бражаются как  прямоугольные оболочки  с  полусферами. Такое визуальное отражение  со­ стояния позволяет с первого  взгляда определить  тип поведения исполнительных элементов. В главе 10, "Нелинейная  анимация", будет рассмотрено применение  закрепленных и  неза­ крепленных  исполнительных  элементов, а  также  подчиненных  персонажей для  анимации оснастки  с инверсной кинематикой  всего тела.

И наконец, чтобы настроить поведение  использующей инверсную  кинематику  всего тела  оснастки  при  манипулировании  ею  в   окне  сцены  и  анимации,    многие  атрибуты можно откорректировать  в  редакторе атрибутов.  Выделите узел HipsEff, а затем от­ кройте редактор атрибутов.  Вкладка HipsEff предоставляет доступ к  основным парамет­ рам  управления,  таким как  закрепление исполнительного   элемента,  параметру  Pivot  Offset (Смещение опорной точки) (определяющем  точку, вокруг которой поворачивает­ ся  исполнительный  элемент)  и   параметру  radiu s  (Радиус) (размер  исполнительного элемента).

На вкладке узла hikHandl e в  разделе HIK Handle Attributes (Атрибуты маркера  ин­ версной кинематики человека) находится множество  управляющих параметров,  которые позволяют точно настроить постановку FBIK. Главный элемент управления  — это фла­ жок Activate (Активизировать),  определяющий, будет ли функционировать  FBIK. Пара­ метр Posture Тур е (Тип позы) может быть установлен в  одно из  двух  значений: biped (двуногая) или quadrupe d (четвероногая).  Параметр Hip Translatio n Mod e (Режим пере­ мещения тазобедренного сустава)  может принимать  значение  worl d  rigid или  body rigid; корректируйте этот параметр, только если  для узла HipsEff были  созданы отдельные узлы  перемещения и   вращения. (Это  сделано  в   параметрах  создания использующей FBIK оснастки.)  Параметр realisti c Shoulde r Solving (Реалистичное  плечо) определяет, будет  ли   при   поднятии   руки   над   плечом   поворачиваться   ключица  (clavicle   bone). Значение 1 задает вполне  реалистичное  движение плеча (с полным участием ключицы), а значение 0 фиксирует  сустав  ключицы на месте. В зависимости  от персонажа (например, мультипликационного  или  фотореалистического)  можно либо использовать  крайние зна­ чения, либо искать  значение где-то посередине. Параметр Solve  Fingers (Рассчитывать пальцы)  управляет тем, будет ли  вычисляться  отдельное движение  каждого  пальца.  По­ скольку пальцы имеют столько же суставов, сколько и  остальная часть стандартного  ске­ лета, сбросив флажок Solve Fingers и одновременно заблокировав анимацию, можно ус­ корить взаимодействие персонажа со сценой.

При  установленном в  разделе Pull (Усилие)  флажке Expert Mode  (Квалифицированный режим) становятся доступными для изменений раскрывающиеся разделы (Pull , Left Ar m Pull (Усилие  левой руки), righ t Ar m  Pull (Усилие  правой  руки), Left Leg Pull (Усилие левой  ноги)  и righ t Leg Pull (Усилие правой ноги)), определяющие  усилие. В них можно корректировать,  насколько  сильно каждая часть  тела  (голова, грудь, левая нога и   т.д.) притягивается к движению тела как единого  целого. Чем выше значение каждого усилия, тем  меньшее  влияние  оказывает  перемещение других частей  тела  на  эту  конкретную часть тела.  (Значения  параметров  reac h Translatio n  (Достижимость  перемещения) и reac h  rotatio n  (Достижимость  вращения)  каждого  отдельного исполнительного  эле­ мента  умножаются  на  значение атрибута Pull; поэтому  если  значение достижимости равно 0, то даже значение 1 атрибута Pull не будет иметь никакого эффекта.)  Каждое раскрывающееся меню раздела Pull  (Усилие)  предоставляет более  детальный контроль над работой функций. Можно, например, откорректировать,  как  работает левый локоть или как кисть воздействует на бедра.

Раздел rol l Attributes (Атрибуты вращения)  позволяет распространить некоторый  вра­ щающий поворот руки  или  ноги  (вращение  вокруг продольной оси  кости) на  вращающие кости (roll bone), если они есть у персонажа. Так как для Машизмо были созданы вращающие суставы, в разделе rol l Attributes (Атрибуты вращения) можно выбрать все или некоторые из них. Если, например, необходимо  разделить вращение предплечья 50×50 между вращающими суставами локтя и  предплечья,  установите флажки Left Forearm rol l Mode (Режим вращения левого предплечья) и  righ t Forearm rol l Mode (Режим вращения правого предплечья), чтобы выбрать соответствующие  режимы, и  установите  значения равными   0.5 (т.е.  50%).  Чем больше значение, тем большую часть общего поворота берет на себя вращающий сустав. Пока персонаж не привязан к скелету, увидеть  влияние этого параметра сложно (привязка  геомет­ рической формы к скелету  обсуждается в  следующем разделе), но это влияние  важно для большинства реалистичных персонажей.

Раздел Stiffness Attributes (Атрибуты жесткости), содержащий вложенные  разделы параметров  жесткости  рук, ног и  тазобедренного сустава, управляет  ускорением каждой части  тела во время воспроизведения. (Н а взаимодействие  сцены  эти  параметры не влия­ ют.) Чтобы замедлить  движение части  тела, скажем ноги, по  сравнению  со стандартной скоростью, увеличьте значение жесткости (по умолчанию оно равно 0 . 5 ) . При анимации тела эта нога будет казаться более тяжелой. Чтобы нога выглядела  более легкой,  устано­ вите для нее жесткость, близкую к 0.

Параметр Kill Pitch (Убить тангаж) как для локтей, так и для колен управляет способ­ ностью  сустава вращаться в   направлении   тангажа  (pitch)  (по  умолчанию  это  вокруг оси  Z). Данный элемент управления  используется для устранения  нежелательного вин­ тового вращения (pitch rotation) в  суставах колена или локтя.

В качестве альтернативы для создания контакта кистей или  ступней с полом  можно использовать  атрибуты  разделов  Finger Tip Sizes (Размеры пальцев  руки) и  To e  Tips Size (Размеры пальцев  ноги). В этом случае решатель hi k вместо  контактных маркеров пола вокруг каждой  конечности, размером  которого управляет  соответствующий  атри­ бут  <node>Tip,  создает  сферу.  Чем  больше  значение этого  атрибута, тем  больше  этот палец для  решателя (и  соответственно  настраивается  контакт  ступни  и   кисти  с  любой плоскостью пола). Указанные два способа не могут  применяться  одновременно: при  на­ личии контактной плоскости  атрибуты размеров  пальцев  игнорируются.

Источник: Кундерт-Гиббс, Джон,  Ларкинс, Майк,  Деракшани, Дариус, Кунзендорф, Эрик,  и др., Освоение Maya  8.5.:  Пер.  с англ.  – М.:  ООО  «И.Д.  Вильямс», 2007.  – 928  с.:  ил.

По теме:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий