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

Светлана Шляхтина

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

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

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

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

Анимирование модели

Примеры анимации объектов, имеющих кости

Плывущий осьминог

Анимированный семафор

Плывущий дельфин

Анимированный семафор

Когда-то давно семафорные флаги были едва ли не единственным средством передачи сигналов, например, между встречными кораблями, которые таким образом обменивались приветствиями, приказывали лечь в дрейф, сообщали о нападении и пр. Подобный способ передачи сигналов позволял последовательно передавать букву за буквой, так как каждая буква была представлена каким-то уникальным сочетанием двух флажков (рис. 50). А для того, чтобы получатель сообщения понял, что одно слово закончилось и начинается новое, использовалась особая промежуточная позиция, когда обе руки были опущены вниз. Попробуем создать имитацию подобного семафора, воспользовавшись обычной Bones-системой, и передать слово MAX, только нейтральную позицию применим не после слова, а будем вставлять после каждой буквы.

 

Рис. 50. Буквы семафорной азбуки

Рис. 50. Буквы семафорной азбуки

 

Для начала нужно создать того, кто будет размахивать флагами. В качестве такого объекта смоделируйте простой скелет, состоящий из торса, двух плеч и двух рук (рис. 51), причем формируйте Bones-систему при отключенных флажках Assign to Children и Assign to Root. Данная система костей состоит из трех ветвей — основной (костяк скелета) и двух дополнительных (рис. 52), представляющих собой плечи и руки. Основная и первая дополнительная ветви создаются вручную, вторая дополнительная ветвь получается путем зеркального отображения. Для ее формирования выделите первую дополнительную ветвь, откройте окно BoneTools (команда Character=>BoneTools), щелкните на кнопке Mirror и настройте параметры отображения в соответствии с рис. 53. В качестве первого флага создайте плоскость и наложите на нее двухцветную текстуру с резко очерченными границами цветов, а затем клонируйте данную плоскость для получения второго флага (рис. 54). Свяжите левый флаг с костью Lower Arm1, а правый — с костью Lower Arm2.

 

Рис. 51. Исходная сцена

Рис. 51. Исходная сцена

 

Рис. 52. Ветви Bones-системы — основная ветвь (выделена), кости дополнительных ветвей поименованы

Рис. 52. Ветви Bones-системы — основная ветвь (выделена), кости дополнительных ветвей поименованы

 

Рис. 53. Настройка параметров зеркального отображения

Рис. 53. Настройка параметров зеркального отображения

 

Рис. 54. Появление флагов

Рис. 54. Появление флагов

 

При передаче семафорных сигналов руки движутся, как стрелки часов, вращаясь в локтевых суставах, поэтому дополнительные системы костей должны анимироваться по методу прямой кинематики, который автоматически и был установлен, так как система костей создавалась при отключенных флажках Assign to Children и Assign to Root. Но тут возникает один нюанс: попробуйте повращать кость Upper Arm1 и вы увидите, что в результате вращения костей скелет деформируется. Значит, необходимо заблокировать вращение части костей Bones-системы. Выделите две верхние кости основной ветви, откройте закладку IK панели Hierarchy и полностью заблокируйте вращение в отношении всех трех осей, включив для параметров RotationalJoints флажки Limited при пределе вращения в полях From и To — 0 (рис. 55). Аналогичным образом заблокируйте вращение для костей Shoulder1 и Shoulder2.

 

Рис. 55. Настройка параметров свитка RotationalJoints для костей основной ветви

Рис. 55. Настройка параметров свитка RotationalJoints для костей основной ветви

 

