3D Studio MAX: первые шаги. Урок 24. Персонажная анимация средствами Character Studio
Помещение скелета внутрь модели
Подключение готовой анимации и корректировка связей
Создание анимации по методу Footstep
Создание анимации по методу Freeform
В предыдущих уроках мы ознакомились с методами прямой и обратной кинематики, а также рассмотрели построение иерархий с помощью системы костей Bones. При этом мы убедились, что получение анимации любого персонажа предполагает создание для него иерархической структуры костей Bones, связывание данной костной структуры с моделью и анимирование последней. Выполнение всех их операций требует огромных затрат времени даже в случае самого простого персонажа (то есть персонажа, имеющего простой скелет) и элементарного движения. Очевидно, что при усложнении скелетной структуры персонажа и характера его движения трудоемкость создания анимации возрастает в разы. Поэтому при анимировании реальных существ чаще всего пользуются дополнительными инструментами, самым мощным из которых является модуль Character Studio (ранее существовал как дополнительный модуль, но начиная с седьмой версии интегрирован в пакет). Простым примерам подготовки анимации с участием трехмерного персонажа средствами Character Studio мы и посвятим данный урок. Создание анимации с применением модуля Character Studio требует прохождения четырех шагов: построение скелета, помещение его внутрь модели, связывание скелета с моделью (то есть надевание на скелет оболочки) и анимирование модели.
Построение скелета
За формирование костной структуры в Character Studio отвечает тип объектов Biped (Двуногий) категории Systems (Системы) панели Create (Создать) — рис. 1, обеспечивающий моделирование скелета практически любого персонажа с четырьмя конечностями и определение характера его поведения. Технология формирования скелета напоминает создание сплайнов: нужно щелкнуть левой кнопкой мыши в одном из окон проекций в точке, ограничивающей скелет снизу, а затем, не отпуская левой кнопки мыши, протащить ее вверх до точки, ограничивающей скелет сверху. В итоге будет сгенерирована заданная в программе по умолчанию структура костей типа Skeleton (рис. 2) — при необходимости тип скелета в процессе создания может быть изменен через свиток Body Type.
Рис. 1. Категория Systems с активированным типом объектов Biped
Рис. 2. Первоначальный вид скелета (тип Skeleton)
Полученная система костей представляет собой скелет двуногого персонажа, то есть персонажа, имеющего некоторое количество шейных позвонков и позвонков торса, две руки и две ноги с определенным количеством суставов и т.д. Анатомическое строение скелета несложно изменить, что и осуществляют сразу после его создания путем корректировки параметров свитка CreateBiped (рис. 3). Так, можно удалить кости рук (флажок Arms), изменить количество позвоночных (SpineLinks) и шейных (NeckLinks) костей, количество костей для ног (LegLinks). А также установить число пальцев на руках и ногах (Fingers и Toes), количество фаланг пальцев на руках и ногах (FingersLinks и Toe sLinks) и при необходимости добавить нестандартные типы костей для персонажей с хвостом или гривой (TailLinks, Ponytail1 Links и Ponytail2 Links). Данные параметры могут быть изменены как при создании скелета (то есть сразу после выбора Create=>Systems=>Biped), так и при его редактировании. Последнее производится на панели Motion (а не на панели Modify), где вышеназванные параметры костной структуры окажутся доступными через свиток Structure. Данный свиток появляется лишь после включения в свитке Biped панели Motion режима фигуры (FigureMode — рис. 4), предназначенного специально для настройки скелета. Режим FigureMode может быть включен после выделения любой из костей скелета.
Рис. 3. Свиток CreateBiped
Рис. 4. Активация режима FigureMode
![]() |
![]() |
Помещение скелета внутрь модели
После создания скелета требуется поместить его внутрь трехмерной модели персонажа, которая выступает в роли кожи, — то есть совместить с моделью и подогнать сам скелет и его отдельные кости по размеру. При совмещении скелета необходимо расположить кости внутри оболочки наиболее естественным образом, так как от того, насколько тщательно удалось совместить все элементы скелета и внешней оболочки, напрямую зависит правдоподобность движений персонажа.
Для совмещения скелета с моделью выделяют его Root-объект (он в скелете по умолчанию всегда фигурирует под имением Bip01) и перемещают последний непосредственно на модель, после чего масштабируют скелет обычным образом и подгоняют высоту персонажа, добиваясь того, чтобы пропорции скелета примерно соответствовали сетке персонажа. Затем вручную корректируют размеры (длину и толщину) и положение каждой из костей, исходя из анатомических особенностей существа и добиваясь более точного совмещения скелета с персонажем. Величина каждой из костей изменяется при помощи стандартного масштабирования прямо в режиме FigureMode, положение и ориентация костей — путем обычного вращения и перемещения, а корректировка длины возможна лишь при активизации дополнительного режима — режима резиновой нити (RubberBandMode) — рис. 5, который может быть выбран только в режиме фигуры. После переключения в RubberBandMode перемещение кости вниз будет приводить к ее вытягиванию, а вверх — наоборот, к ее укорачиванию. Обратите внимание на следующие моменты:
- в процессе совмещения скелета с моделью придется неоднократно включать/отключать режим RubberBandMode (сделать это можно только при выделенном Root-объекте) — см. рис. 5. Это необходимо, поскольку изменение длины костей производится лишь при включенном режиме RubberBandMode, а вращение, масштабирование и перемещение костей — при отключенном;
- выделять кости в окнах проекций довольно сложно в силу большого числа объектов в них (вдобавок объекты еще и наложены друг на друга), поэтому, как правило, данную операцию производят в окне Select By Name;
- если дважды щелкнуть по любому родительскому элементу Biped, то все его дочерние элементы тоже будут выделены, а значит, таким способом удобно выделять все дочерние элементы в иерархии ног и рук;
- поскольку скелет симметричен, то многие операции требуется проводить вначале для определенной кости левой части скелета, а потом для соответствующей кости правой (или наоборот). Для ускорения выделения соответствующих костей удобнее использовать кнопки Symmetrical (Симметрично) и Opposite (Противоположный) — рис. 6, находящиеся в свитке TrackSelection панели Motion. Нажатие любой из названных кнопок при выделенной кости левой части скелета приводит к выделению соответствующей кости правой части скелета, за исключением того, что в случае кнопки Opposite при этом снимается выделение с исходной кости (то есть кости в левой части скелета);
- настроив параметры одной из конечностей (например, ее положение), совсем необязательно повторять настройки для второй конечности — гораздо быстрее их скопировать, воспользовавшись операцией Copy/Paste. Для этого выделяют настроенную конечность, затем на панели Motion развертывают свиток Copy\ Paste (Копировать/Вставить) и щелкают на кнопке CreateCollection (Создать коллекцию — рис. 7). После этого в свитке CopyCollection s появляется коллекция Col01 (в дальнейшем будет несколько коллекций) и станет активной кнопка Copy Posture (Копировать положение) — рис. 8; если ни одной коллекции не существует, то данная кнопка неактивна. Затем для копирования в буфер обмена позы конечности щелкают по пиктограмме Copy Posture (после этого становятся активными кнопки, расположенные справа от нее), а для наложения позы на вторую конечность — по пиктограмме PastePostureOpposite (Вставить положение на противоположную кость).
Рис. 5. Активация режима RubberBandMode
Рис. 6. Свиток Track Selection с выделенными рамкой кнопками Symmetrical и Opposite
Рис. 7. Создание коллекции для операции Copy/Paste
Рис. 8. Кнопка СоруPosture в активном состоянии
По окончании скелет желательно сохранить, открыв в режиме FigureMode свиток Biped, щелкнув на кнопке SaveFile (Сохранить файл) и указав имя файла. В итоге скелет окажется сохраненным в файле с расширением *.fig и может быть задействован для других моделей.
Рассмотрим простой пример. Создайте предусмотренный по умолчанию скелет, активировав категорию Systems панели Create, щелкнув на кнопке Biped, нажав левую кнопку мыши в произвольной части одного из окон проекций и протащив (при нажатой левой кнопке) мышь вверх (рис. 9). Сформируйте рядом со скелетом обычный цилиндр, размеры которого должны немного превышать размеры скелета (рис. 10). Совместите цилиндр со скелетом: выделите цилиндр, щелкните по кнопке Align и в качестве образца для выравнивания укажите Root-объект скелета (объект Bip01), воспользовавшись кнопкой Select by Name (рис. 11). Существенно увеличьте радиус цилиндра (рис. 12). На этом будем считать этап совмещения скелета с оболочкой завершенным. Сохраните сцену, так как позже мы к ней вернемся.
Рис. 9. Первоначальный вид сцены со скелетом
Рис. 10. Появление цилиндра
Рис. 11. Указание объекта Bip01
Рис. 12. Вид сцены после увеличения радиуса цилиндра
Усложним задачу и попробуем разместить скелет внутри простого объекта, смоделированного из примитивов, — пусть это будет кубик, дополнительно имеющий некую имитацию рук с кистями, ног со стопами и головы с шеей (рис. 13). Смоделируйте соответствующую сцену, а затем создайте костную структуру, нажав на кнопку Biped и сформировав в окне Front скелет нужного размера (рис. 14).
Рис. 13. Исходный вид кубика
Рис. 14. Появление скелета
Теперь требуется грубо подогнать форму скелета к модели. Перейдите в режим редактирования скелета: выделите объект Bip01, активируйте панель Motion и включите режим FigureMode. Начнем с изменения длины бедренных костей ног, поэтому включите режим резиновой нити (RubberBandMode). В окне Front выделите кость Bip01 R Thigh, на панели Motion разверните свиток TrackSelection и нажмите кнопку Symmetrical — это приведет к выделению соответствующей кости другой ноги. Активируйте инструмент Select and Move и переместите мышь вверх так, чтобы длина выделенных костей уменьшилась нужным образом (рис. 15). Проведите аналогичные операции в отношении голеней (рис. 16). Уменьшите количество позвоночных костей до одной, указав соответствующее значение в поле SpineLinks свитка Structure (рис. 17).
Рис. 15. Масштабирование бедренных костей
Рис. 16. Масштабирование голеней
Рис. 17. Уменьшение значения параметра SpineLinks
Займемся совмещением скелета с моделью персонажа. Это удобнее всего сделать за два шага: вначале провести грубое совмещение путем применения выравнивания, а затем более точно расположить Root-кость скелета уже вручную. Но вначале назначьте всем объектам оболочки полупрозрачные цвета, что позволит при совмещении наблюдать за положением костей внутри оболочки не только в ортогональных проекциях, но и в проекции Perspective. Отключите режим Rubber Band Mode. Выделите объект Bip01 и воспользуйтесь операцией Allign, указав куб (имитирующий в нашем случае туловище) в качестве объекта, по которому будет производиться выравнивание (рис. 18). Увеличьте масштаб и в проекции Front переместите скелет за кость Bip01 так, чтобы тазовая часть скелета совпала с предполагаемой тазовой частью оболочки (рис. 19).
Рис. 18. Результат выравнивания скелета по кубу
Рис. 19. Окончательное определение положения Root-кости вручную
Перейдем к плечам. Выделите единственную позвоночную кость Bip01 Spine и масштабируйте ее так, чтобы плечевые кости скелета оказались в оболочке на нужном уровне (рис. 20). Теперь нужно изменить положение ног так, чтобы соответствующие кости оказались внутри конечностей, при этом работать придется параллельно в проекциях Front и Left. Выделите правую бедренную кость (кость Bip01 R Thigh) и в проекции Front поверните ее относительно оси Z примерно на –11 позиций (рис. 21), а затем в проекции Left также относительно оси Z примерно на –8 позиций (рис. 22). Щелкните на кнопке Opposite (свиток TrackSelection панели Motion) — окажется выделенной левая бедренная кость. Выполните по отношению к ней те же самые преобразования, но вращая кость в противоположном направлении. Выделите в проекции Left правую голень (кость Left Bip01 R Calf) и поверните ее относительно оси Z примерно на 8 позиций (рис. 23). Повторите операцию поворота (но в противоположном направлении) для левой голени.
Рис. 20. Масштабирование позвоночной кости
Рис. 21. Вращение правой бедренной кости в проекции Front
Рис. 22. Вращение правой бедренной кости в проекции Left
Рис. 23. Вращение правой голени в проекции Left
Займемся плечами и руками. Выделите обе плечевые кости (Bip01 R Clavicle и Bip01 L Clavicle) и масштабируйте их относительно оси X так, чтобы плечевые суставы оказались на подобающем им месте (рис. 24). В проекции Front выделите кость Bip01 R UpperArm и поверните ее относительно оси Z примерно на 42 позиции в отрицательном направлении. Включите режим RubberBandMode и удлините обе основополагающие кости руки требуемым образом. Отключите режим RubberBandMode и поверните кисть руки (кость Bip01 R Hand) так, чтобы она оказалась внутри оболочки. Теперь все только что проведенные операции необходимо применить к другой кисти. Для ускорения процесса воспользуемся операцией Copy/Paste. Выделите всю правую конечность, дважды щелкнув на кости Bip01 R UpperArm. На панели Motion разверните свиток Copy\Paste и последовательно щелкните на кнопках CreateCollection, CopyPosture и PastePostureOpposite — кости левой руки окажутся расположенными так же, как и кости правой руки (рис. 25). По окончании поверните стопы обеих ног (кости Bip01 R Foot и Bip01 L Foot) так, чтобы они тоже располагались внутри оболочки, а затем масштабируйте кости шеи и головы, добиваясь желаемого положения их внутри скелета (рис. 26). Сохраните сцену — она нам еще не раз понадобится.
Рис. 24. Вид плечевых костей после масштабирования
Рис. 25. Вид верхних конечностей после полной корректировки их длины и положения
Рис. 26. Вид скелета, помещенного в оболочку в окне Perspective
![]() |
![]() |