Link:INB Home|INB English| INB русский язык|INB العربية|INB Türkiye|INB فارسی|INB Español|INB Français|INB Português|INB Deutsch|INB 國語|INB 中文|INB 日本语|INB 한국어|INB ภาษาไทย|INB tiếng Việt||Уроки Maya Построение иерархий с помощью системы костей Bones 1
INB русский язык Форум
Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com
INB русский язык Форум
Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com
INB русский язык Форум

Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com


Вы не подключены. Войдите или зарегистрируйтесь

《《《《《《《上一页INBforum   Перейти вниз

上一页INBforum》》》》》》》Предыдущая тема Следующая тема Перейти вниз  Сообщение [Страница 1 из 1]

1Уроки Maya Построение иерархий с помощью системы костей Bones 1 Empty Уроки Maya Построение иерархий с помощью системы костей Bones 1 Сб Окт 02, 2010 7:05 am

Admin

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


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

http://ru.inbforum.com

上一页INBforum   Перейти вниз

上一页INBforumПредыдущая тема Следующая тема Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения

Copyright ©2009-2010 LTD Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

IT:SINGLESERVGoogle谷歌翻译TranslateFORUMSOFTLAYERGoogle谷歌广告联盟AdSenseAsia

 

Создать форум на Forum2x2 | ©phpBB | Бесплатный форум поддержки | Сообщить о нарушении | Последние обсуждения