1 Уроки Maya Построение иерархий с помощью системы костей Bones 3 Сб Окт 02, 2010 7:07 am
Admin
Admin
Когда-то давно семафорные флаги были едва ли не единственным средством передачи сигналов, например, между встречными кораблями, которые таким образом обменивались приветствиями, приказывали лечь в дрейф, сообщали о нападении и пр. Подобный способ передачи сигналов позволял последовательно передавать букву за буквой, так как каждая буква была представлена каким-то уникальным сочетанием двух флажков (рис. 50). А для того, чтобы получатель сообщения понял, что одно слово закончилось и начинается новое, использовалась особая промежуточная позиция, когда обе руки были опущены вниз. Попробуем создать имитацию подобного семафора, воспользовавшись обычной Bones-системой, и передать слово MAX, только нейтральную позицию применим не после слова, а будем вставлять после каждой буквы.
Для начала нужно создать того, кто будет размахивать флагами. В качестве такого объекта смоделируйте простой скелет, состоящий из торса, двух плеч и двух рук (рис. 51), причем формируйте Bones-систему при отключенных флажках Assign to Children и Assign to Root. Данная система костей состоит из трех ветвей — основной (костяк скелета) и двух дополнительных (рис. 52), представляющих собой плечи и руки. Основная и первая дополнительная ветви создаются вручную, вторая дополнительная ветвь получается путем зеркального отображения. Для ее формирования выделите первую дополнительную ветвь, откройте окно BoneTools (команда Character=>BoneTools), щелкните на кнопке Mirror и настройте параметры отображения в соответствии с рис. 53. В качестве первого флага создайте плоскость и наложите на нее двухцветную текстуру с резко очерченными границами цветов, а затем клонируйте данную плоскость для получения второго флага (рис. 54). Свяжите левый флаг с костью Lower Arm1, а правый — с костью Lower Arm2.
При передаче семафорных сигналов руки движутся, как стрелки часов, вращаясь в локтевых суставах, поэтому дополнительные системы костей должны анимироваться по методу прямой кинематики, который автоматически и был установлен, так как система костей создавалась при отключенных флажках Assign to Children и Assign to Root. Но тут возникает один нюанс: попробуйте повращать кость Upper Arm1 и вы увидите, что в результате вращения костей скелет деформируется. Значит, необходимо заблокировать вращение части костей Bones-системы. Выделите две верхние кости основной ветви, откройте закладку IK панели Hierarchy и полностью заблокируйте вращение в отношении всех трех осей, включив для параметров RotationalJoints флажки Limited при пределе вращения в полях From и To — 0 (рис. 55). Аналогичным образом заблокируйте вращение для костей Shoulder1 и Shoulder2.
Перейдем к анимированию костей. Увеличьте число кадров анимации до 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).
Плывущий дельфин
Используем возможность работы с костями для анимации дельфина (рис. 59). При перемещении тело дельфина немного изгибается, а хвост и плавники колышутся, а значит, во всех перечисленных элементах модели (а не только в теле) должны присутствовать кости. Центр масс объекта находится примерно в районе боковых плавников (рис. 60) — следовательно, именно здесь и должен располагаться центр всего скелета. Активируйте проекцию Left и создайте основной костяк скелета — он должен состоять из двух ветвей: первая ветвь (назовем ее головной) ограничивается одной костью (значит, автоматически создаваемую дополнительную кость следует удалить), а вторая ветвь (назовем ее спинной) включает четыре кости и дополнительная косточка в ней тоже удалена. Создавать обе ветви следует, начиная от центра масс и двигаясь в противоположных направлениях, — направления создания ветвей (равно как и сами ветви) указаны на рис. 61.
Теперь перейдем к формированию дополнительных скелетных ветвей в плавниках и хвосте. В хвосте создайте две ветви из двух костей (рис. 62), непосредственно при формировании связывая их со спинной ветвью — для этого потребуется в начале создания ветви щелкать на ближайшей к хвосту кости спинной ветви. В боковых плавниках сформируйте ветви из трех костей (рис. 63), при этом достаточно создать лишь одну из ветвей, поскольку вторую можно получить путем зеркального отражения, выделив все кости первой ветви и применив к ним команду Mirror из окна Bone Tools. Ветвь спинного плавника также ограничьте тремя костями (рис. 64). Теперь необходимо связать отдельные Bones-ветви в единый скелет. Хвост у нас уже связан со скелетом, значит, осталось связать плавники и головную кость. Боковые плавники связывайте с головной костью (рис. 65), спинной плавник — с первой костью спинной ветви (рис. 66), а первую кость спинной ветви — с головной костью. В итоге Root-объектом нашей системы станет единственная кость головной ветви (головная кость). Активируйте ее и переместите произвольным образом — если все кости связаны, то переместится весь скелет (рис. 67), в противном случае связи придется устанавливать заново. Отмените перемещение, так как оно нам потребовалось лишь для проверки связей.
Перейдем к связыванию структуры костей с моделью. Выделите модель дельфина и назначьте ей модификатор Skin. Щелкните на кнопке Add и включите в список модификатора все созданные кости. Выделите головную кость и попробуйте ее слегка передвинуть — дельфин деформируется (рис. 68), поскольку сфера влияния костей охватывает далеко не все его тело. Поэтому откажитесь от перемещения и переключитесь в режим редактирования параметров сфер влияния костей (кнопка EditEnvelopes). В списке Skin-объектов выделите головную кость и увеличьте радиусы ее огибающих так, чтобы вся передняя часть дельфина оказалась в сфере влияния данной кости (рис. 69). Аналогичные операции последовательно проведите для всех остальных костей, руководствуясь двумя принципами. Первый заключается в том, что все без исключения фрагменты тела дельфина должны попасть в сферы влияния костей (соответствующие области будут отображены красным цветом), а второй состоит в том, что области влияния соседних костей должны обязательно пересекаться, иначе плавной деформации тела не добиться. По окончании редактирования сфер влияния отключите режим работы с огибающими и проверьте результат — теперь при перемещении головной кости дельфин (разумеется, вместе со скелетом) должен перемещаться без малейшей деформации.
Перейдем к созданию анимации. Попробуем сделать так, чтобы дельфин перемещался по некоторой криволинейной траектории, при этом его тело немного изгибалось, а хвост и плавники шевелились. Сформируйте криволинейный сплайн (рис. 70) и создайте объект-пустышку — данный объект мы и заставим вначале перемещаться по траектории. Выберите Dummy-объект и примените к нему команду Animation=>Constraints=>PathConstraint (Анимация=>Ограничения=>Ограничения пути), указав в одном из окон проекций сплайн пути, — объект-пустышка переместится в начало траектории (рис. 71). Перейдите к вкладке Motion (Движение) и в свитке PathParameters (Параметры пути) установите флажок Follow (Следовать) — это обеспечит автоматическое поворачивание объекта во время следования по траектории. Привяжите головную кость дельфина к Dummy-объекту, переместите дельфина на траекторию и скорректируйте его ориентацию (рис. 72). Проиграйте анимацию — дельфин будет двигаться по предназначенному ему пути. Осталось добиться реалистичного изгибания тела дельфина и шевеления его плавников и хвоста при движении. Включите режим автоматического создания ключевых кадров, активируйте один из начальных кадров, выделите первую кость спинной ветви и немного поверните ее, добиваясь желаемого изгиба тела (рис. 73). Не исключено, что результат окажется не очень хорошим (тело дельфина может деформироваться не совсем естественно — например появится неестественная складка). В таком случае придется отключить режим создания анимации, обратиться к настройкам параметров сферы влияния ближайшей к такой складке кости и вновь их корректировать. После достижения приемлемого результата аналогичным образом изогните плавники и хвост. Перейдите в следующий ключевой кадр и вновь выполните подобные действия и т.д. Можно ограничиться всего двумя-тремя вариантами деформации тела дельфина, а затем просто скопировать несколько раз соответствующие ключи на последующие ключевые кадры в редакторе анимационных кривых, что в итоге обеспечит желаемую анимацию (рис. 74).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 50. Буквы семафорной азбуки
Рис. 50. Буквы семафорной азбуки
Для начала нужно создать того, кто будет размахивать флагами. В качестве такого объекта смоделируйте простой скелет, состоящий из торса, двух плеч и двух рук (рис. 51), причем формируйте Bones-систему при отключенных флажках Assign to Children и Assign to Root. Данная система костей состоит из трех ветвей — основной (костяк скелета) и двух дополнительных (рис. 52), представляющих собой плечи и руки. Основная и первая дополнительная ветви создаются вручную, вторая дополнительная ветвь получается путем зеркального отображения. Для ее формирования выделите первую дополнительную ветвь, откройте окно BoneTools (команда Character=>BoneTools), щелкните на кнопке Mirror и настройте параметры отображения в соответствии с рис. 53. В качестве первого флага создайте плоскость и наложите на нее двухцветную текстуру с резко очерченными границами цветов, а затем клонируйте данную плоскость для получения второго флага (рис. 54). Свяжите левый флаг с костью Lower Arm1, а правый — с костью Lower Arm2.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 51. Исходная сцена
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 52. Ветви Bones-системы — основная ветвь (выделена), кости дополнительных ветвей поименованы
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 53. Настройка параметров зеркального отображения
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 54. Появление флагов
Рис. 51. Исходная сцена
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 52. Ветви Bones-системы — основная ветвь (выделена), кости дополнительных ветвей поименованы
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 53. Настройка параметров зеркального отображения
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 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-м кадре анимации
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 57. Вид анимационной кривой для кости Upper Arm1 (строка ZRotation)
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 58. Анимированный семафор
Рис. 56. Вид сцены в 20-м кадре анимации
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 57. Вид анимационной кривой для кости Upper Arm1 (строка ZRotation)
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 58. Анимированный семафор
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение] |
Используем возможность работы с костями для анимации дельфина (рис. 59). При перемещении тело дельфина немного изгибается, а хвост и плавники колышутся, а значит, во всех перечисленных элементах модели (а не только в теле) должны присутствовать кости. Центр масс объекта находится примерно в районе боковых плавников (рис. 60) — следовательно, именно здесь и должен располагаться центр всего скелета. Активируйте проекцию Left и создайте основной костяк скелета — он должен состоять из двух ветвей: первая ветвь (назовем ее головной) ограничивается одной костью (значит, автоматически создаваемую дополнительную кость следует удалить), а вторая ветвь (назовем ее спинной) включает четыре кости и дополнительная косточка в ней тоже удалена. Создавать обе ветви следует, начиная от центра масс и двигаясь в противоположных направлениях, — направления создания ветвей (равно как и сами ветви) указаны на рис. 61.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 59. Исходный дельфин
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 60. Центр масс дельфина
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 61. Основной костяк скелета
Рис. 59. Исходный дельфин
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 60. Центр масс дельфина
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 61. Основной костяк скелета
Теперь перейдем к формированию дополнительных скелетных ветвей в плавниках и хвосте. В хвосте создайте две ветви из двух костей (рис. 62), непосредственно при формировании связывая их со спинной ветвью — для этого потребуется в начале создания ветви щелкать на ближайшей к хвосту кости спинной ветви. В боковых плавниках сформируйте ветви из трех костей (рис. 63), при этом достаточно создать лишь одну из ветвей, поскольку вторую можно получить путем зеркального отражения, выделив все кости первой ветви и применив к ним команду Mirror из окна Bone Tools. Ветвь спинного плавника также ограничьте тремя костями (рис. 64). Теперь необходимо связать отдельные Bones-ветви в единый скелет. Хвост у нас уже связан со скелетом, значит, осталось связать плавники и головную кость. Боковые плавники связывайте с головной костью (рис. 65), спинной плавник — с первой костью спинной ветви (рис. 66), а первую кость спинной ветви — с головной костью. В итоге Root-объектом нашей системы станет единственная кость головной ветви (головная кость). Активируйте ее и переместите произвольным образом — если все кости связаны, то переместится весь скелет (рис. 67), в противном случае связи придется устанавливать заново. Отмените перемещение, так как оно нам потребовалось лишь для проверки связей.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 62. Кости хвоста
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 63. Кости боковых плавников
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 64. Кости спинного плавника
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 65. Связывание одного из боковых плавников с головной костью
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 66. Связывание спинного плавника со спинной ветвью
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 67. Перемещение скелета
Рис. 62. Кости хвоста
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 63. Кости боковых плавников
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 64. Кости спинного плавника
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 65. Связывание одного из боковых плавников с головной костью
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 66. Связывание спинного плавника со спинной ветвью
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 67. Перемещение скелета
Перейдем к связыванию структуры костей с моделью. Выделите модель дельфина и назначьте ей модификатор Skin. Щелкните на кнопке Add и включите в список модификатора все созданные кости. Выделите головную кость и попробуйте ее слегка передвинуть — дельфин деформируется (рис. 68), поскольку сфера влияния костей охватывает далеко не все его тело. Поэтому откажитесь от перемещения и переключитесь в режим редактирования параметров сфер влияния костей (кнопка EditEnvelopes). В списке Skin-объектов выделите головную кость и увеличьте радиусы ее огибающих так, чтобы вся передняя часть дельфина оказалась в сфере влияния данной кости (рис. 69). Аналогичные операции последовательно проведите для всех остальных костей, руководствуясь двумя принципами. Первый заключается в том, что все без исключения фрагменты тела дельфина должны попасть в сферы влияния костей (соответствующие области будут отображены красным цветом), а второй состоит в том, что области влияния соседних костей должны обязательно пересекаться, иначе плавной деформации тела не добиться. По окончании редактирования сфер влияния отключите режим работы с огибающими и проверьте результат — теперь при перемещении головной кости дельфин (разумеется, вместе со скелетом) должен перемещаться без малейшей деформации.
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 68. Перемещение головной кости при первоначальных параметрах сфер влияния костей — дельфин деформируется
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 69. Настройка сферы влияния головной кости
Рис. 68. Перемещение головной кости при первоначальных параметрах сфер влияния костей — дельфин деформируется
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 69. Настройка сферы влияния головной кости
Перейдем к созданию анимации. Попробуем сделать так, чтобы дельфин перемещался по некоторой криволинейной траектории, при этом его тело немного изгибалось, а хвост и плавники шевелились. Сформируйте криволинейный сплайн (рис. 70) и создайте объект-пустышку — данный объект мы и заставим вначале перемещаться по траектории. Выберите Dummy-объект и примените к нему команду Animation=>Constraints=>PathConstraint (Анимация=>Ограничения=>Ограничения пути), указав в одном из окон проекций сплайн пути, — объект-пустышка переместится в начало траектории (рис. 71). Перейдите к вкладке Motion (Движение) и в свитке PathParameters (Параметры пути) установите флажок Follow (Следовать) — это обеспечит автоматическое поворачивание объекта во время следования по траектории. Привяжите головную кость дельфина к Dummy-объекту, переместите дельфина на траекторию и скорректируйте его ориентацию (рис. 72). Проиграйте анимацию — дельфин будет двигаться по предназначенному ему пути. Осталось добиться реалистичного изгибания тела дельфина и шевеления его плавников и хвоста при движении. Включите режим автоматического создания ключевых кадров, активируйте один из начальных кадров, выделите первую кость спинной ветви и немного поверните ее, добиваясь желаемого изгиба тела (рис. 73). Не исключено, что результат окажется не очень хорошим (тело дельфина может деформироваться не совсем естественно — например появится неестественная складка). В таком случае придется отключить режим создания анимации, обратиться к настройкам параметров сферы влияния ближайшей к такой складке кости и вновь их корректировать. После достижения приемлемого результата аналогичным образом изогните плавники и хвост. Перейдите в следующий ключевой кадр и вновь выполните подобные действия и т.д. Можно ограничиться всего двумя-тремя вариантами деформации тела дельфина, а затем просто скопировать несколько раз соответствующие ключи на последующие ключевые кадры в редакторе анимационных кривых, что в итоге обеспечит желаемую анимацию (рис. 74).
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 70. Появление сплайна
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 71. Установка Dummy-объекта в начало траектории
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 72. Размещение дельфина на траектории
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 73. Деформирование тела дельфина
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 74. Плывущий дельфин
]Рис. 70. Появление сплайна
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 71. Установка Dummy-объекта в начало траектории
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 72. Размещение дельфина на траектории
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 73. Деформирование тела дельфина
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Рис. 74. Плывущий дельфин