Кто не хочет читать ONLINE, можете скачать доступные части книги:

Скачать часть1 (1.1 Мб) - Ознакомление с программой 3ds MAX

Скачать часть2 (1.4 Мб) - Объекты произвольной формы

Скачать часть3 (2.2 Мб) (не завершена) - Текстурирование

Глава 8. Системы костей и моделирование скелета

Теперь мы приступаем к созданию более сложного и детализированного персонажа. Этот персонаж будет состоять из скелета для анимации, оснастки скелета (звенья инверсной кинематики и другие вспомогательные объекты), а так же "шкуры". Скелет и оснастка являются вспомогательными объектами, которые не будут визуализироваться в конечной сцене. "Шкура" - один или несколько объектов, формирующих внешний облик нашего персонажа, об этом речь пойдёт несколько позже.

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

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

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

Системы костей

Создание системы костей доступно во вкладке типов объектов systems (системы). Созданию костей соответствует кнопка Bones (кости). Кости создаются не по одиночке, а целыми цепочками (не даром вкладка называется "системы"), при том каждая следующая кость привязана к предыдущей (то есть, каждая следующая кость является дочерним объектом по отношению к предыдущей). Надеюсь, понятно, что каждая кость является самостоятельным объектом.

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


Рис 7.1. Система костей

На рисунке 7.1. показано, как выглядит система костей, созданных с настройками по умолчанию. Вообще, форму каждой кости можно настроить в меню. Если сделать настройки перед созданием кости, в группе Bone Parameters, которое должно появиться под группой кнопок, после того, как вы нажмёте кнопку Bones. (По умолчанию располагается под группой IK Chain Assigment).

 

Кость можно поворачивать двумя способами: либо при помощи инструмента "вращение", либо если потянуть за дочернюю кость. Особенность костей состоит в том, что они жёстко привязаны друг к другу. При этом, если вы зайдёте в настройку иерархий (hierarchy), во вкладку настройки замыкания-запирания (Lock) и наследования (Inherit) связей (Link info), то увидите, что все замки отключены. То есть, кости не отрываются друг от друга благодаря своей особенной природе. И если попробовать переместить какую-нибудь кость, то можно видеть следующее: все дочерние кости перемещаются так, как и положено дочерним объектам, но сама кость заставляет вращаться ту кость, которая является по отношению к ней родительской, а сама двигается как на привязи.

Создать разветвлённую систему костей можно двумя способами:

1) Сначала создаётся линейная цепочка, потом к некоторым из костей добавляются дополнительные дочерние кости. Для этого надо кликнуть мышью по той кости, которая должна быть родительской. У такой системы должен быть некий общий корень, кость, из которой ответвляются все остальные цепочки.

2) Цепочки костей могут быть созданы каждая по отдельности, а потом связаны между собой при помощи команды Link (привязать). Цепочка может быть привязана к любой кости из другой цепочки.

Создание простенького скелета

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

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

Создавать скелет лучше всего в виде сбоку. Если мы работаем с видом слева, то голова персонажа должна быть направлена в правую сторону, если с видом справа - соответственно, наоборот, тогда в виде спереди персонаж будет обращён к нам лицом.

 

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

Спина, шея и голова

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

Внимание!

  1. Позвоночник персонажа следует создавать на той высоте, на которой он будет находиться, когда персонаж стоит на ногах на плоскости земли. За плоскость земли лучше принять плоскость XY (Z=0), то есть в виде Перспектива персонаж должен стоять ногами на сетке.
  2. Создавая скелет, представьте себе, какие размеры будет иметь ваш персонаж и старайтесь придерживаться этих размеров при моделировании. Координатная сетка поможет вам сориентироваться.
  3. Не пытайтесь сразу разместить кости так, как они должны располагаться в конечной модели. Положение костей по отношению друг к другу можно скорректировать и после завершения создания цепочки.
  4. Если вы создаёте позвоночник, это не значит, что нужно сделать столько костей, сколько их в реальном позвоночнике. Большое количество костей только усложнит вам жизнь до безумия, но не сделает погоды в достижении реализма.
  5. Если ваша цепочка оборвалась раньше, чем было запланировано, просто продолжите её: кликните на предпоследнюю кость и создавайте цепь дальше. Маленький кончик, который останется на стыке вашей цепи, можено будет удалить потом.

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

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

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


Рис. 7.2. Создание позвоночника персонажа

На рисунке 7.2. показано, как будет выглядеть перпвая цепочка костей в скелете динозавра. Как было указано выше, не стоит стремиться нарисовать кости сразу так, как они будут расположены в конечной модели. Теперь выделим какую-нибудь кость и поставим для неё флажок BackFin (задний плавник)


Рис. 7.3. Отображения заднего плавника для корневой кости иерархии

Если мы сейчас повключаем задние плавники для всех остальных костей, то увидим, что все они находятся с передней части позвоночника. Доступ к параметрам уже созданных костей можно получить через вкладку Modify (). Чтобы нам не путаться ни с координатами кости, ни с другими её параметрами, мы хотим, чтобы задний плавник назодился с задней стороны персонажа, то есть, нам надо повернуть кость на 180 градусов вокруг её собственной оси. Кости в 3ds MAX устроены так, что их локальная ось X направлена вдоль кости, поэтому вращать кость в данном случае надо вокруг локальной оси X.

Чтобы редактировать расположение костей относительно друг друга, надо войти во вкладку hierarchy (). В группе Ajust Transform (настройка трансформации) надо нажать кнопку Don't Affect Children (не задействовать дочерние объекты), тогда мы сможем менять местоположение костей относительно друг друга не двигая все последующие кости в иерархической цепи. Теперь мы можем поступить двумя способами:

  1. Сначала повернуть всю цепь на 180 градусов (кнопка Don't Affect Children не должна быть нажата, а поворот необходимо осуществить вокруг оси X локальной системы координат корневой оси), а потом нажать кнопку Don't Affect Children и привести нашу цепочку к нужной форме.
  2. Нажать кнопку Don't Affect Children и отдельно поворачивать каждую кость цепи вокруг локальной оси x на 180 градусов.

Второй способ хорош только если необходимо сохранить точные контуры позвоночника. Мы воспользуемся пермым способом, тем более, что он покажет нам, как в принципе осуществлять настройку положения костей. Напомним, что для того, чтобы повернуть объект вокруг его собственной оси, необходимо в режиме вращения объектов выбрать локальную систему координат (об этом шла речь в Главе 2). Итак, выделим корневую кость цепи и повернём её на 180 градусов вокруг локальной оси X. Чтобы поворот был точным, воспользуемся диалогом Transform Type-In.


Рис. 7.4. Поворот цепочки костей вокруг оси X корневого объекта

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

Теперь, когда поворот выполнен, нажмём кнопку Don't Affect Children и приступим к редактированию положения костей. Выделяем кость и пробуем её двигать. Меняется положение основания кости, при этом меняется форма родительской кости, но дочерняя кость остаётся неизменной (это и означает, не задействовать дочерние объекты).

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

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

На рисунке 7.5 показано, что приблизительно должно получиться полсле настройки положения костей.


Рис. 7.5. Настроенное положение костей

Грудной отдел позвоночника менее гибок, чем поясничный, поэтому в грудном отделе расположим только одну кость. А вообще, для достижения большей реалистичности, желательно и грудной отдел разбивать на несколько костей. Имейте ввиду, что данное положение костей нельзя считать конечным, когда мы начнём добавлять к нашему персонажу остальные части тела, может оказаться так, что мы захотим что-либо изменить.

Хвост

Хвост моделируется отдельной цепочкой, которая в последствии привязывается к корневой кости цепочки позвоночника. Перед тем, как начать создавать кости, поставьте флажок Back Fins, тогда кости будут создаваться сразу имея задний плавник. Скорей всего, хвост создастся так, как нам нужно, то есть задний плавник будет находиться сверху. Если нет - поверните и настройте его так же, как мы это делали с основным позвоночником. Далее выделите корневую кость хвоста и при помощи инструмента Align to Object () выровняйте её относительно корневой кости основного позвоночника. Для обоих объектов при выравнивании должны стоять флажки Pivot Point.


Рис. 7.6.

Если вы всё сделали правильно, хвост должен располагаться так, как показано на рисунке 7.6. Хвост необходимо привязать при помощи команды Link к корневому объекту основного позвоночника (показан чёрным цветом). Эта кость в дальнейшем будет корневым объектом всего скелета.

Ноги

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


Рис. 7.7. Ступнёй обозвана вспомогательная кость между стопой и одним из пальцев (эта кость отвечает за то, чтобы нога с пальцами стояла твёрдо на земле и не поворачивалась во время создания инверсной кинематики ноги). Ступня специально сделана более толстой и плоской за счёт изменения параметров width и height.


На рис. 7.7. показано, как должны выглядеть кости в районе стопы. Пальцы состоят из трёх фаланг, последняя косточка каждого пальца - вспомогательная, помогает зацепить за себя звенья обратной (инверсной) кинематики, если мы решим, что они нам необходимы.

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

Звенья инверсной кинематики для ноги: первое звено начинается с бедра и цепляется за ступню. Для ступни тоже создаётся звено инверсной кинематики, которое начинается с неё самой и цепляется за основной палец, который был создан вместе с этой косточкой.

Далее создаётся некоторый вспомогательный объект: Это может быть объект Dummy из категории вспомогательных объектов (helpers ), либо какой-нибудь другой объект. Размеры Dummy устанавливаются за счёт масштабирования этого объекта по разным осям. К объекту Dummy привязываются основное звено анимации ноги (от бедра до ступни) и звено анимации ступни (выделить все крестики и привязать). Теперь конечное положение ноги задаёт этот объект, он управляет не только положением, но и ориентацией стопы (подробнее об этом в следующей главе).

 

 

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


Здесь создание скелета нашего персонажа ещё не завершено. Для всех костей включены задние плавники. С момента создания ориентация костей не менялась. В общем, можно оставить всё, как есть, но всё же можно и изменить ориентацию некоторых костей (не забудьте, что это нужно делать при нажатой кнопке Don't Affect Children).

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

 

Но что уж точно надо сделать - придать персонажу объёмность. Кости мы создавали в одной плоскости, а персонаж у нас не плоский, поэтому потребуется настроить их положение в трёхмерном пространстве.

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

Если вы ещё не привязали ногу к корню нашей иерархии, то можете спокойно подвинуть её (при выключенной кнопке Don't Affect Children), разместить так, чтобы основание бедра находилось в нужном нам положении, а затем нажать кнопку и более основательно настроить положение костей ноги. Не забывайте, что кости, привязанные к другим костям двигаются совершенно не так, как простые объекты, привязанные к простым объектам.

 

Рука привязывается к последней кости спины. Можете потянуть за плечо, тогда рука повернётся и развернёт воротниковую кость. Точное положение костей всё же придётся настраивать при включённой кнопке Don't Affect Children.

Нижняя челюсть создаётся отдельно, а затем привязывается к голове.



Рис. 7.8. Примерно так должен выглядеть скелет персонажа. Серые объекты, отображённые в виде проволочного каркаса - на самом деле не объекты, а связи между костями (во вкладке Display для некоторых костей включена опция Display Link).


Более-менее законченная правая половина скелета показана на рис. 7.8. О том, как настроить инверсную кинематику для скелета, мы подробнее поговорим в следующей главе. Для хвоста здесь использован решатель инверсной кинематики типа spline, который появился в пятой версии 3ds MAX. Об этом решателе мы поговорим потом, после того, как рассмотрим вопросы создания и редактирования объектов типа shape (ломаные линии и сплайны), поскольку решатель управляется при помощи этиъ самых объектов.

Присвоение имён костям

Когда кости создаются, каждой из них автоматически присваивается имя Bone # , где # - номер кости по порядку создания (обычно, номер двузначный). Если у нас в сцене будет несколько персонажей, мы не разберёмся, где чьи кости. Поэтому надо обозвать все кости, из которых состоит наш персонаж определённым образом. Имя каждой кости будет состоять из нескольких слов, причём первое слово - это имя персонажа. Далее может идти название части тела, а уже потом, если орган парный, буква L (соответствует левым частям тела) или R (правые части тела). Костей в скелете много, поэтому лучше сперва дать им надлежащие имена, а уже потом создавать копии или копии-отражения, тогда кости-клоны унаследуют основную часть имени своих прототипов, и процесс переименования будет требовать лишь незначительных правок. Не надо будет впечатывать всё назыание целиком.

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

Если мы в нашем файле ничего не создавали, кроме костей персонажа, быстро выделить их можно нажав Ctrl + A (выделить всё), или выбрать в меню Edit / Select All (Редактирование / выделить всё). Выберутся все объекты сцены.

В главном меню выберем Tools/Rename Objects... (Инструменты/Переименовать Объекты...). Откроется диалог (рис 7.8.).

Рис. 7.8. Диалог переименования объектов

  • Selected - если выбрано, то переименование коснётся выделенных в настоящий момент объектов.
  • Pick - если выбрано, у вас есть возможность выбрать нужные объекты из списка
  • Base Name - если стоит галочка, имя объектов заменяется на то, что введено в поле напротив.
  • Prefix - если выбрана галочка, перед именем каждого объекта добавляется то, что введено в поле напротив.
  • Remove First # digits - удаляет указанное число знаков с начала исходного имени объекта
  • Suffix - добавляет указанное слово в конец имени объекта
  • Remove Last # digits - удаляет указанное число знаков из конца исходного имени объекта
  • Numbered - использовать нумерацию. Base Number - номер, с которого начинается нумерация, Step - шаг, с которым меняются номера.

Переименование происходит после нажатия кнопки Rename. Потом можно закрыть окно.


Дадим нашему персонажу какое-нибудь имя. Имя может быть абсолютно любым. Назовём нашего персонажа REX, и переименуем все кости так, чтобы их имена начинались именем персонажа. Нам не надо сохранять никаких частей от прежних имён костей, поэтому воспользуемся пунктом Base Name, куда введём имя REX, и включим нумерацию.

Теперь возьмёмся за отдельные части тела. Выделим все кости хвоста (двойной клик по первой кости хвоста).

Базовое имя менять не будем, поэтому отключим пункт Base Name. Добавим суффикс, поэтому включим Suffix, и впишем tail (хвост). Поскольку мы при первом переименовании включали нумерацию, все объекты у нас называются REX ##. Нам надо удалить цифры номера, что можно сделать посредством Remove Last # Digits, убрать два знака которые соответствуют нумерации (поставить в поле двойку). Перед суффиксом впишем пробел. Когда мы проводили переименование в первый раз, номера костей расположились сразу за именем персонажа, без пробела. Чтобы имена костей были более удобочитаемы, стоит вводить их через пробел. Сейчас мы можем добавить пробелы только через суффикс, вставив их в его начале и в конце.

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

Аналогичным образом поступим со спиной (кости спины обзовём spine - хребет), и с шеей (neck). Голову (head) и челюсть (jaw) переименуем вручную. Так же вручную присвоим имена всем частям рук и ног, кроме пальцев, которые так же можно переименовать оптом.

Примечание: если вы плохо справляетесь с пиреименованием с использованием суффиксов, удалением последних знаков, можете поступить просто: включить Base Name и нумерацию, и поотключать всё остальное. В Base Name через пробел введите Имя персоGнажа и название костей, закончите фразу пробелом.



<< Назад Оглавление   Вперёд >>
homepage: http://teapot3d.narod.ru
Используются технологии uCoz