Перейдем к анимированию костей. Увеличьте число кадров анимации до 120 (кнопка TimeConfiguration). Активируйте режим автоматического создания ключей, перетащите ползунок временной шкалы вправо на 20-й кадр и последовательно поверните кости Upper Arm1 и Upper Arm2 требуемым для передачи буквы «M» образом (рис. 56). Переключитесь в 60-й кадр и настройте положение костей для отображения буквы «A», а затем, в 100-м кадре, — буквы «X». Щелкните на кнопке ToggleAutoKeyMode для отключения режима автоматического создания ключей. Откройте редактор треков TrackView в режие CurveEditor (команда GraphEditor=>TrackView-CurveEditor) и подсветите для кости Upper Arm1 строку Z Rotation. Выделите все ключи и щелкните на кнопке SetTangentstoStep — это обеспечит скачкообразное движение, которое больше подходит для передачи сигналов. Активируйте инструмент Move Key, выделите ключ в нулевом кадре и скопируйте его на 40, 80 и 120-й кадры, что осуществляется путем его перемещения в нужный кадр при нажатой клавише Shift (рис. 57). Аналогичные операции проведите в отношении кости Upper Arm2. Проиграйте анимацию, и вы увидите, что импровизированный семафор начнет передавать сигналы (рис. 58).

 

Рис. 56. Вид сцены в 20-м кадре анимации

Рис. 56. Вид сцены в 20-м кадре анимации

 

Рис. 57. Вид анимационной кривой для кости Upper Arm1 (строка ZRotation)

Рис. 57. Вид анимационной кривой для кости Upper Arm1 (строка ZRotation)

 

Рис. 58. Анимированный семафор

Рис. 58. Анимированный семафор

В начало В начало

Плывущий дельфин

Используем возможность работы с костями для анимации дельфина (рис. 59). При перемещении тело дельфина немного изгибается, а хвост и плавники колышутся, а значит, во всех перечисленных элементах модели (а не только в теле) должны присутствовать кости. Центр масс объекта находится примерно в районе боковых плавников (рис. 60) — следовательно, именно здесь и должен располагаться центр всего скелета. Активируйте проекцию Left и создайте основной костяк скелета — он должен состоять из двух ветвей: первая ветвь (назовем ее головной) ограничивается одной костью (значит, автоматически создаваемую дополнительную кость следует удалить), а вторая ветвь (назовем ее спинной) включает четыре кости и дополнительная косточка в ней тоже удалена. Создавать обе ветви следует, начиная от центра масс и двигаясь в противоположных направлениях, — направления создания ветвей (равно как и сами ветви) указаны на рис. 61.

 

Рис. 59. Исходный дельфин

Рис. 59. Исходный дельфин

 

Рис. 60. Центр масс дельфина

Рис. 60. Центр масс дельфина

 

Рис. 61. Основной костяк скелета

Рис. 61. Основной костяк скелета

 

Теперь перейдем к формированию дополнительных скелетных ветвей в плавниках и хвосте. В хвосте создайте две ветви из двух костей (рис. 62), непосредственно при формировании связывая их со спинной ветвью — для этого потребуется в начале создания ветви щелкать на ближайшей к хвосту кости спинной ветви. В боковых плавниках сформируйте ветви из трех костей (рис. 63), при этом достаточно создать лишь одну из ветвей, поскольку вторую можно получить путем зеркального отражения, выделив все кости первой ветви и применив к ним команду Mirror из окна Bone Tools. Ветвь спинного плавника также ограничьте тремя костями (рис. 64). Теперь необходимо связать отдельные Bones-ветви в единый скелет. Хвост у нас уже связан со скелетом, значит, осталось связать плавники и головную кость. Боковые плавники связывайте с головной костью (рис. 65), спинной плавник — с первой костью спинной ветви (рис. 66), а первую кость спинной ветви — с головной костью. В итоге Root-объектом нашей системы станет единственная кость головной ветви (головная кость). Активируйте ее и переместите произвольным образом — если все кости связаны, то переместится весь скелет (рис. 67), в противном случае связи придется устанавливать заново. Отмените перемещение, так как оно нам потребовалось лишь для проверки связей.

 

Рис. 62. Кости хвоста

Рис. 62. Кости хвоста

 

Рис. 63. Кости боковых плавников

Рис. 63. Кости боковых плавников

 

Рис. 64. Кости спинного плавника

Рис. 64. Кости спинного плавника

 

Рис. 65. Связывание одного из боковых плавников с головной костью

Рис. 65. Связывание одного из боковых плавников с головной костью

 

Рис. 66. Связывание спинного плавника со спинной ветвью

Рис. 66. Связывание спинного плавника со спинной ветвью

 

Рис. 67. Перемещение скелета

