Меню

3ds max настройка костей

Настройка системы костей в 3Ds max

Если вы освоили программу 3Ds max настолько, что сумели создать очень даже хорошего персонажа, перед вами непременно станет вопрос: как заставить персонажа шевелиться, как его оживить?

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

Для этого урока мы не будем создавать персонажа, этой теме нужно уделить гораздо больше внимания. Мы создадим простую цилиндрическую сетку, и настроим для нее скелет так, чтобы она гнулась как рука в локте. Я вкратце расскажу, как создать такой простой объект для тех, кто еще совсем не знает программу.
Запустите программу 3Ds max.

Клацните на объекте правой кнопкой и выберите строку Convert to – convert to Editable Poly. Справа, в настройках редактируемой сетки, в разделе Selection выберите кнопку Vertex. Затем выделяйте рамкой нужные ряды вершин и передвигайте их инструментом Select and Move, кнопка этого инструмента находится вверху экрана, на панели инструментов. Когда получится сделать как на рисунке ниже — выключите режим редактирования вершин.

Это и есть сочленение, которое мы будем делать гибким. Теперь создадим внутри кости. Перейдите в окно проекции Left, в котором горизонтально лежащий объект виден в профиль. В строке меню вверху экрана выполните команду Animation – Bone Tools. Появится окно Bone Tools. Нажмите в нем кнопку Create Bones, и создайте внутри объекта две кости. Делается это так. Первый раз клацните там, где первая кость должна начаться, второй раз – в суставе, и третий раз в конце объекта. После этого клацните правой кнопкой мыши, чтобы прервать процесс создания кости. При этом автоматически создастся еще одна, маленькая кость. Пусть будет, она нам не мешает.

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

Выделите цилиндр. Перейдите на вкладку Modify. В правой части экрана не трудно найти выпадающий список Modifier List. Выберите в этом списке модификатор Skin. Внизу появятся разделы настроек этого модификатора. В разделе Parameters есть надпись Bones, а справа от нее кнопка Add. Нажмите ее. В появившемся окне Select Bones выделите Bone 01 и Bone 02 и нажмите кнопку Select. Названия костей добавятся в слот ниже кнопки Add.

Выделите вторую кость (Bone 02).

Выберите инструмент вращения объектов Select and Rotate. Кнопка этого инструмента также находится на панели инструментов вверху экрана. Появится вспомогательный объект, которым можно вращать кость.

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

Видно, что изгиб поверхности не корректен, сетка переломалась и вошла сама в себя. Это нужно настроить. Снова нажмите кнопку Auto Key, чтобы выключить режим создания анимации. Чтобы просмотреть получившуюся анимацию сгибания объекта, двигайте ползунок от 0 до 10 кадра.

Теперь настроим нормальный изгиб.

Выделите оболочку на 0 кадре, когда доступны все ее вершины. В настройках модификатора Skin нажмите кнопку Edit Envelopes. В слоте ниже выделите кость Bone 01. Оболочка вокруг этой кости станет красной, а вся остальная ее часть,- серой. Чем сильнее выделенная кость влияет на участок поверхности, тем этот участок краснее. Цвет может варьироваться от красного до синего цвета, если же цвет серый, то на этот участок кость совсем не влияет. Самый простой способ настроить влияние кости,- редактировать форму вспомогательного объекта, который появился вокруг кости. Он состоит из кругов, на которых есть точки. Эти точки нужно перемещать, чтобы круги становились больше или меньше, а значит, захватывали разные области поверхности.

Еще влияние кости на отдельные вершины сетки можно настраивать вручную. Это делается так.

Кнопка Edit Envelopes нажата. Ниже поставьте птичку Vertices и снимите птичку с Envelopes.

Еще ниже разверните раздел Display и поставьте птичку Show no Envelopes. В слоте костей выделите ту кость, для которой нужно настроить поведение вершин. Выделите ту вершину, для которой нужно настроить влияние кости. Это влияние настраивается в счетчике Abs Effect, в разделе настроек Weight Properties. В счетчик можно ввести значение от 0 до 1. При значении 1 влияние кости на выделенную вершину максимальное.

Читайте также:  настройка wifi роутер e5830

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

Выключите кнопку Edit Envelopes. Перейдите в кадр 10, на котором изгиб максимален. Зажмите клавишу Shift и перетащите оболочку куда-нибудь в сторону. Создастся ее копия. В появившемся при этом окне выберите строку Reference и нажмите OK. Конвертируйте эту копию в Editable Poly, чтобы на ней не было модификаторов. Спрячьте временно все остальные объекты сцены, клацнув правой кнопкой и выбрав строку Hide Unselected.

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

Настройка системы костей в 3Ds max

Это не так сложно, как может показаться. Без умения работать с вершинами не обойдется создание сколько-нибудь серьезной модели.

Клацните правой кнопкой мыши и выберите строку Unhide All. Выделите оригинальную оболочку. В параметрах модификатора нажмите кнопку Edit Envelopes и поставьте птичку Vertices.

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

Переместитесь на кадр, где объект не согнут, то есть, на нулевой кадр.

В самом низу настроек модификатора есть раздел Gizmos. Разверните его. В выпадающем списке выберите строку Morph Angle Deformer. Нажмите кнопку Add Gizmo.

Перейдите в 10 кадр. В разделе Deformer Parameters нажмите кнопку Add From Node и клацните по объекту-копии. После этого выключите кнопку Edit Envelopes и удалите копию. Просмотрите анимацию. Теперь все работает как нужно.

Есть еще способы настроить нужный вид поверхности при изгибе, но о них в другой статье.

источник

3D Studio MAX: первые шаги. Урок 23. Построение иерархий с помощью системы костей Bones

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

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

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

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

Рис. 1. Пример системы костей, помещенной внутрь тела персонажа

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

Читайте также:  настройка камеры сони с2305

Рис. 2. Категория Systems с активированным типом объектов Bones

Рис. 3. Иерархическая структура костей для персонажа

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

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

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

Рис. 5. Пример костей с плавниками, настроенными различным образом

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

Рис. 7. Окно BoneTools

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

  • изменить длину кости (режим BoneEditMode);
  • создать новую цепочку костей (CreateBones);
  • создать конечную косточку на конце выбранной (CreateEnd);
  • создать кость, соединяющую выбранную и любую другую (ConnectBones);
  • удалить из цепочки выбранную кость без уничтожения родительских отношений (RemoveBone);
  • удалить выбранную кость с уничтожением родительских отношений (DeleteBone);
  • сделать выбранную кость Root-костью иерархической структуры (ReassignRoot);
  • разбить выбранную кость на две кости с автоматическим созданием сустава между ними (Refine);
  • получить зеркальное отображение выбранной кости (Mirror).

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

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

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

Рис. 9. Исходная структура костей

Рис. 10. Изменение длины первой кости

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

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

Читайте также:  sl 6535 ssv 01 настройка вин 10

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

Рис. 11. Формирование IK-цепи: процесс связывания объектов в IK-цепь (слева) и вид Bones-системы с IK-цепью (справа)

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

Рис. 12. Вид исходной IK -цепи

Рис. 13. Появление первого пальца

Рис. 14. Появление второго и третьего пальцев

Рис. 15. Окончательный вид IK -цепи

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

Попробуйте поперемещать кость Shoulder, а затем перекрестие в области кисти, и вы увидите, что рука изгибается немыслимым образом (рис. 17). Поэтому придется настроить пределы ограничений на скольжение (Sliding) и вращение (Rotational). Поскольку плечевой сустав не должен двигаться, выделите кость Shoulder и у параметров SlidingJoints включите флажки 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).

Рис. 17. Результат перемещения Root-кости до настройки пределов ограничений

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

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

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

Рис. 21. Перемещение цепи IK Chain01

Рис. 22. Вид визуализированной системы костей при имитации некоторых видов движения

источник

Добавить комментарий

Adblock
detector