Глава 5. Создание персонажей

Персонажи в компьютерной графике

Пожалуй, самым интересным и увлекательным видом работы с трехмерной графикой является моделирование и анимация персонажей, будь то реалистичная модель человека, животного, мультяшного героя или невиданного инопланетного существа.

Не только в компьютерных играх, но и в кинематографе все чаще на главные роли выдвигают виртуальных героев, даже компьютерные модели животных, как, например, в известных фильмах про динозавров и драконов. Живые актеры вытесняются из кадра трехмерными персонажами, обладающими неограниченными возможностями и выглядящими порой не менее реалистично.

Персонажи могут и не являться компьютерными моделями людей, но все же обладать определенными реалистичными или же гиперболизированными чертами характера и поведения человека. Это достигается секретными приемами, накопленными художниками-мультипликаторами за многие годы. Благодаря им персонажи выглядят живыми.

Сегодня трехмерное моделирование становится широкодоступным и для неспециалистов. Трехмерные модели применяют во многих областях, начиная с компьютерных игр и заканчивая оформлением Internet-страниц. Многие создатели являются скорее компьютерными специалистами, чем художниками-аниматорами. В ходе усовершенствования систем трехмерного моделирования, получаемые с их помощью модели, также усложняются. Поскольку не все художники имеют классического художественного образования, многие модели выглядят слишком искусственно.

Моделирование и анимация персонажа включает в себя несколько этапов: проектирование оболочки модели, создание скелета, настройка весов в иерархии скелета и непосредственно анимация.

Для создания самого персонажа вы можете использовать уже описанные инструменты NURBS и HyperNURBS, которые позволят создать оболочку персонажа по имеющимся эскизам или «на глаз». Оболочка так и останется статичной оболочкой, которую нельзя реалистично анимировать. Однако достаточно легко можно заставить персонаж выглядеть естественно с помощью инструмента Bone (Кость), позволяющего создать кости, соединяющие различные части тела и образующие скелет.

Для того чтобы задать взаимосвязи между различными костями, необходимо настроить иерархию элементов скелета.

Чтобы определить степень влияния каждой кости на вершины сетки, необходимо настроить вес костей.

Настройка анимации во многом зависит от выбранного метода анимации: Forward Kinematics (Прямая кинематика), при которой рисуются последовательно кадр за кадром анимации, или Inverse Kinematics (Обратная кинематика), при которой создаются ключевые кадры, а потом дорисовываются промежуточные. Этот метод мультипликации не следует путать с инверсной кинематикой, применяемой при создании анимируемых моделей в пакетах трехмерной графики. Инверсная кинематика позволяет управлять цепочкой связанных объектов, перемещая только один из объектов-потомков.

Все эти этапы будут подробно рассмотрены на примере создания модели водителя ниже в этой главе, но вначале расскажем об основных принципах моделирования персонажа.

Основные принципы моделирования персонажа

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

Среди художников принято выражать размеры частей тела человека в высоте головы. Для взрослого человека рост обычно равен от 7 до 8 высот головы. Однако это соотношение может изменяться в зависимости от возраста, пола или расы.

Типовые модели людей делятся по половому признаку - мужские и женские (рис. 5.1).

Рис. 5.1 Мужская и женская фигуры

Следует помнить основные параметры, отличающие мужскую фигуру от женской. Обычно мужчины выше и их плечи шире. Итак, у мужчин ширина плеч составляет две высоты головы, в то время как у женщины - две ширины головы. Бедра у мужчин уже: две ширины головы против двух с половиной у женщин. Чтобы сделать женскую фигуру ниже, следует уменьшать высоту бедер и верхнюю часть рук. Таз женщины короче и шире, располагается он глубже и немного наклонен вперед. Руки и ноги женщин немного короче мужских. В целом фигура женщины выглядит более изящной.

Кроме того, важно знать, что локти обычно располагаются чуть выше талии, кисти рук расположены на уровне промежности. Также помните, что голова вместе с торсом имеет высоту равную половине общей высоты тела, длина руки от основания ладони до вершины среднего пальца соответствует расстоянию от подбородка до середины лба, а ширина глаза обычно соответствует ширине головы, уменьшенной в пять раз.

Лица людей, несмотря на множество различий, делающих непохожими и индивидуальными всех людей планеты, все же имеют сходные пропорции (рис. 5.2).

Рис. 5.2 Вид головы в профиль и анфас показывает расположение различных частей лица

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

Рис. 5.3 Обычно лицо можно разделить на части горизонтальными линиями. Центральная линия расположена на уровне глаз

Уголки губ обычно располагаются на уровне центров глаз. Расстояние между верхней губой и нижней кромкой носа равняется ширине глаза и сохраняется при улыбке.

Обычно крайние уголки глаз расположены выше внутренних. Глаза не должны располагаться на одной линии. Сам глаз является самой глубокой точкой поверхности лица. Обычно для создания поверхности глаз рисуют сферы, помещенные внутри головы. Асимметрия глаз создается за счет разной формы нижнего и верхнего века. Наивысшая точка верхнего века не совпадает по горизонтали с самой низкой точкой нижнего. При закрытии глаз движется в основном верхнее веко, а нижнее при этом совершает небольшое встречное движение.

При расфокусированном взгляде радужные оболочки глаз направлены параллельно вперед. При фокусировке взгляда на каком-либо предмете радужные оболочки смещаются ближе к носу, и чем ближе к лицу расположен предмет, тем ближе друг к другу сдвигаются радужные оболочки и зрачки (рис. 5.4).

Рис. 5.4 Женское лицо выглядит более мягким и гладким

Если вы рисуете ребенка, следует обратить более пристальное внимание на соотношение размеров. Дело в том, что соотношение размеров у детей меняется очень быстро, год за годом. Так, голова младенца равна половине головы взрослого человека, а высота головы семилетнего ребенка имеет уже высоту в три четверти высоты головы взрослого человека. Это следует учитывать при измерении частей тела в высотах головы.

У новорожденного рост составляет четыре высоты головы. В трехлетнем возрасте высота ребенка равна пяти высотам головы, а в шесть лет достигает шести, в десять лет - шести с половиной. К шестнадцати годам высота ребенка равна семи высотам головы, при этом высота головы практически равна высоте головы взрослого человека. В двадцать лет обычно человек достигает своего полного роста - и рост останавливается (рис. 5.5).

Рис. 5.5 Лицо подростка

Лицо ребенка тоже существенно отличается от лица взрослого. Кроме большей нежности и миниатюрности черт лица ребенка, можно выделить несколько важных деталей. Лицо ребенка имеет меньшие размеры по отношению к размерам головы, и линия глаз расположена ниже средней линии, как у взрослого. Обычно нос ребенка мал и вздернут вверх, а переносица более плоская. Радужная оболочка кажется большей, чем у взрослого из-за меньшего раскрытия глаз. Ресницы кажутся более длинными относительно размера лица ребенка. Нижняя челюсть ребенка принимает горизонтальное положение, а в процессе роста опускается, в результате чего лицо вытягивается. Губы кажутся более пухлыми и выпуклыми, а на щеках часто проявляются «ямочки». Брови ребенка тоньше, чем у взрослого человека.

При старении человека также происходят некоторые заметные изменения, например, фигура становится сгорбленной, голова подается вперед, шея становится тоньше, брови у женщин редеют, а у мужчин становятся кустистыми. В области висков появляются впадины. Скулы, глаза и подбородок выступают вперед. Морщины обычно появляются в области уголков рта, глаз и на лбу.

Следует также уделить внимание цвету кожи персонажей. В реальности не бывает абсолютно ровного цвета по всей поверхности, а содержит участки с разными оттенками и цветами. Кроме того, цвет может зависеть и от национальности, и от возраста, и даже от погодных условий (воздействие солнечных лучей, ветра, мороза на кожу и др.).

Инструменты МОССА

В Cinema 4D разработчиками добавлен дополнительный модуль МОССА, содержащий набор инструментов, которые облегчают моделирование и анимацию. Инструменты МОССА доступны в меню Plugins > МОССА (Модули > МОССА). Вы также можете создать отдельную панель, содержащую палитру инструментов этого модуля, вызвав команду Plugins > МОССА > МОССА Palette (Модули > МОССА > Палитра МОССА) - рис. 5.6.

Рис. 5.6 Инструменты МОССА

Однако если вы хотите работать с моделированием персонажей или с их анимацией наиболее удобным способом, оптимизирующим ваше рабочее пространство, то необходимо использовать соответствующую компоновку. Чтобы сменить ее, щелкните по кнопке Revert to Default Layout (Вернуться к компоновке по умолчанию) панели инструментов Tools и, удерживая кнопку мыши нажатой, выберите в выпадающем меню Mocca(рис. 5.7).

Рис. 5.7 Выбор компоновки МОССА

В нижней части окна программы вместо окон Materials (Материалы) и Coordinates (Координаты) появятся окна Timeline (Временная шкала) и F-Curve (F-кривая), которые будут подробнее рассмотрены в главе, посвященной анимации. В верхней части экрана появятся две вкладки: Standard и Character (Персонаж). Первая соответствует панели инструментов стандартной компоновки, а при выборе вместо панели Standard появляется панель с инструментами МОССА.

Рассмотрим более подробно назначение некоторых из них.

Инструмент Bone

Для вызова этого инструмента используется кнопка Bone Tool (Инструмент Кость) или команда Plugins > МОССА > Bone Tool (Модули > МОССА > Инструмент Кость) - рис. 5.8. Этот инструмент рекомендуется использовать только при первоначальном создании костей, но при их настройке пли добавлении нулевых или вспомогательных костей лучше применять другие инструменты.

Рис. 5.8 Инструмент Bone Tool вызывается командой Plugins > MOCCA > Bone Tool (Модули > MOCCA > Инструмент Кость)

После создания кости используйте обычные инструменты перемещения и вращения Move и Rotate для окончательной настройки. Кроме того, недостатком этого инструмента является то, что он особым образом определяет, как кость будет вращаться вокруг оси z (крен). Часто это бывает удобным, но иногда вам может потребоваться изменить крен отдельных костей после использования инструмента Bone, поскольку углы тангажа, крена и курса в значительной степени влияют на движения в сочлененных структурах.

Инструмент Claude Bonet

Инструмент Claude Bonet вызывается кнопкой Claude Bonet или с помощью команды Plugins > MOCCA > Claude Bonet. Он предназначен для назначения вершинам сетки определенного веса, определяющего степень влияния отдельных костей. Выбрав этот инструмент, вы указываете нужную кость и непосредственно в окне просмотра раскрашиваете оболочку в интерактивном режиме, сразу же наблюдая результат.

Если при раскрашивании нажать и удерживать кнопку Ctrl, то точки будут исключаться из зоны влияния. Преимуществом этого инструмента является то, что вы можете перенести выделение Claude Bonet от одной кости к другой, однако вы не сможете перенести назначенный вес от одного объекта к другому. В этом случае удобнее использовать карты вершин (Vertex Maps), которые можно перетащить, удерживая кнопку Ctrl, к другим объектам. По сравнению с картами вершин инструмент Claude Bonet более прост, но менее гибок и ориентирован на персонажи. Вы можете использовать оба метода для различных частей персонажа. Карты вершин можно использовать для частей, которые могут быть перенесены на другие персонажи.

Инструмент Bone Mirror

Инструмент Bone Mirror (Отражение костей) позволяет создавать только половину структуры симметричного скелета, которая затем отражается вместе со всеми костями, весами, элементами Soft IK. Для его применения нажмите кнопку Bone Mirror (Отражение костей) или вызовите команду Plugins > MOCCA > Bone Mirror (Модули > MOCCA > Отражение костей).

Инструменты Soft IK

Набор инструментов Soft IK (Гибкая инверсная кинематика) предоставляет большие возможности по управлению персонажами. С их помощью персонаж будет в ваших руках марионеткой и выполнять все задаваемые движения. Несмотря на простоту и удобство настройки персонажей, этот инструмент имеет свои недостатки.

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

Инструмент Auto Redraw

Инструмент Auto Redraw (Автоматическая перерисовка) используется при работе с инструментами Soft IK и приводит к постоянному обновлению окна редактора, благодаря чему редактирование происходит в режиме «онлайн» и эффект действия различных инструментов отчетливо виден. В основном инструмент следует применять при создании и настройке Soft IK, во время же анимации он не оказывает существенного влияния. Для вызова инструмента используйте кнопку AutoRedraw (Автоматическая перерисовка) или вызовите команду Plugins > МОССА > Auto Redraw (Модули > МОССА > Автоматическая перерисовка).

Инструмент Cappucino

Для применения инструмента Cappucino (Каппучино) нажмите на кнопку Cappucino или вызовите команду Plugins > МОССА > Cappucino. Этот инструмент предназначен для записи в реальном времени перемещений мыши. В основном это используется для распределения во времени анимации. Вместо анимации реального объекта вы можете использовать какой-либо простой объект, например сферу для определения времени движения.

Если вы применяете Cappucino к реальному объекту, то используйте инструмент KeyReducer (Редуктор ключей), нажав кнопку KeyReducer или вызвав команду Plugins > МОССА > KeyReducer (Модули > МОССА > Редуктор ключей). Редуктор ключей позволяет снизить число ключей, поскольку Cappucino создает по ключу на каждый кадр.

Инструмент Р2Р

Р2Р - сокращенно от Pose-to-Pose (От позы к позе). Этот инструмент позволяет создать набор позиций или анимировать персонаж между этими позициями. Для его вызова нажмите кнопку Add P2P Library Object (Добавить библиотеку Р2Р) или вызовите команду Plugins > МОССА > Р2Р Library (Модули > МОССА > Библиотека Р2Р). Основной недостаток инструмента в том, что он трансформирует объект только от одной формы к другой, и потому он чаще применяется для анимации отдельных частей персонажа, чем всего объекта. Используйте этот инструмент, например, при движении модели, создав несколько основных положений для рук.

Инструмент PoseMixer

Инструмент PoseMixer (Смеситель поз) позволяет добавить дополнительное управление персонажем при каких-либо изменениях при движении от позы к позе. Недостаток инструмента PoseMixer в том, что при создании с его помощью анимации вам необходимо иметь в сцене три объекта: исходную модель, конечную модель и модель, которая будет отображаться в анимации и изменяться объектом PoseMixer. Первые две модели должны быть скрытыми.

С другой стороны, существование конечной модели позволяет вам управлять процессом анимации. Поскольку вы передаете управление структурой этому инструменту, вы можете влиять только на конечную модель, анимировать ее или использовать несколько конечных моделей, смешивая их в процессе анимации. Инструмент PoseMixer вызывается с помощью кнопки Add PoseMixer Object (Добавить объект смеситель поз) или команды Plugins >МОССА > Pose Mixer (Модули >МOCCA > Смеситель поз).

Инструмент MoMix

Инструмент MoMix (Movement Mix - смешение движений) аналогичен инструменту PoseMixer с той лишь разницей, что вы смешиваете не положения персонажа, а движения. Вы также должны иметь в сцене несколько объектов, а именно четыре: исходная, неанимированная структура, две анимированные структуры с разными движениями и структура, которая будет анимироваться инструментом MoMix.

Инструмент MoMix вызывается с помощью кнопки MoMix Object (Объект MoMix) или команды Plugins > МОССА > MoMix Object (Модули > МОССА > Объект MoMix).

Инструмент Timewarp

Если выделен инструмент Timewarp (Преобразование времени), вы можете перемещать анимацию во времени с помощью простого нажатия и перемещения мыши в том или обратном направлении. Это позволяет при анимации не переходить все время на панель временной шкалы, а изменять момент времени в процессе работы.

Инструмент Timewarp вызывается с помощью кнопки Timewarp (Преобразование времени) , или команды Plugins > МОССА > Timewarp (Модули > МОССА > Преобразование времени).

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

В первом разделе мы рассмотрели основные этапы моделирования и анимирования персонажей, а также общие правила для построения реалистичных моделей человека. Имея оболочку персонажа, вы можете разбить ее на части и применить к ним анимацию, однако результат будет не очень привлекательным: управлять такой анимацией сложно - и в области сгибов суставов образуются разрывы. В этом случае применяются кости скелета, помещаемого внутрь оболочки. Перемещая и вращая кости скелета, вы сможете менять положение персонажа. При этом оболочка будет сгибаться и растягиваться соответствующим образом, обеспечивая правдоподобность модели.

При создании костей они формируются в определенную иерархию, образуя родительские кости и кости-потомки. При перемещении или вращении кости деформируется вся оболочка, связанная с родительской костью и всеми костями-потомками. Вы можете сгруппировать кости в собственную структуру на одном уровне иерархии или связать их непосредственно с оболочкой. Вы также можете использовать нулевые кости, которые не осуществляют деформации сетки, изменяя только кости-потомки, и служат для организации структуры и создания дополнительных осей для выравнивания и вращения.

Вы можете использовать модели людей, входящие в комплект Cinema 4D. Программа содержит пять готовых моделей (рис. 5.9):

Рис. 5.9 Готовые модели в Cinema 4D

  • Human Meg - обнаженная женская фигура;
  • Human Otto - обнаженная мужская фигура;
  • Zygote Women - модель женщины в одежде от Zygote;
  • Zygote Man - модель мужчины в одежде от Zygote;
  • Zygote Child - модель ребенка от компании Zygote.

Увидеть список вы можете в меню Object > Object Library (Объект > Библиотека объектов). Поскольку нам нужен водитель для нашего автомобиля, выберем модель Zygote Man. Для этого вызовите команду Objects > Object Library > Zygote Man (Объекты > Библиотека объектов > Мужчина Zygote) - рис. 5.10.

Рис. 5.10 Выбор модели человека

Мы создадим только половину скелета персонажа, которую симметрично отразим после настройки весов.

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

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

Начнем с бедренной кости. Размещать скелет будем внутри оболочки, поэтому следует сделать ее полупрозрачной. Для этого установите флажок Display > X-Ray (Отображение > Просвечивать) в окне проекции - рис. 5.11.

Рис. 5.11 Сделайте оболочку полупрозрачной, установив флажок Display > X-Ray

Для создания первой кости щелкните по кнопке Add Bend Deformation и, удерживая кнопку мыши нажатой, в появившемся меню нажмите кнопку Add Bone Deformation (Добавить деформацию костью) или вызовите команду Objects > Deformation > Bone (Объекты > Деформация > Кость). Появится кость в форме пирамиды, направленная по оси Z и имеющая неподходящие для нас положение и размер. Для настройки положения используйте стрелки, исходящие из основания пирамиды, или перетаскивайте кость за габаритный контейнер. Для настройки размера и направления ухватитесь мышью за оранжевую точку у вершины кости и перетаскивайте ее. Используя различные виды, расположите кость так, как показано на рис. 5.12.

Рис. 5.12 Расположите бедренную кость соответствующим образом

Чтобы создать кость голени, необходимо вытянуть ее из вершины первой кости, удерживая нажатой кнопку Ctrl. Создаваемая кость автоматически становится подобъектом кости бедра. Настройте кость с помощью оранжевой точки у вершины как показано на рис. 5.13.

Рис. 5.13 Вытяните вторую кость, удерживая клавишу Ctrl

Аналогичным образом создайте третью кость, образующую ступню, и расположите ее так, как показано на рис. 5.14.

Рис. 5.14 Ногу составляют три кости

При создании позвоночника начните с кости, которая будет основной костью скелета. Она должна располагаться в центре массы модели - в области таза с направлением Z, указывающим в сторону позвоночника, и осью Y, указывающей назад. При этом кость должна быть расположена точно в центре персонажа, чтобы при зеркальном отражении разместилась правильно. Для этого используйте группу Coords. (Координаты), настроив координату по оси X так, чтобы она совпадала с координатой оболочки. После настройки необходимо преобразовать ее в нулевой объект, используя флажок Null (Нулевой) - рис. 5.15.

Рис. 5.15 Создайте основную кость

Для настройки параметров кости используйте группу параметров Object (Объект) окна Attributes (Атрибуты) - рис. 5.16:

Рис. 5.16 Параметры кости

  • флажок Null (Нулевой) - при его установке кость обращается в нулевой объект, не имеющий длину и других параметров и служащий для группировки скелета. Когда флажок установлен, остальные параметры недоступны для настройки;
  • поле Length (Длина) - задает длину кости, то есть расстояние между основанием и вершиной кости;
  • поле Function (Функция) - влияет на напряженность изгиба суставов. Чем больше степень r в знаменателе, тем туже становится сустав. Небольшие значения соответствуют более гладкому и плавному изгибу. Этот параметр задается для верхней в иерархии скелета кости. Для всех остальных костей функция будет применена автоматически;
  • поле Strength (Сила) - определяет степень воздействия кости на точку по сравнению с другими костями;
  • флажок Scale Strength (Масштабировать силу) - позволяет изменять силу пропорционально изменению длины для анимируемых костей;
  • флажок Limit Range (Ограничить диапазон) - его установка позволяет задать диапазон, определяющий точки, деформируемые костью. Если флажок не установлен, то кость влияет на все точки оболочки. При установке флажка становятся доступными описанные ниже поля;
  • поле Minimum (Минимальный) - определяет минимальный радиус действия кости;
  • поле Maximum (Максимальный) - задает максимальный радиус действия кости. Все точки, расположенные между минимальным и максимальным радиусом, будут деформироваться плавно. Если радиусы совпадут, то произойдет резкий переход от деформированной области к недеформированной.

Создадим кость таза. Для этого необходимо вытащить кость из вершины основной кости, удерживая кнопку Ctrl и выделив предварительно родительскую ость. Установите в поле Function параметр 1/r^6.

Переместите в менеджере объектов кость бедра вместе с вложенными костями на уровень подобъекта основной кости скелета (нулевой).

Теперь последовательно создайте несколько костей, соответствующих позвоночнику и шее. Проследите, чтобы все кости лежали в одной плоскости - плоскости вида справа. Вытягивая одну кость за другой в своеобразную цепочку, убедитесь, что при этом выделена предыдущая кость. В этом случае каждая новая будет подобъектом предшествующей. В итоге вы должны получить три или четыре кости, приходящиеся на позвоночник, две на шею и одну кость для черепа - рис.5.17.

Рис. 5.17 Последовательно создайте несколько костей, соответствующих позвоночнику и шее

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

Рис. 5.18 Кость плеча не должна исходить из вершины кости позвоночника

Для того чтобы обнулить значение полей вращения для этого объекта, можно воспользоваться нулевой костью. Это необходимо, чтобы избежать неожиданного поведения кости при ее дальнейшем вращении. Настроив нужным образом размещение кости плеча, перейдите на вкладку Attribute в режиме (Mode) Tool и щелкните по кнопке Add/Update Null Bone (Добавить/Обновить нулевую кость). Таким образом, значения поворота кости плеча будет обнулено внутри родительского объекта.

Обычно локоть образуют из двух костей вместо одной для достижения достаточной подвижности запястья. Итак, руку будут составлять четыре кости: плечо, предплечье и две кости локтя - рис. 5.19.

Рис. 5.19 Кости, образующие руку

Кисть руки довольно сложна и представляет большой интерес, поскольку позволяет понять принцип работы руки человека. Кисть состоит из двадцатисеми костей, из которых восемь образуют запястье и имеют неправильную форму. Наибольшую подвижность имеет сустав, расположенный в основании большого пальца. Остальные кости запястий имеют малую подвижность или почти неподвижны.

В качестве запястья мы создадим только одну кость, родительскую для всех костей кисти, которая будет управлять перемещением всей кисти как единого целого. Ее положение определяется положением основания большого пальца. Кость может быть как нулевым объектом, так и обычной костью. Это не имеет особого значения, поскольку все фаланги пальцев лягут точно вдоль руки.

Обратите внимание на ориентацию осей X и Y. Поскольку большинство костей кисти могут сгибаться только в одном направлении, выберите одну из осей, которая будет всегда указывать вверх или вниз для каждого пальца.

Ладонь руки состоит из пяти костей, называемых пястью. Каждый палец, кроме большого, состоит из трех костей-фаланг. Создав один палец, состоящий из последовательности костей, вы можете скопировать его три раза, перетащив в менеджере объектов при нажатой кнопке Ctrl, и настроить соответствующим образом. Большой палец, кроме кости пясти, состоит из двух фаланг - рис. 5.20.

Рис. 5.20 Кисть руки состоит из 20 костей

Создавая верхние фаланги пальцев, вы можете настроить их длину гак, чтобы они выступали за пределы оболочки. Это позволит упростить ее деформацию.

При создании костей старайтесь, чтобы суставы располагались ближе к верхней части руки, чем к нижней. Взглянув на свою руку, вы можете увидеть, что нижняя часть деформируется сильнее, в то время как верхняя остается более прямой. Чтобы создать такой эффект, суставы должны располагаться ближе к верхней части сетки. Это применимо для суставов, сгибающихся в одном направлении, как, например, в пальцах, локтях и коленях.

Когда весь скелет, а если быть точным, вся его половина готова, настройте диапазон влияния каждой кости. Это необходимо, когда вы хотите ограничить влияние каждой кости на определенный участок оболочки, например кости запястья на все руку. Для настройки диапазона деформации используются параметры в окне Attributes (Атрибуты), в группе параметров Object, где вы можете указать минимальный и максимальный радиусы действия - рис. 5.21.

Рис. 5.21 Настройка диапазона действия кости

Для настройки диапазонов действия выполните следующие шаги:

  1. Выделите кость, которую вы хотите деформировать.
  2. Перейдите на вкладку Attributes, расположенную под менеджером объектов, и щелкните по кнопке Object, чтобы раскрыть нужную группу параметров.
  3. Установите флажок Limit Range (Ограничить диапазон). Вокруг кости появятся две зеленые сетки, соответствующие максимальному и минимальному диапазону действия. На каждой сетке располагаются шесть управляющих оранжевых точек - рис. 5.22.
  4. Рис. 5.22 Настройте две зеленые сетки, соответствующие максимальному и минимальному диапазонам действия

  5. Настройте максимальный и минимальный радиусы, введя соответствующие значения в полях Maximum (Максимальный) и Minimum (Минимальный) или перемещая управляющие точки в окне просмотра. При этом максимальный и минимальный радиусы могут отличаться друг от друга не очень сильно. Диапазон действия должен перекрывать весь участок оболочки, который должен быть деформирован. Один и тот же участок может перекрываться областями действия разных костей, но при этом важно, чтобы на участки оказывал влияние только один скелет, так как в противном случае может произойти разрыв оболочки.
  6. Выполните это действие для всех костей, согласно описанным рекомендациям. Окончательная доводка будет произведена после того, как кости будут активированы. Имея наглядный результат, вы сможете настроить точно диапазоны действия, вращая кости и деформируя оболочку.

Настроив таким образом все кости скелета, вы можете переходить к заданию веса. Но прежде следует внимательно изучить полученную «груду костей». Убедитесь, что все кости выровнены правильно. Для этого хорошо подойдет инструмент Rotate (Вращать) и режим редактирования осей объекта, для включения которого необходимо нажать кнопку Use Object Axis Tool (Использовать инструмент осей объекта). Проверьте кости, расположенные в проблемных местах, такие как плечи, руки и пальцы. Они должны иметь точное выравнивание по осям, чтобы вращение их относительно осей напоминало правильное и естественное движение.

Убедитесь, что все кости названы нужным образом, согласно их предназначению, и легко находятся в списке.
Теперь вы можете применить скелет к оболочке. Для этого перетащите его в менеджере объектов на сетку персонажа. Чтобы зафиксировать скелет, необходимо щелкнуть по верхней в иерархии скелета кости и выбрать в контекстном меню Fix Bones (Фиксировать кости) - рис. 5.23. В появившемся диалоговом окне, спрашивающем, хотите ли вы зафиксировать также все кости-потомки, необходимо нажать кнопку ОК. Вы можете в любой момент восстановить положение костей, которое они принимали при фиксации. Для этого необходимо вызвать команду Reset Bones (Восстановить кости) в контекстном меню любой кости.

Рис. 5.23 Фиксация кости

При фиксации скелета кости автоматически активируются. Вы можете активировать и дезактивировать их вручную, щелкая по зеленой галочке или красному крестику справа от названия кости в менеджере объектов.

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

Когда мы создаем иерархию объектов так, чтобы одни объекты (потомки) оказывались подобъектами других (предков), происходит их связка, которая осуществляется сверху вниз. Это значит, что при изменении, деформировании или анимации объектов-предков все эффекты передаются потомкам. Обратного действия не происходит, изменения объектов-потомков остаются локальными изменениями. В некоторых случаях такой тип связывания бывает полезным,. но его нельзя использовать для имитации цепочек костей, которые применяются для анимации живых существ. В этом случае перемещение одного объекта приводит к изменению всех связанных с ним объектов на основе их положений и свойств их суставов. Поэтому в таких случаях используется инверсная кинематика (Inverse Kinematics).

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

Если вы используете инверсную кинематику, то важно понимать связь между локальной системой координат объекта и локальной системой координат предка объекта. При создании иерархии объектов в инверсной кинематике следует выравнивать локальную систему координат иерархии с объектами, а сами объекты - с системой World. При создании иерархии следует учитывать, что при вращении объектов вращается локальная система координат, трансформация объектов на уровне подобъектов влияет на подобъекты, но не изменяет локальной системы координат, а при присоединении объекта к иерархии вместо его локальной системы координат используется система координат выбранного объекта.

Как вы уже знаете, цепочки инверсной кинематики определяются с помощью костей, которые создаются с помощью инструмента Bone. Если вы выберете инструмент Inverse Kinematics, нажав на кнопку Use Inverse Kinematics Tool (Использовать инструмент инверсной кинематики) или вызвав команду Tools > Inverse Kinematics (Инструменты > Инверсная кинематика), рис. 5.24, то, перемещая любую из костей последовательности, вы увидите ее воздействие на остальные кости, связанные с ней.

Рис. 5.24 Для работы с цепочками костей в инверсной кинематике нажмите на кнопку Use Inverse Kinematics Tool

При использовании цепочек костей для удобства управления в инверсной кинематике обычно создаются дополнительные нулевые объекты, которые помещаются в иерархию в качестве самого верхнего и самого нижнего ее объекта. При этом нулевой объект в вершине иерархии называется опорой, а самый нижний объект - эффектором.

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

При анимации или настройке позиции фигуры иногда бывает удобным использовать цели для костей. Кость, имеющая цель, будет выравниваться на нее и при изменении цепочки стремиться в сторону цели.

Для создания ограничения вращения используется тег Kinematic (Кинематика). Вы можете назначить ограничиваемому объекту этот тег двумя способами: щелкнув по нему правой кнопкой мыши в менеджере объектов и выбрав в контекстном меню Cinema 4d Tag > Kinematic (Тег Cinema 4d > Кинематика), или выделив объект и выбрав команду меню File > Cinema 4d Tag > Kinematic (Файл > Тег Cinema 4d > Кинематика). В результате в менеджере объектов справа от названия объекта появится значок, обозначающий тег кинематики.

Настройка тега осуществляется в группе параметров Tag (Тег) окна Attributes, которая открывается при щелчке мышью по значку тега - рис. 5.25. Здесь находятся три флажка Heading (Курс), Pitch (Тангаж) и Bank (Крен), соответствующие трем направлениям вращения в системе координат объекта. При установке флажка возле одного из них становятся доступными поля Minimum (Минимальный) и Maximum (Максимальный), позволяющие задать предельные углы для вращения объекта относительно выбранной оси.

Рис. 5.25 Настройки тега Kinematic

Последнее поле в окне Attributes - поле Damping (Демпфирование). Значение этого поля определяет насколько «легко» будет осуществляться вращение настраиваемого объекта. Если другие кости в цепочке имеют меньшее значение демпфирования, то они будут вращаться быстрее.

Установить кинематическую цель объекту вы можете двумя способами:

  • щелкнув по нему правой кнопкой мыши в менеджере объектов и выбрав в контекстном меню Cinema 4d Tags> IK (Тег Cinema 4d> Инверсная кинематика) - рис. 5.26;
  • Рис. 5.26 Выберите в контекстном меню объекта Cinema 4d Tags> IK, чтобы создать кинематическую цель

  • или выделив объект и выбрав команду меню File > Cinema 4d Tags> IK (Файл > Тег Cinema 4d> Инверсная кинематика).

В результате в менеджере объектов справа от названия объекта появится значок , обозначающий это выражение. Щелкнув по нему, вы увидите, что в окне Attributes открылась группа параметров Tag. Она содержит только одно поле Target Object (Объект цели). Перетащите из менеджера объектов название нужного объекта в это поле, и объект с настраиваемой кинематикой будет сориентирован по нему. Название цели отобразится в поле.

Вы можете легко копировать ограничения и цели кинематики с одного объекта на другой с помощью перетаскивания их в менеджере объектов с нажатой клавишей Ctrl.

Рассмотрим применение ограничений кинематики для настройки цепочки костей, составляющих ногу нашего персонажа.

  1. Откройте файл с цепочкой костей ноги.
  2. Создайте два нулевых объекта, щелкнув по кнопке Add Null Object (Добавить нулевой объект).
  3. Поместите один объект (опору) в вершину иерархии так, чтобы вся цепочка стала потомственной по отношению к нему. Второй объект (эффектор) должен располагаться в самом низу иерархии.
  4. Выделите в менеджере объектов кость бедра.
  5. Назначьте кости тег кинематики, щелкнув по нему правой кнопкой мыши, в менеджере объектов и выбрав в контекстном меню Cinema 4d Tag > Kinematic (Тег Cinema 4d > Кинематика).
  6. В группе параметров Tag окна Attributes установите флажок Heading (Курс) и задайте минимальное и максимальное значения углов равными О°.
  7. Установите флажок Pitch (Тангаж) и задайте минимальное значение угла -90°, а максимальное - 45°.
  8. Установите флажок Bank (Крен) и задайте минимальное значение угла -45°, а максимальное - 45°.
  9. Установите значения поля Damping (Демпфирование) равное 70%.
  10. Скопируйте тег кинематики на кость голени, перетащив его в менеджере объектов с нажатой клавишей Ctrl.
  11. Для угла Pitch (Тангаж) задайте минимальное значение угла 0°, а максимальное - 90°.
  12. Для угла Bank (Крен) задайте минимальное и максимальное значение угла 3°.
  13. Установите значение Damping (Демпфирование) равное 50%.
  14. Скопируйте тег кинематики на кость ступни, перетащив его в менеджере объектов с нажатой клавишей Ctrl.
  15. Для угла Pitch (Тангаж) задайте минимальное значение угла -45°, а максимальное - 90°.
  16. Для угла Bank (Крен) задайте минимальное и максимальное значение угла 0°.
  17. Установите значение Damping (Демпфирование) равное 60%.

Аналогичным образом настройте все остальные кости скелета.

Настройка весов

В этом разделе мы рассмотрим настройку весов для созданной структуры скелета. Веса применяются для исключения точек оболочки из области влияния каждой кости на точки сетки.

Для этого вы можете использовать инструмент Claude Bonet, который позволяет интерактивно настраивать вес, «раскрашивая» сетку, результат деформирования которой отображается сразу же в окне редактора.

Выделив нужную кость, вызовите инструмент Claude Bonet с помощью кнопки Claude Bonet. При этом вы увидите, что сетка, связанная со скелетом, примет серый цвет, означающий, что выделенная кость не имеет связанной карты вершин и будет воздействовать на всю сетку в пределах диапазона влияния заданных при создании вершин. Проводя кистью по оболочке, вы увидите, что сетка под кистью становится зеленой. Чем интенсивнее цвет, тем сильнее будет воздействовать кость на точку. При переходе к другой кости окрашенные области примут другой цвет, соответствующий каждой кости. Зеленым цветом всегда окрашивается сетка в текущем выделении.

Для снятия краски необходимо при раскрашивании удерживать нажатой кнопку Ctrl.

Для настройки размера кисти используйте поле Radius (Радиус) в окне Attribute в режиме (Mode) Tool, где задается радиус окружности, при попадании в которую будут закрашиваться все точки. Бегунок Strength (Сила) определяет в процентах степень влияния кости на точки в центре кисти, которая отображается в поле справа от бегунка. При повторном проведении кистью по точкам степень влияния увеличивается соответствующим образом. Если вы нажмете на кнопку Set Value (Установить значение), то указанное в поле значение силы будет применено ко всей оболочке.

Кнопка Remove Paint (This Bone) (Удалить краску с выделенной кости) позволяет вернуть в исходное состояние настройки сетки и начать раскрашивание снова. Кнопки Remove Paint (Hierarchy) (Удалить краску с иерархии) и Remove Paint (Scene) (Удалить краску со сцены) действуют аналогичным образом на иерархию костей и на всю сцену в целом.

Перед раскрашиванием оболочки следует назначить пустую карту Claude Bonet каждой кости, вес которой вы настраиваете. Для этого необходимо выделить кость, установить бегунок в окне Attribute в режиме (Mode) Tool на нулевое значение и нажать кнопку Set Value. В результате оболочка примет черный цвет, означающий, что кость не будет деформировать ни одной точки сетки. Эту операцию следует проделать для всех костей скелета.

Теперь вы можете последовательно назначить веса точек для всех костей скелета. Чтобы проверить правильность выделения, вы можете повращать кость и исправить неточности.

Настройка веса занимает достаточно много времени, но, осуществив ее несколько раз, вы будете назначать вес быстрее. Возможно, в последующих версиях Cinema 4D эта процедура станет автоматической. Но даже в этом случае вам придется потратить некоторое время на доводку и исправление результатов автоматической настройки веса.

Отражение скелета

Теперь, когда мы имеем готовую структуру скелета с настроенными весами, можно отразить его. Перед этим необходимо установить все кости в исходное положение. После чего выделите структуру скелета и воспользуйтесь инструментом Bone Mirror (Отражение костей), для вызова которого нажмите кнопку Bone Mirror или выберите пункт меню Plugins > МОССА > Bone Mirror (Модули > МОССА > Отражение костей).
При вызове инструмента появляется диалоговое окно Bone Mirror - рис.5.27.

Рис. 5.27 В диалоговом окне Bone Mirror вы можете определить отражаемые элементы

Здесь вы можете указать плоскость симметрии (YZ, XY, XZ) в меню Plane (Плоскость). В меню Origin (Начало координат) вы можете выбрать объект, относительно системы координат которого будет отражаться скелет:

  • Selected (Выделенные) - система координат выделенных костей;
  • Parent (Родительская) - система координат родительской кости;
  • Top Most (Самая верхняя) - система координат самой верхней кости в иерархии;
  • World (Мировая) - мировая система координат.

По умолчанию объекты зеркального объекта имеют то же название, что и исходный. Вы можете заменить эти названия или их часть на новые с помощью поля Replace (Заменить) и With (Вместе с...), где вводятся соответственно заменяемая часть названия и символы, которыми она заменяется. Также можно добавить к исходным названиям приставку с помощью поля Prefix (Приставка) или Suffix (Суффикс).

С помощью флажков в правой части вы можете определять, какие элементы будут копироваться:

  • флажок Copy Tags (Копировать теги) - при его установке для отраженных костей сохраняются все примененные свойства;
  • флажок Copy Animation (Копировать анимацию) - при его установке будет сохраняться анимация отраженных костей;
  • флажок Mirror Children (Отражать потомки) - если флажок установлен, будет отражаться не только сама кость и ее родительские кости, но и потомки;
  • флажок Mirror Constrain (Заражать ограничения) - при его установке вместе с костями будут отражаться и присвоенные им ограничении кинематики;
  • флажок Mirror Influence (Отражать влияния) - при его установке вместе с костями будут отражаться и присвоенные им влияния в кинематике.

Сделав все необходимые настройки, щелкните по кнопке Mirror. В результате вы увидите структуру скелета персонажа целиком. Теперь перейдем к изучению основных принципов анимации, чтобы затем анимировать полученную модель скелета.