Рис. 67. Перемещение скелета

 

Перейдем к связыванию структуры костей с моделью. Выделите модель дельфина и назначьте ей модификатор Skin. Щелкните на кнопке Add и включите в список модификатора все созданные кости. Выделите головную кость и попробуйте ее слегка передвинуть — дельфин деформируется (рис. 68), поскольку сфера влияния костей охватывает далеко не все его тело. Поэтому откажитесь от перемещения и переключитесь в режим редактирования параметров сфер влияния костей (кнопка EditEnvelopes). В списке Skin-объектов выделите головную кость и увеличьте радиусы ее огибающих так, чтобы вся передняя часть дельфина оказалась в сфере влияния данной кости (рис. 69). Аналогичные операции последовательно проведите для всех остальных костей, руководствуясь двумя принципами. Первый заключается в том, что все без исключения фрагменты тела дельфина должны попасть в сферы влияния костей (соответствующие области будут отображены красным цветом), а второй состоит в том, что области влияния соседних костей должны обязательно пересекаться, иначе плавной деформации тела не добиться. По окончании редактирования сфер влияния отключите режим работы с огибающими и проверьте результат — теперь при перемещении головной кости дельфин (разумеется, вместе со скелетом) должен перемещаться без малейшей деформации.

 

Рис. 68. Перемещение головной кости при первоначальных параметрах сфер влияния костей — дельфин деформируется

Рис. 68. Перемещение головной кости при первоначальных параметрах сфер влияния костей — дельфин деформируется

 

Рис. 69. Настройка сферы влияния головной кости

Рис. 69. Настройка сферы влияния головной кости

 

Перейдем к созданию анимации. Попробуем сделать так, чтобы дельфин перемещался по некоторой криволинейной траектории, при этом его тело немного изгибалось, а хвост и плавники шевелились. Сформируйте криволинейный сплайн (рис. 70) и создайте объект-пустышку — данный объект мы и заставим вначале перемещаться по траектории. Выберите Dummy-объект и примените к нему команду Animation=>Constraints=>PathConstraint (Анимация=>Ограничения=>Ограничения пути), указав в одном из окон проекций сплайн пути, — объект-пустышка переместится в начало траектории (рис. 71). Перейдите к вкладке Motion (Движение) и в свитке PathParameters (Параметры пути) установите флажок Follow (Следовать) — это обеспечит автоматическое поворачивание объекта во время следования по траектории. Привяжите головную кость дельфина к Dummy-объекту, переместите дельфина на траекторию и скорректируйте его ориентацию (рис. 72). Проиграйте анимацию — дельфин будет двигаться по предназначенному ему пути. Осталось добиться реалистичного изгибания тела дельфина и шевеления его плавников и хвоста при движении. Включите режим автоматического создания ключевых кадров, активируйте один из начальных кадров, выделите первую кость спинной ветви и немного поверните ее, добиваясь желаемого изгиба тела (рис. 73). Не исключено, что результат окажется не очень хорошим (тело дельфина может деформироваться не совсем естественно — например появится неестественная складка). В таком случае придется отключить режим создания анимации, обратиться к настройкам параметров сферы влияния ближайшей к такой складке кости и вновь их корректировать. После достижения приемлемого результата аналогичным образом изогните плавники и хвост. Перейдите в следующий ключевой кадр и вновь выполните подобные действия и т.д. Можно ограничиться всего двумя-тремя вариантами деформации тела дельфина, а затем просто скопировать несколько раз соответствующие ключи на последующие ключевые кадры в редакторе анимационных кривых, что в итоге обеспечит желаемую анимацию (рис. 74).

 

Рис. 70. Появление сплайна

Рис. 70. Появление сплайна

 

Рис. 71. Установка Dummy-объекта в начало траектории

Рис. 71. Установка Dummy-объекта в начало траектории

 

Рис. 72. Размещение дельфина на траектории

Рис. 72. Размещение дельфина на траектории

 

Рис. 73. Деформирование тела дельфина

Рис. 73. Деформирование тела дельфина

 

Рис. 74. Плывущий дельфин

Рис. 74. Плывущий дельфин

В начало В начало

КомпьютерПресс 2'2008


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует