Создание костей bones в 3d studio max. Создание структуры костей. Начнем с построения ноги

Настроение: Для начинающих

Предлагаю Вам небольшой, но очень полезный урок по созданию автоматического растягивания ноги в зависимости от перемещения IK Goal (цель ИК). Этот прием отлично подходит для подготовки к анимации карикатурных персонажей. И хотя того же результата можно достичь вручную (без ИК), тем не менее, это отличная возможность изучить сетап в 3ds max (сложные и универсальные методы).
В данном уроке нам предстоит написать некий сценарий MAXScript, позволяющий расширить возможности системы IK в отношении автоматического растягивания костей при перемещении IK Goal.

Урок построен с использованием 3ds Max 2010. Но все это можно проделать и в более ранних версиях 3ds Max, вплоть до 3ds Max 4. Скачать 3ds Max 2010 уже можно давно, но пользоваться им не имеет смысла, поскольку работающего VRay под него нет.

1. Начнем с построения ноги.

Для создания костей я пользуюсь плавающим окном Bone Tools… из меню Animation.

Но кости можно также создавать через Create --> Systems -->Bones

Во фронтальной проекции, используя привязку к сетке, создайте ногу аналогичную изображенной на рисунке

2. Назначение инверсной кинематики (IK)

Далее создайте цепочку инверсной кинематики (IK Chain) независимой от предыстории (HI Solver) . Для этого выберите Animation-->IK Solvers-->HI Solver и кликните сначала на кости Bone01, а потом на Bone03.

Подвигайте цель IK (IK Goal) чтобы протестировать работу инверсной кинематики. Верните все назад

Совет

Чтобы не нажимать Ctrl+Z после проделанных тестовых движений, достаточно нажать правую (или среднюю) кнопку мышки во время тестовых движений, не отпуская при этом левую.


3. Процесс сетапа.

Для определения положения кости Bone02 назначим контроллер XYZ Position на параметр Position.

Для этого кликните ПКМ по параметру Position и выберите пункт Assign Controller…. Далее из списка выберите контроллер XYZ Position и нажмите кнопку Make Default-->Да-->OK.

Эту же процедуру проделайте для кости Bone03.

Теперь нужно определить максимальное расстояние между IK Goal и Bone 01 , после которого кости будут начинать растягиваться.

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

Введите в окне MAXScript Listener (F11) следующее выражение:

Distance $IKChain01.pos $Bone01.pos

Затем нажмите клавишу Enter. Запишите полученное числовое значение, поскольку оно будет использовано в третьей строке сценария MAXScript. У меня получилось 184.612

Переместите IK Goal в ее исходное положение.

Теперь приступаем к написанию скрипта для растягивания кости Bone01 .

Для этого выделяем кость Bone02 и назначаем на позиции X Position контроллер Float Script. При этом появится окно редактора Script Controller

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

Вот сам скрипт:

dependsOn $IKChain01.pos.controller $Bone01.pos.controller
d = distance $IKChain01.pos $Bone01.pos
ex = (d - 184.612)
orig = 111.804
if (ex < 0) then
ex = 0
p = orig + (ex/2)

В первой строке сценария MAXScript используется команда dependsOn. Она позволяет сообщить 3ds max’у о необходимости выполнения расчета по данному сценарию в зависимости от изменения любого числа параметров объекта. Таким образом, пересчет этого сценария осуществляется при изменении положения цели IK и кости Bone01.

Во второй строке , как и прежде, измеряется расстояние между целью IK и костью Bone01. Полученное значение присваивается соответствующей переменной.

В третьей строке расстояние, на которое растянута нога, вычитается из текущего расстояния, и полученное значение присваивается соответствующей переменной.

В четвертой строке значение исходного положения кости Bone01 по оси Х присваивается соответствующей переменной.

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

В шестой, последней строке скрипта
, фактически устанавливается значение положения по оси Х, которое и определяет растягивание ноги. Для получения равномерного растягивания костей (этот скрипт будет повторно использован для кости Bone03) значение исходного положения по оси Х складывается со значением растягивания и полученный результат делится на 2

После того как Вы ввели сценарий кликаете на кнопку Evaluate (Вычислить) и Close (Закрыть).

Только не забудьте в четвертой строке подставить значение X Position уже для Bone03.

Таким образом, при перемещении IK Goal нога растягивается :

Классных Вам персонажей и быстрого сетапа!

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

Для каждого персонажа необходимо создать скелет, благодаря которому его движения будут максимально правдоподобными. Процесс создания и настройки костей называется риггинг (Rigging ), за ним следует скиннинг (Skinning ) – привязка скелета к его модели.

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

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

Скелет может строиться при помощи классических костей, связанных между собой иерархически. Также 3 ds Max Мах предлагает встроенные модули Biped и CAT (Characters Animation Tools) для создания боле е сложной, специализированной системы костей. Кости скелета пребывают между собой в иерархической связи, что позволяет поделить их на родительские и дочерние. Когда вы обозначаете определенный элемент как «родитель», он получает силу при любых перемещениях и движениях тянуть за собой «детей». Обеспечить органичные движения костей можно двумя типами связи: прямой кинематикой и обратной. Прямая кинематическая связь основывается на зависимости перемещений дочерних объектов от родительского. Обратная опирается на математический алгоритм, который просчитывает движения объектов, независимо от иерархии.

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

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

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

Создавая реалистичную анимацию, очень важно придерживаться 12 принципов, предложенных диснеевцами Олли Джонстоном и Франком Томасом .

Первый. Сжатие и растяжение – необходимо подчеркивать эластичность объектов.

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

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

Четвертый. Фазованное движение – в 3 ds Max движение разбивается на кадры автоматически, вам, в свою очередь, необходимо отслеживать, насколько органичен результат.

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

Шестой. Смягчение начала и завер шения движения – поэтому действие должно состоять из большего количества рисунков в конце и в начале.

Седьмой. Дуги – как и в приро де, в анимации многие движения следуют дуговой траектории.

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

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

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

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

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


Магистрант Ибадулла С.И.

Кызылординский государственный университет имени Коркыт ата

Создание к ости (b ones) в 3 ds max

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

Панель Create > Systems > кнопка Bones
Меню Character menu > Bone Tools
Панель закладок > Закладка Objects > Bones IK Chain

Персонаж (динозавр) при создании которого были использованы кости

Кости (Bones) являются соединенной, иерархически связанной системой отдельных костей, которые могут использоваться для анимации других объектов или иерархий. Обычно анимируемый персонаж состоит из единой сетки, и система костей предоставляет удобное и быстрое решение для манипуляции телом персонажа. Кости могут анимироваться с помощью прямой или инверсной кинематики, используя любое доступное IK решение, средства Interactive IK или Apply IK. Кости могут рендериться. Они имеют некоторые параметры, такие как заострение (taper) и плавники (fins, вообще-то это выступы вдоль кости), которые Вы можете настроить, чтобы определить фигуру, представляющую кость. Например, плавники облегчают контроль над вращением кости. При анимации очень важно понимание структуры объекта-кости. Каждая кость имеет опорную точку (pivot point) как начало или, вернее, сустав, вокруг которого осуществляются повороты данной кости. Выглядит она как протяженный объект от своей опорной точки к дочернему объекту. Дочерним объектом обычно является другая кость.

Система костей сама по себе и внутри сетчатой модели

Любая иерархия может быть показана как структура костей (см. раздел электронной документации Using Objects as Bones), путем простого включения флажка Bone On в свитке Object Properties окна Bone Tools.

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

Вы можете создать систему костей, нажав кнопку Create Bones, расположенную на свитке Bone Editing Tools, или в свитке Systems на панели Create.

Процесс создания происходит так.

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

Для создания ветвящейся иерархии, например, от таза отходит две ноги, делается следующее

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


Простейшая цепочка из трех костей

Назначение IK контроллера системе костей

По умолчанию IK контроллер не применен к системе костей. Назначение ей IK контроллера, еще называемого IK решением, может быть сделано двумя способами. Чаще всего IK решение назначается системе костей вручную, используя пункт IK Solvers меню Animation. Причем это делается уже после ее (системы костей) создания. Такой способ позволяет настроить инверсную кинематику максимально точно. Второй способ более автоматизирован. После создания системы IK решение будет автоматически применено ко всем костям от первой к последней. Для включения этого механизма необходимо включить флажок Assign To Children (см. раздел электронной документации Introduction to Inverse Kinematics).

Установка начальной позиции системы костей

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

Цвет кости

Всем костям назначается цвет, заданный для элементов Bones и Link Lines в разделах Gizmos и Objects на панели > Colors диалога Customize User Interface. Вы можете поменять цвет каждой кости, щелкнув мышкой на образце цвета рядом с именем кости на панели Create или Modify, и выбрав нужный цвет в появившемся диалоге.

Плавники

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

Кости могут иметь плавники

Кости с плавниками

Рендеринг костей

Кости могут рендериться, но по умолчанию эта возможность отключена. Для ее включения включите флажок Renderable в диалоге Object Properties.

Кости могут рендериться

Использование ограничений при работе с костями

Чтобы создать систему костей

1. На панели Create нажмите кнопку Systems, а затем Bones. Можно также воспользоваться кнопкой Create Bones окна Bone Tools.

2. Щелкните левой кнопкой мыши в видовом окне.

В этом месте будет создан базовый сустав цепочки.

1. Переместите курсор мыши в то место, где хотите создать второй сустав.

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

3. Щелкните правой кнопкой мыши, чтобы завершить процесс создания.

Кость, которую Вы создали первой, является старшей в иерархии, последняя – самой младшей. Для большей информации о связанных объектах см. описание панели Hierarchy.

Чтобы создать цепочку костей, к которым применено IK решение

1. На панели Create нажмите кнопку Systems, а затем Bones.

2. В свитке IK Chain Assignment выберите в списке строку IK Solver.

3. Включите флажок Assign To Children.

4. Создайте систему костей в видовом окне, как описано ранее.

К получившееся системе будет применено IK решение.

Чтобы исправить внешний вид костей

1. Выберите кость.

2. Выберите закладку Modify на командной панели.

3. Поменяйте установки, расположенные в свитке Bone Parameters.

Чтобы переместить кость в иерархии после того, как она создана

Перемещение кости повлияет на длину звена этой кости. Более важно, однако, что будет изменено положение ее опорной точки. Кость имеет только одну опорную точку. Видимое звено кости лишь соединяет ее опорную точку с опорной точкой следующей кости.

1. На панели Hierarchy, нажмите кнопку Pivot, чтобы перейти в панель опорных точек.

2. В свитке Adjust Transform нажмите кнопку Don"t Affect Children.

3. Переместите кость.

4. Выключите кнопку Don" t Affect Children, когда Вы закончите редактирование системы.

Добавление плавников к кости:

1. Выберите кость

2. На панели Modify перейдите на свиток Bone Parameters и включите флажок Side Fins.

3. Настройте размер и вид плавников изменением соответствующих задатчиков.

Литературы :

  1. www.3dcenter.ru/tutors/read.php?sname=lessons&articlealias=bone
  2. 3design.mega.kg/content/view/24/
  3. « 3ds Max 8 - Школа мастерства», Питер 2007, Владимер Верстак, Г.Макаров-Ишутин
  4. « 100 советов пользователям

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

Теоретические аспекты

Понятие системы костей

Кости (Bone s ) - это особый тип иерархически связанных между собой объектов, которые чаще всего используются для анимации других объектов или иерархий, так как позволяют манипулировать телом персонажа. Как правило, подобная система костей помещается внутрь тела персонажа (то есть имитирует его скелет - рис. 1) и определяет последовательность и особенности связывания отдельных его элементов между собой, при этом каждая часть тела привязывается к своей косточке. Обычно анимируемый персонаж состоит из единой системы Bones .

За создание костей отвечает тип объектов Bones категории Systems (Системы) панели Create (Создать) - рис. 2. Технология их создания напоминает создание линейных сплайнов. Нужно щелкнуть левой кнопкой мыши в одном из окон проекций в точке положения начального сустава первой кости, затем там, где должен быть второй сустав, - при этом на экране визуально будет отображена лишь первая кость, расположенная между двумя суставами. Каждый последующий щелчок левой кнопкой мыши будет добавлять к системе одну кость, а нажатие правой кнопки мыши прекратит создание системы костей, при этом на конце цепочки появится дополнительная маленькая кость, используемая при назначении инверсной кинематики (если для данной иерархии применение IK-кинематики не предполагается, то дополнительную кость можно удалить). В случае создания ветвящейся иерархии (например, от тазовой кости должны отходить две ноги) вначале создается цепочка костей только что описанным способом (основная ветвь), затем при активной кнопке Bones левой кнопкой щелкают на той кости (в частности, на тазовой кости), от которой должна отходить вторая цепочка, а потом формируют дополнительную ветвь костей - она уже окажется привязанной к основной ветви. Созданным костям (так же как и иным объектам) присваиваются шаблонные имена: Bone01, Bone02 и т.п., которые лучше заменять на более информативные. Полученный в итоге скелет образует готовый иерархический каркас (рис. 3). Поскольку иерархия генерируется автоматически в процессе создания системы костей, первая созданная кость становится Root-объектом, а каждая новая кость добавляется в качестве дочерней для предыдущей кости.

Bones-объекты отображаются в окнах проекций, но невидимы при визуализации. Однако при необходимости они могут отображаться - для этого следует включить флажок Renderable (Визуализируемый) в диалоге Object Properties (рис. 4), вызываемом из контекстного меню либо командой Edit =>Object Properties (Редактирование=>Свойства объекта).

Рис. 4. Включение флажка Renderable

Кости имеют ряд параметров: ширину (Width ), высоту (Height ), заострение (Taper ) и плавники (Fins ). Последние представляют собой своеобразные выступы вдоль кости и по умолчанию отключены (рис. 5). Данные параметры определяют форму костей и могут упрощать управление ими - например плавники облегчают контроль над вращением костей и могут помочь в процессе создания кожи. Названные параметры определяются непосредственно при создании скелета либо редактируются позднее - через панель Modify (свиток Bone Parameters - рис. 6) или окно Bone Tools (команда Character =>Bone Tools - Персонаж=>Параметры костей) - рис. 7.

Рис. 6. Свиток BoneParameters

Рис. 7. Окно BoneTools

Окно Bone Tools наряду с параметрами костей позволяет осуществить с ними множество других преобразований:

  • изменить длину кости (режим Bone Edit Mode );
  • создать новую цепочку костей (Create Bones );
  • создать конечную косточку на конце выбранной (Create End );
  • создать кость, соединяющую выбранную и любую другую (Connect Bones );
  • удалить из цепочки выбранную кость без уничтожения родительских отношений (Remove Bone );
  • удалить выбранную кость с уничтожением родительских отношений (Delete Bone );
  • сделать выбранную кость Root-костью иерархической структуры (Reassign Root );
  • разбить выбранную кость на две кости с автоматическим созданием сустава между ними (Refine );
  • получить зеркальное отображение выбранной кости (Mirror ).

Создание структуры костей

Создайте новую сцену, нажмите на панели Create кнопку Systems и активируйте инструмент Bones . Удостоверьтесь, что в свитке IK Chain Assignment (Назначение IK-цепи) флажки Assign to Children (Назначить для потомков) и Assign to Root (Назначить для Root-объекта) отключены (рис. 8). Активируйте окно проекции Left , щелкните в левом верхнем углу окна, затем передвиньте курсор немного вправо и вниз и кликните снова (появится первая кость). Аналогичным образом создайте еще три кости и завершите Bones-структуру нажатием правой кнопки (рис. 9). Если длина какой-то из костей оказалась меньше либо больше желаемой, то ее несложно изменить, но не через панель Modify (в свитке доступных для редактирования на данной панели параметров длина отсутствует), а через окно Bone Tools . Для примера откройте данное окно, воспользовавшись командой Character =>Bone Tools , включите режим редактирования костей, щелкнув на кнопке Bone Edit Mode , и измените длину любой из костей, перемещая инструментом Select and Move ее дочернюю кость (рис. 10). По окончании выключите режим Bone Edit Mode .

Рис. 8. Свиток IKChainAssignment

Воспользовавшись инструментом Select and Move , попробуйте произвольным образом переместить вначале первую кость (то есть Root-объект), а затем любую другую и обратите внимание, что перемещение Root-объекта приводит к перемещению всей структуры костей, а перемещение любой другой кости обеспечивает перемещение данной кости вместе со всеми ее дочерними объектами, при этом непосредственный родитель данной кости вращается. В то же время перемещение последней кости никак не повлияет на остальные, так как дочерних объектов у нее нет. Все это говорит о том, что иерархическая цепочка управляется по законам прямой кинематики - это действительно так, поскольку при отключенных флажках Assign to Children и Assign to Root IK-контроллер к системе костей не применяется.

Назначить системе костей IK-контроллер можно двумя способами - вручную или автоматически. Первый вариант применяется к уже готовой системе костей с помощью команды Animation =>IK Solvers (Анимация=>IK-решения), предусматривающей присваивание объектам одного из возможных типов IK-контроллеров (HI Solver , HD Solver и т.д.), - такой способ позволяет настроить инверсную кинематику максимально точно. Второй вариант требует изменения настроек свитка IK Chain Assignment (нужно установить назначение IK-контроллера включением соответствующих флажков и выбрать его тип) еще перед созданием системы костей, тогда указанное IK-решение будет автоматически применено ко всем костям системы.

Для примера вначале попробуем изменить тип кинематики для системы костей в рабочей сцене. Выделите Root-кость и назначьте цепи контроллер HI Solver , применив команду Animation =>IK Solvers =>HI Solver и указав в качестве конечного эффектора маленькую кость, - при выполнении данного действия за курсором мыши будет тянуться пунктирная линия. Это приведет к созданию цепи инверсной кинематики с IK-контроллером, о чем будет свидетельствовать появление линии, простирающейся от первой кости к последней, и перекрестия (целевой объект IK Goal ) в опорной точке эффектора (рис. 11). Если попробовать подвигать перекрестие, то мы увидим, что это приводит к соответствующим изменениям положения остальных элементов (значит, к Bones-системе применено IK-решение).

Теперь создадим подобную систему костей с IK-кинематикой уже в автоматическом режиме. Перезагрузите сцену, применив команду File =>Reset . Активируйте инструмент Bones , включите в свитке IK Chain Assignment флажки Assign to Children и Assign to Root и удостоверьтесь, что в списке IK Solver установлен вариант IKHISolver . При включенном флажке Assign To Children указанное IK-решение применяется ко всем создаваемым костям, исключая Root-кость, а если включен еще и флажок Assign to Root , то данное IK-решение будет применено ко всем костям без исключения. Активируйте окно проекции Left и обычным образом создайте систему из двух основных костей и одной дополнительной (рис. 12) - в итоге все кости окажутся связанными с контроллером HI Solver . Будем условно считать, что созданные кости представляют собой плечо, локоть и кисть. Дополним теперь данную Bones-систему тремя пальцами (представим, что это скелет руки некого трехпалого существа). Переключитесь в проекцию Top , вновь активируйте инструмент Bones , щелкните на дополнительной маленькой кости и создайте первый палец (для упрощения задачи ограничимся одной фалангой пальца), немного переместив мышь вниз и влево (рис. 13). Аналогичным образом создайте два других пальца (рис. 14). Выделите первую основную кость и свяжите ее со второй, применив команду Animation =>IK Solvers =>HI Solver и указав в качестве конечного эффектора вторую кость, - в точке соединения костей появится перекрестие (рис. 15). Для удобства работы переименуйте кости, назвав первую кость Shoulder, вторую - Upper Arm, третью (то есть дополнительную) - Lower Arm, а пальцы - Finger1, Finger2 и Finger3 соответственно. Вид иерархии полученной в итоге структуры костей представлен на рис. 16

Рис. 16. Вид иерархической цепочки в окне Select Object

Попробуйте поперемещать кость Shoulder, а затем перекрестие в области кисти, и вы увидите, что рука изгибается немыслимым образом (рис. 17). Поэтому придется настроить пределы ограничений на скольжение (Sliding ) и вращение (Rotational ). Поскольку плечевой сустав не должен двигаться, выделите кость Shoulder и у параметров Sliding Joints включите флажки Active и Limited в отношении всех трех осей при значении ноль в полях From и To (рис. 18). Выделите кость Upper Arm и подберите допустимые пределы ограничений скольжения относительно оси Y для локтевого сустава - мы остановились на значениях From - –20 и To - 20 (рис. 19). Выделите первый палец (кость Finger1), заблокируйте для него скольжение по осям X и Y , но разрешите скольжение относительно оси Z . Кроме того, запретите для данной кости в свитке Rotational Joints вращение относительно оси X, но разрешите вращение относительно осей Y и Z , ограничив при этом вращение относительно оси Z в интервале примерно от –30 до 30 (рис. 20). Аналогичные ограничения и запреты наложите и для двух других пальцев. После этого оцените результат, перемещая цепь IK Chain01 влево/вправо (рис. 21) и вверх/вниз, и убедитесь, что локтевой сустав и кисть теперь ведут себя уже вполне естественным образом (рис. 22).

Рис. 18. Настройка параметров свитка SlidingJoints для кости Shoulder

Рис. 19. Настройка параметров свитка SlidingJoints для кости Upper Arm

Рис. 20. Настройка параметров свитков SlidingJoints и RotationalJoints для кости Finger1


3Ds max, как полноценный 3Д-пакет, позволяет анимировать созданные объекты. В случае персонажной анимации, 3dmax предлагает несколько способов привязки модели к «скелету», хотя принцип настройки привязки у них похожий. Дальнейшие действия предполагают наличие уже готовой модели человека, потому вы можете моделировать его сами, либо скачайте бесплатную модель .

Открываем сцену с нашим персонажем, переходим на вкладку Create/Systems/Standard и выбираем инструмент Bones. Создаём основную кость, после чего продолжаем строить скелет ноги. Чтобы закончить построение, щёлкните правой кнопкой мыши. Чтобы продолжить построение второй ноги, нажмите кнопку Bones, после чего щёлкните по основной кости, с которой мы начинали построение скелета.

Таким же способом создаём остальные кости. Вот что должно получится:

Инструментами Move и Rotate ставим «скелет» в «тело» нашего персонажа, используя другие окна проекций.

Модификатор Skin

Выбираем модель персонажа и применяем модификатор Skin. В параметрах модификатора Bones нажимаем кнопку Add, после чего откроется окно, в котором выбираем все созданные кости.

После этих действий, если мы будем двигать любую из костей, часть тела персонажа будет тоже двигаться. Но теперь нужно правильно настроить зоны влияния костей на объект . Это мы сможем сделать, нажав на кнопку Edit Envelopes, и поставив галочку напротив Vertices в разделе Select.

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

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

Кнопка Exclude Selected Verts исключает выделенные вершины из зоны влияния кости, Include Selected Verts включает выделенные вершины в зону влияния, а Select Excluded Verts выделяет исключённые ранее вершины.

Так же значения визуально различимы по цвету, где:

  • белый – 0;
  • синий – 0,1;
  • желтый и оранжевый – от 0,25 до 0,9;
  • красный – 1.

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

Инверсная кинематика

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

Рассмотрим технологию на примере ноги персонажа. Выделяем кость, которая отвечает за ступню персонажа. Идём в меню Animation/IKSolvers и щёлкаем на HISolver, после чего будет предложено выбрать кость для привязки.

Щёлкаем в активном окне проекции на кость бедра, как показано на картинке ниже.

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

Тоже самое мы можем проделать с другими частями тела.

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

Анимация человека

В 3Dmax для анимации всегда открыта панель внизу окна. На ней содержится временная шкала, кнопки переключения между автоматическим выставлением ключей анимации (AutoKey) и ручным (SetKey), кнопка добавления нового ключа анимации (SetKeys), настройки временной шкалы (TimeConfiguration), а также панель управления воспроизведением анимации.

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

После настройки временной шкалы мы можем приступить к созданию простой анимации нашего персонажа. Нажимаем кнопку SetKey, после чего наша шкала будет подсвечена красным цветом. Выбираем часть тела для анимации, нажимаем на кнопку SetKeys (на кнопке нарисован «+» и ключ), после чего на временной шкале появится квадратик над цифрой 0. Это и есть новый ключ. Теперь передвигаем верхний ползунок на временной шкале на нужное количество кадров, например, на 30. Затем передвигаем анимируемую часть тела в нужную позицию и снова жмём кнопку SetKeys. Можем сделать ещё несколько движений и для других частей тела тем же способом.

Теперь нажимаем Play Animation и наблюдаем, как персонаж выполняет движения тела.