Иллюстрированный самоучитель по анимации персонажей в 3ds max

Бедра и ягодицы


Иногда области бедер и ягодиц доставляют столько же проблем, сколько и область плеч: они должны обеспечивать всевозможные движения ног. Больше всего внимания нужно уделить области ягодиц. Убедитесь, что при движении ноги вперед и назад форма большой ягодичной мышцы остается сплошной (рис. 1.41).

Бедра и ягодицы

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


Бедра и ягодицы Бедра и ягодицы Бедра и ягодицы



Что такое экземпляр


Теперь, когда вы вооружены всеми данными, необходимыми для создания персонажа, пришло время произвести некий экземпляр, с помощью которого и будет построен объект1. Существует два способа создания экземпляра: свободный и жесткий. Выбор подхода в большой степени зависит от позы и окончательного вида модели; каждый способ - это личное предпочтение художника. Betty Bad была создана с помощью свободного подхода (рис. 1.4).

Что такое экземпляр

Рис. 1.4. Для создания Betty Bad был выбран свободный подход
«Осанистая привлекательная героиня-хулиганка, быть может, с ружьем, которое входит в ее боевое снаряжение, со взглядом, напоминающим взгляд воина из комиксов «British 2000 A.D.» или из фильма «Judge Dredd» (Судья Дредд)».

Уровень детализации экземпляра в этом описании оказался достаточным для того, чтобы сконструировать персонаж Betty Bad. Если художник, создающий модель, не ограничен в выборе дизайна, то свободный экземпляр такого типа вполне подойдет. Если же создаваемый персонаж должен напоминать по форме уже известный, то придется применить другой подход. Чтобы достичь нужного уровня детализации, когда это требуется, лучше представить себе экземпляр, больше напоминающий плоскую диаграмму, а не рисунок. Экземпляр, основанный на сложной позе, подходит для большинства моделлеров. однако всегда остается риск потерять или изменить что-то в первоначальном представлении персонажа, если этот способ используется как основа для построения сетки. Посмотрите, например, на некоторые изображения персонажа по имени Рыжая Моника (рис. 1.5).

Что такое экземпляр

Рис. 1.5. На эти рисунки с Рыжей Моникой приятно смотреть, но они не подходят в качестве экземпляров для создания модели
Она - весьма полногрудая роковая женщина из комиксов Джо Мадейры (Joe Madeira) под названием «Battle Chasers» (Искатели сражений). Чтобы построить модель персонажа, соответствующую такому дизайну, нужно воспользоваться более жестким экземпляром, чем просто высокохудожественная иллюстрация из комиксов. Нужно создать диаграмму персонажа (рис. 1.6).

Что такое экземпляр

Рис. 1.6. Здесь показан более жесткий, схематичный экземпляр и результат его применения
Самое главное при выборе экземпляра - воспользоваться тем, который вам удобнее. Если вам нравится небрежный набросок на салфетке и моделлер с этим согласен - пусть будет так. Если же требуется чрезвычайная точность, примените более схематичный подход. Это гарантирует, что моделлер воссоздаст персонаж наиболее правдоподобно.




Дизайн


Дизайн - отправная точка при построении персонажа, он должен быть заранее проработан до мельчайших деталей на бумаге, в глине или в программе Photoshop. Моделировать из образов, возникших в голове, - весьма полезный навык, но наличие некоего физического воплощения этого образа всегда гарантирует, что дизайн адекватен для персонажа. Визуализация персонажа должна целиком передавать его особенности, будь то просто набросок или проработанное изображение. В то же время хороший набросок, достаточно впечатляющий и обеспечивающий уникальную и интересную узнаваемость, также должен быть выполнимым. Работать приходится при ограничениях используемой технологии создания игр, и персонаж должен гармонично вписываться в мир игры, для которого он предназначен. Поэтому, создавая дизайн персонажа, прежде всего нужно помнить об эстетических требованиях, о технических ограничениях и об экземпляре (reference).




Использование булевых операций


Другой полезный способ моделирования - использование булевых операций. При этом методе для достижения нужной формы используются объединение, вычитание или пересечение двух объектов. Этот метод подходит для соединения конечностей с туловищем или для присоединения ног к тазовой области. Единственным недостатком использования булевых операций является то, что создается избыточная геометрия, которую приходится подчищать. Например, посмотрите на рис. 1.16. Когда бедра и ноги Betty построены и полностью завершены (А), их располагают так, чтобы они пересекались (В). После того как их объединят с помощью логической операции Union, создается лишняя геометрия С). Betty получает ноги после вычищения геометрии, настройки формы с последующим зеркальным отображением соответствующих граней (D).

Использование булевых операций

Рис. 1.16. С помощью булевых операций геометрия создается быстро, но ее приходится вычищать
Прежде чем применять булевы операции, убедитесь, что вся геометрия замкнута. Чтобы замкнуть любую из открытых частей, воспользуйтесь модификатором Cap Holes (Закрыть отверстия) или вручную постройте грани. Если вы не замкнете открытые области, метод, возможно, не будет работать или результаты будут не совсем такие, как вы ожидали.




Использование экземпляра


В 3ds max есть несколько способов использования экземплярного изображения. Вы можете поместить одно из них на фон, отобразить на плоскость на экране или же вывести его с помощью пиктограммы Asset Browser (Обозреватель ресурсов), которая доступна на панели команд Utilities (Утилиты), - рис. 1.7.

Использование экземпляра

Рис. 1.7. С помощью модуля Asset Browser в 3ds max можно просмотреть изображения из любой папки
Просматривать экземпляр с помощью модуля Asset Browser удобно потому, что во время построения можно видеть и сетку, и изображение, которое является ее основой. Однако лучший способ применения экземплярных изображений - это преобразование их в трехмерный контур. Для этого перенесите в 3ds max изображение как фоновое изображение окна проекции. Затем с помощью инструмента Line (Линия) очертите контуры изображения и создайте трехмерную версию экземплярного рисунка или картинки. Заметьте, что, прежде чем переносить рисунок в 3ds max, нужно его подготовить: затените его и измените его размер в Photoshop или в любой другой программе-редакторе двумерных изображений (рис. 1.8).

Использование экземпляра

Рис. 1.8. Подготовьте экземпляр прежде, чем переносить его в 3ds max как фоновое изображение
На рис. 1.8 можно увидеть, что исходный набросок Betty затемнили, ногу переместили так, чтобы моделлер мог получить наилучшее представление, а размер изображения был изменен с целью установить пропорции 2:1 (в данном случае 512x256 пикселей). Эти дополнительные шаги гарантируют, что после переноса изображения на фон 3ds max и отображения его с помощью видеокарты с аппаратным ускорением точность изображения будет наивысшей.

Перенесите изображение на фон: откройте выпадающее меню Views (Виды) и щелкните по пункту Viewport Background (или просто нажмите сочетание клавиш Alt+B). Загрузите экземпляр, щелкнув по кнопке Files в верхней части окна Viewport Background (Фон окна проекции) и отыскав соответствующий файл с изображением. Когда файл загрузится, убедитесь, что опции переключателя Match Bitmap (Подгонка под растровое изображение) - Display Background (Отображать фон) и Lock Zoom/ Pan (Закрепить масштабирование/панорамирование) - отмечены флажком (рис. 1.9).


Использование экземпляра

Рис. 1.9. В 3ds max очень легко перенести изображение на фон окна проекции

Щелкните по кнопке ОК - и изображение с правильными пропорциями и с фиксированным размером по отношению к элементам управления окна появится на фоне окна проекции. Если в окне проекции отображается координатная сетка, а вы хотите лучше рассмотреть изображение, выключите сетку. Это можно сделать, нажав на клавишу G.

Если по каким-то причинам изображение не появилось, когда вы пытались перенести его на фон окна проекции, вернитесь в меню Views и щелкните по пункту Update Background Image (Обновить фоновое изображение) или нажмите сочетание клавиш Alt+Shift+Ctrl+B (рис. 1.10).

Использование экземпляра

Рис. 1.10 Иногда, чтобы показать фоновое изображение, нужно приложить немного усилий

Когда фоновое изображение перенесено в 3ds max, очертите его контуры инструментом Line, который находится на панели Create | Shapes (Создать | Формы). Убедитесь, что напротив опции Start New Shape (Начать новую форму) нет флажка, иначе вы создадите букет отдельных линий (рис. 1.11).

Использование экземпляра

Рис. 1.11 Чтобы в дальнейшем не соединять линии в одну форму, снимите флажок с опции Start New Shape

Создавая линию, не задумывайтесь о ее сложности: она будет использоваться лишь в качестве экземпляра.

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

После того как контур изображения нарисован, выключите фоновое изображение, дайте линии название Guide (Направляющая) и используйте полученную форму в качестве вспомогательной для создания модели в любом виде (рис. 1.12).

Использование экземпляра

Рис. 1.12. Трехмерный контур экземплярного наброска поможет вам при создании модели в любом виде

Лучший способ детально проследить свою работу - это нажимать клавишу W при моделировании в одном демонстрационном окне. Вы даже можете убрать командную панель, нажав на клавишу 3, чтобы освободить больше места1". А если вы считаете себя смельчаком, нажмите сочетание клавиш Ctrl+X - и все меню, кроме самой верхней строки, исчезнут.

Если экземплярные изображения сохранены на жестком диске компьютера, то перенести их в 3ds max не составит труда. Однако, если эти изображения не были созданы в графической программе или программе для рисования, такой как Photoshop, вам понадобится приличный планшетный сканер, чтобы перенести цифровую копию в 3ds max (цена на качественные сканеры падает, поэтому приобретение его с годами окупится). Использование экземпляра независимо от того, как вы перенесли его в 3ds max, всегда приводит к более цельному и точному следованию дизайну. Таков первый шаг к созданию и поддержанию формы. После того как вы завершите работу с экземпляром, можно переходить к моделированию.


Использование примитивов


Этот метод - подход к моделированию в соответствии с условием: «Дайте мне достаточно материала для работы». Во всех пакетах моделирования есть огромное число примитивов (primitive), с которыми можно работать, придавая им любую форму, например параллелепипеда, цилиндра, сферы.

Один из лучших примеров этого метода моделирования - совместное использование цилиндра и экземплярной направляющей для построения ноги (рис. 1.14). Для начала нужно создать достаточное число сторон и сегментов цилиндра (А), примерно соответствующее количеству вершин в опорной линии (сегментов); затем они в грубом приближении подгоняются при помощи простых трансформаций, чтобы соответствовать направляющей (В). Настроив форму в виде спереди так, чтобы она соответствовала перспективе направляющей, измените геометрию ноги с помощью разделения ребер, перемещения положений и вершин. Таким образом, форма оптимизируется и завершается (С).

Использование примитивов

Рис. 1.14. Из примитивов можно создать основную форму, а затем изменить ее так, как нужно




Эстетические требования


Эстетические требования - это то, как вы представляете внешний вид, как понимаете красоту. Эстетично то. о чем вы могли бы сказать: «Это классно». Возраст, вкус, образование, любимые фильмы, игры и произведения изобразительного искусства определяют это представление. Аниме и манга - весьма хорошие источники для творческого вдохновения при создании персонажей игр в реальном времени, особенно это касается работы традиционного моделлера и удивительного дизайнера персонажей Ясуши Нирасава (Yasushi Nirasawa). Стоит упомянуть также художников, работающих в стиле фэнтези и научной фантастики: Оскара Чичони (Oscar Chichoni), Брома (Brom), Саймона Бисли (Simon Bisley), Льюиса Ройо (Luis Royo), художника вселенной WarHammer Кевина Уолкера (Kevin Walker) и сотрудников Mutant Chronical Алессандро Хорли (Alessandro Horley) и Пола Боннера (Paul Bonner). Они работают в живом художественном стиле, все персонажи, созданные ими, весьма выразительны.

Каждый человек по-своему определяет то, что радует его глаз, но есть несколько факторов, которые влияют на эстетичность дизайна персонажа игр и/или ею управляют. Прежде всего, дизайн должен быть уникален, а также соответствовать письменному описанию (в той или иной форме), которое к нему прилагается. Даже по умышленно банальному описанию («Создайте такой же персонаж, как в игре X...») можно создать яркий, индивидуальный персонаж, если не пожалеть времени и хорошо его обдумать. Уникальность определяется не только в сравнении с персонажами, созданными ранее, но также по отношению к другим персонажам той же игры. Простой способ подчеркнуть индивидуальность персонажей -использовать различные цветовые комбинации, но самый эффективный метод создания персонажей, узнаваемых и отличимых друг от друга, - воспользоваться принципом силуэта. Рис. 1.1 иллюстрирует разницу в дизайне нескольких врагов из Betty Bad.

Эстетические требования

Рис. 1.1. Просмотр силуэта персонажа помогает достичь уникальности. Он должен стать неотъемлемой частью процесса разработки дизайна

При формировании группы уникальных персонажей используется один прием. Это разработка общих правил и характеристик для создаваемых персонажей. Например, в игре Betty Bad чужаки отличаются по размеру и конфигурации, но у всех есть общий элемент дизайна - яркое пятно (глаз или отверстие). Почти всегда это пятно красного цвета, но иногда его цвет меняется. На рис. 1.2 показаны лишь несколько из множества персонажей, которые при разработке Betty Bad создал с помощью этого обычного дизайнерского приема известный художник и дизайнер, работающий по контракту, Ричард Хескокс (Richard Hescox), www.richardhescox.com.

Эстетические требования

Рис. 1.2. Некоторые элементы дизайна персонажей должны различаться при сохранении общего единообразия последних

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


Качество текстуры


Получение хорошей текстурной карты при создании персонажей игр в реальном времени - процесс субъективный, и он становится все субъективнее при рождении персонажа. По-настоящему великие художники просто начинают рисовать и не останавливаются до тех пор, пока их цифровое произведение не будет завершено. Художники по текстуре Джон Мюллер (John Mueller) и Стив Гарофало (Steve Garofalo), работавшие с Epic Games, проделали (и продолжают выполнять) потрясающую работу над моделями персонажей игр, таких как Unreal Tournament и готовящейся к выпуску Unreal Warfare. Эти художники обладают врожденной способностью работать с пикселями и текстурами так же, как если бы рисовали с помощью обычных инструментов.

Создать хорошую текстуру можно при условии знания сетки. В идеале вы создаете дизайн персонажа, строите его модель, текстурируете и ани-мируете. Однако в современном мире создания игр и онлайновых технологий, с его быстрыми темпами, редко кто имеет роскошь (или возможность) владеть всеми четырьмя областями. Предпочтительнее такой сценарий: художник разрабатывает набросок и отдает его моделлеру, затем моделлер возвращает созданную модель художнику, который разрабатывает для нее текстуру и проекционные координаты. Далее моделлер или другой аниматор будет собирать, задавать веса точек и анимировать персонаж. Такого рода «перепасовки» весьма обычны среди голливудских разработчиков спецэффектов. К сожалению, во многих студиях-разработчиках игр считается, что один человек должен делать все. Специализация обычно не приветствуется, и предполагается, что все художники должны одинаково хорошо уметь создавать дизайн, моделировать, текстурировать и анимировать персонаж. Эту ситуацию хорошей не назовешь ни с точки зрения продуктивности, ни с какой-либо другой: художники становятся конкурентами, каждый стремится быть лучшим, незаменимым. Это плохо сказывается на морали и на здоровье амбициозных хитрецов.

У каждого художника есть свои предпочтения и область специализации. Некоторые просто работают лучше других в определенных областях. Каким бы заманчивым ни казалось разбрасывание в попытке войти в «десятку сильнейших» во всех областях искусства создания игры - в основе своей это плохая идея. Безусловно, вы должны знать все рассматриваемые вопросы, быть в них компетентными - именно в этом и проявляется способность «работать в команде». Четыре художника, которые являются лучшими в каждой из четырех областей по отдельности, вместе составляют лучшую команду художников, которую можно представить: дизайнер, моделлер, художник по текстуре и аниматор. Команда из двух художников - дизайнер/художник по текстуре и моделлер/аниматор - просто необходима. Хороший художник имеет достаточное представление об областях, лежащих вне его компетенции, и может упростить работу коллеги, но внимание свое заостряет на том, чтобы наилучшим образом выполнять свои собственные обязанности.


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

Не забывая обо всем этом, загрузите файл Head2.max и изучите проецирование, примененное в конечном итоге (рис. 1.55).

Заметьте, что координаты UVW были изменены, чтобы воспользоваться преимуществом функции зеркального отображения внутри модификатора Unwrap UVW. В этом случае текстурная карта, примененная к голове, показывает половину изображения черной, потому что остальная часть текстуры персонажа в конце концов должна будет также поместиться на странице текстуры. Текстура Betty Bad такая же, она дает представление о том, как будет спроектирован весь персонаж (рис. 1.56).

Обе текстуры, показанные на рис. 1.56, были созданы в приложении Photoshop и применены к сеткам последовательными шагами. Добавьте немного текстуры и посмотрите, что получилось; слегка измените карту, проекционные координаты; продолжайте, пока не добьетесь хорошего результата. Переходить из Photoshop в 3ds max и обратно - просто, если ваш компьютер (или несколько компьютеров) достаточно мощный, но не забывайте, что использование обеих программ в одно и то же время приведет к значительному расходу системных ресурсов. В процессе текстуриро-вания вам могут существенно помочь и другие программы трехмерного рисования, например Right Hemisphere's Deep Paint.

Качество текстуры

Рис. 1.55. С помощью текстурных карт с картами прозрачности можно создать убедительно выглядящую голову с волосами

Что касается качества текстурной карты, то успех всего произведения определяется талантом, воображением и чувством рациональности. Убедитесь, что текстура отображается при анимации. Текстура в виде тени на внутренней стороне бедра персонажа в статической среде выглядит прекрасно, но когда среда освещается и затеняется динамически (а так и бывает на большинстве игровых движков), та же самая неестественная тень может выбиваться из общего вида и отрицательно влиять на качество персонажа.

Качество текстуры

Рис. 1.56. Текстурная карта Betty Bad рационально заполняет растровый файл

Качество текстуры Качество текстуры Качество текстуры

Ладони и пальцы


Настоящие пальцы (то есть отдельные друг от друга) у персонажей игр в реальном времени встречаются очень редко. Обычно ладонь имеет форму варежки, которую можно текстурировать и сделать похожей на пальцы (рис. 1.43).

Но если вы создаете пальцы, нужно добавить и суставы пальцев, чтобы обеспечить правильную анимацию, а также геометрию аналогично тому, как это делается для локтей и коленей (рис. 1.44).

Ладони и пальцы

Рис. 1.43. Для большинстве персонажей игр в реальном времени применяются «варежки»
Ладони и пальцы

Рис. 1.44. Вы видите руку Betty с пятью пальцами




Локти и колени


С локтями и коленями работают по тем же правилам. При присоединении руки (или ноги) необходимо создать достаточное количество геометрии, чтобы рука при движении не накладывалась сама на себя (рис. 1.42).

Локти и колени

Рис. 1.42. Чтобы форма сустава не менялась, воспользуйтесь дополнительной геометрией, которая «раскроется веером» при соединечии конечностей




Методы моделирования


В 3ds max (как и в других пакетах моделирования) есть несколько способов достижения одной и той же цели. Лучшим подходом моделирования персонажей игр в реальном времени является полигональное моделирование (polygon modeling). Патчевое моделирование (patch modeling) особенно полезно при создании естественной геометрии или геометрии мягкой поверхности, например волос, одежды или волнистых поверхностей, как вода. Другие методы моделирования, такие как неоднородные рациональные В-сплайны (NURBS) и поверхности разделения, также эффективны и ценны. Но они больше подходят для высокодетализированных, а не низкополигональных игровых персонажей. Моделирование на уровне объекта или подобъекта с использованием вершин, ребер и граней - безусловно, лучший способ управлять сложностью поверхностей и, что более важно, формой модели персонажа.

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




Моделирование: форма


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




Моделирование: функция


Форма персонажа игры в реальном времени определяет то, как он будет выглядеть, а функции - то, как форма будет деформироваться при выполнении анимации. Функцию очень важно учитывать при построении модели персонажа. Ведь персонажи игр в реальном времени - не неподвижные статуи, восхищающие своей художественностью. Напротив, они должны убедительно двигаться, как живые создания. При движении им придется поворачиваться, растягиваться, сгибаться и вообще деформироваться должным образом - и все это при условии ограничения числа полигонов. Чтобы сетка персонажа имела нужную функциональность, она должна одновременно обеспечивать доступ к вершинам во время задания веса и соответствовать всем технологическим ограничениям, наложенным игровым движком. Однако важнее всего то, что сетка должна соответствовать анимации геометрически и быть выровнена правильно по объекту Biped (Двуногий) во время создания каркаса (rigging) и задания веса в character studio.




Обзор UVW


Проекционные координаты обозначаются в соответствии с тремя пространственными осями отображения, которые известны как UVW. (Эти оси можно было бы .задать любой последовательностью букв. Они названы так потому, что буквы UVW предшествуют XYZ в английском алфавите. Буквы X, Y и Z, конечно, обозначают три пространственные оси декартовой системы координат.) Каким бы хорошим художником вы ни были, если вы не натянете холст правильно, то не получите произведение искусства, к которому стремитесь. Так же и с персонажем игры в реальном времени. Вы должны быть уверены, что проекционное покрытие, определенное для персонажа, тщательно продумано, завершенно и эффективно, тогда вы обеспечите себя наилучшим холстом, на котором сможете создать текстуру.

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

Загрузите файл Head 1.max (рис. 1.47).

Обзор UVW

Рис. 1.47. После того как модель построена, ее нужно текстурировать
Сетка, изображенная на рис. 1.47, представляет собой голову персонажа с большим числом полигонов. Команда Detach to Element была применена к ее граням, которые выступают в роли разделителей листов с полигонами, а они, в свою очередь, образуют уникальную плоскую проекцию. Процесс применения проекционных координат начинается с проверки того, что элементы на самом деле отсоединены и их можно перемещать (рис. 1.48).

Расположите все элементы так, чтобы они были максимально видны в окне проекции Front (Спереди). Таким образом, окно проекции по существу становится окном плоской проекции модели. Чтобы поставить элементы на место, воспользуйтесь командой Snap (Привязка) или Snap to Vertex (Привязка к вершине), но будьте осторожны и не нарушьте то выравнивание вершин, которое присутствовало, когда они были одним целым.


Обзор UVW

Рис. 1.48. Расположите элементы так, как если бы их развернули, словно кожуру апельсина

Очень важно убедиться, что вы применили модификатор Edit Mesh до того, как начали изменять положение элементов. Данный метод основывается на возможности выключить модификатор Edit Mesh, если применены модификаторы. UVW Map (UVW-карта) или Unwrap UVW (Развернуть проекционные координаты). Можно запросто начать перемещать элементы, вообще не применив к стеку модификатор Edit Mesh.

Затем выделите вершины на границе тех элементов, которые вы хотите присоединить так, чтобы образовать непрерывную поверхность. Вызовите окно Transform Type-In (Точное масштабирование), выбрав пиктограмму Scale Transform (Преобразование масштабирования) и щелкнув по ней правой кнопкой мыши (рис. 1.49).

Обзор UVW

Рис. 1.49. Окно Transform Type-In - прекрасный способ точно изменять размеры объектов или подобъектов, перемещать их и поворачивать

В полях раздела Offset Screen (Экранное смещение) введите значения 0 - и выделенные вершины сразу же сожмутся и сойдутся в одну точку, но не будут объединены. К сожалению, в этом состоянии вы совершенно не можете слить или каким-либо другим образом соединить вершины элементов. Это нарушит замысел метода, так как изменится суммарное число и нумерация вершин сетки. Возможность уменьшить размер вершин путем ввода значения 0 является одним из преимуществ использования метода проецирования вместо модификатора Unwrap UVW. После того как уменьшен масштаб вершин, а элементы соединены друг с другом, сетка должна иметь вид, который представлен на рис. 1.50.

Обзор UVW

Рис. 1.50. Масштабируйте вершины элементов, чтобы сетка стала непрерывной поверхностью

Чтобы разместить элементы, воспользуйтесь модификаторами Edit Mesh. Убедитесь, что при применении нового модификатора не выделены подобъекты - это отрицательно скажется на конечном результате.

Теперь сетка - поверхность непрерывная, и швов в текстурном покрытии не будет. Однако конечные элементы1 искривлены, и их тоже нужно сшить или задать им повторяющиеся узоры (tile). Для этого просто плавно переместите элемент справа налево вдоль оси X и соедините вершины на стыке двух элементов (рис. 1.51).



И наконец, расположите остальные элементы так, чтобы сетка имела полностью бесшовный на краях и однородный проекционный вид (рис. 1.52).

Другим преимуществом данного метода проецирования является то, что вы можете определить каркасный материал для сетки и визуализировать ее в любом разрешении.

Обзор UVW

Рис. 1.51. Выровняйте конечные элементы, чтобы соединить проекции на задней части головы

Обзор UVW

Рис. 1.52. К такой сетке можно применить плоское проецирование

При визуализации сетки, к которой применен каркасный материал, ребра нужно выделить и сделать видимыми (рис. 1.53).

Обзор UVW

Рис. 1.53 Сделайте ребро видимым, иначе оно не будет отображаться при визуализации в режиме каркаса

Если сетка искажена, как меркаторова проекция Земли1, то к ней можно применить модификатор UVW Map. Измените пропорции контейнера проецирования объекта на квадратные, чтобы подогнать объект по конечной текстурной карте размером 512x512 (рис. 1.54).

Обзор UVW

Рис. 1.54. Если элементы расположены в нужном порядке, примените к ним модификатор UVW Map

На данном этапе размер изображения не так важен. Гораздо важнее то. что контейнер проецирования имеет квадратную форму. Другими словами, если контейнер квадратный, то проецирование в конечном итоге сможет соответствовать правилу «степени двух» (то есть текстура будет иметь размер 512x512 или 256x256). Визуализируйте объект при достаточно высоком разрешении, чтобы затем понижать его до нужного, а не повышать.

Применив карту, используйте и модификатор Unwrap UVW, чтобы привязать проекционные координаты к сетке. Визуализируйте каркасное изображение или сделайте снимок экрана - вы получите основное изображение, которое нужно применить к сетке, и сможете работать исходя из него при создании настоящей текстуры. Как только материал будет сделан, примените его, выключите все модификаторы Edit Mesh (но, конечно, не выключайте модификаторы UVW Map и Unwrap UVW). Сетка обретет исходную форму, но сохранит новые проекционные координаты. А вы сможете посмотреть, нет ли на спроецированной текстуре дефектов. Если они есть, просто снова включите модификаторы Edit Mesh и настройте их (или настройте модификатор Unwrap UVW). Если покрытие вас устраивает, можно приступать к созданию настоящей текстуры.


Оптимизация


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

Чтобы следить за числом полигонов, воспользуйтесь инструментом Polygon Counter (Счетчик полигонов), который находится на панели Utilities в 3ds max. Вы сможете ввести предел числа граней персонажа, а для обозначения того, что вы приближаетесь к предельному значению числа граней, используется простая цветовая схема (рис. 132).
Оптимизация

Рис. 1.32. Инструмент Polygon Counter поможет вам не превысить предельное значение числа граней
Включите и выключите модификатор соединения вершин Edit Mesh. Вы увидите результат ручной оптимизации сетки с помощью соединения нескольких вершин (рис. 1.33).

Область груди мужского персонажа деформируется очень мало, если вообще деформируется, поэтому она является первым кандидатом на оптимизацию, ее можно создать с помощью относительно простой геометрии по сравнению с дельтовидной областью плеча, состоящей из множества треугольников. В 3ds max вы можете быстро соединить две вершины, сначала выделив их и подняв порог Weld до очень большого числа (например, до 10 или даже до 100 в зависимости от масштаба персонажа), а потом нажав на кнопку Weld Selected. Еще один способ соединения вершины с любой соседней вершиной - это режим Target Weld (Целевое слияние).

Оптимизация

Рис. 1.33. Оптимизация сетки гарантирует, что предельное число граней не превышено
Существует также модификатор (и очень полезный) MultiRes (Муль-тиразрешение), с помощью которого можно следить за основными показателями оптимизации, но в большинстве случаев лучше проводить оптимизацию вручную. Это немного медленнее, чем нажатие на кнопку, но зато вы получите полный контроль над (иногда) мучительным процессом упрощения.


Модификатор MultiRes - отличный инструмент для уменьшения количества граней «на скорую руку», потому что он дает возможность сохранить при оптимизации остальной части сетки проекционные координаты UVW (об этих координатах будет рассказано далее) и определенные вершины. Этот модификатор удобно применять для быстрого создания различных уровней детализации.

Каким бы способом вы ни избавлялись от ненужных вершин, не стоит беспощадно «истреблять» их. Даже если предельное число граней мало, не допускайте небрежностей. Отыскивая и уничтожая случайные вершины, которые не вносят свой вклад в определение формы, вы создадите наиболее эффективную модель, оставив на другие части игры (оружие, эффекты, окружающая среда) большее число треугольников. Таким образом, уровень качества и скорость игры останутся на максимально высоком уровне.


Основные советы по моделированию


Ниже представлены некоторые общие советы по моделированию, которые применимы почти ко всем программам для моделирования:

  • на каждом этапе создавайте одну часть персонажа. Сосредоточьте внимание на одной конкретной области и добейтесь того, чтобы она выглядела так, как вы хотите, и лишь потом переходите к следующей. Продолжайте моделировать голову до тех пор, пока она вам не понравится, затем переходите к туловищу. Не бойтесь создавать отдельные части тела и сохранять их в разных файлах. Вы сможете позднее встроить эти части в основной файл модели персонажа. Этот подход работает также и для элементов частей тела. Постройте идеальный нос, глаз или ботинок. Создайте собственную мастерскую тел, если хотите;

  • по возможности делите персонаж на части. Нужно ли каждый раз моделировать персонаж «с нуля»? Необходимо построить исходную модель персонажа от начала и до конца по крайней мере один или два раза, чтобы набраться опыта, но нет нужды каждый раз «изобретать велосипед». При построении модели подумайте о создании будущих персонажей. Когда вы достигнете той стадии разработки модели, на которой она уже почти завершена, сохраните ее на будущее в отдельном файле в качестве экземпляра и продолжайте работу. С подобной коллекцией частей тела и целых персонажей вы сэкономите усилия и - что важнее - время;

  • работайте в одном окне. При моделировании используйте как можно большее пространство. Иногда бывает необходимо открыть несколько окон или видов, но не увлекайтесь этим. С вида на вид переключайтесь с помощью клавиш F (вид спереди), L (вид слева) или Т (вид сверху);

  • создавайте половину объекта. Если геометрия вашего персонажа симметрична, в начале работы постройте линию, разделяющую его пополам. Это позволит вам строить половинами: построить одну часть, а затем скопировать ее, отобразить зеркально и добавить копию к исходной первой половине. Помимо экономии времени и усилий в процессе моделирования с помощью этого метода можно сократить и процесс текстурирования (об этом рассказывается ниже). Создавая экземпляр методом зеркального копирования, вы сможете одновременно модифицировать обе половины, внося изменения только в экземпляр половины. Экземпляр - это термин 3ds max. Если это копия, то все, что вы делаете на исходной половине, отражается и на копии. Таким образом, вы лучше увидите, как изменяется симметричная сетка при построении (рис. 1.13);


  • Основные советы по моделированию

    Рис. 1.13. Моделирование половин в 3ds max значительно упрощается с использованием экземпляра

  • принимайте в расчет каждую вершину. Всегда помните об этом при моделировании. Более подробно об этом рассказывается в разделе «Оптимизация» ниже в данной главе, но это очень важный момент, о котором нужно помнить и который следует обдумать;


  • настройте программу моделирования «под себя». Это относится к любым опциям моделирования и к использованию «горячих» клавиш, что ускоряет работу. Заставьте инструмент работать на вас, а не наоборот. Чем комфортнее вы ощущаете себя в среде моделирования, тем лучше будет результат работы и тем быстрее вы его достигнете;


  • используйте наиболее подходящие для себя методы. С любой программой, в том числе и с 3ds max, полезно экспериментировать, и не стоит бояться использовать то, что вам больше нравится. На моделирование и анимацию больше, чем любой другой фактор, влияет личность моделлера и степень удобства его работы с методом. У каждого есть свои методы и свои причины, по которым он выбирает эти методы. Никогда не вините себя за лишь поверхностное использование программы моделирования. Конечный результат, а именно прекрасная модель, - это все, что должно вас волновать.



  • Патчевое моделирование с помощью инструментов Surface Tools


    Стоит упомянуть и еще один подход (хотя он и не является полигональным) - использование инструментов Surface Tools (Инструменты работы с поверхностью). Этот метод патчевого моделирования основан на си минах (spline) и идеально подходит для создания волос и другой естественной геометрии, так как сетка создается на основе настраиваемых сплайнов. Загрузите файл Hair.max (рис. 1.19).

    Патчевое моделирование с помощью инструментов Surface Tools

    Рис. 1.19. Инструменты Surface Tools - прекрасный способ создания естественной геометрии, например волос
    С помощью модификатора Surface можно преобразовать сплайно-вый каркас или онлайновый каркас-экземпляр в параметрическую сетку. В файле Hair.max переместите вершины сплайнов вправо и посмотрите, как изменится геометрия сетки слева. В таком применении экземплярного объекта и заключается полезность инструментов Surface.

    При работе со сплайновыми каркасами измените значение порога Weld (Слияние) на 0 (вместо значения 1, которое устанавливается по умолчанию). Так вы избежите появления надоедающего сообщения «Weld Coincident Endpoints?» (Объединить совпадающие конечные точки?), которое появляется, если вы перемещаете любые сегменты или сплайны (рис. 1.20).
    Программа 3ds max содержит замечательный урок, в котором показано, как применять модификатор Surface. Поэкспериментируйте с этим мощным инструментом - и вы быстро научитесь создавать волосы или даже персонажа с помощью сплайнов. Возможность моделирования в различном разрешении может даже привести к точному заданию количества треугольников, необходимых для создания персонажа.

    Патчевое моделирование с помощью инструментов Surface Tools

    Рис. 1.20 Уменьшите порог Weld, чтобы не видеть раздражающее сообщение




    Плечи


    Плечо анимированного персонажа - возможно, самая трудная область, с которой приходится работать. К сожалению, это очень сложный механизм, который нелегко удачно аппроксимировать, даже если персонаж имеет большое число полигонов. По возможности воспользуйтесь простым способом - отсоедините руки с помощью подхода «по созданию героя action» и просто приблизьте руку и плечо к туловищу. Спрятать руку под броней - еще один способ избежать многочисленных усилий, которые требуются, чтобы правильно деформировать плечо (рис. 1.37).

    Плечи

    Рис. 1.37. Упростите себе задачу - спрячьте плечи под эполетами
    Если число полигонов персонажа велико (от 4000 до 6000 треугольников), то можно расположить грани в виде гармошки/веера. Тогда плечо будет хорошо деформироваться как в виде спереди (рис. 1.38), так и в виде сверху (рис. 1.39).

    Добиться правильной формы плеча получится далеко не с первого раза. Кроме того, плечи у каждого персонажа свои. Самое главное, что необходимо сделать для получения удачной геометрии плеча, - это добиться, чтобы в различных положениях его форма менялась как можно меньше и чтобы плечо выглядело правильно в позах, которые встречаются наиболее часто.

    Плечи

    Рис. 1.38. При движении руки вверх или вниз плечо должно как можно меньше изменять форму
    Плечи

    Рис. 1.39. Нужно также учитывать и движение из стороны в сторону




    Подгонка объекта Biped


    В том, что касается функциональности, остался еще один вопрос - выравнивание сетки по объекту Biped, к которому она будет присоединена. Суставы Biped вращаются вокруг собственного центра трансформаций. Чтобы придать Biped нужную геометрическую форму, можно переместить основания пальцев ног и рук, изменить размеры любой конечности. Но это все, что вы можете (и хотите) сделать с каркасом, лежащим в основе объекта. Чтобы гарантировать выполнение определенной функции, иногда нужно подогнать сетку по Biped. Это значит, что нужно лишь переместить некоторые вершины и выровнять их с суставами, на которые они будут влиять (рис. 1.46).

    Подгонка объекта Biped

    Рис. 1.46. Небольшие изменения геометрии в области суставов иногда необходимы. Это гарантирует правильную деформацию сетки
    Объект Biped создается после завершения сетки, поэтому узнать, какие изменения нужно внести до завершения сетки, практически невозможно. Однако не стоит бояться изменять сетку во время анимации.




    Работа над поверхностью


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

    Выявлять некорректные ребра проще, если вы просматриваете модель в режиме граненого (facets) затенения, а не сглаженного (smooth). В левом верхнем углу щелкните правой кнопкой мыши по имени демонстрационного окна и выберите пункт Facets (Грани) - рис. 1.21.
    Работа над поверхностью

    Рис. 1.21 Чтобы в 3ds max изменить режим затенения, щелкните правой кнопкой по имени окна проекции
    Работа над поверхностью

    Рис. 1.22. Разворачивать ребра нужно для поддержания целостности поверхности модели
    Перейдите в режим просмотра со сплошным затенением и осмотрите модель из файла Edge.max в окне проекции Perspective (Перспектива). Включите и выключите модификатор Edit Mesh (переименованный в edge turn), и вы увидите изменения, которые вносят выгнутые ребра. Выгибание ребер приводит к тому, что поверхность выглядит более гладкой и однородной, так достигается более реалистичное впечатление объема.

    Освещение, устанавливаемое в 3ds max пo умолчанию, пригодится, если нужно найти на сетке изъяны поверхности. Воспользуйтесь командой Arc Rotate (Поворот по дуге) или нажмите сочетание клавиш Ctrl+R, чтобы повернуть при текущем освещении и положении теней окно проекции вокруг сетки, - и вы сможете увидеть ребра, которые нужно развернуть.
    С помощью модификатора Smooth (Сглаживание) можно очень быстро удалить группы сглаживания модели и придать ей граненый вид. Тогда, даже если вы находитесь в режиме просмотра со сглаженным затенением, модель будет выглядеть так же, как в режиме с граненым затенением (рис. 1.23).

    Работа над поверхностью

    Рис. 1.23 Применение модификатора Smooth без дополнительных параметров к сетке приводит к удалению ее групп сглаживания

    Что касается групп сглаживания (smoothing groups), то на многих движках игр в реальном времени нет способов распознавания различных групп сглаживания сетки, если только вершины, составляющие треугольник, не разделены. Это досадный недостаток технологии, но его легко устранить.

    Загрузите файл Betty0l.max (рис. 1.24).

    В файле Betty0l.max выделите сетку, включите и выключите модификатор Edit Mesh, чтобы посмотреть, как соединение геометрических составляющих на задней части модели отражается на сглаживании, а затем удалите модификатор. В сетке Betty нет проблем с излишним сглаживанием, так как ее геометрические составляющие пересекаются друг с другом и образуют линию складки там, где соприкасаются грани: создается более реалистичный вид, и вершины не соединяются между собой. Этот метод особенно хорошо работает при сборке женских персонажей.

    Работа над поверхностью

    Рис. 1.24. Группы сглаживания иногда надоедают

    Но избежать автоматического присвоения одной группы сглаживания всем граням сетки игровым движком можно и другим, более популярным, способом. Вручную отсоедините грани и присоедините их снова только в определенных точках. Вы получите эффект выбора группы сглаживания, который работает при ограничениях, налагаемых движком игры в реальном времени, поскольку геометрия сетки не везде присоединена к основному объекту. Загрузите файл Betty02.max (рис. 1.25).

    Исправьте лицо Betty в файле Betty02.max, отсоединив и присоединив снова определенные полигоны. Перейдите в режим просмотра каркаса, затем выберите и примените команду Detach to Element (Отсоединить в элемент) к граням, показанным на рис. 1.26.

    Если нажать на клавишу F2, то выделенные грани станут сплошными и более заметными. Чтобы вернуться в обычный режим выделения, нажмите клавишу F2 еще раз.

    Работа над поверхностью

    Рис. 1.25. В результате применения одной группы сглаживания лицо Betty выглядит не так отчетливо

    Работа над поверхностью

    Рис. 1.26. Выделите эти грани на голове, чтобы отсоединить их, а затем присоединить снова

    По умолчанию командная панель в правой части представляет собой один столбец, который вы можете прокручивать вверх или вниз. Но ее можно отобразить и другим способом - в виде двух столбцов. Для этого поместите курсор над правым краем окна проекции (над левым краем панели) и удерживайте его в этом положении, пока не увидите горизонтальную стрелку изменения размеров окна. Затем нажмите левую кнопку мыши и перетащите указатель влево (рис. 1.27).



    Работа над поверхностью

    Рис. 1.27. Изменив размеры панели, вы сделаете более доступными его разделы

    Таким образом вы увеличите пространство, которое занимает панель, и вам не придется все время прокручивать ее вниз или вверх, чтобы найти нужный раздел. Затем выделите вершины по периметру группы граней, которые вы только что отсоединили. В поле Weld Selected (Слить выделенные) оставьте значение 0,1 и объедините выделенные вершины, щелкнув по кнопке Selected (Выделенные), - рис. 1.28.

    Поверните изображение, чтобы увидеть геометрию задней стороны головы. Заметьте, что грани вокруг носа обведены линиями, хотя в этой области линий не должно быть видно (рис. 1.29). Так обозначены отсоединенные грани и/или вершины.

    Линии можно видеть сквозь объекты, только если в окне Properties (Свойства) объекта выбрана опция Backface Cull (Убрать задние грани).

    Работа над поверхностью

    Рис. 1.28. Выделите только эти вершины и объедините их

    Работа над поверхностью

    Рис. 1.29. Линии, которые видно сквозь заднюю сторону сетки, показывают, что вершины отсоединены

    Выделите треугольники верхней губы и примените к ним команду Detach to Element. Сделав верхнюю губу отсоединенным объектом, вы устраните неестественный эффект равномерного сглаживания, а поверхность вокруг губ станет более реалистичной (рис. 1.30).

    Работа над поверхностью

    Рис. 1.30. Отсоедините треугольники, образующие верхнюю губу, сделав их отдельным элементом

    Теперь снова включите режим сглаженного затенения. Вы увидите, что поверхность лица выглядит гораздо яснее, а черты проще различить (рис. 1.31).

    Еще раз заметим, что причиной, по которой производится этот процесс «отсоединения и соединения вновь», является то. что многие движки игр в реальном времени игнорируют группы сглаживания, которые вы определяете в 3ds max, и при перерисовывании сетки персонажа во время визуализации применяют свои формы сглаживания. Это единственный способ смоделировать несколько групп сглаживания. Постоянное управление ребрами и группами сглаживания таким способом обязательно, если вы хотите достичь наилучшей формы поверхности сетки персонажа.

    Работа над поверхностью

    Рис. 1.31. Разбив сглаживание вручную, вы сделаете поверхность лица лучше


    в реальном времени составляют пять


    Хороший персонаж игры в реальном времени составляют пять различных элементов: дизайн, модель, текстура, анимации и звуковые эффекты. Говорить, что персонаж «создан, чтобы двигаться», можно, если дизайн, модель и текстура удовлетворяют определенным требованиям. Дизайн должен быть хорошо продуман, уникален, соответствовать стилю игры и быть выполнимым при технологических ограничениях игрового движка, в который будет помещен персонаж. Затем нужно создать подходящий и информативный экземпляр и отдать его моделлеру, который преобразует плоский рисунок в трехмерную модель.

    Что касается моделирования, то удачная сетка персонажа складывается из отличной формы и функциональности. Форма определяет целостность и художественность сетки, она дает впечатление прочности и взвешенности при максимально возможном соответствии дизайну. Пытаясь получить нужную форму, необходимо учитывать такие факторы, как точность, эффективность и качество поверхности. Персонаж будет использоваться в игре в реальном времени, поэтому лучше всего подходят методы полигонального моделирования. Если же вы начинаете с примитивов, воспользуйтесь выдавливанием, булевыми операциями, примените в качестве шаблона сетку с более высоким разрешением или воспользуйтесь методом патчевого моделирования; убедитесь, что каждая вершина необходима для определения формы, сделайте каждую вершину значимой. Функциональность достигается, если сетка разбита надлежащим образом как для текстурирования, так и для анимации и отвечает на анимацию, примененную к ней, правильными деформациями. У таких критичных областей, как локти, колени и другие части тела, должно быть правильное распределение вершин и граней - так обеспечивается движение.

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


    в реальном времени составляют пять в реальном времени составляют пять

    Шаблон сетки с высоким разрешением


    Если у вас есть доступ к моделям с высоким разрешением, вы можете использовать одну из них в качестве шаблона (template). Эти модели не подходят для моделирования персонажа игры в реальном времени, так как в них слишком много полигонов, а сколько усилий уйдет, чтобы оптимизировать такие модели, - даже страшно представить. Но что если наложить низкополигональную сетку поверх модели с высоким разрешением, как если бы вы переводили фотографию на кальку? В этом заключается логическое завершение использования экземпляра. Иными словами, вы переносите персонаж в сцену в 3ds max, чтобы ориентироваться на него при построении модели. Только подумайте - это был бы прекрасный экземпляр!

    Конечно, чтобы построить сетку таким образом, нужна исходная сетка с высоким разрешением. Загрузите файл Boot.max, чтобы увидеть этот процесс (рис. 1.17).

    Шаблон сетки с высоким разрешением

    Рис. 1.17. Использование сетки с высоким разрешением для построения сетки с низким разрешением позволяет значительно ускорить процесс моделирования
    Тонкость моделирования, проиллюстрированная примером на диске, заключается в том, чтобы сначала задать нужные вершины, которые являются неотъемлемой частью конечной формы ботинка. Не забывайте, что число вершин, составляющих сетку, примерно равно половине числа граней. Если вы знаете, из скольких граней хотите создать модель с низким разрешением, просто сократите число изолированных вершин до половины этого значения (1000 граней = 500 вершин).

    На панели Sub-Object (Подобъект) находится счетчик для выделенных подобъектов, таких как вершины, ребра и грани (рис. 1.18).
    Шаблон сетки с высоким разрешением

    Рис. 1. 18. На панели Sub-Object представлен удобный инструмент подсчета любых выделенных объектов
    Использование сетки с высоким разрешением для построения сетки с низким разрешением формально можно рассматривать как метод оптимизации, но на самом деле при этом приходится больше строить, чем сокращать.


    Шаблон сетки с высоким разрешением Шаблон сетки с высоким разрешением Шаблон сетки с высоким разрешением



    Шея и голова


    Настройка шеи и головы - достаточно простая задача. Голова всегда полностью совпадает с головой объекта Biped и, если только персонаж не разговаривает, является единой массой, которая поворачивается вокруг шейного сустава. Обычно шея с головой не сильно деформируется, но иногда при повороте головы самые верхние вершины могут слегка изменить форму. Уделять этим объектам много внимания нужно, только если у персонажа длинная, гибкая шея (рис. 1.36).

    Шея и голова

    Рис. 1.36. Голова и шея легко связываются друге другом, вам не нужно добавлять слишком много дополнительной геометрии




    Схема модели


    В среде игр в реальном времени хорошим тоном считается максимально объединить сетку со всем персонажем, чтобы игровой движок обрабатывал меньшее число элементов. Это значит, что модель персонажа составляется из наименьшего числа отдельных объектов. Загрузите файл Betty03.max.

    Обратите внимание на то, как разбита сетка. На рис. 1.34 одним объектом являются левая рука и туловище, включая правое плечо (1); голова, правая рука и левая нога (2); бедра, лодыжки и правая нога (3) и конец ружья (4).

    Схема модели

    Рис. 1.34. Сетка должна состоять из как можно меньшего числа объектов
    Betty разбита на части именно таким способом по двум причинам: чтобы не нарушить дизайн игры и для легкости доступа при задании весов. Первоначально предполагалось, что конец ружья Betty будет переключаться между двумя видами в зависимости от того, какой тип конфигурации или энергии она выбрала. И хотя эта идея была отвергнута, элемент остался отдельным (на всякий случай). Остальные объекты отделены только для легкости доступа в процессе назначения весов. Нет смысла бороться с расположением и изолированием вершин, которые находятся неудачно близко друг к другу, если с этим ничего нельзя сделать. Выбор между упрощением работы и риском ухудшить качество представления благодаря наличию множества объектов - это осознанное решение, и насколько оно удачно - зависит от вашего опыта.

    Чтобы изменить цвет сетки, просто щелкните по маленькому цветному квадратику вверху справа (рис. 1.35).

    Схема модели

    Рис. 1.35. Изменить цвет сетки очень легко




    Создание анимации


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




    Талия


    Талию довольно легко анимировать. Просто добавьте достаточное число треугольников и расположите их надлежащим образом, чтобы обеспечить повороты и наклоны туловища (рис. 1.40).

    Талия

    Рис. 1.40. Убедитесь, что на талии достаточно геометрии, чтобы обеспечить наклоны и повороты.




    Технические ограничения


    Как упоминалось ранее, число полигонов - это техническое ограничение, которое оказывает определенное влияние на сложность дизайна. Число полигонов меняется в зависимости от платформы и назначения персонажа игры в реальном времени. Разница в дизайне персонажей, состоящих из 1000, 2000 и 5000 треугольников, огромна, но, в конце концов, хороший художник справится с задачей, каковы бы ни были ограничения. Игры, которые идут на новых приставках, таких как Xbox и PlayStation 2, с успехом обрабатывают персонажей, число полигонов которых доходит до 5000 (а иногда и выше). Однако главные персонажи многопользовательских (в том числе через Internet) игр в реальном времени для персонального компьютера должны иметь от 500 до 2000 треугольников. В добавление к ограничению числа полигонов во многих играх используется так называемый уровень детализации (level of detail - LOD). Это означает, что персонажи создаются в низком, среднем и высоком уровнях детализации. На рис. 1.3 показано типичное различие между тремя последовательными уровнями детализации.

    Другое техническое ограничение, которое влияет на дизайн, - это исполнение персонажа на самом игровом движке. В анимационных системах некоторых игр используется деформация вершин (vertex deformation), это разное количество ограничений, и игровой движок будет представлять различное число полигонов в зависимости от расстояния значит, что каждый кадр анимации является ключевым для деформации, или интерполяции, каждой вершины сетки персонажа. Таким образом, результаты анимации становятся более зависимыми от скорости кадров, определенной художником при работе с моделью, какой бы инструмент при этом ни использовался (например, 3ds max). В других системах применяется скелетная анимация, как в Half-Life и Betty Bad, при которой анимации проигрываются с помощью костной структуры внутри персонажа. Анимация хронометрирована отрезками времени, а не кадрами. Любая из этих систем могла бы также основываться на реальном структурном разделении, при котором голова будет объектом, отдельным от туловища, а последнее, в свою очередь, будет отделено от ног. Подобное дробление персонажа исключает применение подходов, основанных на том, что персонаж состоит из единой цельной сетки.

    Технические ограничения

    Рис. 1.3. С помощью уровня детализации на дизайн персонажа накладывается




    Текстура: карты


    С определенностью сказать, что персонаж «создан, чтобы двигаться», невозможно без такого важного понятия, как текстурные карты (texture map). Успех персонажа в значительной степени зависит от них. Текстурные карты - это файлы с изображениями, которые накладываются на сетку и создают иллюзию того, что персонаж имеет реальную поверхность. Хорошую текстурную карту составляют два отдельных элемента: координаты UVW (UVW coverage) и качество текстуры (quality of texture).




    Выдавливание форм или граней


    Выдавливание (extrusion) - еще один часто применяемый при моделировании персонажей метод. На рис. 1.15 показано, как с помощью выдавливания формы и выдавливания граней был быстро построен эполет Betty Bad. Сначала был создан контур формы, которая образует поперечное сечение (А). Затем к ней применили модификатор Extrude (Выдавливание) с тремя сегментами, и форма была выдавлена наружу, получив глубину (В). Далее, чтобы выровнять вершины и выделить грани на верхней части плеча (С), был применен модификатор Edit Mesh (Редактировать сетку). Затем с помощью кнопки подобъекта Extrude выделенные грани были выдавлены вверх, чтобы добиться соответствия нужной форме (D). И наконец, форму настроили, оптимизировали и поместили на нужное место (Е).

    Выдавливание форм или граней

    Рис. 1.15. Отличный способ моделирования — выдавливание как контурных форм, так и граней




    Запястья и лодыжки


    Для запястий и лодыжек требуется очень мало дополнительной геометрии. Обычно для поддержания их формы полигонов хватает, и если иногда подобные части тела деформируются неправильно - на это можно закрыть глаза (рис. 1.45).

    Запястья и лодыжки

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

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




    Дельфин


    Если когда-либо у вас и возникал вопрос, зачем нужно снимать галочку напротив опции Arms в структуре Biped, то теперь все встанет на свои места. Представьте, что вы анимируете дельфина, который является млекопитающим. Поскольку дельфины обладают почти таким же развитым интеллектом, как люди, почему бы не моделировать их с помощью объекта Biped (рис. 2.36)?

    Дельфин

    Рис. 2.36. Вот зачем нужна опция отсутствия рук
    Руки можно было бы оставить, чтобы, например, управлять плавниками, но все зависит от того, насколько сложной должна быть анимация. На самом же деле необходима лишь одна нога, вторую можно уменьшить практически до нуля. Тазовая область размешается в центре туловища, это упрощает процесс перемещения по воде и изгиба туловища вокруг центра трансформаций. Однако самое сложное в конструировании дельфина или акулы с помощью объекта Biped - это понять, каким образом создаются такие части, как спинной плавник. Можно либо добавить еще одну кость, либо очень строго задавать веса сетки персонажа, чтобы она правильно деформировалась.




    Девушка-коза


    В character studio можно анимировать персонажа с трехсуставными ногами, такого как Mech (или AT-ST в Return of the Jedi) или Goat-Girl (девушка-коза), дьяволица с козлиными ногами, - ведь в объект Biped можно добавить четвертое звено ноги. Однако использовать этот объект проблематично из-за способа просчета решений обратной кинематики. Предполагается, что с помощью этого четвертого объекта Biped (еще он называется лошадиным звеном - horselink) можно смоделировать механику лошадиной ноги. К сожалению, эта дополнительная кость, которая добавляется к ноге, не может быть родительским элементом прямой кинематики для ступни, она всегда является ведомым элементом при решении обратной кинематики. Сравните конфигурации с тремя суставами, изображенные на рис. 2.37.

    Девушка-коза

    Рис. 2.37. Есть несколько способов формирования ноги объекта Biped
    На рис. 2.37 в позиции A Biped имеет обычную конфигурацию, в позиции В в Biped используется четвертое звено ноги, а у объекта Biped в позиции С обе ноги повернуты на 180° относительно оси X. При анимировании персонажа с трехсуставными ногами начните с позы, которая является разновидностью положения на корточках (она похожа на букву Z, написанную в обратную сторону). Чем ниже объект присел, тем плотнее зигзаг.

    Существует по крайней мере три способа создания каркаса Goat-Girl, при котором ее сетка будет правильно деформироваться. Можно и дальше работать с каркасом Biped при обычной установке, как изображено на рис. 2.38 (А), не обращая внимания на задний сустав, и вместо этого задать веса. Или можно заняться лошадиным звеном и подогнать его по сетке, как показано в позиции В. И наконец, можно воспользоваться установкой Biped в позиции С и зеркально отобразить ноги. В этом случае коленный сустав, который часто трудно заметить, будет проигнорирован. Основа метода, как и в первом случае, - правильное задание весов каркаса.

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

    Девушка-коза

    Рис. 2.38. Выберите один из трех способов создания каркаса для демонической женщины с козлиными ногами




    Добавление костей и использование различных контроллеров


    Помимо дополнительных лицевых костей к туловищу этого персонажа также прикреплены объекты, которые реалистично моделируют движение груди в танце (рис. 2.47).

    Добавление костей и использование различных контроллеров

    Рис. 2.47. Чтобы грудь персонажа двигалась реалистично, в каркас были добавлены дополнительные кости
    Когда объекты сетки ориентированы по ней и выровнены с ней, им можно приписать контроллер Spring (Пружина), чтобы придать персонажу в танце добавочное движение (рис. 2.48). Загрузите файл Bikinil.max.

    К объекту Biped уже применена танцевальная анимация. Просмотрите ее, щелкнув по кнопке Play Animation (Воспроизвести анимацию) Добавление костей и использование различных контроллеров в правом нижнем углу экрана. Синие кубики не отрываются от позвоночника. Выделите любой параллелепипед, откройте панель Motion и выделите трек Position (Положение), он подсветится, а кнопку Assign Position Controller (Назначить контоллер положения) Добавление костей и использование различных контроллеров можно будет нажать (рис. 2.49).

    Добавление костей и использование различных контроллеров

    Рис. 2.48. Этому танцующему объекту Biped нужно добавить немного «упругости» -необходим контроллер Spring
    Чтобы вызвать список контроллеров, которые можно определить для трека Position объекта, щелкните по пиктограмме рядом с названием трека (рис. 2.50).

    Выделите пункт Spring и нажмите кнопку ОК. Вы только что определили контроллер Spring для положения объекта. Теперь в окне Properties задайте какие-нибудь значения в свитке Spring Dynamics (Динамика пружины), которые заставят грудь персонажа колебаться при его перемещении: введите значение 500 в поле Mass (Масса) и 0,3 в поле Drag (Жесткость) - рис. 2.51.

    Закройте диалоговое окно и определите контроллер с теми же значениями для трека Position другого объекта.

    Добавление костей и использование различных контроллеров

    Рис. 2.49. С помощью панели Motion обратитесь к трекам анимации, которым можно назначить контроллеры
    Добавление костей и использование различных контроллеров

    Рис. 2.50. У каждого выделенного трека анимации есть характерные для него контроллеры
    Добавление костей и использование различных контроллеров

    Рис. 2.51. Значение в поле Mass контроллера Spring должно быть достаточно большим, иначе эффект будет незаметен
    Не забывайте закрывать диалоговое окно Properties после того, как значения в диалоговом окне контроллера Spring были введены первый раз. Если этого не сделать и щелкнуть по другому объекту, диалоговое окно останется на экране, и вы можете подумать, что контроллер уже присвоен и этому объекту.

    Когда контроллеры Spring будут присвоены обоим объектам, отмените выделение всех объектов, закройте все диалоговые окна и нажмите клавишу / (слэш), которая является «горячей» клавишей для функции Play Animation (рис. 2.52).

    Поэкспериментируйте с различными значениями в полях Mass и Drag, но на практике лучше сделать объекты достаточно тяжелыми, иначе их движения не будут заметны (поэтому начните с 500). Чем больше значение в поле Drag (при условии, что в поле Mass введено то же значение), тем меньше будет колебание. Попробуйте ввести различные комбинации, можно даже добавить значения и в поля Tension (Упругость) и Dampening (Демпфирование). Но не забывайте: для того чтобы изменить эти значения, нужно сначала выделить в диалоговом окне строку Self Influence (Самовлияние) - рис. 2.53.

    Если контроллер Spring применен к объекту, то можно получить доступ к его диалоговому окну непосредственно из панели Motion или же щелкнуть правой кнопкой мыши по треку Position и выбрать пункт Properties (рис. 2.54).

    Добавление костей и использование различных контроллеров

    Рис. 2.52. Теперь движения груди танцующего Biped более пружинистые

    Добавление костей и использование различных контроллеров

    Рис. 2.53. Прежде чем настраивать значения Tension и Dampening, нужно выделить строку Self Influence

    Добавление костей и использование различных контроллеров

    Рис. 2.54. Получить доступ к параметрам контроллера Spring можно двумя способами


    Другие типы каркасов персонажа


    С помощью объекта Biped можно создать каркас персонажа практически любого типа: от зловещего чужака до гигантской птицы или маленького муравья. Приведенные в этом разделе примеры персонажей игр, в которых используются нетипичные каркасы Biped, помогут вам создать характерные персонажи.




    Каркас лица для сетки с высоким разрешением


    Каркас лица персонажа, показанного на рис. 2,46, поддерживает возможность показывать только эмоции. У него есть брови, глазные яблоки, веки, челюсть и губы, а язык ему не нужен.

    Каркас лица для сетки с высоким разрешением

    Рис. 2.46. Каркас лица сетки с более высоким разрешением вблизи
    Этому персонажу язык не нужен и по другой причине, а именно из-за существования досадного ограничения визуализации движка. С того расстояния, на котором персонаж виден на экране, можно заметить только один или два розовых пикселя языка. Визуализатор «не знает», что отображать: белый пиксель зубов или более темный пиксель языка. В последнем случае персонаж может выглядеть так, как будто у него нет переднего зуба! Поэтому в танце он лишь слегка приоткрывает рот.




    Каркас персонажа с более высоким разрешением


    Большинство типичных персонажей игр в реальном времени содержат примерно от 500 до 1500 полигонов. С каждым годом по мере развития аппаратного обеспечения и методов визуализации это число увеличивается, но любого персонажа с числом полигонов более 2000 можно считать персонажем с высоким разрешением. Очевидно, что разрешение влияет на скорость воспроизведения игры, когда персонаж просчитывается игровым движком. Также оно оказывает влияние на тип используемого каркаса.




    Каркасы лица


    Для анимации лица создаваемого персонажа обычно используются цели морфинга (morph targets). Цели морфинга - это формы головы и лица, которые уже имеют нужные положения. Они используются в качестве ключевых кадров для анимации мимики и движений губ при произношении фонем. К сожалению, в большинстве игр в реальном времени персонажи могут иметь анимированное лицо, только если используется костная система определенного типа, поскольку игровые движки зачастую не поддерживают морфинг.

    Для каркасов лица объекта Biped не существует автоматических решений, поэтому нужно добавить кости и связать их с объектом Head. Сделать это очень просто. Тип используемого каркаса лица зависит от того, насколько детальной должна быть анимация лица и как велико разрешение сетки. Например, на сетке головы собаки, показанной на рис. 2.39, число полигонов достаточно, чтобы поддерживать практически любой уровень анимации лица.

    Каркасы лица

    Рис. 2.39. Чтобы анимировать чтение стихотворения персонажем Fido, нужно добавить к голове Biped кости
    Как упоминалось ранее, чтобы создать каркас лица при анимации персонажей с помощью объекта Biped, нужно добавлять кости. В 3ds max добавить кости так же легко, как связать (link) параллелепипед с объектом Biped. Конечно, нужно помнить о контроллерах и других более сложных элементах анимации.

    Процедура подбора параметров каркаса персонажа игры в реальном времени сильно зависит от плотности сетки. Можно условно ввести четыре уровня детализации сетки, которые будут характерными для различных степеней сложности анимации лица: низкополигональная сетка, сетка с низким разрешением, высокополигональная сетка, сетка с высоким разрешением. Из-за недостатка общепринятой терминологии назовем их уровнями каркаса лица 1-4 (в этой главе рассказывается о первых трех уровнях).




    Настройка ног и рук


    Отобразите все скрытые объекты Biped, затем скройте все, кроме объектов правой ноги. Сначала поверните бедро на 90° относительно оси Y и на 175° относительно оси X (рис. 2.30).

    Настройка ног и рук

    Рис. 2.30. Поверните ногу относительно осей X и Y
    Поверните ногу и измените ее размеры так, чтобы она соответствовала геометрии сетки (рис. 2.31).

    Настройка ног и рук

    Рис. 2.31. Измените размеры ноги и поверните ее так, чтобы она совпадала с геометрией сетки
    Не нужно подгонять икру под искривленную заднюю часть конечности, стоит лишь выровнять сустав с кончиком конечности. Ступня становится не чем иным, как управляющим элементом (handle) для перемещения ноги, поэтому сделайте ее плоской и увеличьте ширину, чтобы ее было проще выделять. Кисть будет использоваться так же, как и ступня в качестве управляющего элемента для перемещения ноги (рис. 2.32).

    Настройка ног и рук

    Рис. 2.32. На самом деле ступня Biped в данном случае - это лишь рукоятка, за которую можно перетаскивать ногу при анимировании
    Скройте ногу, отобразите скрытые объекты правой руки и подгоните их так же, как и объекты ноги. Помните, что точка, в которой ладонь соединяется с предплечьем (то есть запястье), должна быть выровнена с концом передней конечности (рис. 2.33).

    После того как конечности с одной стороны созданы, сделайте видимыми остальные скрытые объекты Biped, скопируйте и зеркально отобразите позы конечностей - и вы получите каркас ужасного чужеродного живого существа. А если вы хотите увидеть его, загрузите файл Widge2.max (рис. 2.34).

    Настройка ног и рук

    Рис. 2.33. Объект руки выравниваются так же, как и объекты ноги
    Настройка ног и рук

    Рис. 2.34. Завершенный каркас персонажа Widge -еще один четвероногий отрицательный герой


    Настройка ног и рук Настройка ног и рук Настройка ног и рук



    Настройка рук и ног Biped


    Отобразите скрытые объекты сетки и разморозьте их. Скройте m_gunarm, m_gun, m_energy и m_fanvent, затем снова заморозьте m_headarmleg и m_torso. Скройте все объекты левых конечностей, туловище, объекты шеи и головы Biped. Если персонаж имеет симметричные конечности, то в программе character studio достаточно определить позу только одной стороны, так как в этом модуле есть возможность копировать и зеркально отображать положения объектов. Неплохо также скрыть всю ненужную геометрию, чтобы не загромождать объект. Это позволит вам быстро разместить нужные объекты (рис. 2.13).

    Настройка рук и ног Biped

    Рис. 2.13. Скройте ту геометрию и те объекты, которые не нужны при определении позы конечностей одной стороны персонажа
    Прежде чем подгонять Biped по замороженной сетке, убедитесь, что параметры рук и ног Biped (в том числе пальцев рук и ног), которые находятся в свитке Structure, не будут меняться. Чтобы понять, зачем это нужно, проделайте следующее. Во-первых, на стадии подгонки под сетку назначьте для объекта Biped режим Figure. Во-вторых, выделите и скройте любую руку или ногу объекта Biped. В-третьих, откройте свиток Structure и измените число пальцев рук или ног. В результате... все объекты Biped исчезнут.
    Начните с ноги, так как она состоит из меньшего числа объектов, чем рука. Чтобы масштабировать объекты и повернуть их, воспользуйтесь обычными способами трансформации (рис. 2.14).

    Настройка рук и ног Biped

    Рис. 2.14. Выровняйте ногу по сетке, изменив ее размеры, повернув и/или переместив ее
    В character studio есть другой способ настройки суставов колена, лодыжки, локтя и запястья: это режим Rubber Band (Резиновая лента). Чтобы воспользоваться им, просто щелкните по пиктограмме Rubber Band Mode, активизировав ее, выделите родительскую кость сустава, который вы хотите передвинуть (например, верхнюю часть руки Biped для локтевого сустава), и переместите его в нужное положение (рис. 2.15).
    Настройка рук и ног Biped

    Рис. 2.15. Режим Rubber Band -еще один способ настройки основных суставов Biped
    Скройте ногу и настройте руку, начав с ключицы и передвигаясь сверху вниз. Ключица является корневым элементом в иерархии руки, поэтому, прежде чем переходить к остальным частям руки, убедитесь, что она находится там, где вы хотите ее видеть. Чтобы настроить ладонь и пальцы, выделите первую, перейдите в окно проекции Perspective и крупно покажите ладонь, щелкнув по пиктограмме Zoom Extents (Масштабировать по границам) Настройка рук и ног Biped. Затем увеличьте масштаб и настройте пальцы один за другим, подгоняя их по сетке (рис. 2.16).


    Настройка рук и ног Biped

    Рис. 2.16. Настроить руку проще, если все остальные объекты Biped скрыты

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

    Отобразите вновь все скрытые объекты, разморозьте все объекты сетки персонажа. А теперь познакомимся с одной из самых интересных функций character studio: копированием и зеркальным отображением положений конечностей. Вот как это работает. Дважды щелкните по правой (зеленой) ключице и выделите тем самым все кости руки. Откройте свиток Copy/Paste на панели Motion и щелкните по пиктограмме Сору Posture (Копировать положение) Настройка рук и ног Biped. И сразу же две пиктограммы рядом с ней станут нажимаемыми, потому что в буфер обмена позами были скопированы данные (рис. 2.17).

    Настройка рук и ног Biped

    Рис. 2.17. Функция Copy Posture модуля character studio очень помогает при настройке каркаса

    Щелкните по правой пиктограмме - она называется Paste Posture/Track Opposite (Вставить положение/Трек на противоположную сторону), - и кости левой руки примут позу костей правой руки. Дважды щелкните по правому бедру и повторите те же шаги для ног. Как только позы будут скопированы, на экране появится совершенно симметричная поза (рис. 2.18).

    Настройка рук и ног Biped

    Рис. 2.18. Каркас Betty практически готов

    Теперь разморозьте объекты сетки и скройте все, кроме объектов Biped Left Arm и m_gunarm. Заморозьте объект сетки снова и поверните точку съемки окна проекции так, чтобы смотреть на локоть левой руки, а на цилиндр оружия - сбоку. Чтобы лучше видеть объекты, выключите сетку, нажав на клавишу G (рис. 2.19).

    Настройка рук и ног Biped

    Рис. 2.19. Скройте ненужные объекты перед тем, кок в последний раз изменить левую руку



    Положение левой руки Betty, полученное в результате отображения позы правой руки, не совсем правильное. В ее броню встроена система вооружения, поэтому локтевой сустав заключен в своего рода механическое устройство и предплечью приходится перемещаться, как если бы оно было заблокировано в этом механизме. Таким образом, локтевой сустав должен исходить из центра цилиндра, как видно сбоку на рис. 2.19 и 2.20, а саму руку нужно выровнять точнее с направлением цилиндра. Ладонь и пальцы левой руки анимироваться не будут, поэтому уменьшите их в десятки раз, использовав команду трансформации Uniformly Scale (Однородное масштабирование) Настройка рук и ног Biped. Так будет легче избежать случайного выделения их, когда они отображаются (рис. 2.20).

    На этом настройки Biped закончены. Если вы хотите увидеть, как будет выглядеть конечный результат, загрузите файл Betty05.max.

    Изучите файл и подумайте о том, как вы будете создавать свой собственный уникальный персонаж (рис. 2.21).

    Настройка рук и ног Biped

    Рис. 2.20. Теперь немного асимметричные относительно правой руки) объекты левой руки больше подходят под сетку

    Настройка рук и ног Biped

    Рис. 2.21. Загрузите файл Befty05.max, чтобы изучить каркас Biped


    Настройка структуры Biped


    Прежде чем трансформировать отдельные части Biped (то есть применять к ним операции перемещения, вращения или масштабирования), нужно настроить его основную структуру. Начните с присвоения объекту Biped названия. Откройте свиток Biped в режиме Figure. Перейдите в поле Name (Название объекта), выберите имя Bip01 и переименуйте его в Betty (рис. 2.9).

    Настройка структуры Biped

    Рис. 2.9 Любое название, которое вы введете в этом поле, переименует объект СОМ и все его дочерние объекты
    Присваивать объекту Biped название, вообще говоря, необязательно, но если на сцене присутствует не один персонаж, то лучше называть их описательными именами.
    Посмотрите на свиток Structure (Структура) и введите значения, показанные на рис. 2.10.

    Оставьте галочку напротив опции Arms (Руки), за исключением тех случаев, когда ваш персонаж не имеет рук. Значение в поле Neck Links (Звенья шеи) обычно равно 1, если только у персонажа не змеевидная шея. Значения в поле Spine Links (Звенья позвоночника) могут быть разными, оставьте в нем 4 (более подробно об этом поле - далее) и переходите к следующему полю. По умолчанию в поле Leg Links (Звенья ног) стоит 3 (предполагается, что значение 4 соответствует персонажу с тремя ногами, но об этом позже). В полях Tail Links (Звенья хвоста), Ponytaill Links (Звенья хвоста волос) и Ponytail2 Links оставьте значение 0. Присвойте Betty значения 5 в поле Fingers (Пальцы) и 3 в поле Finger Links (Звенья пальца). А в полях Toes (Большие пальцы ног) и Toe Links (Звенья большого пальца ноги) введите значение 1 (большинству персонажей требуется один палец ноги и одно звено пальца ноги). Любое значение, установленное в поле Ankle Attach (Присоединение лодыжки) по умолчанию, подойдет, однако не бойтесь поэкспериментировать с различными значениями.

    Настройка структуры Biped

    Рис. 2.10 Свиток Structure управляет основной конфигурацией Biped
    Значение Height (Высота) не существенно, потому что пропорции Biped уже были грубо подогнаны под сетку персонажа, но это хороший способ еще раз проверить размеры персонажа. Заранее решите, насколько большим будет персонаж в игре, и настройте соответствующим образом высоту. Напротив опции Triangle Pelvis (Треугольная тазовая кость) просто оставьте галочку.

    Прежде чем присоединять сетку к каркасу Biped, убедитесь, что высота и персонажа, и объекта Biped определена правильно. Если же сначала присоединить объект Biped (особенно когда у него есть дополнительные кости), а потом изменять его высоту, то размер персонажа уменьшится непропорционально: персонаж сожмется неестественным, хотя и забавным, образом.




    Настройка структуры


    В окне проекции Front создайте объект Biped высотой 200 единиц и поместите его сбоку от персонажа Widge (рис. 2.25).

    Настройка структуры

    Рис. 2.24. Это Widge, чужеродный захватчик
    Настройка структуры

    Рис. 2.25. Лежащий в основе каркаса Biped будет изменен настолько радикально, что его начальный размер не важен
    Размеры Biped будут значительно изменены, поэтому не стоит уделять внимание его начальным размерам, гораздо важнее построить правильную структуру. Переведите Biped в режим Figure и введите значения, показанные в свитке Structure на рис. 2.26.

    Настройка структуры

    Рис. 2.26. Структурная конфигурация четырехногого Biped немного другая
    Переименуйте Biped в Widge. Руки, безусловно, нужны, поэтому оставьте напротив опции Arms галочку. Тело Widge сгибается только в середине, так что в поле Spine Links введите значение 2. В поле Leg Links введите 3. Звенья хвоста необходимы, поэтому укажите в поле Tail Links максимально допустимое для Biped число звеньев, то есть 5. У Widge не будет волос, и тем более их не надо собирать в хвост, поэтому в каждом поле Ponytail введите 0.

    В учебных пособиях, руководствах по 3ds max и других книгах по анимации предлагается использовать поля Ponytail Links для анимации челюсти или рта. Но это не самая лучшая идея, так как character studio и так расходует много ресурсов процессора и оперативной памяти. Если добавить дополнительные кости в каркас Biped, то работа программы усложнится. Вместо этого создайте параллелепипед и свяжите его с объектом Head, ведь любой объект в 3ds max можно использовать в качестве кости, а они требуют гораздо меньше ресурсов процессора.




    Настройка тела и головы Biped


    Итак, основная структура определена, теперь можно приступать к выравниванию Biped по сетке. Начните с областей туловища, так как они управляют конечностями, для которых являются родительскими элементами. Скройте объекты рук (за исключением ключиц) и нижних частей ног Biped. Увеличьте масштаб тазовой области, выделите корневой объект Biped и перемещайте его вверх до тех пор. пока тазовая область не выровняется с пахом Betty. Убедитесь, что бедра центрированы относительно ног сетки (рис. 2.11).

    Настройка тела и головы Biped

    Рис. 2.11. Выровняйте тазовую область Biped с верхней частью паха персонажа
    Центр бедер находится в их верхней части, поэтому представьте, что ноги персонажа сгибаются от этих точек. Увеличьте тазовую область, применив к ней команду трансформации Non-Uniformly Scale (Неоднородное масштабирование) Настройка тела и головы Biped вдоль оси Z . Точка присоединения ноги переместится на значительное расстояние от центра.

    Если дважды щелкнуть по любому родительскому элементу Biped, то все его дочерние элементы также будут выделены. Например, таким способом очень легко выделять все дочерние элементы в иерархии конечности.
    Выделите четыре объекта Spine, уменьшите их размер вдоль оси X и переместите их так, чтобы ключицы оказались в относительной близости от места присоединения плеча. Убедитесь, что вершина первого объекта Spine находится рядом с тон точкой, в которой будет сгибаться талия. Перейдите в окно проекции Right ( Справа) и примените к звеньям позвоночника команду трансформации Rotate (Повернуть) Настройка тела и головы Biped, поворачивая их, пока они не совпадут с положением сетки (рис. 2.12).

    Настройка тела и головы Biped

    Рис. 2.12. Убедитесь, что объекты позвоночника Biped выровнены с сеткой во всех окнах
    Система координат Biped уникальна тем, что она остается постоянно ориентированной независимо от выбранной в 3ds max системы координат. Масштабирование большинства частей Biped вдоль оси X удлиняет их, вдоль оси Z - расширяет, а вдоль оси Y - утолщает (если смотреть в окне проекции Front). При повороте относительно оси Z большинство объектов Biped наклоняются вперед или назад, но есть и исключения. В общем, к подобной координатной системе нужно привыкнуть.
    Сделайте все возможное, чтобы подогнать размер и угол наклона объектов Head (Голова) и Neck (Шея) по сетке, но не забывайте о том, что центр трансформаций головы находится прямо под ней. Закончив работу над туловищем, можно перейти к рукам и ногам.




    Настройка туловища, головы и хвоста


    Перейдите в окно проекции Тор (Сверху), заморозьте объекты сетки Widge, скройте объекты рук и начните настраивать Biped, определяя и изменяя положение базового объекта СОМ и тазовой области (не скрывайте ноги, чтобы лучше видеть центр трансформаций, в котором они соединяются с тазовой областью). Измените размеры тазовой области так, чтобы верхние точки присоединения бедра совпадали с суставами сетки. Перейдите в окно проекции Right, уложите Biped так, чтобы он оказался внутри сетки, затем слегка наклоните тазовую область, повернув объект СОМ (рис. 2.27).

    Затем спрячьте ноги, чтобы они не мешали, и настройте звенья объекта Tail (Хвост) так, чтобы они совпадали с сегментами сетки (рис. 2.28).

    Настройка туловища, головы и хвоста

    Рис. 2.27. Начните настраивать объект Biped с четырьмя ногами, выровняв его тазовую область и объект СОМ
    Настройка туловища, головы и хвоста

    Рис. 2.28. Выровняйте звенья объекта Tail с естественными изломами сетки
    Настройте объекты Spine, Neck и Head, изменив их размеры и повернув в нужное положение. Шея не так уж важна, поэтому уменьшите ее вдоль оси X, чтобы убедиться, что объект Head выровнен с областью головы Widge. Его голова - всего лишь завершение туловища спереди, поэтому пусть она будет смотреть вниз (рис. 2.29).

    Настройка туловища, головы и хвоста

    Рис. 2.29. Странные размеры Biped персонажа Widge продолжают удивлять...




    Пошаговый алгоритм создания каркаса персонажа


    Выполняя практические задания из данной главы, вы познакомитесь с этими шагами подробнее:

    1. Загрузите законченную сетку персонажа и заморозьте (freeze) ее.

    2. Создайте объект Biped и включите режим Figure (Установка позы).

    3. Приблизительно выровняйте Biped с сеткой персонажа, выделив и переместив его центр тяжести, который представлен объектом Center of Mass (COM - Центр тяжести). Убедитесь, что тазовая область во всех видах выровнена соответствующе.

    4. Задайте название объекта Biped и настройте его структуру.

    5. Переместите и поверните объекты типа Spine (Позвоночник) и отмасштабируйте их во всех видах.

    6. Скройте все конечности с одной стороны персонажа.

    7. Трансформируйте (путем перемещения и вращения) оставшуюся руку, начав с ключицы и перемещаясь сверху вниз.

    8. Измените оставшуюся ногу, начав с бедра и перемещаясь сверху вниз.

    9. Отобразите все скрытые объекты Biped, затем скопируйте и отобразите положение конечностей на неизмененные конечности.

    10. Сохраните позу персонажа в файле с расширением .fig.

    11. Выключите режим Figure и сохраните исходное положение Biped в файле с расширением .bip.

    12. Теперь каркас можно присоединять к сетке.




    Из двух частей, составляющих модуль


    Из двух частей, составляющих модуль character studio, - Biped и Physique - первая дает быстрый и простой способ построить лежащий в основе персонажа скелет, дополнить его обратной кинематикой, ограничителями и позами. Практически любой вообразимый персонаж можно сконструировать с помощью объекта Biped. Самое большое преимущество использования этого объекта заключается в том, что его каркас можно применить в дальнейшем для похожего персонажа.

    Чтобы создать каркас персонажа, загрузите его сетку, по которой будет подгоняться Biped, и заморозьте ее. Создайте Biped, установите для него режим Figure и переместите, поверните его, измените его размеры, чтобы подогнать по сетке. Начните с корневого элемента, или центра тяжести (СОМ), перейдите к тазовой области, а затем к позвоночнику. Настройте конечности, начав с бедра и ключицы. Если же у персонажа симметричный набор рук и ног, определите позу только для одной стороны, затем скопируйте ее и отобразите зеркально на другую сторону. Основная поза, которая считается исходной для персонажа и Biped, зависит от разрешения сетки персонажа. Для персонажей с более высоким разрешением, на задание веса которых вручную, вершина за вершиной, уходит много времени, нужно использовать позу да Винчи. Вы сами должны решать, настраивать ли каркас персонажа с низким разрешением в позе да Винчи.

    Многие движки игр в реальном времени не поддерживают цели морфинга, которые используются для анимации разговора и различных выражений лица, в этом случае нужно применять кости. Для создания каркасов лица придется построить и связать объекты с объектом Biped Head (в 3ds max любой объект можно использовать в качестве кости). Тип используемого каркаса лица зависит от того, сколько полигонов составляют лицо и сколько нужно анимаций. В завершение необходимо присвоить контроллеры из панели Motion костям, присоединенным к Biped, - так они получат дополнительное движение, которое будет автоматически вычисляться в 3ds max при воспроизведении.

    Собака


    Собаки (и другие четвероногие животные) имеют специфическую и уникальную мускулатуру, которую при определении каркаса нужно тщательно изучить. Например, очень сложно увидеть колено, если только собака не согнула его. Собака ходит на пальцах ног. а не на ступнях, и объект Biped должен это отображать (рис. 2.35).

    Собака

    Рис. 2.35. Объект Biped можно использовать для того, чтобы анимировать ротвейлера




    Сохранение позы Biped


    Заключительный шаг в построении каркаса персонажа - его сохранение. Это следует сделать двумя способами и в двух форматах файлов character studio. Сначала в режиме Figure откройте свиток Biped и щелкните по пиктограмме Save File (Сохранить файл) Сохранение позы Biped. Появится диалоговое окно Save as (Сохранить как), которое позволяет сохранить позу в режиме Figure в файле с расширением .fig (рис. 2.22).

    Сохранение позы Biped

    Рис. 2.22. Не забудьте сохранить файл .fig, чтобы ссылаться на него в дальнейшем
    Затем в качестве дополнительной страховки выйдите из режима Figure и снова сохраните позу персонажа, на этот раз в файле с расширением .biр. Для этого еще раз щелкните по пиктограмме Save File (рис. 2.23).

    Каркас обычного игрового персонажа, такого как Betty, завершен. Теперь посмотрим, какие еще типы персонажей можно сконструировать с помощью Biped.




    Создание каркаса персонажа с четырьмя ногами


    Объект Biped прекрасно применим для создания обычного игрового персонажа, но что делать, если нужно сотворить насекомовидное чужеродное создание на четырех ногах, стремящееся подчинить и поглотить человечество?

    Создание каркаса персонажа с четырьмя ногами

    Рис. 2.23. Сохранив не анимированную позу Biped в файле .Ыр, вы получите удобную экземплярную позу
    В игре Betty Bad наша отважная полногрудая героиня должна отразить нападение чужака, который пытается захватить горнодобывающий комплекс на астероиде в глубоком космосе и съедает каждого горняка на своем пути. Это жестокое, ни перед чем не останавливающееся существо Widge. Он и его клонированные собратья - главные мишени для оружия ZU88 OmniGun персонажа Betty.

    Загрузите файл Widge1.max (рис. 2.24).




    Создание объекта Biped


    Откройте панель Create с помощью соответствующей пиктограммы Создание объекта Biped, щелкните по пиктограмме Systems (Системы) Создание объекта Biped, а затем - по кнопке Biped, чтобы создать этот объект (рис. 2.4).

    Создание объекта Biped

    Рис. 2.4. Чтобы создать объект Biped, просто щелкните по кнопке Biped
    Поместите курсор в виде стрелки на замороженные ступни сетки Betty, нажмите и удерживайте левую кнопку мыши и перетаскивайте указатель вверх до тех пор, пока упрощенная фигура Biped примерно не совпадет с сеткой персонажа. Отпустите кнопку мыши - объект Biped создан (рис. 2.5).

    Создание объекта Biped

    Рис. 2.5. Нажмите кнопку Biped и перетаскивайте упрощенную фигуру, пока она не покроет сетку
    Чтобы объекты Biped выступали в роли ограничителей для решений обратной кинематики, нужно сделать их объектами-пустышками (dummy object), связанными с концами пальцев рук, верхом головы и концами пальцев ног. Всякий раз при создании Biped эти объекты-пустышки автоматически скрыты. Но если по какой-либо причине они отображаются, откройте панель Display Создание объекта Biped и отметьте в разделе Hide by Category (Спрятать по категории) опцию Helpers (Вспомогательные объекты) - рис. 2.6.
    Теперь, чтобы точно подогнать Biped по сетке, нужно определить для него режим Figure. Считайте это особенное состояние объекта Biped исходной позой, которая используется, чтобы изменять каркас до. во время и после применения к ней анимаций. Откройте панель Motion (Движение) с помощью соответствующей пиктограммы Создание объекта Biped и назначьте для объекта Biped режим Figure, щелкнув по пиктограмме с изображением маленького человечка (он станет фиолетовым), - рис. 2.7.

    Если к объекту Biped не применялись анимации, то, включив режим Figure, вы не заметите каких-либо изменений, но зато сможете настроить положение объекта, подогнав его по сетке. Чтобы центрировать объект Biped во внешней системе координат (и по отношению к сетке персонажа), выделите корневой элемент Biped, который также называется объектом СОМ (маленький ромб синего цвета рядом с прямоугольником тазовой области). Затем активизируйте пиктограмму Move (Переместить)Создание объекта Biped и щелкните по ней правой кнопкой мыши, чтобы вызвать окно Transform Type-In (Точное перемещение), - рис. 2.8.


    Создание объекта Biped

    Рис. 2.6. Скройте объекты-пустышки, так как необходимость аиимировать их не возникнет

    Создание объекта Biped

    Рис. 2.7. Чтобы подогнать объект Biped по сетке, нужно включить для него режим Figure

    Создание объекта Biped

    Рис. 2.8 С помощью окна Transform Type-In можно быстро и точно переместить объекты

    Щелкните дважды по полю оси X, введите значение 0 и нажмите клавишу Enter. Если число не подходит и объект Biped не сдвинется с места, убедитесь, что перемещение не зафиксировано по оси X (нажмите клавишу F5), и попробуйте снова. Объект Biped центрирован, расположен на сетке персонажа - теперь можно двинуться дальше.


    Тот самый да Винчи?


    В 1490 году Леонардо да Винчи выполнил знаменитый эскиз, в основе которого лежит книга Витрувия об архитектуре. Иллюстрация была попыткой проверить математические формулы, которые предложил Витрувий для описания пропорций человеческой фигуры (рис. 2.43).

    При создании каркаса Biped персонажа Betty его поза не совпадала с позой да Винчи из-за разрешения. Персонаж включает в себя около 2000 треугольников, он низкополигональный, и вручную задать веса можно достаточно быстро. Поза Betty не имеет особого значения, поэтому модель была построена в случайной позе. Однако, если бы персонаж имел более высокое разрешение, такое как на рис. 2.44, было бы верно обратное. Персонаж на рис. 2.44 находится в позе да Винчи потому, что состоит из 5663 полигонов. Он построен не для игры, а для приложения в реальном времени с танцем под музыку, воспроизводимую такими программами, как WinAmp.

    Тот самый да Винчи?

    Рис. 2.43. Поза «человека по Витрувию» да Винчи иллюстрирует относительные пропорции человеческой формы
    Демонстрационную версию программы WinAmp можно найти на компакт-диске, прилагаемом к данной книге.

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

    Тот самый да Винчи?

    Рис. 2.44. Персонажи с более высоким разрешением должны находиться в позе да Винчи, иначе невозможно будет задать их веса
    Для многих персонажей поза да Винчи неестественна, вряд ли они ее когда-либо примут. Но несмотря на это очень важно, чтобы модель персонажа находилась в своего рода исходной позе, в которой ее проще текстурировать (не передавайте художнику по текстуре персонаж в его типичной позе, не ждите, что он создаст проекционные координаты для этой позы). Однако, как в приведенном ранее примере с языком, поза да Винчи представляет предельную позу, которую мог бы принять персонаж и из которой можно получить на практике любую позу. На рис. 2.45 показан каркас сетки, приведенной на рис. 2.44.

    Тот самый да Винчи?

    Рис. 2.45. Каркас сетки с высоким разрешением имеет немного больше элементов, чем у обычного игрового персонажа


    Тот самый да Винчи? Тот самый да Винчи? Тот самый да Винчи?



    Этот каркас, называемый muppet, часто


  • Единая челюстная кость (с направляющей)


  • Этот каркас, называемый muppet, часто используется для игровых персонажей, потому что единую челюстную кость можно легко переместить программными средствами пропорционально амплитуде звуковой волны. Дело в том, что если персонаж начинает говорить громче, ему приходится шире открывать рот.

    Создайте куб, размеры которого соответствуют сетке. Откройте панель Hierarchy (Иерархия) с помощью соответствующей пиктограммы Этот каркас, называемый muppet, часто , и центрируйте центр трансформаций: щелкните по пиктограммам Pivot (Центр трансформаций), Affect Pivot Only (Действовать только на центр трансформаций), а затем - по пиктограмме Center Pivot to Object (Центрировать центр трансформаций по объекту). Создайте и центрируйте объект-пустышку: щелкните по пиктограмме Helpers Этот каркас, называемый muppet, часто , активизируйте кнопку Dummy (Пустышка) и щелкните в ортогональном окне проекции. Поместите объект-пустышку перед челюстью (и сеткой) и свяжите его с кубом, который вы создали ранее. Для этого щелкните по пиктограмме Select and Link (Выделить и привязать) Этот каркас, называемый muppet, часто , а затем - по объекту-пустышке и перетащите пунктирную линию связи к кубу. Переименуйте квадрат в Jaw (Челюсть), а объект-пустышку - в Jaw Nub (Направляющая челюсти) - рис. 2.40.

    Этот каркас, называемый muppet, часто

    Рис. 2.40. На уровне каркаса лица 1 требуется только челюстная кость и челюстная направляющая

    В character studio направляющая Nub - это не только конечный объект для цепочки IK, он представляет собой звено в Physique, которому будут приписаны вершины. Преимущество использования объекта-пустышки под именем Nub состоит в том, что он соответствует структуре, которая уже была определена объектом Biped. Также он удобен тем, что его в любой момент можно скрыть вместе с другими пустышками, поставив нужный флажок на панели Display.


    в себя анимацию глаз, поэтому,


  • Единая челюстная кость (с направляющей)


  • Закрывающиеся веки


  • Двигающиеся глаза


  • Уровень каркаса лица 2 включает в себя анимацию глаз, поэтому, прежде чем приступать к моделированию, нужно хорошо продумать все детали. При применении опции Physique глаза должны быть закрыты, потому что деформировать сетку, открывающую глаза, проще, чем закрывающую их (представьте себе моргание глаза). Глазом может быть простой патч с несколько измененной геометрией, нужно лишь включить в него что-то похожее на радужную оболочку глаза (подойдут несколько перемещенных вершин), а геосфера (или часть геосферы) с умеренным разрешением может служить костью глазного яблока (рис. 2.41).

    в себя анимацию глаз, поэтому,

    Рис. 2.41. На уровне каркаса лица 2 есть кости, отвечающие за моргание и движение глаз

    Глазное яблоко состоит из жидкости, оно очень пластичное. Чтобы представить вязкую глазную жидкость, потребовалось бы неописуемо большое количество геометрии. Лучший способ представить объект глаза - это придать форму искривленному набору треугольников.

    Если кости лица справа и слева симметричны (в том числе и по названиям), то следить за тем, что где находится, будет гораздо проще. Даже несмотря на то что глазные яблоки являются частью объектов, их центры трансформаций совпадают с теми, которые были бы у них при центрировании на целой геосфере.


    добавляются последние компоненты, которые


  • Одиночная челюстная кость (с направляющей)


  • Закрывающиеся веки


  • Двигающиеся глаза


  • Двигающиеся брови


  • Артикулирующие губы


  • Артикулирующий язык


  • На уровне каркаса лица 3 добавляются последние компоненты, которые любому персонажу придают реалистичные эмоции и позволяют произносить фонемы, - а именно брови, губы и язык (рис. 2.42).

    добавляются последние компоненты, которые

    Рис. 2.42. Уровень каркаса лица 3 включает в себя кости губ, бровей и языка

    На рис. 2.42 язык показан отдельно для ясности: в действительности он находится внутри рта и пересекает геометрию головы. Это сделано из-за того, что соединять сетку со скелетом нужно в вытянутом состоянии. Положение языка определяется только после присоединения к кости. Сравните с хвостом или набедренной повязкой, которые редко бывают совершенно прямыми и вытянутыми.

    Чтобы перейти к уровню каркаса лица 4, пришлось бы включить большее число костей, которые можно использовать для деформирования таких областей лица, как щеки, уши, области вокруг бровей и т.д. Но остановимся пока на этом. Чтобы лучше познакомиться с отношениями между связанными костями лица и модулем Biped, загрузите файл Doghead.max.


    Задание типичного двуногого персонажа


    В 3ds max Biped лучше использовать для костей, соответствующих костям реального существа, потому что с их помощью можно быстро и легко создать основу персонажа, дополнить ее обратной кинематикой (inverse kinematics - IK), суставными ограничениями (joint constraint) и всевозможными настраиваемыми параметрами, от числа пальцев до добавления хвоста. Но основное преимущество Biped - совместное использование файлов персонажей. Это относится и к его исходной позе, и к анимации методом ключевых кадров, и к данным захвата движения. Умение создать идеальную позу, шаги, бег или прыжки, а затем использовать любой из этих элементов или все вместе в других персонажах - ценное качество.




    Загрузка сетки персонажа


    Загрузите файл Betty04.max (рис. 2.1).

    Загрузка сетки персонажа



    Рис. 2.1. Начните задавать каркас персонажа, загрузив его в 3ds max
    При работе с сеткой нужно иметь в виду несколько моментов. Во-первых, все ее части должны быть разного цвета, чтобы их можно было быстро отличить друг от друга, а стеки частей тела свернуты.

    Предполагается, что объекты сетки не будут существенно изменены. Это очень важно, так как если отсоединить присоединенную к Biped сетку, чтобы внести структурные изменения, то информация о предыдущем задании весов будет потеряна.

    Лучше всего полностью текстурироватъ сетку до присоединения ее к каркасу Biped, однако более опытные моделлеры и аниматоры считают, что перед тем, как назначать текстуру, нужно несколько раз протестировать геометрию. Если добавлять геометрию на сетку или удалять ее после определения проекционных координат, то эти координаты впоследствии могут сместиться. Только с ростом опыта вы поймете: не стоит накладывать координаты UVW, пока нет уверенности в том, что геометрия анимирована должным образом.
    Заметьте, что частям тела присвоены описательные имена: m_torso (туловище), m_headarmleg (голова, руки и ноги), m_gunarm (рука с оружием), m_gun (оружие), m_energy (мощность) и m_fanvent (воздухоотводящая труба). Символы m_, стоящие перед именем каждого объекта, гарантируют, что объекты будут расположены рядом в отсортированном списке при открытии окна выделения по названию. С помощью этих символов также можно быстро отличить объект сетки от объекта Biped.

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


    Группировать определенные элементы ( или отделять их друг от друга) нужно также и по другой причине, а именно из-за необходимости поддерживать различные материалы/шейдеры (shader). Некоторые игровые движки не справляются с материалом Multi/Sub-Object (Многокомпонентный/Подобъект), поэтому приходится разделять объекты, присваивая им различные материалы/шейдеры. Иногда это нужно для достижения желаемого эффекта тени или обусловлено тем, что материалы объектов ссылаются на различные файлы текстур (рис. 2.3).

    Загрузка сетки персонажа

    Рис. 2.2. Иногда сетка состоит из элементов, кажущихся несовместимыми

    Загрузка сетки персонажа

    Рис. 2.3. Если материалы, присвоенные персонажу, ссылаются на разные растровые изображения, то объекты, которым присвоены эти материалы, иногда приходится отделять друг от друга

    В случае с Betty объекты m_gun, m_energy и m_fanvent отсоединены от основной сетки, потому что им всем присвоен материал, который использует файл текстуры, отличный от файлов остальных частей персонажа. А объекты m_headarmleg, m_torso и m_gunarm отсоединены исключительно для того, чтобы упростить задание весов персонажа.

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


    Алгоритм применения модификатора Physique


    1. Выделите все объекты сетки, из которых состоит персонаж.

    2. Примените модификатор Physique к объектам сетки.

    3. Примените операцию Attach to Node (Присоединить к узлу), щелкнув по тазовой области заранее подогнанного объекта Biped.

    4. В свитке Vertex - Link Assignment (Вершина - назначение звена) выберите опцию Rigid (Твердый).

    5. Отмените режим Figure для объекта Biped и примените к нему анимацию.

    6. Настройте веса сетки персонажа: измените параметры Envelope (Оболочка) в свитке подобъектов модификатора Physique и введите весовые значения отдельных вершин.

    7. Включите и выключите режим Initial Skeletal Pose (Исходная скелетная поза), чтобы увидеть результат задания весов.

    8. Сохраните задание весов в файле с расширением .phy.




    Настройка области локтя


    У персонажа Betty на плечах большие эполеты, поэтому прилагать много усилий, чтобы настроить веса области плеч - а обычно на это уходит много времени, - не нужно. Определять, какими должны быть весовые значения локтя, лучше всего экспериментальным путем. На область центра локтя в большей степени должно влиять звено Upper Arm (Предплечье) -область его влияния также может находиться немного ниже (сравните с бедром и коленом). На вершины, находящиеся выше локтя, предплечье будет влиять в меньшей степени.

    Если есть уверенность в том, что два звена будут вместе влиять на некоторый набор вершин, как, например, локоть, присвойте им одинаковые веса (значение 1 родительскому звену и значение 1 - дочернему). Конечно, эти значения для разных вершин различны (они будут уточнены позднее в процессе задания весов), но таким способом можно быстро одновременно присвоить вершины правильным звеньям. А опция отображения Currently Assigned Links Only (Только назначенные звенья), устанавливаемая по умолчанию, при настройке значений принесет только пользу, поскольку будут отображены лишь нужные два звена.
    Увеличьте масштаб области локтя и выделите только те вершины, из которых он состоит. Вызовите диалоговое окно Type-In Weights, щелкните по пункту All Links и присвойте вершины звену Betty R Forearm, щелкнув по нему и введя значение 1 (вершины станут темно-зелеными). Включите и выключите режим Initial Skeleton Pose, чтобы посмотреть, как изменение весовых значений влияет на локоть (рис. 3.26).

    К сожалению, в списке в диалоговом окне Type-In Weights звено Forearm (Предплечье) располагается не сразу после звена Upper Arm. После него идут несколько звеньев, которые являются дочерними от Forearm. Будьте осторожны и не присвойте веса звену Hand (Рука) вместо Forearm (рис. 3.27)
    Результат задания весов выглядит неплохо, но оба звена одинаково влияют на все вершины, поэтому жесткость геометрии, которая должна была изображать толстый налокотник, умаляется. Внесите некоторые изменения. Включая и выключая режим Initial Skeletal Pose, можно приблизительно оценить, как нужно изменить значения весов вершин. Например. на вершины в верхней части локтя предплечье должно влиять в меньшей степени, тогда форма локтя сохранится лучше, а вершины нижней части локтя должны подвергаться действию этого звена в большей степени. Снова включите режим Initial Skeletal Pose и попробуйте применить значения весов локтевой области, показанные на рис. 3.28.


    Настройка области локтя

    Рис. 3.26. Звенья UpperArm и Forearm одинаково влияют на локоть

    Настройка области локтя

    Рис. 3.27. Неожиданное расположение звена Forearm может сбить с толку

    Настройка области локтя

    Рис. 3.28. Веса локтя нужно больше сместить в сторону звена UpperArm

    Теперь локоть согнут, он выглядит лучше, а форма налокотника не деформируется (рис. 3.29).

    Указанным способом устраняются проблемы задней части локтя, но нужно изменить и переднюю часть геометрии возле сустава (нижнюю часть области бицепсов). Если задать веса 1 и 1, то при сгибе руки бицепс станет сжиматься - он не будет создавать выпуклости. Однако если сместить веса вершин к звену UpperArm, геометрия предплечья будет выглядеть неестественно (рис. 3.30).

    Правильная деформация предплечья должна уменьшить контраст локтевого соединения; перенесите часть влияния от вершин предплечья на звено UpperArm. Оно не должно быть большим и для разных персонажей может различаться. Выделите три вершины в верхней части согнутой руки Betty, заблокируйте их и добавьте звено Betty R UpperArm к звеньям, влияющим на эти вершины. Подойдет значение 0,1 (рис. 3.31).

    Подобное перераспределение весового влияния между соседними звеньями необходимо, чтобы обойти недостаток большинства алгоритмов автоматического задания весов во многих программах, в 3ds max это Physique. При деформации полигональной сетки такие области, как локти, колени, запястья, лодыжки, шея и даже плечи и бедра, будут полностью аналогичны своему естественному оригиналу, только если система задания весов вершин верна. Однако не забывайте, что вышесказанное относится только к играм в реальном времени; чтобы моделировать движение кожи и мышц визуализированных персонажей фильмов, применяются различные типы сложных скелетных и мускулатурных алгоритмов.

    Настройка области локтя

    Рис. 3.29. С новыми весовыми значениями локоть выглядит лучше

    Настройка области локтя

    Рис. 3.30. Смещение передней части локтевого сустава к звену UpperArm приводит к странной деформации

    Настройка области локтя

    Рис. 3.31. Если добавить звено UpperArm к звеньям, которые влияют на эти вершины, то деформация предплечья улучшится


    Настройка руки с оружием


    Скройте все объекты, а затем отобразите сеточный объект m_gunarm. Активизируйте окно проекции Right. Под этим углом зрения объекта видно, что нужно поправить (рис. 3.55).

    Выделите объект, откройте свиток подобъекта Sub-Object модификатора Physique и включите для объекта режим Initial Skeletal Pose. Выделите все вершины, из которых состоят элементы сетки левого предплечья: рука, ствол оружия и даже цилиндр, покрывающий локоть. Измените точку обзора, если это необходимо.

    Если сначала включить режим Initial Skeletal Pose, а затем выбрать еще один объект сетки - корневой элемент Physique или другой подобъект Physique, - то сетка останется в исходной скелетной позе.
    Не выделяйте вершины, принадлежащие элементу плеча, выделите лишь первые несколько вершин ленты, которая заброшена в рюкзак. Присвойте все вершины звену Betty L Forearm и выключите режим Initial Skeletal Pose, чтобы увидеть результат (рис. 3.56).

    Настройка руки с оружием

    Рис. 3.55. Что это?
    Настройка руки с оружием

    Рис. 3.56. Рука выглядит гораздо лучше, если вершины присвоены звену L Forearm
    Скройте присвоенные вершины; выделите вершины элемента плеча и присвойте их звену Betty L Forearm. Затем скройте и их тоже: теперь можно приступить к действительно сложной области - ленте соединения.

    Левое плечо отличается от правого тем что может перемещаться вместе с рукой. Оно будет выглядеть необычно только в случае, если рука Betty поднимается высоко вверх или отводится далеко назад.
    Геометрия соединительной ленты - замкнутая структура, исходящая из рюкзака и входящая в предплечье. К сожалению, в качестве весового звена этой части геометрии нельзя использовать дополнительный набор костей. Если бы кости были привязаны к спине или плечу, они бы не перемещались вместе с рукой. Если бы они были связаны с рукой, то потеряли бы связь со спиной (рис. 3.57).

    Настройка руки с оружием

    Рис. 3.57. Геометрию соединительной ленты нужно связать как с задней частью плеча, так и с предплечьем
    Чтобы решить эту задачу, не имеет смысла добавлять дополнительные кости, нужно осторожно разделить веса между звеньями Betty L Forearm и Betty L Spine2, игнорируя звено Betty L UpperArm. Поверните точку взгляда, чтобы смотреть на персонаж снизу и слева, и перейдите к кадру 6 анимации. Выделите все оставшиеся вершины объекта m_gunarm, которые и формируют ленту, и присвойте их звену Betty Spine2 (рис. 3.58).


    Выделите все вершины, кроме четырех, касающихся рюкзака, вызовите окно Type-In Weights и присвойте эти вершины звену Betty L Forearm с весом 0,5 (рис. 3.59).

    Настройка руки с оружием

    Рис. 3.58. Присвойте оставшиеся вершины соединительной ленты звену Betty Spine2

    Настройка руки с оружием

    Рис. 3.59. Вначале задайте одинаковое влияния звеньев Spine2 и Forearm на все вершины

    Чтобы исключить вершины из области выделения, перетащите рамку вдоль вершин, удерживая нажатой клавишу Alt.

    Очевидно, что оставлять геометрию в таком виде нельзя, но, по крайней мере, два звена, которым нужно присвоить вершины, уже выбраны, а их относительные влияния приблизительно настроены. Включите для сетки режим Initial Skeletal Pose и начните с ряда вершин, который находится в верхней части соединительной ленты рядом с плечом. Поверните точку взгляда так, чтобы четко видеть ряд вершин, и измените их значения с 0,5 на 0,05 (рис. 3.60).

    Настройка руки с оружием

    Рис. 3.60. Поверните точку взгляда так, чтобы четко видеть ряд вершин, которые нужно настроить

    Переходите от одного ряда вершин к другому вниз, пока каждому из них не будут присвоены значения, показанные на рис. 3.61.

    Заметьте, что влияние предплечья на соединительную ленту изменяется по возрастающей. Благодаря этому деформация геометрии будет более плавной. Теперь отобразите три скрытые вершины, являющиеся частью соединительной ленты там, где она приближается к предплечью. Поверните точку взгляда, чтобы лучше видеть оставшиеся вершины. Присвойте им значения, показанные на рис. 3.62.

    Настройка руки с оружием

    Рис. 3.61. Весовые значения соединительной ленты сдвинуты к звену Spine2

    Настройка руки с оружием

    Рис. 3.62. Оставшаяся часть соединительной ленты смещена к предплечью

    Отобразите остальные скрытые объекты сетки Betty и посмотрите, какой ровной она стала (рис. 3.63).

    Настройка руки с оружием

    Рис. 3.63. Betty готова к действию!

    Загрузите файл Betty07.max и сравните результаты вашей работы с фигурой из этого файла.

    Задать веса такого объекта, как соединительная лента оружия Betty, и достичь правильной деформации непросто. Сделать это можно единственным способом - подобрать значения в результате долгих экспериментов. Остальная же часть персонажа Betty составлена из достаточно малого числа треугольников, и к ней можно также применить способ задания веса от вершины к вершине.


    Определение шеи, плеч и туловища


    Скройте m_headarmleg и отобразите скрытые объекты m_torso, m_energy, m_fanvent и все объекты Biped типа Spine, затем активизируйте окно проекции Right (рис. 3.37).

    Определение шеи, плеч и туловища

    Рис. 3.37. Даже объекты сетки туловища должны быть бронированными, то есть твердыми
    Начните с шеи. Голова является отдельным объектом, поэтому веса шеи и головы проще задавать вместе. Если шея присоединена к туловищу, то для определения весовых значений требуется больше операций с полигонами и времени. Увеличьте масштаб верхней части шеи, выделите ее вершины и присвойте их звену Betty Head. Отобразите скрытые объекты головы Biped и объект m_headarmleg и проверьте деформацию (рис. 3.38).

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

    Отмените выполненные повороты и вновь скройте объекты m_headarnileg и Betty Head. Скройте присвоенные вершины шеи, активизируйте окно проекции Front и выделите все вершины рядом с правым плечом. В эту область выделения не должны входить элементы рюкзака (например, m_fanvent или m_energy). Присвойте выделенные полигоны звену Betty R Clavicle (рис. 3.39).

    Если плечо связать с ключицей, то его подвижность станет мала, но ведь Betty будет носить тяжелое вооружение, поэтому в анимации плечо и должно оставаться практически неподвижным. Скройте присвоенные вершины и вернитесь в окно проекции Right. Убедитесь, что выделены все три объекта сетки (m_energy, m_fanvent и m_torso), и присвойте вершины рюкзака и верхней части туловища звену Betty Spine2 (рис. 3.40).

    Определение шеи, плеч и туловища

    Рис. 3.38. На верхнюю часть шеи влияет только голова, так что щель между объектами будет незаметно
    Определение шеи, плеч и туловища

    Рис. 3.39. Присвойте вершины эполета (1) звену Betty R Clavicle /A)
    Определение шеи, плеч и туловища

    Рис. 3.40. Вершины рюкзака и верхней части туловища (2) присвоены звену Spine2 (В)
    Рюкзак и верхняя часть туловища практически не должны двигаться, поэтому все вершины присвоены второму звену позвоночника, а третье звено не оказывает влияния вообще. Неподвижность туловища и рюкзака достигается присвоением одному звену как можно большего числа вершин. Но в позвоночнике есть четыре звена, поэтому некоторые вершины нижней части рюкзака и туловища можно присвоить звену Spine1, родительскому элементу Spine2 (рис. 3.41).


    Звено Spine2 было ранее выбрано в качестве звена для вершин рюкзака, так как звену Spine1 тоже будут присвоены вершины, а выбранное звено лучше Spine3, поскольку оно находится ближе к той геометрии, которую должно деформировать.

    Теперь нужно изменить еще и веса вершин талии, чтобы убедиться, что при наклонах и поворотах туловища они будут деформироваться правильно. Выделите лишь два ряда вершин, только что присвоенных Spine1, вызовите окно Type-In Weights и назначьте эти вершины также звену Spine. Убедитесь, что звену Spine2 не присвоены вершины рюкзака (рис. 3.42).

    Определение шеи, плеч и туловища

    Рис. 3.41. Вершины группы 3 присвоены звену С, то есть Spine 1

    Определение шеи, плеч и туловища

    Рис. 3.42. Если на вершины талии влияют звенья Spinel и Spine, то деформация будет плавной


    Отмена привязки вершин к звеньям


    Левая нога и голова готовы для анимации, пришло время задать веса руки. Но сначала покажем еще один подход к тестированию задания весов -с помощью анимации костей руки. Отобразите скрытые объекты Biped, из которых состоит правая рука Betty. Щелкните по ее предплечью и выключите режим Figure. Активизируйте трансформацию поворота и, находясь в кадре 0, задайте ключевой кадр для поворота звена Betty R Forearm, нажав кнопку Set Key (Установить ключ) в свитке управления Biped (рис. 3.21).

    Затем активизируйте кнопку Auto Key (Автоматическое создание ключей)Отмена привязки вершин к звеньям(она станет красной), перейдите к кадру 5 и, не отменяя выделения предплечья, поверните его на -75° относительно оси Z (рис. 3.22).

    Отмена привязки вершин к звеньям

    Рис. 3.21 С помощью кнопки Set Key для выделенного объекта Biped создается ключевой кадр
    Отмена привязки вершин к звеньям

    Рис. 3.22. Сгибая руку вне режима Figure, можно протестировать задание весов сетки
    На этом рисунке, очевидно, что-то не так. Активизируйте окно проекции Front и еще раз выделите сетку персонажа. Откройте панель Modify и выделите все вершины элемента правой руки. Активизируйте кнопку Remove From Link (Удалить из звена), щелкнув по ней, перетащите рамку выделения вдоль ноги и туловища и отпустите кнопку мыши (рис. 3.23).

    Отмена привязки вершин к звеньям

    Рис. 3.23. Если выделить эти звенья, то они больше не будут влиять на выбранные вершины
    На вершины руки, которые ранее были вытянуты и деформированы, ненужные звенья больше не влияют, и теперь вершины привязаны к правильным объектам. Снова скройте все объекты, кроме m_headarmleg. и активизируйте подобъект Vertex модификатора Physique.

    Задайте анимацию для объекта Biped и посмотрите, где возникают проблемные области, когда сетка деформируется при движении. Это еще один способ проверить задание весов сетки персонажа. Он выполняется примерно так же, как и в случае со сгибанием руки, что описано выше. Однако если в анимации нет кадра «покоя», такого как кадр 0 для руки, то переключать сетку персонажа из анимированного состояния в неанимированное можно другим способом: включая и выключая режим Initial Skeletal Pose (рис. 3.24).

    Включите режим Initial Skeletal Pose, поставив напротив его названия галочку, затем продолжайте задавать веса правой руки. Сначала присвойте все вершины плеча (до нижней части локтя) звену Betty R UpperArm (рис. 3.25).

    Отмена привязки вершин к звеньям

    Рис. 3.24 Включая и выключая режим Initial Skeletal Pose, можно переходить от анимированного состояния к неанимирсванпому
    Отмена привязки вершин к звеньям

    Рис. 3.25. Присвойте все вершины плеча звену UpperArm




    Применение и инициализация модификатора Physique


    Загрузите файл Веttу06.тах. переведите Biped в режим Figure, нажмите клавишу Н, чтобы вызвать окно со списком названий объектов, и выделите все объекты вида m_ (рис. 3.1).

    Применение и инициализация модификатора Physique

    Рис. 3.1. Выделите все объекты сетки, к которым должен быть применен модификатор Physique
    Назначать модификатор Physique одновременно для всех объектов сетки персонажа весьма удобно, потому что изменение параметров модификатора Physique для одного объекта отражается на всех объектах, которым был присвоен этот модификатор.
    Выделив объекты, откройте панель Modify (Модификация) с помощью соответствующей пиктограммы Применение и инициализация модификатора Physique и назначьте им модификатор Physique. Инициализируйте Physique, щелкнув по кнопке Attach to Node в свитке Physique, - она станет активной (рис. 3.2).

    Применение и инициализация модификатора Physique

    Рис. 3.2 Чтобы инициализировать модификатор Physique, щелкните по кнопке Attach to Node и активизируйте ее, затем щелкните по объекту Pelvis Biped
    Увеличьте масштаб так, чтобы тазовую область Biped было проще выбрать. Щелкните по ней - появится диалоговое окно Physique Initialization (Инициализация телосложения). Ничего не меняйте, кроме переключателей в разделе Vertex - Link Assignment. Выберите Rigid (рис. 3.3).

    Если выбран переключатель Deformable (Деформируемый), то оболочки, звенья или вершины можно изменить на Rigid позднее. Однако, выбрав Rigid во время инициализации, вы сэкономите время.
    Щелкните по кнопке Initialize (Инициализировать); возможно, придется подождать несколько секунд, пока программа выполнит задание весов. После этого внутри сетки появится фигура человека (рис. 3.4).

    Применение и инициализация модификатора Physique

    Рис. 3.3. Большинство значений по умолчанию в диалоговом окне Physique Initialization подходят для задания весов нашего персонажа
    Применение и инициализация модификатора Physique

    Рис. 3.4. На скелетной фигуре человека внутри сетки, к которой был применен модификатор Physique, отображаются все звенья
    Движки игр в реальном времени не могут присваивать сетке вершины типа Deformable, поэтому при экспорте из 3ds max эти вершины обычно преобразуются в Rigid. Из-за тех же ограничений параметры основанной на сплайнах деформации Physique, которые находятся в подобъектах Link, Bulge (Бугор) и Tendon (Сухожилие), нельзя использовать таким же способом, как для высокополигоналъного персонажа.
    Щелкните правой кнопкой мыши в любом месте окна проекции, затем в контекстном меню Quad (Квадрант) выберите пункт Hide Unselected (Спрятать невыделенное). На экране останутся только объекты сетки (рис. 3.5).




    Присвоение вершин звену


    Сначала лучше задать веса более простых объектов (или элементов объекта), которые затем можно скрыть. Это значит, что объект необходимо отделить от остальных, а звено, которому нужно присвоить вершины, должно быль легко различимо. В случае с Betty первым в очереди стоит объект m_gun. Выделите его и нажмите в стеке модификаторов на маленький значок плюс (+) рядом с пунктом Physique. Появятся доступные подобъекты. Выберите Vertex (Вершина), в выпадающем списке Blending Between Links (Разделение между связями) измените N Links (N связей) на No Blending (Нет разделения) и активизируйте кнопку Select (Выделить), щелкнув по ней (рис. 3.6).

    Выделите все вершины объекта m_gun и щелкните по кнопке Assign to Link (Присвоить звену), она станет активной. Задайте тип Vertex как Rigid (зеленый значок + в разделе Vertex Type (Тип вершины)) и присвойте вершины левому предплечью, щелкнув по нему (рис. 3.7).

    Чтобы завершить переопределение вершин, нужно щелкнуть по кнопке Lock Assignment (Заблокировать назначение). Если вершины заблокированы, то они останутся присвоенными тому звену, какому нужно, даже если затем настраивать оболочку или задавать значения весов для других звеньев (рис. 3.8).

    Скройте все объекты, кроме m_headarmleg, и приступайте к заданию его весов.

    Если в модификаторе Physique активен режим выделения подобъекта Vertex, вызвать контекстное меню Quad, щелкнув правой кнопкой мыши, не удастся. Нужно выйти из режима Sub-Object: щелкните по пункту Physique - он станет активным уровнем в стеке. Теперь, если щелкнуть правой кнопкой мыши еще раз, то появится контекстное меню Quad.
    Присвоение вершин звену

    Рис. 3.5 С помощью контекстного меню Quad в 3ds max очень просто скрыть или заморозить объекты
    Присвоение вершин звену

    Рис. 3.6 Чтобы настроить весовые значения, нужно открыть свиток редактирования одного из подобъектов модификатора Physique
    Начните с элемента головы сетки, так как он самый простой. Выделите все его вершины, убедитесь, что вместо N Links задан вариант No Blending, и присвойте вершины звену Betty Head (рис. 3.9).


    Затем переходите к кончику ботинка, присвойте вершины звену Betty L Toe. Чтобы убедиться, что вершины присвоены правильному звену, воспользуйтесь командой Arc Rotate Присвоение вершин звену. (рис. 3.10).

    При задании веса скройте вершины сетки, которые уже присвоены. Тогда станет легче понять, в какой последовательности следует задавать вес объектов, а рабочая область не будет такой загроможденной (рис. 3.11).

    Присвоение вершин звену

    Рис. 3.7. Выделите вершины и щелкните по звену, которому их нужно присвоить

    Присвоение вершин звену

    Рис. 3.8. Очень важно заблокировать вершины после того, как они были присвоены звену вручную

    Присвоение вершин звену

    Рис. 3.9. Присвойте все вершины головы одному звену- Head

    Присвоение вершин звену

    Рис. 3.10. Вершины кончика ступни можно присвоить только звену Toe

    Присвоение вершин звену

    Рис. 3.11 Задав вес вершин, скройте их

    Таким образом, вершины были присвоены вручную конкретным звеньям, но чаще стоит присваивать вершины нескольким звеньям. Об этом рассказывается в следующем разделе.


    Работа над рукой и пальцами


    У большинства персонажей игр в реальном времени вместо пальцев -«варежки», а вместо кулаков - цельные болванки, но у Betty, в отличие от них, имеются все пять пальцев правой руки. Задание весов запястий чем-то похоже на задание весов лодыжек; выделите вершины возле сустава, и пусть оба звена Forearm и внутренние звенья Hand одинаково влияют на них.

    Чтобы деформация области запястья не была слишком сильной, создайте персонаж, ладони которого тыльной стороной направлены вниз, а не в стороны. Это не сложнее чем развернуть геометрию руки, а затем развернуть только некорректные ребра (рис. 3.32).
    Работа над рукой и пальцами

    Рис. 3.32. Иногда, чтобы получить правильную деформацию, нужно изменять геометрию, с не веса
    Вершины пальцев должны разделять влияние между звеньями в суставах пальцев. Начните с конечного звена пальца и двигайтесь к ладони, выделяя вершины и присваивая их ближайшему звену (включая все вершины суставов пальцев), блокируя вершины по мере перемещения (рис. 3.33).

    Работа над рукой и пальцами

    Рис. 3.33. Присвойте вершины руки, начав с кончиков пальцев
    Как видно из рис. 3.33, вершины в группе 1 присвоены звену А. Вершины группы 2 присвоены звену В, а вершины группы 3 - звену С. Затем, выделяя только вершины суставов пальцев, разделите их влияние со звеном, которое является родительским для присвоенного.

    Если вызывать окно Type-In Weights, в котором выбрана опция All Links, то звено, которому присвоены выделенные вершины, автоматически подсветится: так его проще увидеть среди других. Однако если выделенное звено находится внизу списка, character studio выполнит прокрутку в нижнюю часть окна. Если вершины сначала присвоены конечному звену пальцев и вы двигаетесь внутрь по направлению к родительскому элементу, то родительское звено, которое должно разделять влияние над выделенными вершинами, будет отображаться над выделенным звеном в списке звеньев. Если сначала вершины были присвоены родительскому звену, то дочернее будет располагаться под отображаемым списком и вам придется прокрутить список, чтобы увидеть дочернее звено для выделенного (рис. 3.34).

    Работа над рукой и пальцами

    Рис. 3.34. Если вы вводите значения для набора родительских и дочерних звеньев, то сначала присвойте вершины дочернему, а не родительскому звену

    В character studio названия звеньев дублируются, поэтому у каждого персонажа есть несколько звеньев Hand. Чтобы отличить их друг от друга, посмотрите на список звеньев под каждым из них. Разделите влияние самых верхних суставов пальцев Betty со звеном Hand, находящимся в списке в окне над звеном, которому были присвоены вершины.

    Задавая веса вершин вручную, вы часто сначала выделяете набор вершин, вводите их веса по отношению к нужным звеньям, затем выделяете следующий набор, не закрывая при этом диалоговое окно Type-In Weights. Чтобы увидеть звено, которое трудно найти в списке, активизируйте по очереди переключатели All Links и Currently Assigned Links Only. Звено выделенных вершин появится в конце длинного списка, не нужно будет прокручивать его вверх и вниз, пытаясь найти нужное звено.

    Поверните точку обзора так, чтобы смотреть на большой палец сбоку, выделите и присвойте его вершины (рис. 3.35).

    Работа над рукой и пальцами

    Рис. 3.35. Большой палец немного отличается от остальных, но вершины присваиваются таким же способом

    Все вершины группы 1 присвоены звену А, группы 2 - звену В, а группы 3 - звену D. Разделите влияние с нужными звеньями - и задание весов большого пальца закончено. На вершины группы 3, присвоенные звену Hand (звено D), может влиять и звено Betty R Finger0 (звено С). Отобразите все скрытые объекты пальцев Biped правой руки и проверьте задание весов.


    Научившись правильно задавать веса сетки


    Научившись правильно задавать веса сетки персонажа игры в реальном времени, вы сможете создавать не средние, а отличные анимации персонажей. Если задать веса неправильно, то все усилия, приложенные для разработки дизайна и создания модели, текстуры и каркаса, будут потрачены зря. С помощью модификатора Physique можно быстро и легко настроить кожу персонажа и получить доступ к отдельным вершинам и группам вершин посредством оболочек. Присваивать вручную весовые значения объектам сетки обычных игровых персонажей, состоящих из менее чем 2000 полигонов, - лучший способ получить плавную деформацию.

    Чтобы применить модификатор Physique к сетке, инициализируйте его, активизировав функцию Attach to Node и щелкнув по тазовой области Biped, затем выберите опцию Rigid в качестве параметра звена для вершины, а в качестве опции создания/просчета оболочки - N Links. Рекомендуется присваивать весовые значения вершинам вручную, но можно воспользоваться и оболочками, чтобы посмотреть, правильно ли они работают. Начните с задания весов тех объектов, для которых это проще сделать, тогда их можно будет скрыть, убрав из рабочей области. Особое внимание уделите областям плеч и бедер сетки, убедитесь, что в различных позах персонаж деформируется правильно. Проверьте результат присвоения весовых значений, применив на Biped простую анимацию и переключаясь между исходной скелетной позой и анимированным состоянием. И наконец, сохраните параметры для экземпляра на тот случай, если сетку нужно отделить, а затем вновь присоединить к Biped.

    Сохранение весовых значений


    В большинстве случаев лучший способ сохранить весовые значения - сохранять последовательные версии сетки в процессе работы. Сохраните их в файле с расширением .phy - и, воспользовавшись им при необходимости, вы легко восстановите задание веса. Для этого щелкните по пиктограмме Save Physique (*.phy) File (Сохранить файл телосложения) -рис. 3.36.

    Сохранение весовых значений

    Рис. 3.36 Сохраните файл модификатора Physique на всякий случай, например для использования в дальнейшем
    Не забывайте, что файл телосложения может использоваться для другого персонажа только в том случае, если структура объекта Biped одна и та же и ей присвоены те же самые добавленные кости, если таковые имеются.

    Иногда при работе со старыми файлами Biped или файлами 3ds max объект Biped использует имена из предыдущей версии character studio. Это значит, что все звенья Biped будут названы в соответствии с дочерним звеном (находящимся на одну строку ниже), а не в соответствии с той костью, к которой они относятся.




    Типичный персонаж игры


    Типичным считается персонаж игры, число полигонов которого не превышает 2000 и который должен выполнять набор определенных функций и обладать некоторым количеством заранее созданных анимаций. Если такой персонаж состоит из меньшего числа треугольников, то в большинстве случаев его вершины будут присваиваться костям вручную, а не с помощью оболочек (envelope). Так над персонажем с небольшим числом элементов, которыми нужно управлять, достигается наибольший контроль. Помимо этого на исходную позу сетки налагается меньше ограничений, не нужно строить ее в непривычной позе да Винчи. Но все же ручное присвоение вершин всегда происходит медленнее, чем при использовании оболочек, но с его помощью можно научиться основам задания весов и определения звеньев вершин и костей. Вершины персонажей игр в реальном времени нужно определять как твердые (rigid), и поэтому желательно присваивать вершины вручную, что несложно. Если к этому процессу, как и к любому другому, привыкнуть, то он не будет требовать много усилий.




    Ввод весовых значений


    Выделите вершины ступни, как показано на рис. 3.12, перетащив вдоль них рамку выделения.

    Ввод весовых значений

    Рис. 3.12. Выделите и присвойте вершины ступни
    Присвойте вершины звену Betty L Foot, а затем выделите только те из них, которые располагаются там, где будет лодыжка. Чтобы вызвать диалоговое окно Type-In Weights (Ввод весов), щелкните по кнопке Type-In Weights в свитке Vertex (рис. 3.13).

    Ввод весовых значений

    Рис. 3.13. Диалоговое окно Type-In Weights можно вызвать, только если вершины заблокированы
    По умолчанию при работе в этом окне на экране отображаются только те звенья, которым присвоены вершины. Чтобы увидеть все звенья, щелкните по переключателю All Links (Все звенья). Иначе нельзя будет присвоить вершины лодыжки звеньям Foot (Ступня) и Calf (Икра). Выделите звено Betty L Calf, щелкнув по нему, и введите в поле Weight (Вес) значение 1 (рис. 3.14).

    Ввод весовых значений

    Рис. 3.14 На вершину могут влиять сколько угодно звеньев
    Если влияние разделено между звеньями, то значения могут быть какими угодно. Например, два звена будут одинаково влиять на вершину с весами 0,5 и 0,5 вместо 1 и 1. Однако, если присвоить одному или нескольким звеньям веса, сумма которых меньше 1, то модификатор Physique автоматически увеличит влияние одного звена или другого, чтобы суммарный вес был равен 1.
    Отобразите скрытое звено Betty L Foot и поверните его относительно оси Z, чтобы проверить задание веса (рис. 3.15).

    Ввод весовых значений

    Рис. 3.15. Проверьте задание весов, повернув или переместив соответствующую кость
    Нажмите сочетание клавиш Ctrl+Z, чтобы отменить поворот ступни, и скройте ее еще раз. Выделите все вершины голени, находящиеся между лодыжкой и серединой колена, и присвойте их звену L Calf (рис. 3.16).

    Увеличьте масштаб области колена и выберите линию вершин, по которой соединяются звенья Thigh (Бедро) и Calf. Снова вызовите диалоговое окно Type-In Weights и введите для элемента Betty L Thigh значение 1 (рис. 3.17).

    Ввод весовых значений

    Рис. 3.16. Поч~и все вершины голени можно присвоить звену L Calf
    Ввод весовых значений

    Рис. 3.17. На колено должны влиять звенья как Thigh, так и Calf

    Отобразите скрытое звено Betty L Calf, согните голень и проверьте деформацию геометрии сетки колена (рис. 3.18).

    Ввод весовых значений

    Рис. 3.18. Протестировав деформацию колена, вы увидите, что нужны дополнительные изменения

    Колено выглядит приемлемо, но если внести дальнейшие изменения, оно будет смотреться еще лучше. Указанным вершинам колена присвойте значения, показанные на рис. 3.19.

    Теперь, когда нога сгибается, геометрия деформируется правильнее, а форма колена полностью сохраняется (рис. 3.20).

    Чтобы получить правильную деформацию, влияние можно распространить на любое число вершин и звеньев, какое вы посчитаете нужным, -над основным звеном или под ним.

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

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

    Ввод весовых значений

    Рис. 3.19. Лучше разделить между бедром и икрой еще несколько вершин

    Ввод весовых значений

    Рис. 3.20. Теперь колено сгибается гораздо лучше, а его форма сохраняется более точно


    Задание весов второй ноги


    Присвойте вершины правой ноги нужным звеньям, взяв за образец левую ногу, на задание весов которой уже было потрачено некоторое время. Сначала присвойте вершины элемента ноги Toe объекта m_torso звену Toe, а затем скройте их. Отобразите скрытый объект m_headarmleg и активизируйте окно проекции Front. Выделите объекты m_torso и m_headarmleg. Справа в свитке Vertex Operations щелкните по кнопке Select by Link (Выделить по звену) - рис. 3.43.

    Щелкните по левому звену Foot и проверьте, чтобы не было выделено ни одной вершины на правой ступне (рис. 3.44).

    С помощью кнопки Select by Link можно быстро посмотреть, какие вершины были присвоены и как. Некоторые вершины геометрии правой ступни присвоены левому звену Foot. Причина этому - поза каркаса объекта Biped. Не обращая внимания на это временное задание весов, выделите все вершины геометрии правой ступни, которая является зеркальным отражением геометрии левой ступни. Присвойте их звену Betty R Foot, затем, используя вершины левой ступни в качестве образца, введите такие же значения весов для вершин правой ступни (рис. 3.45).

    Тем же способом задайте веса правого колена и оставшейся части геометрии правой ноги. Достигнув области бедра, скройте объект m_headarmleg и не забудьте присвоить вершины левого ребра звену Betty L Thigh (рис. 3.46).

    Задание весов второй ноги

    Рис. 3.43 С помощью кнопки Select by Link можно выделить все вершины, присвоенные звену
    Задание весов второй ноги

    Рис. 3.44. При выборе левого звена Foot с целью посмотреть, какие вершины ему присвоены, выделяются и некоторые вершины геометрии правой ступни
    Задание весов второй ноги

    Рис. 3.45. Задать веса одной ступни можно быстро и легко, если принять за образец вершины другой ступни
    Задание весов второй ноги

    Рис. 3.46. Не забудьте присвоить вершины левого ребра звену Betty L Thigh




    Загрузка BIP-файла в объект Biped


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

    Скройте все объекты, кроме Betty Spine и m_torso. Выделите Betty Spine и откройте свиток Biped на панели Motion. He забудьте выйти из режима Figure. Щелкните по пиктограмме In Place Mode (Оставаться на месте) Загрузка BIP-файла в объект Biped
    (она станет фиолетовой). Теперь персонаж останется в поле зрения, даже если при анимации в нормальном режиме он в процессе перемещения покинет экран. В этом режиме удобно настраивать анимации персонажей игр в реальном времени, которых при подготовке к игре обычно нужно анимировать, не сходя с одной точки.

    Щелкните по пиктограмме Load File (Загрузить файл) - рис. 3.47.

    Загрузка BIP-файла в объект Biped

    Рис. 3.47 Чтобы применить анимацию BIP-файла к персонажу, щелкните по пиктограмме Load File
    Загрузите файл Run.bip на объект Biped персонажа.

    Щелкните по пиктограмме Time Configuration (Установки времени), которая находится в нижней части экрана справа (рис. 3.48).

    Загрузка BIP-файла в объект Biped

    Рис. 3.48. С помощью пиктограммы Time Configuration можно вызвать окно, в котором задается число отображаемых кадров
    Загрузка BIP-файла в объект Biped

    Рис. 3.49. Определите длительность анимации в полях Start Time и End Time -19 кадров (0-18)
    В появившемся окне Time Configuration определите число кадров активного диапазона анимации, задав в поле Start Time (Время начала) значение 0, а в поле End Time (Время окончания) - значение 18 (рис. 3.49).

    Так как продолжительность анимации изменена в соответствии с файлом Run.bip, то анимацию можно проигрывать бесконечно. Нажмите кнопку ОК, при перемещении ползунка шкалы времени или при переходе от одного кадра анимации к другому сетка будет деформироваться согласно анимации бега.

    Перемещайтесь по анимации кадр за кадром, нажимая клавишу . (точка). Вернитесь на кадр назад, нажав клавишу, (запятая). Воспроизведите и остановите анимацию, нажимая клавишу / (слэш).

    Если применить к Biped анимацию, то будет проще увидеть, как деформируются все части сетки. А если включен режим In Place, то при редактировании весов персонаж не «убежит».

    Пиктограмма In Place Mode вызывает выпадающее меню, в котором можно ограничить движение только вдоль оси X, только вдоль оси Уши вдоль обеих осей одновременно (устанавливается по умолчанию). Наведите указатель мыши на пиктограмму, нажмите и удерживайте кнопку мыши и, чтобы увидеть остальные пункты, перетащите указатель вниз (рис. 3.50).

    Загрузка BIP-файла в объект Biped

    Рис. 3.50. Выпадающее меню, вызываемое при активизации пиктограммы In Place Mode

    Загрузка BIP-файла в объект Biped Загрузка BIP-файла в объект Biped Загрузка BIP-файла в объект Biped

    Закрепление бедер


    По сложности задания веса бедра находятся на втором месте после плеч. Прежде чем вручную задавать веса вершин, полезно посмотреть, насколько точно будет задан вес бедер при инициализации, определяемой по умолчанию.

    Поместите Betty в исходную позу (включите режим Initial Skeletal Pose) и выделите все вершины вокруг бедер. Активизируйте кнопку Remove from Link, щелкнув по ней, перейдите в окно проекции Front и протащите рамку выделения вдоль всех звеньев каждой руки.

    Если вы используете команду Remove from Link, нужно выбрать правильный тип вершин из трех доступных. Используются только твердые вершины, поэтому активизируйте зеленый знак + (плюс), иначе удаления не произойдет. А в выпадающем списке Blending Between Links выберите вариант No Blending (рис. 3.51).
    Закрепление бедер

    Рис. 3.51. В разделе Vertex Type выберите цвет вершин, к которым применяется команда Remove from Link
    Перетащите рамку выделения и вдоль звеньев позвоночника в верхней части туловища. Заблокируйте вершины и воспроизведите анимацию или запускайте ее кадр за кадром. Передняя часть бедра выглядит хорошо, задняя часть смотрится неплохо, за исключением нижних двух рядов вершин. Когда Betty делает шаг, можно увидеть, что вес этих вершин, присвоенных звеньям ног, слишком большой, - это нужно исправить.

    Вновь включите режим Initial Skeletal Pose и на правой ягодице Betty выделите девять вершин, как показано на рис. 3.52. Разблокируйте их и присвойте им вес 1 для звеньев Betty R Thigh и Spine - последнее в диалоговом окне Type-In Weights находится прямо над первым (рис. 3.52).

    Закрепление бедер

    Рис. 3.52. Присвойте этим вершинам одинаковое значение веса для звеньев Thigh и Spine
    Если в свитке Structure каркаса Biped не отмечена опция Triangle Pelvis, то в списке не появятся два дополнительных звена Spine, которые удерживают два бедра рядом (рис. 353). Как будет показано далее, очень часто. если не всегда, эти два звена Spine работают лучше, чем звено Pelvis (Таз). и соединяют бедра друг с другом.
    Снова выключите режим Initial Skeletal Pose и посмотрите, как будет деформироваться область бедер. Теперь все объекты должны выглядеть хорошо, кроме трех вершин над теми, которые только что были исправлены. Выделите их, разблокируйте и присвойте звену Spine, находящемуся над звеном Thigh (рис. 3.54).

    Присвойте вершины звену Spine, затем присвойте каждую вершину звену Betty R Thigh с весом 0,5. Еще раз выключите режим Initial Skeletal Pose и проверьте с разных точек обзора, как деформируется при беге правая ягодица. Проделайте то же самое с левой ягодицей, используя правую в качестве образца. Они должны выглядеть хорошо - бедра готовы.

    Закрепление бедер

    Рис. 3.53. Опция Triangle Pelvis весьма полезна
    Закрепление бедер

    Рис. 3.54. Веса этих вершин нужно еще немного изменить




    Использование окна Type-In Weights


    Наконец, последнее средство для настройки областей сетки, которые с помощью оболочек исправить не получится, - ввести их веса вручную. Большой палец руки - одна из таких областей. Данный прием заключается в том, чтобы разделить палец на зоны, соответствующие находящимся внутри них звеньям, и присвоить вершины внутри зон этим звеньям.

    Звенья, на которые поделен палец, будут влиять одинаково на вершины, находящиеся прямо на границе между ними. Например, на рис. 4.29 звеньям зон 1-5 присвоены все вершины, лежащие внутри границ зон, а вершины, близкие к границе, находятся под одинаковым влиянием смежных звеньев.

    Использование окна Type-In Weights

    Рис. 4.29. Чтобы правильно задать веса большого пальца, разделите его на зоны
    Решайте сами, стоит ли тратить на настраивание пальцев, включая большой, много времени. Обычно эти детали персонажа приложения в реальном времени не бросаются в глаза.




    Как применять модификатор Physique


    Шаги, которые нужно выполнить, чтобы, используя оболочки, правильно применить к персонажу модификатор Physique, напоминают шаги при определении вершин вручную:

    1. Убедитесь, что стеки всех объектов сетки свернуты и готовы к работе.

    2. Создайте каркас Biped и включите для него режим Figure.

    3. Примените к объектам сетки модификатор Physique.

    4. Активизируйте функцию Attach to Node, а затем щелкните по тазовой области Biped.

    5. В разделе Vertex - Link Assignment выберите переключатель Rigid.

    6. Отмените для Biped режим Figure и примените к нему анимацию.

    7. Настройте веса вершин персонажа, изменив параметры подобъекта Envelope в свитке управления модификатора Physique и задав весовые значения отдельных вершин.

    8. Включите и выключите режим Initial Skeletal Pose, чтобы увидеть результат задания весов.

    9. Сохраните значения весов в файле с расширением .phy.

    При использовании оболочек особое внимание необходимо уделить пункту 7 приведенного списка. Весовые значения персонажа, для которого в основном используются оболочки, настраиваются в следующем порядке:

    1. Выключите все ненужные оболочки.

    2. Настройте радиальный масштаб оболочек.

    3. Настройте параметры Parent Overlap (Перекрытие с родительским объектом) и Child Overlap (Перекрытие с дочерним объектом) оболочек.

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

    5. Удалите некоторые вершины из соответствующих звеньев.

    6. В окне Type-In Weights задайте веса оставшихся вершин.

    Если сначала настроить параметры оболочки, то можно сэкономить много времени, потому что эти параметры влияют на все вершины всех объектов сетки, к которым применяется модификатор Physique. Быстрое задание весов персонажа- и есть преимущество использования оболочек. Задание значений вершин вручную - последний шаг в определении весов игрового персонажа с высоким разрешением, потому что (как упоминалось ранее) этот процесс занимает больше всего времени.




    Копирование и вставка параметров для симметричных конечностей


    Возможности настройки оболочек в character studio включают в себя очень хороший инструмент, позволяющий копировать и вставлять параметры звена. Им очень просто пользоваться. Активизируйте оболочку Bikini L Upper Arm, откройте раздел Edit Commands (Команды редактирования) свитка Blending Envelopes и щелкните по кнопке Сору (Копировать) - рис. 4.20.

    Копирование и вставка параметров для симметричных конечностей

    Рис. 4.20 Параметры оболочки можно скопировать и использовать для других звеньев или оболочек
    Чтобы вставить параметры оболочки, щелкните по звену Bikini R UpperArm и нажмите кнопку Paste (Вставить), которая находится рядом с кнопкой Сору.

    При изменении рук и ног можно выделить оба симметричных звена одновременно. Если выделено более одного звена, то значение, введенное в управляющем свитке, будет присвоено всем выделенным звеньям. Этот метод -альтернатива копированию и вставке параметров звена или оболочки.
    Повторить настройки одной оболочки для другой не так уж сложно, однако, если параметров много и на их введение ушло немало времени, то функция копирования и вставки, существующая в character studio, очень пригодится. Есть еще один способ настройки оболочек - с помощью режимов редактирования Cross Section (Сечение) и Control Point (Управляющая точка) - рис. 4.21.

    Копирование и вставка параметров для симметричных конечностей

    Рис. 4.21 Настройка параметров оболочки, используя режимы Cross Section и Control Point, - дополнительный способ изменения формы оболочки и последующего ее влияния на вершины звена
    С помощью режима Cross Section можно перемещать поперечные сечения оболочки вдоль оси звена. Чтобы получить доступ к этой функции, щелкните по пиктограмме Cross Section: она станет активной вместо пиктограммы Links, которая активна по умолчанию. Выделите поперечное сечение на выбранном звене и переместите его, используя обычную операцию перемещения. В режиме Control Point можно захватить и перетащить управляющие точки поперечного сечения. Щелкните по пиктограмме этой функции и активизируйте ее, затем щелкните по управляющей точке - теперь ее можно переместить в нужное положение вдоль любой оси.

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




    Настройка головы и лица


    У таких персонажей, как Betty Bad, геометрия головы не имеет движущихся частей и целиком присвоена звену Head - это простое и удачное решение. Однако у таких персонажей, как Bikini, наоборот, обычно есть лицевой каркас. Для создания прически к голове могут быть присоединены кости (например, для волос, собранных в хвост), и чтобы задать веса головы, потребуется больше внимания и усилий. Вновь появляется необходимость ввода весовых значений вручную. Однако теперь, когда вы уже имеете общее представление о том, как это делается и как настраивать оболочки, можете, не концентрируясь на процессе, просто изучить конечный результат.

    Загрузите файл BikiniS.max. Выделите объект головы и активизируйте подобъект Vertex модификатора Physique (рис. 4.37).

    Настройка головы и лица

    Рис. 4.37. Почти все вершины головы этого персонажа присвоены звену Head
    Заметьте, что большинство вершин присвоены только одному звену и лишь некоторые из них имеют темно-зеленый цвет, свидетельствующий о смешанном влиянии. Голова находится непосредственно над туловищем (хотя и отсоединена от него), поэтому, безусловно, вершины на основании шеи разделяют весовые значения со звеном Neck. На вершины вблизи рта и глаз влияет более чем одна кость, потому что этого требует основной лицевой каркас, присоединенный к туловищу, то есть возникает необходимость движения и моргания глаз, а также размыкания губ.

    Важно не забыть начать задание весов головы с присвоения всех вершин звену Head. Так можно получить основную точку отсчета и избежать случайного задания весов или нежелательного влияния оболочки на геометрию. Если голова состоит из множества объектов, как у нашего персонажа, начните с геометрии, веса которой можно задать быстрее всего, а затем скройте ее. В нашем случае первым объектом были выбраны волосы. Все их вершины были присвоены голове, даже та геометрия, которая находится около плеч и шеи (в этом случае взмахи хвоста волос незаметны и ими можно пренебречь), а объект сетки был скрыт. Следующим объектом стала геометрия рта m_mouth (рис. 4.38).


    Настройка головы и лица

    Рис. 4.38. Иногда геометрию полностью отсоединяют, чтобы получить к ней доступ при задании весов

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

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

    После работы с объектом m_mouth задаются веса самой головы, начиная с линии шеи. Для этого одновременно настраиваются значения m_head и m_body (рис. 4.39).

    Настройка головы и лица

    Рис. 4.39. Вес шеи задается путем одновременной настройки объектов сетки головы и туловища, потому что вершины находятся на одном уровне

    Вершины шеи, подсвеченные на рис. 4.39, находятся на стыке головы и шеи персонажа. На них одинаково влияют звенья Head и Neck. Вершинам, находящимся точно под ними, присвоено весовое значение 1 для звена Neck и 0,5 для звена Head: так гарантируется гладкая деформация этой области при повороте головы в разные стороны. На вершины, находящиеся над точкой центра трансформаций кости головы, влияют звенья Neck, Head и Jaw. Волосы можно присвоить только звену Head. А что касается челюсти, то ее вершины частично или полностью присвоены звену Jaw (рис. 4.40).

    Дополнительное звено bjaw2 на краю челюсти не является необходимым, но так проще выделить звено, чем если бы оно шло прямо к кости нижней губы. Главное его назначение - увеличение деформации нижней губы, когда в этом возникает необходимость. Чтобы с помощью костей можно было создать улыбку или недовольную гримасу, задается вес уголков рта. Вершины остальной части лица, до глаз, присвоены голове.

    Настройка головы и лица

    Рис. 4.40. Эти вершины полностью или частично связаны со звеном Jaw

    Теперь приступим к глазам. Чтобы персонаж моргал, нужны лишь две кости, которые управляют каждым веком (рис. 4.41).



    Если создаваемый персонаж должен моргать, то проще задавать веса геометрии и анимироватъ ее в положении закрытых глаз. При использовании костей сначала задавать веса вершин поля положения с открытыми глазами, а затем анимироватъ закрывающиеся глаза - сложнее, чем наоборот.

    На эти вершины влияет звено Head и звенья соответствующих костей глаза (но не кости глазных яблок). Если требуется больше выразительности, нужно добавить дополнительные кости для движения бровей. Как только заданы веса геометрии век, можно отобразить скрытую геометрию волос и присоединенных ресниц и задать им такие же веса, как векам (рис. 4.42).

    На этом задание весов персонажа с высоким разрешением для приложения в реальном времени завершено. Не забудьте, что имеет смысл максимально использовать преимущества оболочки, прежде чем приниматься за задание весов вершин вручную. Так вы сэкономите массу времени и усилий (рис. 4.43).

    Настройка головы и лица

    Рис. 4.41. Принимая во внимание особенности задания весов, геометрия глаза строится при закрытых веках

    Настройка головы и лица

    Рис. 4.42. Текстурные карты геометрии ресниц и волос совпадают, поэтому они принадлежат одному и тому же сеточному объекту

    Настройка головы и лица

    Рис. 4.43. Попрощаемся с девушкой Bikini


    Настройка перекрытия оболочек родительского и дочернего объектов


    Если в поле Radial Scale для звена Spine2 ввести меньшее значение, то плечо сохранит форму при анимации, однако, настраивая эту оболочку, нужно выполнить следующее. Перейдите к кадру 260 и поверните точку обзора так, чтобы видеть заднюю сторону сетки (рис. 4.15).

    Откройте снова свиток Blending Envelopes и введите значение 0.4 в поле Child Overlap (рис. 4.16).

    Оболочка расширится и захватит звено, находящееся ниже выделенного в иерархии звеньев. Она становится больше, чем при исходном значении 0,1, и сглаживает наблюдавшуюся ранее неестественность деформации плеча (рис. 4.17).

    Однако иногда в поле Child Overlap лучше не увеличить, а уменьшить значение. Перейдите к кадру НО и посмотрите на левую руку (рис. 4.18)

    Настройка перекрытия оболочек родительского и дочернего объектов

    Рис. 4.15. Плечо нужно еще немнсго изменить
    Настройка перекрытия оболочек родительского и дочернего объектов

    Рис. 4.16 Параметры Child Overlap и Parent Overlap имеют решающее значение для некоторых оболочек
    Чтобы исправить область локтя, в поле Child Overlap звена Bikini L Upper Arm введите значение 0 - результат представлен на рис. 4.19.

    Безусловно, величина, на которую нужно увеличить либо уменьшить параметры Child Overlap и Parent Overlap, определяется типом каркаса, созданного для персонажа. Но, вообще говоря, наилучшая деформация области плеча и локтя достигается при увеличении перекрытия дочернего объекта верхним звеном Spine и уменьшении его перекрытия звеном UpperArm. А есть ли способ скопировать параметры оболочки Bikini L UpperArm на звено Bikini R UpperArm? Конечно, есть.

    Настройка перекрытия оболочек родительского и дочернего объектов

    Рис. 4.17. Острый угол плеча пропадает, так как в поле Child Overlap звена Spine2 введено большее значение
    Настройка перекрытия оболочек родительского и дочернего объектов

    Рис. 4.18. Кажется, что локоть вдавлен. Это происходит из-за того, что оболочка UpperArm слишком сильно влияет на него
    Настройка перекрытия оболочек родительского и дочернего объектов

    Рис. 4.19. Если ослабить влияние на дочернее звено, то при сгибании предплечья локтевой сустав не будет вдавливаться




    Настройка радиального масштаба оболочек


    Если оболочка не включает в себя вершину, она не будет на нее влиять. Поэтому иногда нужно увеличить или уменьшить оболочку либо изменить ее так, чтобы она включала в себя (или же, наоборот, не включала) некоторые вершины. В таких областях, как плечи и бедра, оболочки работают лучше всего, если одна и та же вершина (или вершины) окружена сразу несколькими из них. В свитке подобъекта Envelope модификатора Physique имеется все, что необходимо для настройки основной формы и параметров оболочки.

    Сначала щелкните по модификатору Physique вверху стека, выделите один из объектов Biped и выключите режим Figure. Выделите только объект m_body, вернитесь на панель Modify, откройте свиток подобъекта Envelope, прокрутите его до конца и активизируйте режим Initial Skeletal Pose (рис. 4.9).

    Щелкните правой кнопкой мыши по сцене и выполните операцию - Hide Unselected, чтобы очистить рабочее пространство. Затем выделите два звена Breast, которые являются родительскими для конечных звеньев, выделенных ранее (рис. 4.10).

    Настройка радиального масштаба оболочек

    Рис. 4.9. Режим Initial Skeletal Pose доступен и в свитке подобъекта Envelope
    Настройка радиального масштаба оболочек

    Рис. 4.10. Эти звенья были созданы простым помещением в персонаж костей Breast
    В поле Radial Scale (Радиальный масштаб) свитка Envelope Parameters введите значение 0,4. Убедитесь, что кнопка Both (Оба), находящаяся сверху, активна и имеет фиолетовый цвет (рис. 4.11).

    Если опция Both активна, то исходное значение, присвоенное как внутреннему (inner), так и внешнему (outer) диапазону оболочки, умножается на число, введенное в поле Radial Scale. Исходное значение отношения внутреннего и внешнего размеров определяется во время инициализации, обычно для параметра Inner оно равно 1, а для Outer- 1,75. Таким образом, когда вводится значение 0,4, параметры внешней и внутренней оболочек умножаются на эту десятичную дробь и размер выделенных оболочек заметно уменьшается (рис. 4.12).

    Настройка радиального масштаба оболочек

    Рис. 4.11 Настраивая влияние оболочки, сначала задайте значение в поле Radial Scale
    Настройка радиального масштаба оболочек

    Рис. 4.12. Размер этих оболочек составляет 0,4 от исходного размера, поэтому они влияют на меньшее число вершин

    Эти звенья тоже можно выключить, но если включить их с меньшим значением параметра, то получается неожиданный, но приятный косметический эффект. Когда персонаж наклоняется и движется в танце по кругу, сферы влияния сжимают вершины талии, тем самым увеличивая подтянутость, женственность и привлекательность танцовщицы.

    Активизируйте окно проекции Front и выделите звено Bikini Spine2, которое находится прямо под шеей. Перейдите к кадру 430, переместив ползунок шкалы времени1, и выключите режим Initial Skeletal Pose. Активизируйте окно проекции Perspective, нажав клавишу Р, и поверните точку обзора так, чтобы видеть область левого плеча (рис. 4.13).

    Настройка радиального масштаба оболочек

    Рис. 4.13. Очевидно, что область плеча нужно исправить

    Самое трудное в задании весов высокополинональных персонажей с привязкой типа Rigid - это настроить плечи такой сетки, когда персонаж находится в.позе с поднятыми руками. Поза с руками, заведенными назад, тоже выглядит немного грубо, но эту некрасивую деформацию проще исправить.

    Выделите звено Spine2 и введите в поле Radial Scale значение 0,8. Теперь область плеча слева больше похожа на настоящую дельтовидную мышцу (рис. 4.14).

    Настройка радиального масштаба оболочек

    Рис. 4.14. Когда влияние звена Spine2 ослабили, плечо стало выглядеть лучше

    Есть и другие звенья, требующие настройки параметра Radial Scale, но мы пока говорим об области плеча и теперь познакомимся с другим способом изменения оболочки: настройкой перекрытия оболочек родительского и дочернего объектов.


    Отключение ненужных оболочек


    Загрузите файл Bikini2.max (рис. 4.1).

    Этот персонаж, Bikini, состоит из 5663 треугольников. Изучите его сетку. В первую очередь в глаза бросается то, что всем объектам Biped и костям, присоединенным к Biped, присвоен материал с нулевой непрозрачностью (opacity). Поэтому сетку можно просматривать и в затененном (shaded) режиме - сплошные объекты Biped ее не закроют. Есть и другие способы сделать объект Biped прозрачным, но этот самый надежный (более подробно о нем рассказывается в главе 6).

    Отключение ненужных оболочек

    Рис. 4.1. Просто девушка в бикини
    Есть еще один способ сделать Biped менее зачетным при просмотре сетки. Выделите все объекты Biped и объекты костей, щелкните по ним правой кнопкой мыши, выберите в появившемся меню пункт Properties и отметьте опцию See-Through (Прозрачность) в разделе Display Properties (Свойства отображения) - рис. 4.2.
    Таким образом, объекты становятся прозрачными, но их непрозрачность управляется программой 3ds max, а не пользователем. Это один из вариантов. Также можно присвоить объектам каркасный (wireframe) материал и просматривать их как каркасы при любом алгоритме визуализации. Существует еще один способ изменить вид объекта, который применим только к объектам. Щелкните в разделе Display для объекта Biped по пиктограмме Objects (Объекты), Bones (Кости) или Bones/Objects (рис. 4.3).

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

    Отключение ненужных оболочек

    Рис. 4.2 С помощью опции See-Through также можно сделать объекты Biped менее заметными при просмотре сетки в затененном окне проекции
    Отключение ненужных оболочек

    Рис. 4.3 Другой способ упростить просмотр объектов сетки в затененном окне проекции - выбрать пиктограмму в разделе Display
    Заметим, что звеньев Spine у этого персонажа только три, а не четыре. Причина этому - способ получения данных захвата движения (тосар), которые используются в файле формата BIP.


    Выделите все объекты сетки (m_*) персонажа и примените к ним модификатор Physique. He забудьте про операцию Attach To Node.

    Активизируйте окно проекции Right, в стеке Physique сделайте активным подобъект Envelope и увеличьте масштаб области головы. Осторожно выделите все звенья головы, кроме Bikini Head (рис. 4.4).

    Отключение ненужных оболочек

    Рис. 4.4. Выделите все оболочки звеньев головы, кроме звена Head

    При работе с большим числом звеньев, которые составят лицевой каркас, простейший способ выделить все звенья, кроме звена головы, - выделить все объекты сверху от шеи, а затем, удерживая клавишу Alt, выделить звено Head, таким образом исключив его из области выделения.

    В свитке Blending Envelopes (Смешивание оболочек) в разделе Active Blending (Активное смешивание) отключите выделенные звенья, сняв флажок Rigid (рис. 4.5).

    Отключение ненужных оболочек

    Рис. 4.5 Чтобы выключить оболочки, нужно просто снять соответствующий флажок

    Программе 3ds max на обработку этого действия может потребоваться некоторое время - и, как только оболочки будут выключены, перейдите к подобъекту Vertex модификатора Physique и выделите вершины сетки головы. Теперь на них влияет только звено Bikini Head.

    Существует еще один способ удалить вершины из области влияния оболочки. Выделите оболочку, откройте свиток Blending Envelopes и введите в поле Strength (Сила) раздела Envelope Parameters (Параметры оболочки) значение, равное 0 (рис. 4.6).

    Отключение ненужных оболочек

    Рис. 4.6. Выключить оболочку можно также, введя значение 0 в поле Strength

    Если обнаружится, что величина влияния оболочки уменьшена до нуля или близка к этому, просто выключите оболочку. При минимальном числе активных оболочек экономятся время обработки данных и ваши усилия.

    Причина, по которой все оболочки были выключены, заключается в том, что при создании лица даже с таким разрешением они будут бесполезны. Единственный способ правильно задать веса - определять вершины вручную.

    Спуститесь к конечным звеньям Breast (Грудь) и выключите их (рис. 4.7).

    Отключение ненужных оболочек

    Рис. 4.7. Оболочки Breast также не нужны



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

    Если бы к объектам Breast не были привязаны объекты-пустышки направляющих (dummy Nubs), этого звена не существовало бы, а движения параллелепипедов груди не влияли бы на ее геометрию.

    Осталось выключить только звено Pelvis. Активизируйте окно проекции Front, инструментом Arc Rotate поверните точку обзора так, чтобы видеть маленькое звено под звеном Spine. Выделите звено и выключите его (рис. 4.8).

    Отключение ненужных оболочек

    Рис. 4.8. Звено Pelvis также можно выключить

    Причина выключения звена Pelvis не в специфике задания весов, а в игровом движке, на который экспортируется персонаж. Так или иначе на многих игровых движках возникают трудности именно с этим звеном. Кроме тот. если в свитке Structure объекта Biped активизирована опция Triangle Pelvis, то звено Pelvis, возможно, и не нужно вовсе.


    Присвоение вершин груди


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

    Присвоение вершин груди

    Рис. 4.30. Перед заданием весов груди скройте все остальные вершины сетки
    Если нужно скрыть большую часть вершин, воспользуйтесь командой Select Invert (Инвертирование выделения). Выделите те вершины, которые вы хотите оставить, откройте меню Edit (Редактирование) и щелкните по пункту Select Invert. Выделенные вершины перестанут быть таковыми, а невыделенные станут выделенными, и их можно будет скрыть (рис. 4.31).
    Поверните точку обзора вокруг передней стороны сетки, затем выделите и скройте любые вершины, которые принадлежат туловищу и не должны двигаться вместе с грудью. Исключением является узкая область между выпуклостями груди - она будет двигаться вместе с грудью во избежание неправильной деформации (рис. 4.32).

    Присвоение вершин груди

    Рис. 4.31 С помощью команды Select Invert можно быстро выделить и скрыть большую группу вершин
    Присвоение вершин груди

    Рис. 4.32. Выделите и скройте вершины, которые принадлежат туловищу и лежат за грудью
    Как только неподвижные вершины туловища будут скрыты, снова активизируйте окно проекции Front и выделите все вершины геометрии правой части груди, включая вершины геометрии области между выпуклостями груди с левой стороны. Убедитесь, что для вершин определен тип Rigid. В выпадающем списке Blending Between Links выберите No Blending и присвойте выделенные вершины звену b_rbreast_nub, которое находится в конце цепочки костей правой части груди (рис. 4.33).

    Присвоение вершин груди

    Рис. 4.33. Присвойте все вершины, находящиеся внутри параллелепипеда, звену b_rbreast_nub
    Центральные вершины, которые составляют узкую область между выпуклостями груди, можно присвоить любому звену' правому или левому. Добавив их на этом шаге, вы сэкономите время. Нажмите и удерживайте клавишу Alt и отмените выделение всех только что выделенных вершин. Вызовите окно Type-In Weights и введите вес, равный 1, для звена b_rbreast_nub, чтобы разделить влияние над вершинами области между выпуклостями груди (рис. 4.34).


    Выделите оставшиеся вершины с левой стороны и присвойте их звену b_lbreast_nub, которое находится в конце цепочки костей левой части груди.

    Пришло время экспериментально определить весовые значения для вершин, которые привязаны к оставшейся части туловища - в верхних областях груди. Выделите только те вершины, которые находятся выше груди и ниже подмышек, и добавьте в качестве влияющего звено Spine2 (рис. 4.35).

    Присвоение вершин груди

    Рис. 4.34. Эти соединные вершины связаны с обеими костями груди

    Присвоение вершин груди

    Рис. 4.35. Частичное присваивание этих вершин звену Spine2 уменьшит воздействие звеньев груди, что улучшит ее деформацию

    Это гарантирует, что грудь не будет неестественно растягиваться при движении. Чтобы эта область стала безупречной, увеличьте влияние звена Spine1 на вершины туловища, которые находятся по обеим сторонам груди (рис. 4.36).

    Присвоение вершин груди

    Рис. 4.36. Деформация груди улучшится, если присвоить эти вершины звену Spine1

    Выключите режим Initial Skeletal Pose и перейдите в затененное окно проекции. Подвигайте ползунок шкалы времени из стороны в сторону, чтобы посмотреть, как деформируется сетка при перемещении персонажа. Когда вы убедитесь, что грудь движется естественно, можно переходить к настройке головы и лица.


    Работа с оболочками


    Понять, как в character studio применяются оболочки, непросто. Чтобы при задании весов воспользоваться всеми их преимуществами, потребуется не один час практики. Однако это стоит сделать, если вы работаете с высокополигональными персонажами. Присвоение весовых значений вручную обеспечивает лучший контроль над объектом, но время работы при этом увеличивается. Чтобы вручную определить веса вершин сетки из 6000 или 7000 треугольников, потребуется 50-100 ч. А на задание весов с помощью оболочек уходит 50-100 мин. Если персонажи для проекта, над которым вы работаете, имеют высокое разрешение, то вам придется освоить работу с оболочками, чтобы укладываться в определенные сроки.




    лучший способ выполнить задание весов


    Настройка оболочек - лучший способ выполнить задание весов персонажей с высоким разрешением для приложений в реальном времени. Основную позу персонажа, веса которого будут задаваться с помощью оболочек, нужно хорошо продумать. Если персонаж находится в позе да Винчи (руки разведены в стороны, ноги расставлены), то конечности расположены друг от друга на расстоянии, достаточном для того, чтобы созданные оболочки влияли только на нужную геометрию.

    Порядок, в котором применяется модификатор Physique и задаются веса, более важен при использовании оболочек, чем при задании весов вручную. Если модификатор Physique применяется ко всем объектам сетки персонажа одновременно, то определяемые параметры оболочек применяются ко всем объектам, даже если те скрыты или не выделены. Поэтому при работе с персонажем с высоким разрешением нужно задать как можно больше весов с помощью оболочек, и только затем вводить весовые значения вручную. Таким образом можно сэкономить время и усилия.


    лучший способ выполнить задание весов лучший способ выполнить задание весов

    Удаление вершин из звеньев


    Оболочки хорошо работают для определенных типов персонажей, но быстро задать нужные веса можно и другим способом - с помощью операции Remove Vertices from Link (Удалить вершины из звена).

    Снова включите режим Initial Skeletal Pose, активизируйте окно проекции Тор и прокручивайте сцену или увеличивайте масштаб до тех пор, пока сетка правой руки не заполнит экран. Выделите все вершины указательного пальца, начав с его второго сустава (рис. 4.22).

    Удаление вершин из звеньев

    Рис. 4.22. Чтобы удалить вершины указательного пальца из ненужных звеньев, выделите эти вершины
    Не отменяя выделения вершин, щелкните по кнопке Remove from Links, она станет активной; убедитесь, что в разделе Vertex Type выбраны вершины Rigid (они зеленые), и протащите область выделения вдоль всех звеньев ладони, кроме двух последних звеньев указательного пальца, которые находятся прямо под выделенными вершинами. После удаления вершин из ненужных звеньев, заблокируйте эти вершины и повторите операцию для других пальцев (кроме большого).

    Выключите режим Initial Skeletal Pose и проверьте анимацию - при сгибании пальцы будут деформироваться правильно (рис. 4.23).

    Удаление вершин из звеньев

    Рис. 4.23. После удаления определенных вершин из звеньев все пальцы выглядят прекрасно, кроме искаженного большого




    Задание весов вершин талии, бедер и ног


    Задать веса талии довольно просто. Нужно лишь немного уменьшить значение в поле Radial Scale и продлить первое звено Spine до его родительского элемента - тазовой области. В окне проекции Front поместите персонаж в исходную скелетную позу, если это еще не сделано, выделите звено Spine, уменьшите значение в поле Radial Scale до 0,8 и введите в поле Parent Overlap значение 0,3 (рис. 4.24).

    Увеличение оболочки Spine до тазовой области компенсирует то, что звено Pelvis отключено. Два звена, которые соединяют звено Spine со звеньями Thigh, также называются звеньями Spine, но на самом деле они служат правым и левым звеньями типа Pelvis.

    В целом система присвоения имен звеньям в character studio 3 и 4 лучше, чем в character studio 2, но возможность давать избыточные названия сбивает с толку. Приводит в недоумение и решение присваивать звеньям, находящимся прямо над бедрами, а также фактически внутри бедер, имя Spine. Почему их не назвали L Hip (Бедро) и R Hip?
    Две пересекающиеся оболочки Spine должны не только поддерживать форму бедер, тазовой области и ягодиц, но и перекрывать звенья Thigh. Выделите эти два звена, которые находятся прямо над звеньями Thigh. He изменяйте значения в полях Radial Scale и Parent Overlap, а значение в поле Child Overlap увеличьте до 0,7 (рис. 4.25).

    Задание весов вершин талии, бедер и ног

    Рис. 4.24. Оболочку области талии нужно немного продлить до тазовой
    Задание весов вершин талии, бедер и ног

    Рис. 4.25. Эти две оболочки заменяют звено Pelvis - и весьма успешно
    Переходите к области бедер, которую нужно немного изменить. Производим операции над звеньями Thigh. Сначала уменьшите значения в полях Radial Scale до 0,8 для обоих звеньев так, чтобы оболочка левого бедра окружала меньше вершин правого бедра и наоборот. Чтобы геометрия ягодиц оказывала не слишком сильное влияние, можно уменьшить до нуля значение в поле Parent Overlap. Звено Thigh, как и UpperArm, которое нужно было отделить от звена Forearm, должно быть отделено от звена Calf, поэтому введите значение 0 и в поле Child Overlap (рис. 4.26).

    Задание весов вершин талии, бедер и ног

    Рис. 4.26. Влияние звеньев Thigh на родительские и дочерние звенья нужно значительно уменьшить

    Наконец, звенья Betty L Calf и Betty R Calf нужно настроить с помощью таких же отношений родительских и дочерних объектов. Уменьшите значения для этих звеньев в полях Radial Scale до 0,8, значения в полях Parent Overlap оставьте без изменений, а в полях Child Overlap - измените на 0 (рис. 4.27).

    Теперь можно перейти к ступням. Вершины на нижней стороне ступней должны быть твердыми. Они соприкасаются с землей и не будут деформироваться, за исключением тех случаев, когда нужно сгибать звено Toe. Пальцы ног персонажа Bikini не могут сгибаться, поэтому все вершины ниже лодыжки можно присвоить только звену Foot (рис. 4.28).

    Задание весов вершин талии, бедер и ног

    Рис. 4.27. Область икры и голени должна меньше влиять на дочерчие звенья
    Задание весов вершин талии, бедер и ног

    Рис. 4.28. Ступни снизу должны быть твердыми

    Анимация на основе ключевых кадров или захват движения?


    Аниматору персонажей очень важно знать, сколько времени потребуется, чтобы смоделировать реалистичное или гротескное движение. Самый важный вопрос, который нужно себе задать: «А правильно ли это выглядит?» Достигла ли анимация цели? И, что важнее, подходит ли она персонажу?

    Для анимации персонажа, вообще говоря, можно применять два подхода: создание ключевых кадров (keyframe) и захват движения (motion capture, или mocap). Это утверждение несколько условно, так как в действительности все анимации основаны на ключевых кадрах. Персонаж просто невозможно анимировать, не применяя ключевые кадры.

    Противники захвата движения недооценивают этот подход (это не искусство, говорят они). Действительно, это всего лишь инструмент, как и любой плагин, купленная сетка персонажа или отсканированная текстура. Многие пуристы думают, что следует использовать либо один, либо другой подход, кадрирование или захват движения. Однако захват движения - это просто отправная точка при анимации персонажей, он не заменяет ручную работу с ключевыми кадрами. Верно лишь то, что если анимировать персонажей игр в реальном времени с помощью и захвата движения, и ключевых кадров, то можно быстро получить прекрасные анимации. Нет сомнения, что в любом случае начинать освоение анимации персонажа нужно с изучения операций с ключевыми кадрами.




    Игровая среда


    Игровая среда также влияет на набор анимаций персонажа. Будет ли персонаж летать? Есть ли водоем, в котором он будет плавать (рис. 5.4)? Есть ли в игровой динамике скалы, по которым можно будет карабкаться? Нужно ли персонажу взбираться по веревке или качаться на ней?

    Игровая среда

    Рис. 5.4. Анимация плавания нужна только тогда, когда есть, где плавать
    На все эти вопросы можно найти ответы, обратившись к дизайну игры. Их прояснят главный дизайнер, руководитель проекта и художественный руководитель. Главное же то, что жанр определяет большинство элементов дизайна игры, особенно набор анимаций.




    Элементы управления персонажем


    Элементы управления персонажем, которыми пользуется игрок, также влияют на выбор числа и типов необходимых анимаций. В игре Betty Bad при достаточно резкой смене направления движения Betty исполняет другую анимацию, которая усиливает эффект внезапности. Например, при перемещении боком влево или вправо Betty наклоняется влево или вправо соответственно. Если ей хватает пространства для перемещения в сторону, она исполняет потрясающий кульбит, которым покрывается большее расстояние и который выглядит впечатляюще (рис. 5.6).

    Основной чертой Quake - первой очень удачной трехмерной fPS-игры -была быстрая смена оружия. Это значит, что когда игрок выбирает другое оружие, оно появляется в руке персонажа немедленно. Во время разработки Quake II разгорались длительные споры о том, сколько времени персонаж должен тратить на смену оружия и нужно ли это вообще. Многие жаловались, что смена происходит слишком медленно, и дискуссии свелись к разнице в десятые доли секунды. Когда игра Q3A была готова, решение анимировать смену оружия, резко опуская руку и отводя ее на некоторое расстояние от туловища, вызвало спор о том, исполнять ли это действие за 0,6 с или за 0,9 с. Победил более короткий промежуток, и игроки по всему миру торжествовали.
    Элементы управления персонажем

    Рис. 5.6. Betty бежит. Betty кувыркается




    Когда нужно создавать ключевые кадры


    Верно то, что все анимации персонажа (любого) можно создать только с помощью ручного задания ключевых кадров. Если же вы никогда не занимались анимацией персонажей, попробуйте анимировать по крайней мере один персонаж только кадрированием его движений, и лишь потом беритесь за файл захвата движения. Однако не стоит безоговорочно следовать этому правилу, равно как и другим догмам («Мой за собой посуду», «Раскрашивай ровно», «Дочитывай книгу до конца» и т.д.), о нем достаточно знать и выполнять его, только если это действительно необходимо. Важно понять, как осуществляется создание ключевых кадров, чтобы с их помощью можно было изменить и дополнить захват движения.

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

    Если в игре Betty Bad слишком долго не происходит никаких действий, то героиня повернется и попрыгает, а потом потребует продолжения игры. Такое условное бездействие придает персонажу больше индивидуальности.
    Конечно, захватить движение четвероногого животного, а затем применить его к четвероногому персонажу сложно. Обычно такие персонажи анимируются исключительно с помощью ключевых кадров. Итак, мы рассказали, когда следует использовать кадрирование, - но когда же применять захват движения?


    Когда нужно создавать ключевые кадры Когда нужно создавать ключевые кадры Когда нужно создавать ключевые кадры



    Когда применять захват движения


    Захват движения - это процесс фиксирования движений реального объекта или человека и использования полученных данных для анимирования объекта или персонажа, созданного компьютером. На суставы актеров помещаются специальные датчики положения, а затем специальное оборудование фиксирует положение и/или направление этих датчиков во времени, генерируя набор данных движения.

    Захват движения идеально подходит для анимации персонажей игр в реальном времени, так как делает фантастические фигуры более реалистичными. Посмотрев на низкополигональный персонаж, можно сказать, что он был создан компьютером. Если анимации не очень хорошие, структурные изъяны становятся еще заметнее. При использовании захвата движения неестественность исчезает и персонаж оживает. Но для аниматора захват движения - не более чем инструмент.

    Захват движения идеален для анимаций нижней части тела и тела целиком, например для анимаций смерти или отбрасывания персонажа. Для таких анимаций, как прыжки, захват движения идеален, потому что особенности динамики частей тела при соударении с землей и после того, как персонаж придет в себя после приземления, трудно моделировать с помощью ключевых кадров. Для сложных межуровневых вставок, где взаимодействуют множество персонажей, также хорошо подходит захват движения, поскольку здесь важна только скорость, с которой можно захватить и выполнить анимацию. Изучение захвата движения - хороший способ улучшить анимационные навыки. Особенно интересно наблюдать за анимациями после захвата движения плеч и шеи, так как их сложно анимировать с помощью ключевых кадров.




    Личность определяется внешним видом


    Первый шаг к глубокому знакомству с персонажем - посмотреть на модель и на предварительные наброски о том, как персонаж будет действовать. Это пробудит ваше воображение, и у вас начнет складываться представление о том, как персонаж должен двигаться. Обратимся, например, к персонажу Widge. Это отрицательный герой игры Betty Bad, злое чужеродное создание, стремящееся уничтожить человечество, - но он также воин. Widge не слишком сообразителен, неизвестно даже, можно ли об этом существе говорить «он». С уверенностью можно утверждать лишь одно - что он отвратителен (рис. 5.1).

    Личность определяется внешним видом

    Рис. 5.1 Widge - неприятная особь мужского (?) пола
    Почему же он противен? Прежде всего, он так выглядит. Widge весь покрыт шипами, он угловатый, кажется, что металлическая кожа делает его еще более бесчувственным и непреклонным и на уме у него только одно - съесть всех. Даже глаз у него красный - это вызывает ассоциации с отрицательным, опасным существом. Его внешний вид основывается на следующем описании: «Widge - пушечное мясо в игре. Он жесток, отвратителен; его собратья встречаются только стаями».

    Это краткое описание, но, объединив его с моделью, можно разработать хорошую анимацию персонажа. Важно придерживаться начального описания, но не помешает также добавить больше деталей, подсказываемых вашим воображением. Widge - отрицательный герой, которому не знакомы проявления совести. Это маленький «терминатор», который не остановится, пока не будет уничтожен. Иногда ему свойственна излишняя горячность. Когда его отбрасывают назад, он летит кувырком, катится, но неизменно возвращается обратно - ведь он так хочет вас съесть (рис. 5.2).

    Личность определяется внешним видом

    Рис. 5.2. Widge - смелый, но гадкий и жестокий, и его анимации должны это отражать
    Восполните недостающие черты персонажа - не пожалейте на это труда. Аниматор персонажей обязан привлечь свое воображение, чтобы придать персонажу индивидуальность и создать шаблон, которому нужно следовать во время анимации. Если для персонажа нет детального описания -создайте его. Будьте уверены - манеры и характеристики персонажа тоже нужно тщательно продумать. Решите, какими они будут, и придерживайтесь этого, разрабатывая анимацию персонажа. Все это сильно повлияет на то, как персонаж будет смотреться в игре.

    Игра Betty Bad задумана как веселая и развлекательная. Это не настоящий серьезный игровой процесс, а лишь приятное времяпрепровождение. Поэтому, хотя Widge и отвратителен, он не должен быть слишком отталкивающим. Он должен соответствовать общему настроению игры. Поэтому взгляните на его дизайн еще раз. У этого персонажа есть довольно гибкий хвост, который, вероятно, должен служить ему для сохранения равновесия и для выражения эмоций, например, по-собачьи. Или же им можно размахивать из стороны в сторону перед атакой, как делает кошка. От того, как вы обработаете лишь один элемент персонажа, например хвост Widge, может зависеть отношение к персонажу и его сущность. Геометрия персонажа подсказывает адекватные анимации или даже диктует их, хотя это может быть не записано на бумаге.




    Набор анимаций


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




    Не забывайте о размере файла


    Как только речь заходит о жанре и дизайне игры, встает вопрос и о том, какой объем памяти потребуется для персонажа; приходится оценивать, сколько будет анимаций и какого типа. Например, для игрового персонажа можно установить верхний предел 2 Мб. Размер сетки может составлять 100 Кб, текстуры - еще 300 Кб, а звуковые эффекты займут 400 Кб. И на анимации тогда останется только 1,2 Мб. Такое распределение влияет не только на объем набора анимаций, но и на их продолжительность и скорость воспроизведения. Это значит, что сверхдлинная анимация смерти займет 10 кадров, то есть персонаж успеет просто упасть, а скорость смены кадров сокращается от хорошей, 30 кадров в секунду (fps), до потенциально плохой - 15 кадров в секунду. Однако для персонажа иногда требуется набор анимаций из большого числа кадров (рис. 5.5).

    Не забывайте о размере файла

    Рис. 5.5. В игре Betty Bad главный персонаж имеет почти 3000 кадров анимации
    Кадры нужно экономить для всех игровых персонажей, поэтому многопользовательские (multiplayer) игры особенно чувствительны к числу и продолжительности анимаций персонажей.

    Персонажи многопользовательских игр, таких как Quake или Unreal, должны потреблять как можно меньше памяти - такова природа игры в режиме онлайн. В то время как игроки управляют персонажами на своем любимом уровне сетевой баталии, информация об их управлении невидимо перемещается между машинами игроков. Персонажи с богатыми наборами анимаций, большим числом полигонов и обширными текстурными картами не только усложняют поддержку среды с множеством игроков, но и заметно замедляют игру из-за обработки данных, которые представляют персонаж.
    Главный персонаж однопользовательской игры занимает большинство кадров анимации, но и другие персонажи, которые часто появляются в игре, не уступают ему по сложности наборов анимации (если не обгоняют). В игре Return to Castle Wolfenstein, созданной Gray Matter Interactive Studios, главный персонаж никогда не выходит за рамки межуровневых вставок, основанных на игровом движке, и ввода опций в меню, поэтому его набор анимаций меньше, чем у большинства других персонажей игры.


    Другая причина, по которой набор анимаций одного персонажа может быть больше, чем другого, - практичность. Чтобы сэкономить память и поднять производительность, некоторых персонажей можно легко превратить в другие, уменьшив или увеличив их размер программными средствами и добавив или убрав некоторые детали в определенных точках сетки. Чтобы подчеркнуть индивидуальность, персонажи будут использовать собственные, присущие только им анимации, а также брать анимации из большого общего набора. Дизайнеры и художники игры Return to Castle Wolfenstein удачно комбинировали одно туловище и множество голов. Чтобы часто появляющийся персонаж Infantry и солдаты Elite Guard отличались друг от друга, головы и аксессуары случайным образом менялись. Эти персонажи в зависимости от конфигурации ссылались на различные наборы анимаций.

    В отличие от главного персонажа и персонажей «массовки», появляющихся в игре часто, у персонажей-боссов или главных отрицательных персонажей (которые в большинстве игр обычно встречаются в конце уровня) практически нет анимаций. Если же анимации у них и есть, то в основном это анимации атаки, изображения боли и, в награду за победу, более тщательно разработанная анимация смерти.


    Основы задания ключевых кадров


    Создание ключевых кадров анимации - это процесс размещения объекта или персонажа через определенные временные промежутки в различных положениях, при этом интервалы между такими промежутками заполняет компьютер, моделируя движение. В обычной мультипликационной анимации старшие художники создают ключевые кадры, а младшие заполняют кадры, находящиеся между ключевыми (tweens). Чтобы задать ключевые кадры в 3ds max 6:

  • нажмите кнопку Auto Key (она станет красной);

  • выделите объект, который нужно анимировать;

  • активизируйте команду трансформации Move или Rotate;

  • переместите или поверните выделенный объект, определяя таким образом его положение в ключевом кадре;

  • продвиньтесь вперед по шкале времени и определите еще один ключевой кадр:

  • подвигайте ползунок шкалы времени по ключевым кадрам в разные стороны и просмотрите анимацию;

  • внесите изменения, если это необходимо.





  • Подгонка под технологию


    В Q3A Джон Кармэк (John Carmack) исправил недостатки анимационной системы персонажа, создав модели из трех частей: головы, туловища и ног. Это пример технологии, поддерживающей анимационную систему так, что анимаций становится меньше.

    Betty Bad была создана с помощью технологии не Quake, a WildTan-gent. Вместо тег-системы, состоящей из трех частей, анимации персонажа должны были соответствовать системе из одной части, как в Quake П. Поэтому хотя персонаж Betty Bad и не создавался для сетевых баталий, он подходит для различных ситуаций, но это достигается гораздо большим набором анимаций. У движка, в который помещена Betty, было нечто полезное, имеющееся и у большинства других движков, а именно интерполяция (interpolation). Это значит, что движок может «приказать» персонажу перейти из одной определенной позы в другую, но аниматор не потратит на это кадры. Это полезно, но все же необходимость удваивать все анимации, при которых Betty может стрелять, остается. Поэтому очень важно знать и понимать все ограничения и особенности технологии анимации, чтобы персонаж и анимации соответствовали игровому движку должным образом.




    Постичь сущность персонажа


    Удачная анимация персонажа, созданного для игры или приложения в реальном времени, основывается на многих факторах. Это и опыт аниматора, и сложность анимируемого персонажа, и время, отведенное на анимацию, - список можно продолжать и дальше. Однако самое важное при анимации персонажа - проникнуть в его сущность. Прежде чем поместить персонаж в электронный мир, его нужно узнать. Если представлять себе, что персонаж - это настоящий человек или животное, и анимировать его в соответствии с его природой, то анимация получится правдоподобной. Будьте одновременно кукольным мастером и куклой, режиссером и актером. Постоянно задавайте себе вопрос: «Что еще делает персонаж, и как он это делает?» Так вы добьетесь в анимации того представления, к которому стремитесь.

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




    Когда персонаж построен, для него


    Когда персонаж построен, для него создан каркас, назначены веса и он готов идти, прежде чем анимировать его, нужно рассмотреть несколько вопросов. Сначала постарайтесь глубоко понять персонаж, с которым вы собираетесь работать. Представьте его в жизни, придав ему индивидуальность, основанную на внешнем виде, описаниях и дополнительных чертах, которые вам подскажет воображение. Если персонажам придать индивидуальность, то их анимации с большей вероятностью будут соответствовать их природе, воспринимаемой зрителем. Попытайтесь добавить по крайней мере одну или две уникальные черты, которые будут выделять персонаж среди обитателей этой и других игр. Затем определите набор анимаций. В нем перечисляются все анимации, которые должны быть выполнены в игре. Этот набор зависит от жанра, дизайна игры, игровой среды, ограничений размера файлов, элементов управления персонажем и технологии игры в целом.

    После создания набора анимаций решите, использовать ли захват движения в дополнение к созданию ключевых кадров анимаций. Захват движения подходит не всем, подойдет ли он вам - определяется бюджетом, временными рамками и сложностью набора анимаций. Если вы все же остановитесь на захвате движения, подготовьтесь к этому заранее. Познакомьтесь с разными студиями по захвату движения и библиотеками движений и выберите подходящую. Наймите хорошего актера, отрепетируйте движения заранее, постарайтесь принести на съемку любые модели или объекты Biped и по возможности сделайте режиссером съемок аниматора, который затем будет использовать полученные данные. Снимите сессию на видео и четко оговорите дату предоставления конечных данных.

    Наконец, реализация персонажей, как и всех компонентов игры, состоит из комбинации художественного замысла и кода. Программист и аниматор должны создать такую анимационную систему, которая подходит для игры и соответствует ее замыслу. Часто успех системы зависит от того, на чем заостряется внимание и кто отвечает за задачу. Однако практически все персонажи управляются и встраиваются в игру программными средствами, которые запускают анимации, когда происходит событие. Персонажи не обращают внимания на то, что их окружает, и прилежно выполняют анимации, когда код им «приказывает». К сожалению, этот подход к выполнению персонажей не учитывает такие движения, как ускорение или замедление и другие случайные смены скорости. Однако независимо от системы важно, чтобы аниматор знал и понимал ее полностью, иначе не будет уверенности в том, что когда персонаж попадет в игру, все будет работать должным образом.

    Советы по захвату движения


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

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

    Выбирайте из нескольких студий. Позвоните в несколько студий, поговорите с менеджерами и только потом сделайте выбор. Обсудите возможные переезды, помещение для съемки и материально-техническое обеспечение всего процесса, убедитесь, что все это, а также издержки, включено в предлагаемую цену. В большинстве случаев оптическая система, такая как Vicon, предпочтительнее, чем магнитное разрешение (magnetic-resolution) или другие системы, в которых к костюму присоединяются кабели. Костюмы слишком ограничивают актеров, и определенные движения, например прыжки и т.п., при которых актер отрывается от земли, могут вызвать затруднения. Но все же данные, полученные от этих систем, обычно точнее, и время, которое уходит на получение данных, меньше. Если выбрана оптическая система, убедитесь, что студия имеет по крайней мере восемь камер. Так компенсируется эффект «потерянных датчиков», если отражающий датчик заблокирован или закрыт частью тела или реквизитом. Сотрудники выбранной студии по захвату движения должны иметь представление о том, какие инструменты вы используете (например, 3ds max и character studio). Нужно также выяснить, кто бывшие клиенты студии, и попытаться определить отношение к вам как к клиенту. Некоторые студии, например House of Moves, BioVision и Loco-Motion, имеют множество файлов захвата движения, собранных в готовых к продаже библиотеках. В character studio есть достаточно большая библиотека захвата движения. Однако ничто не сравнится с получением нужных данных путем установки сессии захвата движения.


    Наймите талантливого актера. Конечно, весьма заманчиво облачиться в костюм и выполнять движения самому, но не стоит этого делать. Лучше нанять специалиста, который пройдет через все радости и горести создания анимаций. Но важнее всего визуальное представление. Вы должны иметь возможность видеть, как актер совершает движения, и ненавязчиво обращать их в те, которые нужны на самом деле. Такие студии, как House of Movies, проводят кастинги, на которых можно увидеть потенциальных актеров. Найдите того, кто отвечает всем требованиям и выполняет действия удовлетворительно. Во время съемок актеры будут обращаться к вам или к тому, кто будет их направлять, за руководством и комментариями по нужным движениям, поэтому будьте разборчивы, ведя их по анимации. Не проявляйте бестактность по отношению к актеру, который старается сделать все правильно.

    Отрепетируйте движения перед съемкой. За неделю, за день, утром перед сессией и во время самой сессии прогоните каждую анимацию, прежде чем снимать ее. Чем больше времени будет на это потрачено, тем проще и быстрее вы получите нужные движения. В «Star Wars: Episode I» и других фильмах, для которых снимают большие сцены сражений, прежде чем действия попадают в фильм, они репетируются сотни раз. Относитесь к работе серьезно - репетируйте!

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


    Снимайте сессию на видео с записью времени. Во многих студиях так и делается: чтобы выбрать нужные движения, очень важно иметь еще и видеоматериал. Это упрощает процесс выбора времени входа и выхода (начала и конца движения), позволяет упростить потенциально длинный и достаточно требовательный к мелочам процесс, ускорить его. Во время сессии захвата движения ведите заметки; вы будете обращаться к ним при выборе анимаций, которые нужно сохранить или улучшить, особенно если снято много анимаций.

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

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

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

    Технология игры


    Набор анимаций персонажа может изменить основную технологию игры, но чаще анимации зависят от технологии. В играх Quake и Quake II у персонажей не было анимаций для поворотов или оглядывания назад. Если бы во время сетевой баталии вам посчастливилось увидеть другого персонажа неподвижным и он при этом оглядывался бы назад, он бы поворачивался и перемещался в одной позе, позе действия, не выходя из нее. При разработке Q3A была выполнена новая система анимаций, которая не просто поддерживает «оглядывание назад». Анимации разделены на три части: голова, туловище и ноги. При получении данных от мыши, перемещаемой игроком, сначала ответит голова, затем туловище и потом ноги. Во время стрельбы или жестикуляции в перемещение будут вовлечены все три части.

    При создании новой анимационной системы в QJA для моделирования перемещения в стороны сначала пытались применить анимацию сдвигов тела из стороны в сторону. Это не сработало, так как игровой движок не поддерживает плавный переход одной анимации в другую. Было принято решение при беге влево или вправо поворачивать ноги персонажа на 45°, а верхняя часть туловища должна быть направлена туда, куда указывает игрок. Таким образом, набор анимаций остался небольшим, однако движение выглядело нереалистично и не точно.
    Решение разделить персонаж в Q3A на три отдельные части было принято потому, что независимо от выполняемого действия все анимации персонажа можно условно отнести к трем различным классам (рис. 5.7):

  • нижняя часть тела (бег, прыжки и т.д.);

  • верхняя часть тела (стрельба, смена оружия и т.д.);

  • тело целиком (смерть, падение и т.д.).

  • Технология игры

    Рис. 5.7. Анимации можно разделить на движения верхней (А), нижней (В) частей тела или всего тела (С)
    В игре Q3A такая классификация воспринимается буквально из-за необходимости поддерживать технологию игры и анимационную систему. Однако в случае с Betty во всех анимациях ее тело участвует целиком, потому что анимационная система не поддерживает разделенные части тела, как в Q3A. Вместо этого для каждой ситуации требуются уникальные анимации. Из-за такой разницы в технологиях, обусловленной избыточностью и необходимостью моделировать каждую анимационную ситуацию на протяжении игры, набор анимаций Betty имеет значительный размер. Например, чтобы в игре Betty бегала, нужно было создать четыре различные анимации: обычный бег, бег во время стрельбы, бег во время стрельбы наискосок вправо и влево (рис. 5.8).

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

    Рассмотрев все вопросы и примерно обозначив наборы анимации, обсудим еще один вопрос: каким методом пользоваться при анимации персонажа - ключевыми кадрами или захватом движения?

    Технология игры

    Рис. 5.8. Бег Betty реализуется одним из четырех способов




    Требуется уникальность


    Говоря об уникальности выше, мы имели в виду, что аниматор должен привнести в движения персонажа нечто особенное. Персонаж должен обладать уникальностью и в сравнении с другими персонажами той же игры. Пусть один хромает, а другой горбится, пусть у каждого будет что-то, что выделит его из ряда других персонажей игры. Анимации должны подчеркивать непохожесть персонажей. Уникальность подразумевает попытку влить в движения персонажа нечто, отличающее его от других, выделить его из общей массы, но пытайтесь анимировать персонажи так, чтобы на них было интересно смотреть, чтобы они были занятными.

    Например, Widge всегда голоден. Это очень мощный инстинкт, побуждающий его собратьев нападать и побеждать. Он живет, чтобы есть. И вполне естественно, что он ест практически все, даже своих павших собратьев (рис. 5.3).

    Требуется уникальность

    Рис. 5.3. Схватить кусок, поднять его и проглотить - так ест злой чужеземец
    Анимация поглощения пищи персонажем Widge изменила дизайн игры, повлияла на ее процесс; все в команде разработчиков Betty Bad считали, что она весьма удачна. Из-за нее персонаж время от времени останавливается, превращаясь в легкую мишень для игрока. Такого рода импровизации и эксперименты случаются в процессе анимирования достаточно часто и оказывают на игру положительное влияние. И хотя такая анимация поглощения пищи Widge сложилась, казалось бы, случайно, но на самом деле она появилась в игре потому, что персонаж должен поступать именно так. Он остался самим собой, это действие не противоречит представлению о нем, давая ощущение правдоподобия. Помните, что персонаж останется самим собой, только если вы проникли в его сущность.




    Вечно движущаяся игрушка


    Так каков же механизм, с помощью которого персонаж появляется в игровом мире? В следующий раз, играя в FPS или другую «стрелялку», посмотрите на ступни персонажей при ходьбе или беге. Несомненно, они немного сдвигаются относительно персонажа. Это обусловлено тем, что обычно анимации персонажей создаются «на месте». Проиллюстрировать связь персонажа, его анимаций и кода можно с помощью заводного игрушечного солдатика. Поднимите игрушку, заведите ее и держите над полом. Ноги солдатика двигаются, но с полом не соприкасаются. Преодоление расстояния моделируется перемещением вашей руки: игрушка не стоит на полу и не идет по нему самостоятельно. В случае персонажа игры в реальном времени роль руки исполняет код - он перемещает персонаж, запускает одну анимацию, когда происходит определенное событие, или другую, когда случается следующее, кажется, что персонаж бежит, идет, отступает в сторону или назад (рис. 5.9).

    Вечно движущаяся игрушка

    Рис. 5.9. Заводная игрушка «Солдатик Betty»
    Этот подход, несмотря на свою простоту, не может в полной мере имитировать реальность по двум причинам. Во-первых, скорость, с которой код перемещает персонаж, невозможна в реальном времени. Действие должно быть быстрым, яростным и стремительным. Поэтому персонажи двигаются быстрее, чем должны; как правило, масштаб игрового мира огромен, и в этом мире просто не существует способа, которым можно было бы путешествовать в реальном времени на большие расстояния.

    Согласно проведенным оценкам в игре Doom персонажи бегут со скоростью около 145 км/ч. В игре Quake скорость движения персонажей уменьшилась до 101 км/ч, а в Quake II они двигались с ничтожной скоростью 82 км/ч.
    Вторая причина, по которой персонажи перемещаются неправдоподобным способом, - это их широкий шаг. Когда персонаж перемещается программными средствами, его ступни бегут с одной скоростью, а перемещается он с другой, но они обе постоянны. При ходьбе, беге или движении назад, при начале движения или остановке нет периодов нарастания или замедления скорости. Даже повторяющаяся анимация имеет небольшие расхождения с действительностью в расстоянии, которое нужно покрыть при движении в соответствии с циклом (рис. 5.10).


    Расстояние между точками А и В равно всего лишь 8, 5 единицы, потому что Betty только начинает отходить назад. Расстояние между точками В и С составляет 29,3 единицы, это практически длина широкого шага Betty. Из точки С в точку D она перешагивает 33,7 единицы и вполне укладывается в шаг, как и при переходе из точки D в точку Е, расстояние между которыми равно 39,8 единицы. Расстояние между точками Е и F равно 34,1 единицы, шаг замедляется, Betty наклоняется немного вперед. Отрезок между точками В и F можно назвать полным циклом (посмотрите на левую ногу), но есть различие в расстояниях, которые будут покрыты за несколько соседних циклов. К сожалению, некоторые аспекты анимации не соответствуют действительности - они зависят от технологии и не могут ее опережать.

    Вечно движущаяся игрушка

    Рис. 5.10. Длина каждого шага от старта до финиша разная


    Выполнение персонажа


    Последнее, о чем нужно подумать перед анимированием, - как персонажи будут реализовываться в игре, каковы отношения между художественным замыслом и кодом и почему обычно персонажи анимируются «на месте».

    Технология требует построения набора анимаций, а создание игры -это всегда комбинация художественного замысла и кода, представления и исполнения. Художественный замысел включает в себя дизайн, модель, текстуры, уровень анимации и звуковые эффекты. Код - это игровой движок, игровые инструменты, функциональность игры и ее дизайн (который, вообще говоря, является частью художественного замысла). Даже людей, которые разрабатывают игру, можно поделить на два класса: художники и программисты. (И хотя дизайнеры игр обычно не согласны с такой классификацией, для многих людей характерна склонность к работе либо художника, либо программиста.)

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




    Жанр игры


    В настоящее время существует множество игровых жанров: action (боевик), strategy (стратегия), puzzle (игра-головоломка), racing (гонки), fighting (битва), adventure (приключения) и т.д. Эти жанры, в свою очередь, подразделяются на поджанры, например action от первого лица (first-person shooter - FPS) и от третьего лица (third-person shooter); гонки, в которых игрок смотрит на машину сверху («top-down» view racing games) или управляет ею изнутри, то есть находится в машине («in the car» racing games). Когда заходит речь о персонажах игр в реальном времени, то в первую очередь имеются в виду игры action, такие как Quake, Unreal или Betty Bad. Персонажами игры в реальном времени являются и Luigi из игры Luigi's Mansion, выпущенной Nintendo's GameCube, и солдат X-Wing из игры Rogue Squadron II: Rogue Leader, разработанной для вселенной Star Wars.

    Наборы анимаций для разных персонажей будут отличаться главным образом по способу исполнения в соответствии с жанром. Например, в обычном FPS персонажи бегают в визуально богатом мире, прыгая, атакуя и взрывая все вокруг. Они проносятся мимо со сверхчеловеческими скоростями, и игроку, управляющему мышью, очень трудно попасть в такую ускользающую цель. Однако, создавая этих персонажей, художник анимировал и запрограммировал их так, чтобы они отвечали на команды, вводимые игроком. Основной набор анимаций для игр типа Quake и Unreal состоит из следующих действий:

  • бездействие (Idle);

  • бег (Run);

  • бег назад (Backpedal);

  • ходьба (Walk);

  • прыжок (Jump);

  • приседание (Crouch);

  • передвижение на корточках (Crouch walk);

  • бросок влево (Strafe left);

  • бросок вправо (Strafe right);

  • стрельба (Shooting attack);

  • рукопашная атака (Melee attack);

  • смена оружия (Change weapon);

  • насмешка (Taunt);

  • получение повреждения (Pain);

  • смерть (Death).

  • Анимации бездействия - то, что вы видите, когда персонаж неактивен и ждет команды. Это может быть всего один кадр, выражающий готовность персонажа к действию. Остальные анимации - это анимации активного действия (атака или ответ на нее), а также временного выбывания из действия («смерть» или восстановление). В приведенном списке большую часть занимают анимации, требующие быстрого ответного ввода команд игроком. Другими словами, список отвечает основным требованиям жанра EPS: уклоняться, атаковать и умирать.


    Во время создания Quake II и Quake III Arena (QJA) разработчикам несколько раз высказывали мнение, что идеальным персонажем для сетевой игры был бы просто квадратик с изображением лица персонажа. Размер файла персонажа таким образом уменьшается почти до нуля. Вот так хардкорные любители сетевых баталий относятся к эстетике персонажей игр в реальном времени.

    Эти анимации совершенно необходимы персонажу EPS, но что же можно сказать об играх, в которых действие происходит от третьего лица? В такой игре, как Lara Croft Tomb Raider, персонаж Lara Croft бегает, прыгает, вертится, демонстрируя вам свою великолепную спину на протяжении всей игры. Она носится по ландшафту, карабкается по препятствиям, большими прыжками преодолевает преграды, переходя с одного очень сложного и запутанного уровня на другой. Для такого персонажа набор анимаций определенно должен быть шире.


    Анимация хвоста


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

    Сначала нужно просчитать длительность. Чтобы определить правильную длительность анимации, можно применять сложные формулы, но лучше просто ориентироваться на то. что выглядит правильно при данном диапазоне кадров. Другими словами, экспериментируйте, проверяйте, работает ли ваш вариант, и если нет, то пробуйте что-то еще. Так как создание ключевых кадров через каждые пять кадров подошло для движения головы и время уложилось в цикл, воспользуйтесь этим методом пяти кадров и для движения хвоста. Однако основное движение хвоста из стороны в сторону должно происходить каждые 10 кадров, чтобы времени хватило на вставку вторичного движения, которым достигается кошачье, а не собачье виляние хвостом.

    Активизируйте окно проекции Тор, включите режим Wireframe и посмотрите на первую кость хвоста, Widge Tail (рис. 6.35).

    Так как первый объект хвоста уже загнут влево во всех кадрах, выделите Widge Tail и определите анкерный ключ в кадре 40. Для этого переведите ползунок шкалы времени в кадр 20 и щелкните по нему правой кнопкой мыши. В поле Destination Time (Конечное время) введите число 40 и снимите отметки напротив опций Position (Положение) и Scale (Масштаб) - рис. 6.36.

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

    Рис. 6.35. б исходной позе бездействия хвост Widge уже согнут влево
    Анимация хвоста

    Рис. 6.36 При копировании ключей удобно пользоваться окном Create Key
    Анимация хвоста

    Рис. 6.37. Верните параметру Angle (deg) значение 5
    Еще раз щелкните правой кнопкой мыши по кнопке Angle Snap и верните параметру Angle (deg) значение 5 (рис. 6.37).


    Закройте окно, убедитесь, что кнопка Auto Key включена, перейдите в кадр 30 и поверните хвост вправо на 70°, щелкнув по желтой части манипулятора оси Y или нажав клавишу F6, чтобы сделать ось Y осью поворота. Измените положение оставшейся части хвоста, чтобы он выглядел как в кадре 20, но был направлен в обратную сторону (рис. 6.38).

    Анимация хвоста

    Рис. 6.38. Поместите все кости хвоста в кадре 30 в противоположное положение по сравнению с кадром 20

    Выделив все объекты хвоста, перетащите, удерживая нажатой клавишу Shift, единственный отображаемый в шкале времени ключ в кадр 50. Это самый быстрый способ скопировать ключ множественных объектов. Подвигайте ползунок шкалы времени из стороны в сторону и посмотрите, как перемещается хвост. В кадре 40 видно, что положение хвоста не является обратным к положению в кадре 20 (рис. 6.39).

    Это обусловлено тем, что ключ был определен только для Widge Tail, а не для всех костей хвоста. Выделите все кости хвоста и просто перетащите, удерживая нажатой клавишу Shift, ключ кадра 20 в кадр 40 и тем самым еще раз определите ключ для Widge Tail и всех его дочерних костей. Теперь при перетаскивании ползунка шкалы времени движения выглядят так, как нужно, интерполируя переход между двумя определенными позами.

    Движение гладкое, но хвост выглядит негибким, он похож скорее на собачий, а не на более пластичный кошачий хвост. Эту проблему легко исправить с помощью вторичного движения. Перейдите в кадр 25, оставьте выделенными все кости хвоста, кроме основной кости Widge Tail, и согните их все одновременно обратно в том же направлении, из которого они только что вернулись (рис. 6.40).

    Анимация хвоста

    Рис. 6.39. Хвост в кадре 40 отличается от хвоста в кадре 20, а это плохо

    Анимация хвоста

    Рис. 6.40. Согните дочерние элементы Widge Tail в направлении первой позы в кадре 20

    Скопируйте новую позу в кадр 45 и перейдите в кадр 35. Теперь согните выделенные кости в направлении позы кадра 30 и скопируйте новый ключ в кадр 55. Воспроизведите анимацию и проверьте результат. Хвост больше похож на кошачий!

    Чтобы получить доступ к таким свойствам контроллера ключа, как Continuity, можно также воспользоваться шкалой времени, даже если выделено много объектов. Просто щелкните правой кнопкой мыши по шкале времени в нужном ключе, а не по ползунку шкалы времени (рис. 6.41, позиция 1) и выделите кость, ключ которой нужно изменить (рис. 6.41, позиция 2); появится окно атрибутов ключевого кадра (рис. 6.41, позиция 3).

    Анимация хвоста

    Рис. 6.41. Получить доступ к атрибутам контроллера для ключей можно и с помощью шкалы времени

    Анимация бездействия для Widge в основном завершена, но в character studio есть еще один инструмент, о котором нужно знать, а именно слои (Layer).


    Блокировка ступней и рук


    Чтобы в character studio заблокировать ладони и ступни, нужно просто нажать на специальную кнопку Set Key, которая находится в свитке Key Info (Информация о ключе). Не выходя из кадра 20, выделите объект Widge R Hand и откройте на панели Motion свиток Key Info (рис. 6.17). В этом свитке кроме обычной красной кнопки Set Key есть еще три похожие на нее кнопки: Set Planted Key (Задать закрепляющий ключ), Set Sliding Key (Задать скользящий ключ) и Set Free Key (Задать свободный ключ). Не отменяя выделения Widge R Hand, щелкните по кнопке Set Planted Key. Снимите отметку напротив опции Join to Prev IK Key (Присоединить к предыдущему ключу обратной кинематики), которая появится, если раскрыт раздел IK свитка Key Info, и посмотрите, какие изменения произошли в ключевом кадре (рис. 6.18).

    Чтобы получить доступ к специальным кнопкам группы Set Keys, например Set Planted Key, в один момент времени нужно выделить одну конечность. Если же выделено много конечностей, то воспользоваться специальными кнопками обратной кинематики не получится.
    Блокировка ступней и рук

    Рис. 6.17. В свитке Key Info есть все, что нужно для блокировки ладоней и ступней
    Блокировка ступней и рук

    Рис. 6.18. Если нажать на кнопку Set Planted Key, параметр IK Blend (Переход обратной кинематики) и параметр пространства объекта будут другими
    Такая «закрепляющая» конечность получается в результате изменения параметра IK Blend и смены пространства объекта. Параметр IK Blend определяет, каких решений - обратной или прямой кинематики -будет выбрано больше для выделенной конечности. По умолчанию значение IK Blend равно нулю, а если при этом активен переключатель Body, то конечность находится в обычном пространстве Biped и для движения используется прямая кинематика. Нажатием на кнопку Set Planted Key значение IK Blend изменяется на 1, а конечность оказывается в пространстве Object. В пространстве Object можно в дальнейшем выбрать одну из двух опций, а именно, за каким объектом сцены будет следовать выделенная конечность, или же поместить конечность в координатное пространство этого объекта. Если объект, за которым будет следовать выделенная конечность, не выбран, то программа character studio считает, что конечность нужно заблокировать на месте, оставив его в координатном пространстве World (Мир) вместо Biped. Опция Join to Prev IK Key - способ связать ключи друг с другом; с ее помощью выделенная конечность помещается в координатное пространство предыдущего ключа.

    Звучит запутанно. Но полезно помнить, что при определении ключа для ступни или ладони, которые должны остаться закрепляющими, нужно убедиться, что значение IK Blend этого ключа равно 1, а в качестве координатной системы выбрана система Object (а не Body).


    Блокировка ступней и рук Блокировка ступней и рук Блокировка ступней и рук



    Использование слоев


    В character studio слои используются для добавления анимаций поверх анимаций Biped. По существу это идеальный способ внесения глобальных изменений в набор анимаций персонажа. Можно просмотреть слои по отдельности или свернуть их в новую анимацию. В случае с Widge с помощью этого мощного инструмента будет добавлено еще одно вторичное движение.

    Нажмите клавишу К, чтобы вызвать вид сзади (окно проекции Back), и переместите ползунок шкалы времени из стороны в сторону. Посмотрите, как при движении от кадра 20 к кадру 35 хвост опускается вниз по мере перемещения его влево. С помощью операций со слоями хвост получит такое же движение вниз при перемещении вправо (рис. 6.42).

    Использование слоев

    Рис. 6.42. При перемещении хвоста влево Widge опускает его вниз
    Скройте все объекты Biped, кроме Widge Tail и его дочерних объектов. По умолчанию считается, что необходимо получить доступ ко всем костям хвоста. Доступ к ключам дочерних объектов Widge Tail не понадобится, поэтому при работе в окне Track View сожмите область отображения, свернув иерархическое дерево объектов хвоста (снимите отметку напротив опции Tail в разделе Separate Tracks) - рис. 6.43.

    Использование слоев

    Рис. 6.43 Чтобы свернуть иерархическое дерево, снимите отметку напротив опции Tail в разделе Separate Tracks
    Не забывайте, что в любой момент можно отделить доступные треки анимации и закрыть их тем же удобным способом. Выделите объект Widge Tail, откройте свиток Layers на панели Motion и щелкните по кнопке Create Layer (Создать слой) Использование слоев. К анимации будет применен новый слой, а все остальные кнопки Layers станут доступными (рис. 6.44).

    Использование слоев

    Рис. 6.44 Теперь доступны практически все кнопки в свитке Layers
    Теперь начните изменять добавленный анимационный слой: перейдите в кадр 20 и поверните корневой элемент хвоста относительно оси X на 60°, кривая хвоста должна указывать вниз (рис. 6.45).

    Создание ключа в первом кадре диапазона анимации слоя влияет и на оставшуюся часть анимации. Перейдите в кадр 30 и поверните Widge Tail примерно на 95° относительно оси X, чтобы он был направлен еще ниже, чем до определения кадра 20 (рис. 6.46).


    Красная фигура, обозначающая начальное положение костей до добавления слоя, отражает изменение хвоста при анимации слоя.

    Чтобы скопировать два только что определенных ключа в соответствующее положение в оставшуюся часть анимации, вызовите окно Track View. Скопируйте ключ из кадра 20 в кадры 40 и 60. Скопируйте ключ из кадра 30 в кадр 50 (рис. 6.47).

    При открытии окна Track View сразу бросается в глаза, что отображаются все дочерние объекты Widge Tail с определенными ключевыми кадрами, хотя отметка данной опции в разделе Separate Tracks может быть снята. Причина этому - ошибка в character studio, имеющая отношение к разделу Separate Tracks, опции Tail и операции добавления слоев. Если в анимацию добавляется новый слой, программа оставляет опции раздела Separate Tracks в исходном состоянии, то есть отмеченными.

    Использование слоев

    Рис. 6.45. Если повернуть хвост в кадре 20, то взмах станет заметнее

    Использование слоев

    Рис. 6.46. В кадре 30 поверните хвост относительно оси X, чтобы он указывал вниз

    Использование слоев

    Рис. 6.47. Опция Tail в разделе Separate Tracks не отмечена, но для нового слоя она будет отмечена по умолчанию

    Закройте окно Track Mew. воспроизведите анимацию и посмотрите, как она выглядит с новым слоем (рис. 6.48).

    Использование слоев

    Рис. 6.48. В новом анимационном слое взмах выразительнее

    Если изменения привели к удовлетворительным результатам, то нужно свернуть слои. Для этого щелкните по кнопке Collapse (Свернуть) -рис. 6.49.

    Использование слоев

    Рис. 6.49 Как только слой готов, сверните его, чтобы перейти в обычное состояние анимации без слоев


    Использование временных тегов


    Анимация бездействия завершена, теперь ее можно использовать в качестве экземпляра в дальнейшем, быстро указав на нее с помощью удобного инструмента 3ds max, который называется Time Tag (Временной тег). Перейдите в кадр 20 и щелкните по полю сообщений рядом с кнопкой Auto Key, где написано Add Time Tag (Добавить временной тег) - рис. 6.50, позиция 1. Затем выделите пункт Add Tag (Добавить тег) - рис. 6.50, позиция 2-й введите в поле Tag Name (Имя тега) значение Idle (Бездействие) - рис. 6.50, позиция 3. Теперь всякий раз, когда ползунок шкалы времени окажется в кадре 20, в окне Time Tags появится поле сообщений Idle (рис. 6.50, позиция 4).

    Использование временных тегов

    Рис. 6.50. С помощью временных тегов можно быстро вызвать отрезок анимации
    Переместите ползунок шкалы времени в кадр 50. Щелкните по полю сообщений Add Time Tag, появится новый пункт - 20 Idle. Щелкните по ней - и ползунок шкалы времени автоматически перейдет в первый кадр анимации бездействия (рис. 6.51).

    Персонаж Widge будет экспортироваться в движок WildTangent, поэтому при последующем экспорте анимаций нужно знать время начала и конца анимации. Еще раз вызовите окно Time Configuration и измените значение в поле End Time с 60 на 59. Затем откройте меню Time Tags и выберите пункт Edit Tag (Редактирование тега) - рис. 6.52.

    Когда появится окно Edit Time Tag (Редактирование временного тега), выделите тег 20 Idle в списке и переименуйте его в поле Tag Name на Idle Start (Начало бездействия). Нажмите кнопку ОК, и затем перейдите в кадр 60. Еще раз щелкните по полю сообщений Add Time Tag и создайте новый временной тег с именем Idle End (Конец бездействия) - рис. 6.53.

    Использование временных тегов

    Рис. 6.51. Если щелкнуть по полю сообщений Add Time Tag, то появятся окно Time Tags
    Использование временных тегов

    Рис. 6.52. Чтобы изменить имя временного тега или удалить его, отредактируйте его с помощью меню Time Tags
    Использование временных тегов

    Рис. 6.53 В список временных тегов добавьте заключительную часть анимации бездействия
    Польза применения временных тегов очевидна. Больше всего они полезны, если персонаж имеет весьма большое число анимаций. Завершив анимацию, сохраните файл с расширением .max, перепрыгните на 20 кадров вперед - теперь можно переходить к любым другим анимациям.

    Загрузите файл Widge4.max (рис. 6.54).

    Использование временных тегов

    Рис. 6.54. Загрузите файл Widge4.max и посмотрите, как должно выглядеть тело чужака




    Ключевые кадры и отметки под ползунком шкалы времени


    Активизируйте окно проекции Front, нажмите кнопку Zoom Extents и воспроизведите анимацию. Персонаж Widge движется из стороны в сторону, но можно добавить небольшие прыгающие движения. Похоже, что ему не помешает немного попрыгать вверх-вниз. Снова выделите объект СОМ персонажа Widge. убедитесь, что кнопка Auto Key имеет красный цвет, то есть активна, перейдите к кадру 40 и опустите объект СОМ вниз на 2 единицы вдоль оси Z. определив новый ключевой кадр в треке анимации Vertical для Widge. Перейдите к кадру 30 и поднимите объект СОМ примерно на 8 единиц по оси Z.

    Заметьте, что определяемые ключевые кадры отображаются на шкале времени под ползунком: невыделенные ключи имеют вид красных прямоугольников, а выделенные - белых (рис. 6.30).

    Ключевые кадры и отметки под ползунком шкалы времени

    Рис. 6.30. Ключи, определенные для выделенных объектов, доступны для редактирования на шкале времени
    Ключевые кадры появятся на шкале времени, только если у выделенного объекта есть ключи в этом временном диапазоне.
    Отображаемые на шкале времени ключевые кадры можно перемещать, удалять и копировать так же, как и в окне Track View. Выделите только что созданный в кадре 30 ключевой кадр, нажмите и удерживайте клавишу Shift и перетащите этот кадр вправо в кадр 50. Отпустите кнопку мыши - ключевой кадр был только что скопирован на шкале времени. Воспроизведите анимацию и посмотрите, как персонаж меняет свой вид (рис. 6.31).

    Ключевые кадры и отметки под ползунком шкалы времени

    Рис. 6.31. Widge начинает внушать страх
    Теперь персонаж приобрел больше индивидуальности. Активизируйте окно проекции Right и уточните анимацию, внесите изменения в объект головы.




    Копирование ключевых кадров


    Теперь скопируем несколько ключевых кадров. В поле Current Frame (Текущий кадр), которое находится слева от кнопки Time Configuration, введите 20 и нажмите клавишу Enter (рис. 6.14).

    Копирование ключевых кадров

    Рис. 6.14 С помощью поля Current Frame можно перейти к кадру, просто введя его номер
    Анимация перейдет в кадр 20, Этим инструментом удобно пользоваться при работе с огромной анимацией, состоящей из сотен или тысяч кадров. Еще раз откройте окно Track View и примените команду Auto Expand, если это необходимо. Чтобы полностью показать текущий временной диапазон, щелкните по пиктограмме Zoom Horizontal Extents Копирование ключевых кадров которая находится в правой нижней части окна Track View. Увеличьте масштаб, чтобы увидеть кадры с 0 по 30, и с помощью инструмента Truck (Прокрутка) Копирование ключевых кадров переместите рабочую область вправо или влево, если это необходимо.

    В среднюю кнопку мыши с тремя кнопками (а именно такая мышь у вас должна быть) обычно встроено колесико. Так же как и в обычном окне проекции 3ds max, перетаскивая указатель мыши в окне Track View, можно изменять масштаб рабочей области, увеличивая или уменьшая число отображаемых ключей. Также можно прокручивать окно влево и вправо, удерживая нажатой среднюю кнопку мыши и перемещая мышь в нужном направлении.
    В кадре 0 выделите все ключевые кадры, протащив вдоль них рамку выделения. Убедитесь, что инструмент Slide Keys (Сместить ключ) Копирование ключевых кадров активен, и, удерживая нажатыми клавишу Shift и левую кнопку мыши, перетащите ключи вправо, пока они не окажутся над кадром 20. Кадры будут скопированы (часто говорят «клонированы»), так же как копируются или клонируются объекты и подобъекты.

    Скопировать ключевые кадры из одного кадра в другой можно, щелкнув правой кнопкой мыши по ползунку шкалы времени. Шкала времени расположена в нижней части окна проекции, и в ней отражается размер диапазона анимации и номер текущего кадра. Если щелкнуть по ней правой кнопкой мыши (рис. 6.15, позиция 1), то появится окно Create Key (Создать ключ) - рис. 6.15, позиция 2, — с помощью которого можно скопировать все трансформации или некоторые из них. Однако, если нужно определить ключи для всех треков объекта СОМ, придется использовать окно Track View.
    Копирование ключевых кадров

    Рис. 6.15. Скопировать кадры можно другим способом — щелкнув правой кнопкой мыши по ползунку шкалы времени
    Заметьте, что сквозь только что скопированные в кадр 20 ключи проходит розовая линия. Такое цветное напоминание того, какой кадр является текущим, очень полезно. При перемещении ползунка шкалы времени розовая линия тоже перемещается.




    Нулевой кадр


    При анимации кадр 0 лучше оставлять нетронутым. Он, если не оговорено иное, служит началом для любой анимации из всего набора анимаций. Но в случае с Widge существует и техническая причина. Кадр 0 должен быть исходным положением, в котором сетка была присоединена к Biped, - это обусловлено весовыми значениями. Технология WildTangent рассчитывает весовые параметры, которые определяются для любого персонажа с помощью модификатора Physique на основе первого кадра набора анимаций. Это кадр 0, поэтому персонаж всегда должен быть в одной и той же позе, веса которой настроены. Иначе результаты выполнения будут странными, не теми, которые ожидались.

    Убедитесь, что режим Figure выключен (в этом режиме нельзя анимировать Biped). Чтобы выделить объект Biped и его дочерние элементы, из созданных ранее наборов выделения Named Selection Sets выберите набор biped (или щелкните дважды по объекту СОМ персонажа Widge). Чтобы сделать текущим тип преобразования вращения, щелкните по кнопке Select and Rotate (Выделить и повернуть). На панели Motion щелкните по кнопке Set Key (Установить ключ) - рис. 6.6.

    Теперь для всех выделенных объектов определены ключевые кадры. Однако корневому элементу СОМ соответствуют три трека анимации, в то время как другим объектам Biped соответствует только один трек. Определите ключевой кадр для каждого трека анимации объекта СОМ персонажа Widge, поочередно щелкнув по кнопкам Body Horizontal (Тело по горизонтали), Body Vertical (Тело по вертикали) и Body Rotate (Поворот тела) в разделе Track Selection (Выбор трека), а затем нажмите кнопку Set Key (рис. 6.7).

    Нулевой кадр

    Рис. 6.6. Чтобы определить ключевой кадр для выделенных объектов Biped, щелкните по кнопке Set Key
    Нулевой кадр

    Рис. 6.7. Выберите для объекта СОМ треки анимации Body Horizontal, Body Vertical или Body Rotate
    При вводе значений перемещения объектов в окне Type-In Transform (Точное преобразование) на результат также влияют активная ось перемещения и выделенный трек анимации для объекта СОМ. Если по какой-то причине ввод координат не дал результата, еще раз отметьте текущую ось.




    Окно Track View


    Добавить ключевой кадр в любой трек анимации можно и с помощью функции Add Key (Добавить ключ), которая находится в окне Track View (Просмотр треков). Чтобы вызвать это окно, выберите пункт Track View -Dope Sheet (Просмотр треков - Монтажный стол) в меню Graph Editors (Графические редакторы) - рис. 6.8.

    Окно Track View

    Рис. 6.8. В окне Track View в 3ds max удобнее всего добавлять, копировать и перемещать ключевые кадры
    Окно Track View - Dope Sheet - это просто способ представления ключевых кадров, определенных для анимации, в виде ряда точек, которыми можно управлять. Именно в этом окне присваиваются дополнительные контроллеры, изменяются свойства ключевых кадров и даже добавляются в анимацию звуковые эффекты.

    В одной сцене 3ds max можно открыть несколько окон Track View. Поэтому и существует возможность присваивать открытым окнам
    Track View имена. Эти отдельные окна будут сохранены вместе со сценой при сохранении файла с расширением max.

    Количество информации, которое можно отобразить в окне Track View, настолько велико, что разработчики 3ds max предусмотрели возможность отфильтровывать то, что отображать не нужно. В левом верхнем углу окна Track View щелкните по пиктограмме Filters (Фильтры) Окно Track View. Появится диалоговое окно Filters, в котором можно определить, какие объекты показывать в окне Track View. Чтобы отображались треки только анимированных объектов или объектов, для которых определен набор ключевых кадров, в разделе Show Only (Показывать только) отметьте опцию Animated Tracks (Анимированные треки) - рис. 6.9.

    Щелкните по кнопке ОК - в окне Track View отобразятся только те треки, в которых есть ключевые кадры. Чтобы выделить строку Objects (Объекты), которая находится слева в списке треков под строкой Sound (Звук), щелкните по ней левой кнопкой мыши (она станет желтой). Наведите курсор на строку Objects и вызовите контекстное меню, щелкнув правой кнопкой мыши. Наведите указатель мыши на пункт Auto Expand (Раскрыть автоматически) и еще раз щелкните правой или левой кнопкой по нужному пункту. Раскроется дерево всех дочерних элементов списка Objects. Также в дереве Objects можно задать отображение только отдельных подобъектов или треков (рис. 6.10).


    Окно Track View

    Рис. 6.9. Чтобы в окне Track View отображались только анимированные треки, отметьте : Animated Tracks

    Измените масштаб рабочей области окна Track View, щелкнув по пиктограмме Zoom (Масштаб) в нижней части окна, - увеличьте масштаб так, чтобы лучше различить кадр 0.

    Если ваша мышь имеет три кнопки с колесиком на средней, то, прокручивая его, можно изменять масштаб в окне Track View. С помощью инструмента Zoom можно изменять масштаб только по горизонтали или по вертикали. Щелкните по этой пиктограмме и, удерживая кнопку мыши нажатой, выберите любую команду в выпадающем графическом меню (рис. 6.11).

    Окно Track View

    Рис. 6.10. Чтобы одновременно получить доступ ко всем ключевым кадрам трека, воспользуйтесь командой Auto Expand

    Окно Track View

    Рис. 6.11. Масштаб можно изменять либо по горизонтали, либо по вертикали

    Чтобы вызвать список объектов сцены, которые можно выделять, нажмите на клавишу Н и выберите из списка объект СОМ персонажа Widge. Вернитесь в окно Track View: в списке треков желтый квадратик рядом со строкой Widge будет подсвечен желтым. Таким образом, смотря на окно Track View, проще всего понять, выделен ли объект. Если при выполнении команды Set Key для объекта СОМ активна кнопка Select and Rotate, то набор ключевых кадров будет только у трека Widge/Transform/ Turning (Преобразование/Поворот). Если активна кнопка Select and Move, а текущими осями являются X, Y или XY, то ключ будет определен для трека анимации Widge/ Transform/Horizontal. А при активной кнопке Select and Move и текущей оси Z ключ будет определен для трека Widge/Transform/Vertical.

    Независимо от того, какой ключ определен, для каждого трека анимации объекта СОМ он нужен. Добавьте ключ с помощью кнопки Add Keys Окно Track View, которая находится в верхней части окна Track View. Активизируйте кнопку, щелкнув по ней (рис. 6.12, позиция 1), а затем щелкните по пустому пространству, где нужно вставить ключевой кадр, в любом из трех треков - Vertical, Horizontal и Turning (рис. 6.12, позиция 2). Заполните все пустоты в треках - теперь у всех объектов Biped в кадре 0 есть ключи.

    Окно Track View

    Рис. 6.12. Чтобы вручную добавить ключи в треки анимации объекта, воспользуйтесь кнопкой Add Keys


    Основы анимации с использованием ключевых кадров


    Создание ключевых кадров - основа анимации. Анимация вручную полезна, но может обмануть ожидания. Опыт и практика улучшат навыки работы с ключевыми кадрами, но нужно придерживаться и некоторых советов и предложений, которые помогут вам в процессе работы.




    Параметры Ease To и Ease From


    Персонаж Widge напряжен, готов к атаке, его поза одинакова в первом и последнем кадрах анимации, однако нужно, чтобы он совершал еще какие-либо действия. Можно заставить его покачиваться из стороны в сторону в ожидании. Это довольно просто, и движение не должно получиться очень скучным. Перейдите к кадру 38 и нажмите кнопку Auto Key, она изменит цвет на красный и станет активной. Выделите объект СОМ и переместите его вправо (примерно на 55 единиц) вдоль оси X. Воспользуйтесь командой Zoom Extents, чтобы лучше видеть персонаж, откройте панель Motion и нажмите кнопку Biped Playback (Воспроизведение Biped) Параметры Ease To и Ease From. Анимация будет воспроизведена на объекте Biped без полигонов, и она выглядит неплохо даже на компьютере со слабым процессором (рис. 6.25).

    Параметры Ease To и Ease From

    Рис. 6.25. Команда Biped Playback позволяет увидеть движения в простом режиме фигуры
    Можно сказать, что результат изменения параметра Continuity для объекта СОМ персонажа Widge на 0 в первом и последнем кадрах анимации придает циклу по достижении точки повтора неприятный эффект. Это достаточно просто исправить. Вернитесь в окно Track View, выделите три ключа, определенных для трека анимации Horizontal объекта СОМ, и щелкните правой кнопкой по одному из них. Измените значение параметра Continuity обратно на 25 (рис. 6.26).

    Параметры Ease To и Ease From

    Рис. 6.26 Если вернуть параметру Continuity значение 25, то анимация будет более гладкой
    У ключевого кадра, который определяется между двумя ключевыми кадрами с одинаковыми параметрами, будут те же самые параметры, даже если по умолчанию они были другими.
    Кривая всех трех ключей вновь примет сглаженную форму, а не перевернутой буквы V. Откройте окно Time Configuration и в поле End Time вместо значения 60 введите 59 (рис. 6.27).

    Первый и последний кадры теперь не повторяются, что должно привести к более плавному циклу. Вернитесь в окно проекции Тор, примените команду Zoom Extents и еще раз воспроизведите анимацию. В процессе воспроизведения анимации при переходе от последнего кадра к первому все еще происходит скачок. Сначала проверьте, совпадают ли ключевые кадры всех треков: скопируйте их еще раз из кадра 20 в кадр 60. Попытайтесь воспроизвести анимацию. Неполадка не исчезла. И здесь нужно более детально изучить элементы управления ключевыми кадрами, настроив значение параметра Ease To. Этот дополнительный параметр контроллера ТСВ позволяет замедлить приближение к конкретному ключевому кадру, экспоненциально уменьшив число изменений от положения предыдущего ключевого кадра при приближении к данному.


    Вызовите окно Track View и выделите последний ключ в треке Horizontal для объекта СОМ. Щелкните по нему правой кнопкой мыши (рис. 6.28, позиция 1) и введите значение 25 в поле Ease To в верхней части маленького окна (рис. 6.28, позиция 2).

    Параметры Ease To и Ease From

    Рис. 6.27. Чтобы кадры не перекрывались друг с другом при воспроизведении, уменьшите значение в поле End Time на единицу
    Параметры Ease To и Ease From

    Рис. 6.28. Увеличить параметр Ease To - значит, замедлить движение прямо перед ключом
    Закройте диалоговое окно, окно Track View и воспроизведите анимацию еще раз. Теперь она выглядит гораздо лучше. Но сейчас кажется, что в начале анимации Widge буквально перескакивает в среднее положение ключевого кадра. Как будет выглядеть анимация, если добавить в первый ключ значение параметра Ease From так, чтобы Widge не покидал это положение так быстро? Легко догадаться, что Ease From вынуждает анимацию ускоряться при переходе от одного кадра к другому.

    Еще раз вызовите окно Track View, выделите ключевой кадр в кадре 20 для трека Horizontal, щелкните по нему правой кнопкой мыши и введите в поле Ease From значение 25. Но на этот раз не закрывайте окна трека анимации и Track View, переместите последнее из рабочей области и нажмите кнопку Biped Animation (Анимация Biped) - рис. 6.29.

    Параметры Ease To и Ease From

    Рис. 6.29. Значения ключей можно интерактивно настроить при воспроизведении анимации
    Анимация выглядит хорошо, хотя, возможно, значение 25 слишком велико. Не останавливая воспроизведение, в поле Ease From введите 15. Анимация изменится соответствующим образом. Во время воспроизведения не бойтесь поэкспериментировать со значениями любых ключей и посмотрите на результат изменений.

    Изменять значения можно не только в окне Track View: откройте панель Motion и настройте параметры в ней. Перед воспроизведением анимации убедитесь, что объект, параметры анимации которого нужно изменить, выделен.

    Подготовка Biped


    Мы будем учиться работать с ключевыми кадрами на персонаже Widge. Как упоминалось ранее, это один из отрицательных персонажей игры Betty Bad. Он не обычный игровой персонаж, не двуногий - это четвероногое живое существо, которое можно анимировать только с помощью ключевых кадров. Это несложный процесс, но на нем легко проиллюстрировать гибкость и полезность объекта Biped.

    Откройте файл WidgeS.max (рис. 6.1).

    Как можно видеть, для Widge создан каркас, заданы веса и он готов двигаться. Однако, как и для любого персонажа, сначала нужно выполнить подготовительные действия, которые упростят процесс анимирования. Сделайте так, чтобы сетку было проще видеть в затененном окне проекции: всем объектам Biped присвойте прозрачный материал.

    Подготовка Biped

    Рис. 6.1. Widge вернулся и ждет, пока из него сделают отрицательного героя
    Щелкните по пиктограмме Material Editor (Редактор материала) Подготовка Biped и создайте материал с именем invisio, непрозрачность которого равна 0 (рис. 6.2).

    Выделите все объекты Biped и присвойте им этот материал. Затем щелкните где-либо в окне проекции, чтобы отменить выделение объектов, и откройте панель Display. Нет необходимости отображать объекты-пустышки, поэтому, чтобы скрыть их все, отметьте опцию Helpers (в разделе Hide by Category) - рис. 6.3.

    Персонажи лучше представлять себе как группы элементов. Проще говоря, любой персонаж можно разделить на сетку и объект Biped. Чтобы быстро выделить их как один объект сцены, выделите все объекты Biped (без объектов-пустышек), а затем включите их в именованный набор выделения. Для этого, не отменяя выделения объектов, введите слово biped в пустое поле Named Selection Sets (Именованные наборы выделения) в верхней части экрана (рис. 6.4).

    Теперь, когда нужно будет выделить все объекты Biped сразу, просто щелкните по маленькой стрелке рядом с полем Named Selection Sets, появится список (пока в нем только один элемент) определенных наборов выделения, из которого можно выбрать нужный элемент. Таким образом, рабочий процесс ускоряется.


    Подготовка Biped

    Рис. 6.2. Создайте полностью прозрачный материал и присвойте его объектам Biped

    Подготовка Biped

    Рис. 6.3. Чтобы сэкономить на списке объектов, скройте объекты-пустышки направляющих Biped

    Подготовка Biped

    Рис. 6.4. Отличный способ выделить все объекты Biped сразу — использовать поле Named Selection Set

    Как показано на рис. 6.5, чтобы отредактировать или удалить именованные наборы выделения, сначала в меню Edit (позиция 1) щелкните по пункту Edit Named Selections (Редактирование наборов выделения), а затем выберите один или несколько из перечисленных наборов Named Selections (позиция 2). Добавьте объекты в набор, удалите их из набора или удалите весь набор. К множеству наборов выделения можно даже применять своего рода булевы операции, объединяя, вычитая или пересекая их.

    Наконец выделите и заморозьте два объекта сетки Widge - m_eye и m_widge, - чтобы не выделить их случайно при анимировании Biped.

    Подготовка Biped

    Рис. 6.5. Удалить набор выделения можно только в диалоговом окне Named Selection Sets


    Представьте себе папку с анимациями


    Попытайтесь представить, что отдельный файл 3ds max - это папка с определенными анимациями, а анимации персонажа - клипы, находящиеся в этой папке. Файл 3ds max становится большой виртуальной коллекцией, содержащей все, что нужно для персонажа: от сетки, текстурных карт и каркаса до всевозможных анимаций. Преимущества применения такого унифицированного подхода к анимациям, собранным в одном файле, становятся особенно очевидны, когда нужно внести структурные изменения в персонаж или объект Biped. Если для одного персонажа существует много отдельных анимационных файлов, придется повторить эти структурные изменения во всех файлах. Это просто не имеет смысла, лишняя работа -огромная трата времени.

    Однако иногда можно и даже нужно создавать особые анимации и сохранять их в отдельных файлах. Это скорее относится к созданию каркаса Biped, а не файла персонажа. Такой подход в основном применяется при захвате движения или если файлы анимаций очень большие (более подробно об этом далее, после рассказа о том, как соединять анимации с помощью Motion Flow Editor).




    Расположение центра тяжести СОМ и конечностей


    Первый шаг в покадровой анимации - это задание позы персонажа при активной кнопке Auto Key (в этом случае она красная). Анимация бездействия - не исключение. Персонаж Widge всегда готов двигаться, и он должен вести себя, как будто вот-вот ринется в атаку, даже если стоит спокойно. Его анимация бездействия должна содержать в себе энергию раздражения. Поза бездействия Widge также должна быть адекватной для него, иначе, когда он начнет ходить или атаковать, переход будет выглядеть неестественно.

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

    Таблица 6.1. Координаты анимации бездействия Widge


    Объект

    ОсьХ

    ОсьУ

    OcbZ

    Widge (COM)

    -22

    -12

    66

    Widge R Foot

    -168

    24

    0

    Widge R Hand

    -191

    -175

    0

    Widge L Hand

    192

    -98

    0

    Widge L Foot

    165

    99

    0


    Убедитесь, что кнопка Auto Key активна и окрашена в красный цвет, переместите объект СОМ, руки и ступни в нужное положение (рис. 6.16).

    Основная поза определена, теперь ее нужно улучшить, настроив объекты Pelvis, Spine, Head и Tail. Но прежде заблокируйте ладони и ступни. Это значит, что не придется изменять их положение при каждом перемещении или вращении объектов, которые находятся в иерархической цепочке выше конечностей.

    Расположение центра тяжести СОМ и конечностей

    Рис. 6.16. Первый шаг в создании позы ожидания Widge -размещение объекта СОМ и конечностей в нужном положении




    Режим запрета клавиатурных комбинаций


    Итак, вы усердно поработали: Widge, правда, еще ничего не делает, но на него интересно смотреть. Теперь рассмотрим еще несколько полезных инструментов помимо тех, которые вам уже известны. В окне проекции Right щелкните по кнопке Zoom Extents, а затем - по кнопке Keyboard Shortcut Override Toggle (Режим запрета клавиатурных комбинаций), которая в 3ds max 6 расположена на панели инструментов Extras (Дополнительные), - рис. 6.32. Панель Extras по умолчанию не показывается. Чтобы вывести ее на экран, щелкните правой кнопкой мыши по панели инструментов и выберите пункт Extras.

    Режим запрета клавиатурных комбинаций

    Рис. 6.32 С помощью этой кнопки можно получить доступ к дополнительным «горячим» клавишам
    Если эта кнопка активна, то любые «горячие» клавиши, возможность задания которых предусмотрена в таких дополнительных модулях, как character studio, будут иметь более высокий приоритет по отношению к «горячим» клавишам, которые установлены в 3ds max по умолчанию или определены пользователем. Ниже перечислены наиболее удобные «горячие» клавиши character studio:

  • 0 - устанавливает ключ Biped;

  • Alt+C - копирует позу выделенного объекта Biped в буфер обмена;

  • Alt+V - вставляет позу из буфера обмена.

  • Придав голове немного вторичного движения, попробуйте применить по крайней мере две из этих «горячих» клавиш.




    Режимы Footstep и Freeform


    В character studio объект Biped можно анимировать в режиме Footstep (След), в режиме Freeform (Свободная деформация) или с использованием обоих этих режимов. Анимирование персонажа в режиме Freeform -это не более чем позиционирование и анимирование персонажа старомодным способом, созданием одного ключевого кадра за другим. Режим Footstep - мощный инструмент пакета character studio, с помощью которого быстро создается анимация ходьбы, бега или прыжков со всеми основными движениями, которые им соответствуют. Параметры инструмента Footstep можно настроить для разных шагов или походок любого анимируемого персонажа.

    В этой книге не рассказывается о режиме Footstep, если же вы хотите научиться работать в нем, обратитесь к пособиям, которые прилагаются к character studio и содержат огромное количество информации. Этот инструмент - мощный и многофункциональный, но одновременно и сложный, и он скорее подходит для анимационного подхода больше технического, чем художественного. Анимацию, которая полностью определяет позу персонажа и его движения, нельзя создать простым нажатием кнопки, рисованием отметок на полу и приказом «Иди туда». Отсутствие описания режима Footstep в этой книге не означает, что он плох. Просто это не самый лучший способ анимирования персонажа игры в реальном времени с учетом последних требований к анимации человекоподобных персонажей.




    к анимированию, определите, будете ли


    Перед тем как приступить к анимированию, определите, будете ли вы создавать ключевые кадры, использовать захват движения или выполните и то и другое. Независимо от выбранного метода, представьте, что файл 3ds max - это папка с анимациями, в которой содержатся все шаги персонажа. Прежде чем определять ключевые кадры, убедитесь, что Biped подготовлен к анимации: присвойте ему прозрачный материал и/или создайте набор быстрого выбора Named Selection Set.

    Начните анимирование с сохранения кадра 0 в исходной позе Biped, в той самой, в которой он был присоединен к сетке. Для этого воспользуйтесь окном Track View или кнопками Set Key на панели Motion. Определите диапазон анимации в окне Time Configuration. Там же можно задать скорость смены кадров и скорость воспроизведения. Скопируйте ключевые кадры с помощью окна Track View или шкалы времени, но не забудьте оставить между клипами промежутки, чтобы анимации было проще идентифицировать. Изучите результат применения параметров упругости, непрерывности и смещения контроллера анимации ТСВ, которые устанавливаются по умолчанию. Создайте с их помощью плавные циклы в анимационных клипах. Чтобы добавить еще немного деталей в анимацию, примените вторичное движение. А чтобы добавить такое дополнительное движение поверх остальной анимации, воспользуйтесь меню Layers.

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


    к анимированию, определите, будете ли к анимированию, определите, будете ли

    Сначала о началах


    Чтобы научиться анимировать персонаж, нужно сначала овладеть процессом создания ключевых кадров и познакомиться с основными функциями инструментов (в данном случае 3ds max и character studio). Также необходимо освоить несколько процедурных подходов, характерных для анимирования персонажей игр в реальном времени. При чтении данной главы вы познакомитесь с этими методами и функциями на примере создания простой анимации бездействия для относительно несложного персонажа Widge.




    Track View и текущий диапазон анимации


    Текущий временной диапазон с 20 по 60 кадр не был определен с самого начала из-за того, что в окне Track View просмотр ключей зависит от текущего диапазона анимации. Попытайтесь увеличить или уменьшить масштаб в окне Track View либо прокрутить его вправо или влево, когда диапазон определен с 20 до 60 кадр. При навигации по окну Track View в 3ds max считается, что если определен текущий диапазон анимации, то просматривать ключевые кадры, находящиеся до этого диапазона (а иногда и после), нет необходимости. С такими ключами можно случайно начать работать, даже не заметив этого. Во избежание этого просто расширьте рамки начального и конечного кадров, если нужно получить доступ к кадрам до или после текущего диапазона анимации. Поэтому ранее при изменении конфигурации времени и был добавлен кадр 0. Это единственный способ, с помощью которого можно получить доступ к ключам.




    Упругость, непрерывность, смещение


    Если положения объекта в кадрах 20 и 60 совпадают и если в кадрах, находящихся между ними, нет ключевых, то движения вообще не должно быть. Но в кадре 0 определены ключи, поэтому программа «считает», что вы хотите применять анимационную кривую от первого ключа к последнему. Существует по крайней мере три ключа, разделенных между собой некоторым пространством, поэтому получается едва различимое движение, вызванное применением анимационной кривой. Кривая, которая применялась к ключам, в аббревиатуре ТСВ отвечает букве С (Непрерывность).

    Упругость, непрерывность, смещение

    Рис. 6.20. Создайте начало и конец цикла
    Непрерывность определяет, насколько гладкой будет анимация, ключевые кадры становятся касательными к анимационной кривой; таким образом, анимация выглядит гладкой и естественной. Напряжением определяется величина искривления анимационной кривой, его можно использовать для создания небольшого эффекта замедления или ускорения. Смещением определяется место максимума анимационной кривой по отношению к ключу. Чтобы просмотреть параметры контроллера ТСВ, выделите объект СОМ персонажа Widge и откройте панель Motion. Откройте свиток Key Info и посмотрите параметры контроллера ТСВ выделенного объекта (рис. 6.21).

    Свиток Key Info для выделенного объекта появится, только если активная трансформация соответствует треку анимации, для которого был определен ключ. Например, если для трека поворота объекта определен ключевой кадр и активна кнопка Select and Move (Выделить и переместить), информация о ключе поворота на панели Motion не появится.
    Параметры контроллера ТСВ, устанавливаемые по умолчанию, показаны на рис. 6.21. Они определены так, чтобы переход от одного ключевого кадра к другому был плавным. Чтобы увидеть результат применения значения параметра Continuity, равного 0, убедитесь, что текущим является кадр 20, дважды щелкните по полю Continuity и введите 0. Щелкните по кнопке Next Key (Следующий ключ - маленькая красная стрелка, указывающая вправо) в верхней части свитка Key Info, перейдите к следующему ключевому кадру для объекта СОМ в кадре 60 и также измените его параметр Continuity на 0. Теперь на месте кривой в окне просмотра, находящемся над значениями параметров, появилась ломаная линия в форме перевернутой буквы V. Это значит, что изгиба интерполяции между ключами нет, от одного к другому идет прямая линия (рис. 6.22).


    Упругость, непрерывность, смещение

    Рис. 6.21. В большинстве случаев параметры контроллера ТСВ, устанавливаемые по умолчанию для трансформации поворота, подходят

    Упругость, непрерывность, смещение

    Рис. 6.22. Если значение параметра Continuity равно 0, то движение будет выполняться с линейной интерполяцией между ключевыми кадрами и дополнительного движения добавлено не будет

    Если нужно выделить каждую конечность, объекты Spine, Head и Tail, изменить для всех ключей их параметр Continuity на 0, то при передвижении ползунка шкалы времени из стороны в сторону не появится никакого дополнительного движения и персонаж останется неподвижным. Однако, если все же придется выполнить описанные выше действия (а не хочется переходить от объекта к объекту, от ключа к ключу с помощью свитка Biped на панели Motion), воспользуйтесь окном Track View.

    Если окно Track View закрыто, откройте его и выделите оба ключа для кадров 20 и 60 для объекта Widge L Clavicle. Щелкните правой кнопкой мыши по любому ключевому кадру, появится маленькое окно (похожее на раздел ТСВ панели Motion). Так в окне Track View можно получить доступ к параметрам контроллера ТСВ и конечностей (рис. 6.23).

    Упругость, непрерывность, смещение

    Рис. 6.23. Получить доступ к параметрам контроллера ТСВ и обратной кинематики можно с помощью и окна Track View, и панели Motion

    Этот хороший способ влиять на множество ключей, но он работает только для одного трека анимации в один момент времени. Нельзя изменить сразу все ключи или более одного трека единственного объекта, например СОМ.

    Треки конечностей сжаты, чтобы было легче производить операции над ключевыми кадрами; треки от ключицы до пальцев рук и от бедер до пальцев ног свернуты в один трек для каждого набора, но их можно раскрыть и просмотреть ключи для каждого подобъекта конечности. Выделите объект Biped, откройте свиток Keyframing Tools (Инструменты работы с ключевыми кадрами) на панели Motion и в разделе Separate Tracks (Отделить треки) отметьте опцию Arms (Руки) и/или Legs (Ноги) - рис. 6.24.

    Упругость, непрерывность, смещение

    Рис. 6.24 Если в разделе Separate Tracks отмечены опции, то в окне Track View будут отображены треки анимации для остальных частей поверхности, таких как ладони, пальцы рук и ног

    Настраивая параметры Continuity, можно добавить или вычесть незначительные движения, которые влияют на целостность цикла. Существуют и еще две части контроллера ТСВ, которые можно использовать при анимировании простого цикла. Это параметры Ease To (Освободить к) и Ease From (Освободить от).


    Уточнение позы бездействия


    Теперь нужно уточнить позу, повернув объекты Pelvis, Spine и Head. Воспользуйтесь координатами из табл. 6.2 или просто задайте их положение на глаз.

    Таблица 6.2. Значения углов поворота объектов Pelvis, Spine и Head персонажа Widge


    Объект

    ОсьХ

    ОсьУ

    OcbZ

    Widge Pelvis

     

     
    Widge Spine



     

    Widge Head

      -2o

     

    При повороте объектов туловища персонаж выходит из застывшей исходной позы. Уточните положение конечностей, повернув предплечье (forearm) и ключицы (calf) относительно оси X. Все руки и ноги при этом повернутся вперед или назад вокруг центров трансформаций ладоней и ступней соответственно. В табл. 6.3 приведены некоторые координаты.

    Таблица 6.3. Значения углов поворота руки и ноги Widge


    Объект

    ОсьХ

    Widge R Calf

    18o

    Widge R Forearm

    15o

    Widge L Forearm

    -1o

    Widge L Calf

    16°


    Завершите уточнение первого кадра простоя, задав положение объектов хвоста Tail. Такие изменения также выводят персонажа из застывшей исходной позы, она становится естественной, более анимированной. Воспользуйтесь координатами из табл. 6.4.

    Таблица 6.4. Координаты положения хвоста Widge


    Объект

    ОсьУ

    OcьZ

    Widge Tail

    33°

    -22°

    Widge Tail 1



     
    Widge Tail2

    23°



    Widge TailS

    18°

     
    Widge TaiW

    10°




    Как только уточнения внесены, поза завершена (рис. 6.19). Полностью определив и уточнив основную позу Widge, скопируйте ключевые кадры в конец диапазона анимации, чтобы задать цикл. Конечно, между этими ключевыми кадрами Widge должен что-то делать. Эти движения должны быть достаточно сдержанными и не привлекать к себе большого внимания. Откройте окно Track View, убедитесь, что пиктограмма Slide Keys Уточнение позы бездействия в верхней части экрана активна, выделите ключи в кадре 20 и перетащите их, удерживая нажатой клавишу Shift, в кадр 60. Так вы получите скопированную точку начала и конца анимации. Это первый шаг в создании цикла (рис. 6.20).

    Уточнение позы бездействия

    Рис. 6.19. У персонажа Widge есть первая поза
    Переместите ползунок шкалы времени из стороны в сторону - и вы увидите, что персонаж немного движется. Это происходит из-за того, что при определении ключевого кадра трекам анимации поворотов Biped по умолчанию присваивается контроллер анимации. Он называется ТСВ (Tension, Continuity, Bias - упругость, непрерывность, смещение).




    Временной промежуток между анимациями


    При использовании подхода с «анимационной папкой» для файлов персонажа 3ds max нужно оставлять некоторое временное пространство между анимациями, иначе их будет сложнее найти в окне Track View и отредактировать. Если оставлять заметные промежутки между анимациями, то придется также в начале и в конце каждой анимации определять полные столбцы ключей для всех треков Biped. Так движения будут отделены друг от друга и различимы, в окне Track View проще будет увидеть, где они начинаются и где заканчиваются.

    Вернитесь в окно Time Configuration и в поле Start Time введите значение 20 вместо 0. Еще раз откройте окно Track View и щелкните по пиктограмме Zoom Horizontal Extents, чтобы показать целиком диапазон отображаемых ключей.

    Вместо того чтобы каждый раз, закончив работу с окном Track View, закрывать его, просто сверните его.
    Создаваемая анимация бездействия будет состоять из 41 кадра: от 20 до 60. Где будет находиться анимация - не важно, так как файл 3ds max представляет собой виртуальную папку анимаций. То, что она начинается с кадра, кратного 10, - просто вопрос удобства; всегда оставляйте между анимациями промежуток по крайней мере в 20 кадров. Если это число будет меньше, то промежуток при просмотре всей анимации станет малозаметным, особенно при работе с захватом движения: в этом случае обычно для каждого трека в каждом кадре анимации задан ключ.




    Вторичное движение


    Один из самых важных аспектов анимации (на создание которого уходит больше всего времени) - вторичное движение. Этот термин применяется к маленьким, практически незначительным движениям, которые усиливают или подчеркивают основные движения анимации. Вторичное движение - это, например, постукивание ступней во время бездействия или легкое сгибание пальцев, то есть едва заметные, но все же ключевые при «оживлении» персонажа движения.

    В окне проекции Right выделите объект Head персонажа Widge, выберите команду преобразования Rotate и сделайте ось Z активной осью поворота. Активизируйте пиктограмму Angle Snap (Угловая привязка)Вторичное движение, щелкнув по ней левой кнопкой мыши. Затем, чтобы вызвать окно Grid and Snap Settings (Параметры сетки и привязок), щелкните по этой же пиктограмме правой кнопкой мыши. В поле Angle (Угол) измените исходное значение, равное 5, на 3 и закройте диалоговое окно. Теперь поворот объекта будет осуществляться с шагом 3° (рис. 6.33).

    Вторичное движение

    Рис. 6.33 В этом диалоговом окне можно быстро и легко изменить параметры привязок
    Чтобы добавить это вторичное (или вспомогательное) движение к голове, сначала определите несколько ключевых кадров без поворота. Не отменяя выделения объекта Biped, пройдитесь по кадрам 30, 40 и 50, нажимая в каждом из них клавишу 0, чтобы определить ключ для головы в ее исходном положении. Затем перейдите в кадр 25 и поверните голову против часовой стрелки относительно оси Z (синяя ось) на 3°, или на одно деление поворота. Перейдите в кадр 35 и поверните голову по часовой стрелке относительно оси Z на 3°, перейдите в кадр 45 и поверните голову против часовой стрелки еще раз на 3° (или, удерживая нажатой клавишу Shift, на шкале времени перетащите ключ из кадра 25) и наконец перейдите в кадр 55 и поверните голову по часовой стрелке относительно оси Z на 3° (или скопируйте кадр 35).

    Воспроизведите анимацию, нажав клавишу / (слэш), и проверьте анимацию (рис. 6.34).

    Вторичное движение

    Рис. 6.34. Голова персонажа Widge включается в анимацию
    Это очень небольшое движение придает голове более живой, естественный вид. Нужно создать впечатление того, что движение головы замедляется, поэтому в кадрах 30, 40 и 50 были определены ключи, чтобы обеспечить своего рода привязки - анкеры (anchor) - для положения, в котором голова будет неподвижна. Если поворачивать голову между этими анкерными ключами, то будет казаться, что движение больше привязано к поднятию головы вверх или опусканию ее вниз. То есть по мере поднятия туловища (кадры 20-30) голова под собственным весом немного опустится (кадр 25) и потом примет позу смотрящего вперед (кадр 30). Чтобы определить эти ключи при анимации, требуется немного умственных усилий, и не забывайте об этом подходе, добавляя вторичное движение.




    Выбор конфигурации времени


    Теперь нужно исключить возможность случайной перезаписи кадра 0, для этого используйте окно Time Configuration. Закройте окно Track View и щелкните по пиктограмме Time Configuration Выбор конфигурации времени в правой нижней части экрана. Когда появится окно, в поле Start Time (Начало воспроизведения) введите значение 0, а в поле End Time (Конец воспроизведения) - 60. Остальные параметры оставьте без изменения, но помните, что скорость воспроизведения кадров равна 30 кадрам в секунду - рис. 6.13.

    В окне Time Configuration можно изменить скорость смены кадров и воспроизведения анимации и даже масштаб текущего диапазона анимации. Однако определенный в этом окне диапазон может повлиять на операции с ключами, отображаемыми в окне Track View, - немного позже вы поймете, почему. А пока нужно научиться копировать ключевые кадры.

    Выбор конфигурации времени

    Рис. 6.13 В окне Time Configuration можно определить диапазон анимации




    Анимации бездействия


    Betty нужны три анимации бездействия: левая ступня впереди, правая ступня впереди, обе ступни на одном уровне. Это делается для разнообразия и для того, чтобы переход от одной анимации к другой поддерживался соответствующим образом. Создавая такие анимации бездействия, вы также получите некоторые представления о позах бездействия для анимации своего персонажа.

    Загрузите файл Betty08.max (рис. 7.2).

    Анимации бездействия

    Рис. 7.2. Betty нужно несколько анимаций бездействия




    Анимации персонажа Betty


    Betty Bad - нетипичный персонаж игры в реальном времени. Она (Betty) состоит из 2000 полигонов, основана на динамическом LOD-коде WildTangent, число полигонов в этом персонаже - между средним и малым. Betty - героиня игры action от третьего лица, которая запускается только в режиме онлайн и использует необычный игровой движок - технологию WildTangent Web Driver. Этот персонаж с такой же легкостью мог быть выполнен на игровом движке Quake, Unreal или LithTech. Есть у Betty и еще одна нетипичная особенность - у нее нет доступа к множеству типов оружия, которые словно по волшебству появляются и исчезают по команде. У нее есть только одно оружие, которое преобразует энергию в различные формы боеприпасов.




    Анимация стрельбы


    Игра жанра action не может обойтись без стрельбы. Большинство персонажей игр в реальном времени перемещаются с большими ружьями в руках и стреляют весьма часто. К сожалению, определить позу персонажа с ружьем и предусмотреть расположение множества типов оружия - очень трудная задача.

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




    Анкерные ключи


    Очень важно заблокировать ступни в начале и в конце анимации, чтобы Betty можно было анимировать, заставляя ее совершать небольшие движения в середине отрезка анимации. Блокирование ступней с помощью кнопки Set Planted Key - один из хороших способов, но можно воспользоваться и функцией Anchor Keys (Анкерные ключи) из свитка Keyframing Tools (Инструменты работы с ключевыми кадрами) - рис. 7.6.

    Анкерные ключи

    Рис. 7.5. При активной кнопке Select Pivot выберите новый центр трансформации для ступни
    Анкерные ключи

    Рис. 7.6. Заблокировать ступни можно и с помощью кнопок группы Anchor Keys
    Чтобы понять, как работает метод блокирования ступней, вернитесь в окно Track View и удалите в кадре 50 ключ для объекта Betty R Thigh. Закройте или сверните окно Track View, выделите правую ступню, перейдите в кадр 20 и нажмите кнопку Set Free Key в свитке Key Info. Значение IK Blend станет равным 0, а ступня снова окажется в координатном пространстве Body, она будет разблокирована (рис. 7.7).

    Красная точка, обозначавшая центр трансформаций, исчезнет, и, перетаскивая ползунок шкалы времени, вы увидите, что ступня не закреплена. Перейдите в кадр 20 и щелкните по кнопке Anchor Right Leg (Анкер на правую ногу), чтобы активизировать ее и тем самым заблокировать правую ногу (рис. 7.8).

    Чтобы выключить кнопку Anchor Right Leg, еще раз щелкните по ней - и кадр 20 опять станет закрепляющим ключом для правой ступни, значение IK Blend изменится на 1, и ступня снова окажется в пространстве Object (рис. 7.9).

    Анкерные ключи

    Рис. 7.7. С помощью кнопки Set Free Key ключевой кадр вновь становится незаблокированным
    Анкерные ключи

    Рис. 7.8. Если кнопка Anchor Right Leg активна, то ступня заблокирована
    Анкерные ключи

    Рис. 7.9. Ключевые кадры конечностей автоматически преобразуются в закрепляющие ключи при повторном нажатии на кнопку Anchor
    При добавлении небольшого движения в средний отрезок анимации ступню необходимо закрепить независимо от того, какой метод используется. Но сначала удалите дополнительное движение, вызванное параметром Continuity: откройте окно Track View, выделите ряд ключей, щелкните правой кнопкой по одному из них и введите в поле Continuity значение 0. Повторите эти действия для всех треков анимации, кроме Betty L Clavicle и Betty R Clavicle, - их параметр Continuity измените на 15 (рис. 7.10).


    Закройте окно Track View, затем перетащите ползунок шкалы времени, чтобы увидеть изменение движения всех объектов Biped. Убедитесь, что кнопка Auto Key все еще активна, выделите объект СОМ персонажа Betty, перейдите к кадру 35 и перетащите СОМ вниз на 0,6 единицы по оси Z. Нажмите клавишу / (слэш), чтобы воспроизвести анимацию и проверить, как она выглядит (рис. 7.11).

    Анкерные ключи

    Рис. 7.10. Измените параметры Continuity всех треков, кроме треков для рук, на О

    Анкерные ключи

    Рис. 7.11. Betty с удовольствием бездействует

    Измените значение в поле End Time в окне Time Configuration на 50 и создайте временные теги для анимации. Назовите первый кадр Idle1 Start, а последний - Idle1 End (рис. 7.12).

    Анкерные ключи

    Рис. 7.12 В начало и конец анимации добавьте временные теги


    Betty снова в прыжке


    В 1980-х и в начале 1990-х годов был широко известен создатель комиксов Фрэнк Миллер (Frank Miller). Он и сейчас делает замечательные комиксы, но в его первых произведениях («Daredevil», «Spider-Man» и, конечно, «Batman») был определен стиль работы с изображением, который важен и для аниматора персонажей - динамическое действие. Каждая картинка, изображающая персонаж Фрэнка Миллера в движении, - это кинетическое чудо. Когда смотришь на этих двумерных персонажей, кажется, что любой из них может в любую минуту спрыгнуть со страницы. Это происходит потому, что Миллер умеет захватить наиболее мощный и интересный момент анимации: руки разбросаны в стороны, ноги согнуты, идеальное равновесие и вписываемость в окружающую обстановку. То, как он изображает персонажей, впечатляет.

    Определяя позу персонажа в любой анимации, представьте, что он -герой комикса. Выйдите на улицу и купите любой сборник Джима Ли (например, «Х-Men» или «Divine Right»). Он также мастерски создает интересные, яркие позы в движении. Изучая позы двух других прыжков Betty (рис. 7.48), попробуйте сами придумать несколько поз, которые подошли бы для комиксов Джима Ли или Фрэнка Миллера.

    Создавая первую позу 11-кадровой анимации, не забудьте изменить ее немного в конце. Изобразите незначительные движения при полете персонажа в воздухе. Постарайтесь сделать каждую позу уникальной. Например, поза на рис. 7.48 показывает, как Betty в прыжке наклоняется вправо и поднимает правую ногу. А на рис. 7.49 Betty поднимает левую ногу вверх и наклоняется вперед, а не назад. Даже по силуэтам эти две позы должны быть легко различимы.




    Betty в прыжке


    Как и в случае с анимациями бездействия, для персонажа Betty имеется несколько типов анимации прыжка, а именно восемь. Их так много потому, что на Betty смотрят со стороны, и если бы прыжков было всего один или два, они бы быстро надоели. Однако в книге мы ограничимся пятью Так вы получите представление о том, как создать прыжок для своего персонажа.

    Загрузите файл Betty10.max, если вы этого еще не сделали (рис. 7.39).

    Betty в прыжке

    Рис. 7.39. Betty уже готова кого-нибудь подстрелить, пора заставить ее прыгать
    Betty в прыжке

    Рис. 7.40. Снова измените параметры в окне Time Configuration
    В окне Time Configuration измените диапазон анимации: в поле Start Time введите значение 250, а в поле End Time - 300 (рис. 7.40).

    Чтобы понять, как персонаж будет переходить в анимацию прыжка и выходить из нее, скопируйте ключевые кадры для позы бездействия из кадра 135 в кадр 250. Эта поза не будет точно совпадать с той, которая окажется начальной для прыжка в реальной игровой ситуации. Представьте ее в игре, когда включается код интерполяции и происходит перемещение персонажа вверх при получении входных данных для прыжка

    Длительность прыжка зависит от игры и от ее движка, но для прыжка Betty будет достаточно 11 кадров. Перейдите в кадр 155 и определите позу в первом кадре прыжка. Поместите Betty в позу, похожую на ту, в которой группа поддержки приветствует участников спортивного состязания. Спина ее должна быть относительно прямой, левая рука - немного поднятой. Пусть рука указывает на что-нибудь впереди, чтобы при стрельбе из этого положения интерполяция была не слишком заметна. Поворачивая бедро и голень, заметьте, что пальцы ног направлены в стороны, тем самым автоматически поддерживая позу. Не поворачивайте ноги до конца, оставьте запас для второй позы, в которой они будут полностью разведены в стороны. Завершите позу, вытянув правую руку Betty, выделив и опустив вниз по оси Z ладонь (рис. 7.41).

    Betty в прыжке

    Рис. 7.41. Betty прыгает
    Когда члены группы поддержки выполняют движения, которые пытается воспроизвести Betty, они подпрыгивают, а затем, когда опускаются, их тела заметно наклоняются вперед, в то время как ноги еще более отдаляются друг от друга. Перейдите в кадр 165, немного согните объекты Spine и поверните ноги еще вверх. Вытяните пальцы правой руки, чтобы создать видимость того, что в воздухе Betty напряжена (рис. 7.42).


    Betty в прыжке

    Рис. 7.42. Давай, Betty!

    Прежде чем определять позу для последующего зависания, скопируйте позу Idle3 из кадра 250 в кадры 278 и 285. Это позволит определить положение ступни для части анимации, отвечающей за приземление. Для приземления можно выбрать любую из трех поз бездействия, но Idle3 -самая характерная. Всякий раз при приземлении после прыжка персонаж автоматически перейдет в эту позу.

    Теперь перейдите в кадр 278, заблокируйте ступни и расположите Betty как если бы она только что коснулась земли, упав с высоты. Изобразите прыжок и приземление и то, что сделало бы туловище реального человека. Добавьте детали: опустите голову немного вниз, а ладонь поверните вверх (рис. 7.43).

    Перейдите на два кадра вперед и добавьте вторичное движение, например наклоните голову, опустите руки и выгните талию (за которую отвечает объект Betty Spine) вперед. Так станет понятнее, что произошло соприкосновение (рис. 7.44).

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

    Betty в прыжке

    Рис. 7.43. Она приземлилась, дамы и господа!

    Betty в прыжке

    Рис. 7.44. Добавление вторичного движения после приземления подчеркнет эффект удара о землю

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

    Betty в прыжке

    Рис. 7.45. Betty готова приземлиться, но она все еще должна выглядеть, как будто падает

    Руки Betty нельзя поднимать слишком высоко из-за эполетов, но если они направлены в стороны, то создается ощущение, что персонаж пытается, падая, удержать равновесие. Поза касания целиком связана с положением готовности к приземлению, поэтом}- анимация не нужна. Однако технология WildTangent требует, чтобы все анимации состояли по крайней мере из трех кадров. Поэтому, как только поза будет подходящей, скопируйте ее в кадры 273 и 274. Перетащите ползунок по шкале времени, чтобы увидеть анимацию прыжка целиком.



    Теперь нужно распределить компоненты прыжка как отдельные анимации, дополненные временными тегами и временными промежутками, между конечными ключами. Откройте окно Track View и сначала удалите позу бездействия из кадра 250, а затем переместите два ключа, разделяющих прыжок. Продублируйте ключи в начале и в конце движения, чтобы параметр Continuity не влиял на анимацию. Затем переместите столбец из трех ключей, из которых состоит поза касания, в кадр 280. Наконец, перетащите последовательность приземления так, чтобы она начиналась в кадре 300, удваивая кадры в конце каждой анимации (рис. 7.46).

    Betty в прыжке

    Рис. 7.46. Переместите ключи так, чтобы между компонентами прыжка был промежуток

    Добавьте временные теги, чтобы анимации было проще найти. Получится довольно большой список временных тегов, поэтому не нужно добавлять в каждую анимацию теги начала и конца. Все три анимации бездействия имеют одинаковую продолжительность, все анимации стрельбы - одной и той же длины, и все анимации прыжка будут иметь одинаковую длину. Если ввести теги начала и конца только для первых из ряда отрезков анимации, то списком временных тегов станет гораздо проще управлять (рис. 7.47).

    Betty в прыжке

    Рис. 7.47 Если ограничить число тегов типа Start и End, то списком временных тегов будет проще управлять

    Теперь можно создать для Betty другие прыжки для разнообразия -ведь на нее придется смотреть всю игру!


    Бездействие при плавании


    Иллюзия нахождения под водой достигается затемнением «воздуха» уровня и/или повышением плотности «тумана». Добавьте пузырьков, несколько спокойно летающих объектов и воображаемое течение - получится достаточно реалистичный водный мир. Но на самом деле ощущение пребывания под водой достигается анимацией персонажа, который погружен в эту воду. Когда Betty попадает в воду, ей становится трудно перемещаться, потому что она может пользоваться только одной рукой (и ногами, конечно). Чтобы получить анимацию бездействия под водой, сначала надо «научить» Betty убедительно удерживаться на поверхности воды или под водой. Тогда нетрудно будет заставить ее медленно плыть в ожидании какого-либо действия.

    Продолжайте работать с тем же самым файлом или загрузите файл Betty11.max.

    Измените параметры в окне Time Configuration: в поле Start Time введите значение 500, а в поле End Time - 700 (чтобы достигнуть нужной замедленности и гладкости в плавательной анимации бездействия, потребуется много времени). Как и в любой главной анимации, сначала нужно составить ее схему, а затем уточнить и добавить вторичное движение на каждом шаге. Это значит, что для достижения правильного результата основные позы определяются в начале, в середине и в конце анимационного отрезка. Затем добавляются позы между началом и серединой и между серединой и концом. Это дает возможность полностью воспроизвести анимацию, чтобы получить представление о ее согласованности и подумать, что делать дальше.

    Бездействие Betty под водой будет изображаться медленным перемещением ног, как при езде на велосипеде, и плавательными движениями рук. Перейдите в кадр 500 и определите позу Betty так, как показано на рис. 7.65. Не забудьте повернуть талию и область таза в противоположных направлениях, сначала повернув объект СОМ, а затем - объекты Spine.

    Бездействие при плавании

    Рис. 7.65. Первый кадр анимации плавания изображает движение в воде со средним размахом
    Скопируйте только что определенные ключевые кадры в кадр 600 и перейдите в кадр 550, чтобы задать следующую позу. Расположите Betty так же, как и раньше, но в зеркальном отражении: левая рука займет положение правой, а правая - положение левой, объекты Spine повернутся в противоположном направлении по отношению к позе в кадре 500. Сначала поверните объекты СОМ и Spine, затем измените положение рук и ног. Не сгибайте ступни слишком сильно, так как их придется сгибать при взмахе вниз на последующих стадиях (рис. 7.66).


    Проще всего скопировать позу одной конечности и перенести ее на противоположную конечность в другой кадр следующим образом. Перейдите в кадр, в котором находится поза, щелкните дважды по корневому элементу конечности и нажмите кнопку Copy Posture (Копировать положение) -рис. 7.67, позиция 1-е свитке Copy/Paste (Копировать/Вставить). Перейдите в кадр, в который нужно перенести позу, убедитесь, что кнопка Auto Key активна, дважды щелкните по элементу целевой конечности и нажмите кнопку Paste Posture/Pose/Track Opposite (Вставить положение/ позу/трек противоположной) — рис. 7.67, позиция 2.

    Бездействие при плавании

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

    Бездействие при плавании

    Рис. 7.67 Кнопка Paste Posture/Pose/Track Opposite - отличный способ достичь соответствия поз рук и ног с обеих сторон

    Удвойте ключи в начальном и конечном кадрах анимации, чтобы избавится от движения, вызванного параметром Continuity, воспроизведите анимацию и посмотрите, как она выглядит. Это должна быть плавная, циклическая анимация, в которой Betty выполняет основное ленивое толкающее движение. Чтобы добавить ощущение свободного перемещения, перейдите в кадр 525, а затем - в окно проекции Right, выделите объект СОМ и опустите его на 1 единицу по оси Z. Скопируйте ключ в кадр 575 и воспроизведите анимацию. Теперь Betty двигается, немного покачиваясь, этим усиливается иллюзия пребывания под водой.

    Анимируя Biped, старайтесь не закрывать панель Motion. Это поможет держать все координатные оси в правильном положении по отношению к Biped (чтобы не получилось, что вместо оси Y вверх направлена ось Z).

    Следующий тип вторичного движения, которое нужно добавить, - это дополнительное движение ноги. Оно также подчеркнет отсутствие веса и свободное перемещение в воде. Перейдите в кадр 525 и настройте левую ногу. Поверните объекты Betty L Thigh и Betty L Calf на -20°, a Betty L Foot - на 60° относительно оси Z. Позиционируйте правую ногу, повернув Betty R Calf на 50° относительно оси Z. Параметры обратной кинематики, установленные по умолчанию, определят положение ступни автоматически (рис. 7.68).



    Бездействие при плавании

    Рис. 7.68. Сгибание ног перед толчком вниз усиливает иллюзию пребывания под водой

    Дважды щелкните по звену Betty L Thigh и нажмите кнопку Сору Posture, чтобы скопировать положение для левой ноги. Перейдите к кадру 575 и щелкните по кнопке Paste Posture/Pose/Track Opposite, чтобы перенести позу на правую ногу. Вернитесь в кадр 525, щелкните по звену Betty R Calf и нажмите кнопку Copy Posture, перейдите в кадр 575 и точно так же вставьте позу для левой икры (рис. 7.69).

    Бездействие при плавании

    Рис. 7.69. Чтобы зеркально отобразить только что созданную позу, воспользуйтесь командами Сору и Paste


    Добавление эффекта отдачи


    Посмотрев на переход из кадра 165 к кадру 170, можно понять, как в игре будет выглядеть интерполяция позы персонажа при стрельбе, однако нужно добавить еще одну черту для анимации стрельбы. В большинстве случаев игроки хотят видеть немедленный результат нажатия клавиши огня. Им не нравится, когда персонаж готовится, заряжает ружье, а затем стреляет. Поэтому анимация стрельбы Betty, как и анимация стрельбы обычного персонажа, должна быть короткой, сделанной со вкусом. Только что созданная поза с оружием наготове предназначена для того, чтобы после выстрела персонаж мог снова встать в эту же позу готовности за короткое время с относительно незаметной интерполяцией.

    Ключи, скопированные в кадр 165, больше не нужны - удалите их. Определив в кадрах 170 и 177 ключевые кадры, перейдите в кадр 172 и добавьте результат выстрела из ружья. Он не может быть слишком сложным или специфическим, так как должен подходить под несколько типов вооружения. Просто переместите объект СОМ немного назад и поверните объекты Spine относительно оси X, как если бы от выстрела ружья плечо переместилось назад. В завершение немного поверните голову по часовой стрелке. Часто раздражающее перемещение рук из-за обратной кинематики, из-за которого при повороте объектов Spine они остаются на том же самом месте относительно позвоночника, на этот раз вам на пользу (рис. 7.30).

    Анимация незначительна, так как она должна подойти и для результата стрельбы из скорострельного оружия, и для одиночного выстрела. Увеличение времени возвращения к исходной позе стрельбы делает выстрел/ отдачу внезапнее и реалистичнее. Но обратите внимание на позу, в которой Betty переходит в состояние готовности к стрельбе. Как будет показано в следующей главе, иногда, если ружье просто указывает в нужном направлении, в отдаче нет необходимости. Добавьте в анимацию стрельбы временные теги и переходите к двум следующим отрезкам анимации стрельбы.

    Добавление эффекта отдачи

    Рис. 7.30. Отдача при стрельбе незначительна, но все же заметна
    Прежде чем переходить к следующей анимации, избавьтесь от всех нежелательных движений, вызванных ненулевыми значениями параметров Continuity. Убедитесь, что в начале и в конце только что завершенного отрезка движения ключи удвоены.




    Две другие атаки в состоянии бездействия


    Выполните перечисленные ниже шаги для двух других анимаций бездействия:

    1. Скопируйте первый или последний кадр нужной анимации бездействия.

    2. Задайте диапазон для анимации стрельбы.

    3. Определите позу положения готовности к выстрелу в первом кадре анимации.

    4. Скопируйте ключи в кадр через восемь кадров.

    5. Продвиньтесь на два ключа после первого и добавьте эффект отдачи.

    6. Удвойте ключи в начале и в конце отрезка движения.

    7. Добавьте временные теги.

    Вторая анимация стрельбы при бездействии должна происходить в кадрах 200-207. Вот несколько советов по созданию этой анимации и эффекта отдачи. Слегка опустите и поверните объект СОМ; немного поверните объекты Spine; протяните руку так, чтобы дуло ружья было параллельно поверхности земли и указывало на цель; слегка наклоните голову и проверьте дважды конечную позу: персонаж не должен терять равновесия. В момент стрельбы сначала переместите объект СОМ немного назад и поверните все объекты Spine относительно оси X, чтобы отвести левую руку назад. Немного поверните левую ключицу относительно оси Z, чтобы подчеркнуть толчок от оружия, а правую руку не перемещайте (рис. 7.31).

    Две другие атаки в состоянии бездействия

    Рис. 7.31. Во второй анимации бездействия поза стрельбы должна быть такой же динамичной, как и в первой
    Третья анимация должна происходить в кадрах 230-237. Попробуйте создать в ней нечто, отличное от предыдущих, и придайте Betty ковбойский вид. Опустите объект СОМ и поставьте Betty в позу готовности. Затем поместите ее руку поверх оружия, подобно Клинту Иствуду (Clint Eastwood) в каком-нибудь вестерне (рис. 7.32).

    При создании стреляющего движения убедитесь, что правая рука занимает во всех трех кадрах (кадры 230-232) одинаковое положение на ружье. Если руку поворачивать или перемещать так, чтобы она двигалась вместе с ружьем, то движение станет убедительным, потому что игрок мысленно свяжет две формы и поверит, что рука Betty действительно находится на ружье. Убедитесь, что при возвращении в позу готовности рука лежит на верхней части ружья (рис. 7.33).

    Две другие атаки в состоянии бездействия

    Рис. 7.32. Сделайте третью позу немного другой, в стиле вестерна
    Две другие атаки в состоянии бездействия

    Рис. 7.33. Убедитесь, что правая рука остается на месте при отдаче
    Завершите анимационные отрезки, удвоив ключи в каждом конце их диапазонов, и добавьте временные теги для начальных и конечных кадров. Затем в анимации стрельбы нужно совершить еще одно действие - определить способ прицеливания.




    Идеология анимации


    Может возникнуть вопрос: почему так много внимания уделяется относительно незначительной и часто игнорируемой анимации (в Q3A нет подобного движения с прыжком и стрельбой)? В этой книге подробно рассказывается как об идеологии анимации персонажа, так и об анимации для игр в реальном времени, о 3ds max и character studio. Трудно переоценить важность некоторых штрихов имитации реального мира, таких как импульс, центробежная сила и воздействие их на персонажа. Явления реального мира такого типа, которые накладываются на фантастические создания и движения, сводятся к превосходной анимации персонажа игры в реальном времени. Маленькие детали производят большое впечатление на зрителя. Постоянно оценивайте анимации, задавайтесь вопросом, можно ли их улучшить. Наклонить голову вправо или влево? Повернуть ступню внутрь или наружу? Чтобы быть знатоком анимации персонажей, для начала придется учиться у жизни.

    Идеология анимации

    Рис. 7.64. Чтобы обратить внимание на руки, перетащите ключи для треков Pelvis, Spine и Head




    Использование опции Join to Previous IK Key


    Прежде чем переходить к третьей, и последней, анимации бездействия, нужно кое-что исправить. Если вы недостаточно находчивы и изобретательны, то наверняка в кадре 50 для звена Betty R Thigh вы не определили ключевой кадр. Создание второй анимации бездействия, особенно ключ, определенный для трека Betty R Thigh в кадре 70, очевидно, неблагоприятно влияет на первую анимацию бездействия. Измените диапазон анимации в окне Time Configuration: в поле Start Time введите значение 21, а в поле End Time - 50 (рис. 7.21).

    Использование опции Join to Previous IK Key

    Рис. 7.21 Измените диапазон анимации в окне Time Configuration, чтобы вернуться к первой анимации бездействия и добавить недостающий ключевой кадр
    В процессе добавления недостающего ключевого кадра вы узнаете нечто новое, а именно, что можно сделать с помощью опции Join to Previous IK Key. Перейдите в кадр 50, выделите правую ступню и нажмите кнопку Set Planted Key (рис. 7.22, позиция 1), убедившись, что поставлен флажок Join to Prev IK Key (рис. 7.22, позиция 2).

    Звено Betty R Foot будет привязано к положению, в котором оно находилось в предыдущем ключе, определенном для звена Betty R Thigh (кадр 20). Однако проблема не решена. Подвигайте ползунок шкалы времени из стороны в сторону. Ступня вращается - и притом сильно (рис. 7.23).

    Использование опции Join to Previous IK Key

    Рис. 7.22. Наконец этoт флажок пригодился
    Использование опции Join to Previous IK Key

    Рис. 7.23. Ступня находится в том же положении, что и в предыдущем ключе обратной кинематики, но при этом вращается
    Иногда, чтобы исправить какую-либо проблему, нужно воспользоваться несколькими инструментами. Перейдите в кадр 21 и включите режим Anchor Right Leg (рис. 7.24).

    Перейдите в кадр 50 и нажмите кнопку Set Key просто так, чтобы убедиться, что ступня закреплена. Подвигайте ползунок шкалы времени - и вы увидите, что ступня заблокирована. Однако при нажатии на кнопку Anchor Right Leg для звена Betty R Thigh ключ будет определен, в каком бы кадре вы ни находились. Таким образом, ключ был определен в кадре 21. Этот ключ можно оставить там или удалить. В любом случае анимация завершена, так как в кадрах 20 и 50 есть ключи. Подвигайте ползунок шкалы времени - и вы увидите, что ступня остается заблокированной.


    Безусловно, возникает вопрос, почему нельзя было просто открыть окно Track View и скопировать ключевой кадр из кадра 20 в кадр 50. Можно было поступить и так. Но в этом случае все равно осталось бы избыточное движение, вызванное тем, что значение Continuity равно 25. Пришлось бы поменять его на 0 (рис. 7.25).

    Использование опции Join to Previous IK Key

    Рис. 7.24. Кнопка Anchor Key снова используется, но на этот раз совместно с опцией Join Prev IK Key

    Использование опции Join to Previous IK Key

    Рис. 7.25. Если, скопировав первый ключ, изменить значение Continuity на 0, то проблема также будет решена


    Использование снимка для объектов-экземпляров


    Когда поза определена, нужно каким-то образом удержать ружье в устойчивом положении на протяжении 11 -кадровой анимации прыжка. Лучше всего это сделать, зафиксировав мгновенное состояние конца ружья и используя его в качестве направляющей. Разморозьте все объекты, выделите объект m_gun (рис. 7.58, позиция 1), найдите пункт Snapshot (Снимок) в меню Tools (Инструменты) и щелкните по нему (рис. 7.58, позиция 2). Затем убедитесь, что в диалоговом окне Snapshot выбран переключатель Single (Один), и нажмите кнопку ОК (рис. 7.58, позиция 3).

    Использование снимка для объектов-экземпляров

    Рис. 7.58. Чтобы создать экземпляр ружья Betty в положении стрельбы, воспользуйтесь инструментом Snapshot
    Измените цвет сетки нового объекта, чтобы он выделялся на фоне текущего цвета. Затем скопируйте в кадр 430 только что определенные в кадре 420 ключи и немного измените позу, просто ради интереса.

    Поверните объект СОМ и туловище в направлении, противоположном текущему, совмещая руку с ружьем с только что созданным экземпляром объекта. При выравнивании ружья обратите особое внимание на его передний край, убедитесь, что он параллелен экземпляру (рис. 7.59).

    Использование снимка для объектов-экземпляров

    Рис. 7.59. Немного изменив позу Betty, выровняйте ружье
    Удвойте ключи, чтобы избавиться от смещения, связанного со значением параметра Continuity, и проверьте, не нужно ли настроить руку с ружьем в каком-либо другом кадре анимации. Все должно быть в порядке, поэтому удалите экземпляр объекта ружья и добавьте временной тег.

    Прыжок - относительно короткая анимация, она включает в себя значительное движение, поэтому нет необходимости анимировать эффект отдачи. Это относится как к встроенному ружью Betty, так и к традиционному игровому оружию.
    Теперь найдите ключ Jump Shoot Idle (Бездействие при атаке в прыжке) в кадре 450. Опустите ружье Betty вниз и придайте ей вид «подойди ближе - и получишь пулю» (рис. 7.60).

    Не стоит создавать снимок для экземпляра, с которым необходимо выровнять руку с ружьем, потому что в этой части нет анимации. Просто скопируйте ключевые кадры в кадры 451 и 452, добавьте временной тег в кадр 450 и точно так же расположите оружие в фазе приземления прыжка. Перейдите в кадр 470 и закончите последнюю часть прыжка.

    Использование снимка для объектов-экземпляров

    Рис. 7.60. Betty вот-вот приземлится и все еще хочет кого-нибудь подстрелить




    Новое оружие одним щелчком мыши


    Арсенал оружия Betty невелик: у нее есть дробовик, гранатомет, пулемет, ракетница и рельсовая пушка. Они отличны друг от друга скорее эффектом воздействия, а не различными физическими формами. Выбор этого подхода основан на попытке обойти две обычные для игр action проблемы: использования «волшебного» бездонного рюкзака и решения сложной задачи ношения множества видов оружия одновременно, которое по идее должно закрывать большую часть персонажа. Механика воспроизведения игры не нарушается из-за отсутствия возможности в этой игре носить с собой артиллерию, состоящую из дюжины различных орудий. На самом деле при введении вышеупомянутого альтернативного подхода с рюкзаком, производящим энергию для оружия, вместо бездонного рюкзака экономятся полигоны. Всякий раз, когда Betty убивает врага, он оставляет на месте своей смерти энергию, которую она поднимает и добавляет в свою рюкзачную систему подпитки вооружения. Наряду с тем, что Betty применяет такую совокупность популярных типов оружия, она также служит для эксперимента, в котором разработчики игры хотели опробовать некоторые идеи (однако это не было сделано) в специальных анимациях движения для Quake III Arena (Q3A).




    Особые движения


    Как и fighting, игры жанра action, в которых персонажам приходится в основном бегать и стрелять, можно немного оживить комбинациями движений или специальными движениями. Эти анимации запускаются, когда игрок нажимает одновременно пару клавиш или когда во время игры выполняется определенное условие, например происходит быстрая смена направления движения персонажа. Итак, помимо стандартного набора анимаций, который имеет обычный персонаж игры такого жанра, у Betty есть несколько дополнительных анимаций, которые и обеспечивают наличие специальных движений. Дополнительные анимации присутствуют также из-за требований окружающей среды в игре и ограничений игровой технологии. Однако Betty имеет и стандартные анимации: Idle (Бездействие), Run (Бег), Backpedal (Бег назад), Walk (Ходьба), Jump (Прыжок), Strafe (Бросок вбок), Shoot (Стрельба), Melee (Рукопашная атака), Pain (Получение повреждения) и Death (Смерть).

    Также используются анимации групп Special Moves (Специальные движения), Use Moves (Движения использования), Swimming (Плавание), Recovery (Восстановление) и Angled (Угловые).

    Как упоминалось ранее, персонаж Betty имеет почти 3000 кадров анимации, и это явно не средняя величина анимации для типичного персонажа. В первую очередь она обусловлена способом выполнения персонажа, тем, что он должен соответствовать игровой технологии. Причиной также является то, что игрок видит Betty со стороны. Постоянное присутствие на сцене персонажа с обычным, более коротким набором анимаций быстро надоест, станет неинтересным, поэтому у Betty широкий диапазон анимаций. Также на примере Betty можно изучить анимации, похожие на те, с которыми вы столкнетесь, анимируя своего персонажа. При чтении этой главы вы выполните часть набора анимаций Betty, особое внимание будет уделено тем движениям, которые полностью (без использования захвата движения) созданы на основе ключевых кадров. В следующей главе для создания оставшихся анимаций будет использован захват движения. Сначала создадим пару анимаций бездействия.




    Плавание вперед


    Любой персонаж с оружием при движении сквозь массу воды должен рассчитывать только на свои ноги, поэтому пригодятся лишь движения ног при плавании кролем или брассом. Можно воспользоваться подходом «русалки», как в The Man from Atlantis, где все тело находится в движении, но таком случае наличие оружия сильно усложняет плавный переход к другим анимациям. Важен первый кадр анимации, потому что он представляет собой позу, которую принимает персонаж после бездействия. С помощью интерполяции такой переход создается несложно, но и в этом случае есть над чем задуматься. В первом кадре Betty растянулась в лежачем положении, а правая рука отведена назад - Betty скользит по воде. Дело в том, что с помощью автоматической интерполяции переход от бездействия к плаванию осуществляется резко. Измените границы анимации в окне Time Configuration: в поле Start Time введите значение 410, а в поле End Time - 670. Расположите Betty в кадре 470, чтобы она выглядела, как показано на рис. 7.71.

    Плавание вперед

    Рис. 7.71. Первый кадр анимации плавания вперед пользуется преимуществом интерполяции
    Скопируйте ключи из кадра 670 в кадр 710 и перейдите в кадр 690, чтобы создать следующую позу. Это средняя точка, в которой Betty свободно дрейфует, а затем делает следующее движение рукой и готовится оттолкнуться мощным рывком. Однако самое важное здесь - движение объекта СОМ. Создавая позу, показанную на рис. 7.72, переместите СОМ назад по оси Y на 4 единицы и вниз по оси Z на 8 единиц. Несмотря на то что Betty будет перемещаться в воде программными средствами, такое движение создаст впечатление, что паузы между гребками приводят к потере импульса и даже к небольшому погружению в воду. Это помогает составить общее впечатление о движении под водой (рис. 7.72).

    Плавание вперед

    Рис. 7.72. В средней точке Betty способна грести и отталкиваться
    От перемещения СОМ перейдите к настройке ног. Это случай, когда настройка родительского объекта производится перед дочерним. Если вы собираетесь анимировать конечность, убедитесь, что не нужно анимировать родительский объект. Для ног это объекты СОМ и Pelvis, а для рук- звенья Spine. Есть некоторые исключения, особенно для рук, и вы увидите их через некоторое время.


    Ноги должны двигаться по-лягушачьи, перемещая Betty в воде. Вытянутые в кадре 690 ноги нужно немного выгнуть наружу прямо перед внезапным перемещением назад в кадре 695. Наконец, они вытянутся в кадре 702, а потом вернутся в исходное положение (рис. 7.73).

    Плавание вперед

    Рис. 7.73. Три шага создания движения плавания брассом: поднять ноги, согнуть их и выбросить назад

    Определив основные положения ног, уточните положение ступней так, чтобы они немного поворачивались по мере того, как ноги перемещаются. В кадрах 695 и 698 подчеркните вращение ступней вовнутрь относительно осей Y и X при сгибании ног наружу. Затем в кадре 702 поверните ступни наружу при сведении ног, моделируя результат перемещения воды между ногами Betty. Под этим давлением ступни вынуждены вращаться, иллюзия плавательного движения завершена (рис. 7.74).

    Поза ног определена, теперь нужно изменить анимацию правой руки, чтобы движение было больше похоже на гребок. Однако не забывайте, что подвижность правой руки Betty невелика из-за большого эполета. Перейдите в кадр 680, скройте объект Spine и объекты Biped левой руки и поверните правую руку вверх так, чтобы ладонь оказалась примерно в том положении, которое она занимает в кадре 690. Сожмите пальцы, чтобы они выглядели так, как будто готовы пройти сквозь воду. Сожмите пальцы и в кадре 690. В кадре 696 оставьте ладонь на месте, но поверните вниз локоть, так как рука должна пойти назад. Затем перейдите в кадр 706, откройте окно Track View и скопируйте в кадр 706 ключ из кадра 710 для звена Betty L Clavicle. Закройте окно Track View и вытяните пальцы. Наконец, вернитесь в кадр 702, немного поверните ладонь и пальцы относительно оси Z, чтобы казалось, что они разогнулись при прохождении сквозь воду (рис. 7.75).

    Плавание вперед

    Рис. 7.74. Ступни реагируют на перемещение воды ногами

    Плавание вперед

    Рис. 7.75. При движении рука должна чувствовать, действовать и реагировать

    Последними нужно настроить движения талии. Перейдите в кадр 684, выполните команду Unhide All (Показать все) и выделите все четыре объекта Spine. Откройте окно Track View и удалите ключ, определенный в кадре 690 для Betty Spine. Поверните все четыре объекта Spine в левую сторону относительно оси Y в тот момент, когда правая рука поднимается вверх над водой, чтобы сделать гребок. Затем перейдите в кадр 705 и поверните объекты Spine относительно оси Y по направлению движения гребка (рис. 7.76).



    Анимирование объектов Spine ( родительского объекта) после анимирования руки (дочернего объекта) - один из особых случаев, обычно этот процесс происходит в обратном порядке. В рамках Biped так можно поступать из-за уникального строения обратной кинематики ладони Biped. Анимация завершена, осталось только добиться гладкости этого цикла плавания. Время начала для анимации плавания важнее, чем для анимации бездействия. Поэтому нужно переместить весь отрезок движения и добавить ключевые кадры спереди и сзади, чтобы параметр Continuity вам не мешал.

    Откройте окно Track View и примените операцию Add Keys ко всем трекам в кадрах 680 и 702 (рис. 7.77).

    Затем измените параметры в окне Time Configuration: в поле Start Time введите значение 670, а в поле End Time - 270. Вернитесь в окно Track View, выделите ключи, добавленные в кадр 680, и скопируйте их в кадр 720. Затем активизируйте кнопку Slide Keys Плавание вперед, щелкнув по ней, выделите все ключи в кадре 670 и переместите всю 20-кадровую анимацию вправо. Еще раз щелкните по кнопке Move Key (Переместить ключ): она станет активной. Выделите ключи в кадре 712 и скопируйте их в кадр 670.

    Плавание вперед

    Рис. 7.76. Завершите гребок незначительными поворотами объектов Spine

    Плавание вперед

    Рис. 7.77. Добавьте ключевые кадры в кадры 680 и 702, чтобы их можно было скопировать еще куда-нибудь

    Плавание вперед

    Рис. 7.78. Betty вот-вот станет пловчихой-разрядницей

    Снова измените параметры в окне Time Configuration: в поле Start Time введите значение 680, а в поле End Time - 720. Воспроизведите анимацию и посмотрите, как она выглядит (рис. 7.78).

    Конечно, у Betty есть еще много других анимаций плавания. Ей приходится плыть в обратном направлении, стрелять в бездействии, плыть вперед и назад, а также чувствовать боль и умирать в двух позах. Эта глава призвана рассказать лишь о некоторых приемах анимации, требуемых при создании персонажа игры в реальном времени только с помощью операций над ключевыми кадрами.

    Загрузите файл Betty12.max и просмотрите завершенные анимации плавания. Затем подготовьтесь к чтению следующей главы, в которой рассказывается о захвате движения.

    Плавание вперед Плавание вперед Плавание вперед

    Плавание


    Плавающие персонажи нужны не во всех играх. В Q3A персонажи плавают, но вода есть только на нескольких уровнях. В Betty Bad вода представлена как составная часть игры, уровень затапливается, а потом осушается. И если в Q3A персонажи просто плавали по-лягушачьи или кролем, то у Betty обширный набор анимаций, который отвечает за плавание и включает в себя плавание вперед, плавание вперед со стрельбой, плавание назад, плавание назад со стрельбой, бездействие при плавании, бездействие при плавании со стрельбой, получение повреждения при плавании, смерть при плавании, - картина понятна. Персонаж целиком погружается в воду, используя тот же дыхательный аппарат, что и Qui-Gon Jinn и Obi-Wan Kenobi в Star Wars: Episode I. Поэтому все анимации должны выглядеть так, как будто Betty действительно плывет под водой. Чтобы получить общее представление о водных анимациях, создадим анимации плавания вперед и бездействия при плавании.




    Поза стрельбы


    Поза стрельбы для обычного игрового персонажа иногда зависит от типа оружия, обычно персонаж держит ружье двумя руками. Однако в случае с Betty все немного по-другому (рис. 7.27).

    Поза стрельбы

    Рис. 7.27. А если бы Betty пришлось носить большое ружье, как и всем обычным персонажам?
    Единственное оружие Betty прикреплено к ее руке, а боезапас располагается на спине. Передняя часть большинства персонажей, которые держат оружие двумя руками, закрыта, но Betty это не свойственно. Поэтому создавать анимации стрельбы проще, но нужно помнить, что разные анимации стрельбы должны соответствовать различным позам, из которых персонаж может стрелять.

    Загрузите файл Betty09.max, если вы еще не сделали этого, и измените параметр конца анимации в окне Time Configuration в поле End Time на 200. Откройте окно Track View и скопируйте ключи из кадра 20 в кадры 165 и 170, чтобы получить отправную точку для позы стрельбы.

    При копировании ключевых кадров в окне Track View следите за полями назначения кадров, которое показывает, куда копируются ключи, - так вам будет проще убедиться, что они копируются в правильный кадр (рис. 7.28).
    Поза стрельбы

    Рис. 7.28. Чтобы убедиться, что ключи перемещены или скопированы в правильный кадр, наблюдайте за полями в нижней части окна Track View
    Скопировав ключи, перейдите в кадр 170, включите кнопку Auto Key и расположите Betty в позе готовности к стрельбе. Для этого немного опустите ее объект СОМ, переместив тем самым центр тяжести так, чтобы Betty выражала готовность. Поверните все четыре объекта Spine, чтобы Betty повернула руку с ружьем по направлению к цели. Поднимите руку с ружьем, повернув ее относительно осей X, Y и Z, передняя часть оружия должна быть направлена прямо к цели. (Не забудьте повернуть звено Clavicle относительно оси Y, чтобы поднять плечо.) Поверните правую руку вниз (по часовой стрелке), немного назад, как если бы Betty пыталась с ее помощью сохранить равновесие, пальцы должны быть вытянуты. Наконец, немного поверните правую ногу, чтобы ступня и голень были правее, а зритель почувствовал еще раз, что Betty готовится к выстрелу. Задав позу, осмотрите ее, включив режим Arc Rotate, и убедитесь, что Betty не теряет равновесия.


    В Biped встроены автоматические ограничения, поэтому невозможно повернуть объекты Calf относительно оси Y. Однако их можно повернуть относительно оси X - результат будет интересным. Ступню тоже нельзя переместить, даже если она не заблокирована. Попробуйте сделать это при определении положения ног и посмотрите на результат.

    Когда поза Betty будет задана, она должна выглядеть, как показано на рис. 7.29.

    Поза стрельбы

    Рис. 7.29. Betty готова выстрелить

    Создав позу, подвигайте ползунок шкалы времени из стороны в сторону, чтобы просмотреть переход из первой позы бездействия в позу стрельбы. Ключи из кадра 120 были скопированы в кадр 165 только для того, чтобы увидеть этот переход. При экспорте они не войдут в анимацию - это обусловлено способом выполнения анимаций. Фактически, когда Betty находится в позе Idlel и начинает стрелять из оружия, она сразу же принимает позу из кадра 170. Программист определит время, которое уйдет на переход из последнего кадра анимации бездействия в только что созданную позу. Игровой движок затем интерполирует позу- и она станет практически анимированной.

    Персонажи Quake II были анимированы с частотой 15 кадров в секунду с линейной интерполяцией. Анимационная система для моделирования анимации была основана не на костях, а на деформации вершин - это так называемый подход целей морфинга. Каждый кадр анимации экспортировался в то, что в терминологии разработчиков называлось ключевым кадром вершины. Если посмотреть замедленное движение персонажей, то можно увидеть, что они при перемещении вершин из кадра в кадр принимают странные формы, попадая в следующую позу по кратчайшему пути.

    В игре Betty Bad интерполяция между кадрами оказывает влияние на кости, которые управляют сеткой. Если есть возможность применить такой подход, то есть переходить из одной позы в другую, не анимируя на самом деле движение, то суммарное число кадров анимации сократится. Другими словами, анимационная система, основанная на костях, работает лучше, чем система деформации вершин. Это обусловлено тем, что кости поворачивают или перемещают вершины, на которые они влияют, а не просто переносят их из одной позы в другую. А без интерполяции позы просто привязывались бы друг к другу, выглядели бы резкими и неестественными.

    Поза Betty определена, теперь скопируйте ключи позы готовности к стрельбе в кадр 177, чтобы перейти к следующему шагу в создании анимации стрельбы, а именно к добавлению эффекта отдачи.

    Поза стрельбы Поза стрельбы Поза стрельбы

    Прыжки с места и с разбега


    Сама по себе анимация прыжка - важная часть всего набора анимации, реализация которой, однако, создает сложности. Обычный прыжок с места, представленный на рис. 7.36, состоит из четырех частей: ожидание (1), подъем (2), зависание (3) и приземление (4).

    Прыжки с места и с разбега

    Рис. 7.36. Прыжок с места можно разделить на четыре различные части
    Как видно из рисунка, приземление немного сложнее других частей, потому что оно включает в себя и столкновение с землей, и восстановление положения. Прыжок с разбега еще сложнее, так как он имеет добавочный эффект импульса, который влияет на анимацию ожидания и приземления (рис. 7.37).

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

    Прыжки с места и с разбега

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




    Прыжки


    Те, кто играл в Quake II или Q3A в режиме онлайн, возможно, много раз слышали звуки, которые издают при прыжках персонажи любой из этих игр. Бесконечную череду подобных звуков обрушивают на вас опытные игроки, которые всеми силами стараются не быть застреленными.




    Прыжок с поворотом


    В четвертом прыжке создайте что-нибудь из репертуара баскетболиста или фигуриста, например прыжок с поворотом. Сначала измените параметры в окне Time Configuration: в поле Start Time введите значение 390, а в поле End Time - 410. Затем определите позу Betty в кадре 390, подняв ее колени, опустив правое плечо, поместив опущенную правую руку позади туловища и опустив руку с ружьем, чтобы казалось, что оно почти лежит на бедре. То, что руки опущены вниз, важно, поскольку при повороте они смогут подниматься, создавая иллюзию центробежной силы. Betty будет поворачиваться против часовой стрелки, поэтому слегка наклоните ее туловище в этом направлении (рис. 7.50).

    Прыжок с поворотом

    Рис. 7.48. Betty очень легко прыгает на большие расстояния
    Прыжок с поворотом

    Рис. 7.49. Даже в воздухе Betty сохраняет самообладание и собранность
    Прыжок с поворотом

    Рис. 7.50. Начните анимацию с поворотом, наклонив Betty в направлении движения
    Эта анимация должна продолжаться немного дольше, чем другие прыжки, в целом примерно 13 кадров. Но вместо того чтобы переходить в конец анимации и поворачивать объект СОМ на один полный оборот, разделите анимацию на три отдельных поворота. Для начала перейдите на четыре кадра вперед, выделите только объект СОМ и поверните его относительно оси Z на 120° (рис. 7.51, позиция 1). Больше ничего не анимируйте. Снова перейдите на четыре кадра вперед и поверните объект СОМ на 120° (рис. 7.51, позиция 2), а затем перейдите еще на четыре кадра вперед и опять поверните его на 120°. В кадре 402 получится полный оборот (рис. 7.51, позиция 3).

    Протестируйте поворот и посмотрите, как он выглядит. Теперь задайте конечную позу. Поднимите руки Betty и наклоните ее торс вперед, как если бы она с помощью туловища увеличивала скорость вращения. Поверните объекты Spine и правую руку немного правее, чем в первом кадре. Настройте ноги, чтобы они больше были направлены вперед (рис. 7.52).

    Прыжок с поворотом

    Рис. 7.51. Осуществите полный оборот СОМ на 360° за три шага, поворачивая его на 120° через каждые четыре кадра

    Прыжок с поворотом

    Рис. 7.52. Конец прыжка с поворотом должен быть таким же динамичным, как и его начало

    Когда в соревновании гонщик или фигурист выполняет ряд поворотов или сальто на большой скорости, он поворачивает голову в направлении вращения. Это делается из практических целей: так он видит, куда приземляться, или просто следит за своим положением в пространстве. Добавьте подобные штрихи к анимации, присовокупив вторичное движение такого типа к позвоночнику, голове и рукам Betty. Вернитесь в кадр 396. Изогните дугой ее спину и поверните объекты Spine относительно оси X, чтобы передать движение поворота. Также поверните относительно оси X и голову Betty и немного наклоните ее по оси Y. Вытяните левую руку, чтобы снова подчеркнуть центробежную силу вращения. Согните правую руку так, чтобы казалось, что Betty вот-вот выбросит ведущую руку в направлении вращения (рис. 7.53).

    Прыжок с поворотом

    Рис. 7.53. Добавьте вторичное движение в позу в середине анимации

    В кадрах 393 и 399 поверните голову и наклоните ее в сторону поворота, чтобы добавить ощущение, что персонаж определяет свое положение. В кадре 400 поднимите вверх правую руку и отведите ее немного назад: должно получиться что-то вроде движения кнута, которое в еще большей степени придаст чувство вращения и скорости (рис. 7.54).

    Прыжок с поворотом

    Рис. 7.54. Завершите анимацию, внеся последние изменения во вторичное движение

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


    Прыжок со стрельбой


    Чтобы создать такой прыжок, начнем с анимаций, которые уже сделаны. Скопируйте ключевые кадры, которые составляют позы Jump2, позы касания (кадры 280-282) и приземления (кадры 283-307), но, чтобы добраться до них, не изменяйте параметры в окне Time Configuration. Вот одно из преимуществ использования временных тегов. Щелкните по полю сообщений Add Time Tag, а затем - по пункту Jump2 (рис. 7.55).

    Прыжок со стрельбой

    Рис. 7.55 Если щелкнуть по пункту Jump2, то анимация перейдет в эту точку независимо от параметров, установленных в окне Time Configuration
    Если временные теги не были добавлены ранее, то, чтобы редактировать эти ключи в окне Track View, придется изменить диапазон анимации в окне
    Time Configuration.

    Параметры в окне Time Configuration автоматически изменятся, когда ползунок шкалы времени перепрыгнет в позу Jump2. Откройте окно Track View и скопируйте все ключи из кадров 329-341, чтобы они начались в кадре 419. Конечно, временные теги не помогут, если в окне Time Configuration нужно расширить диапазон времени. Измените параметры в окне Time Configuration: в поле Start Time введите значение 280, а в поле End Time - 480. Так вы получите доступ к позам бездействия и приземления, а также раздвинете диапазон анимации, чтобы создать новую анимацию прыжка. Скопировав все ключи из кадров 280-308 в кадры 450-478, еще раз измените диапазон в окне Time Configuration: в поле Start Time введите значение 420, а в поле End Time - 480. Ключи должны выглядеть примерно так, как в окне Track View: Jump2 (рис. 7.56, позиция 1), касание1 (рис. 7.56, позиция 2) и приземление (рис. 7.56, позиция 3).

    Скопировав все ключи, удалите ключи из следующих кадров: 419, 430, 431, 451, 452, 469 и 478 (будут использоваться новые позы, поэтому старые ключи уже не нужны). Затем перейдите в кадр 420 и определите позу готовности к стрельбе. Поверните объект СОМ, объекты Spine, руки и голову, чтобы персонаж казался собранным и беспощадным (рис. 7.57).

    Прыжок со стрельбой

    Рис. 7.56. Скопируйте ключи предыдущих анимаций, чтобы обеспечить начальные данные для новой анимации
    Прыжок со стрельбой

    Рис. 7.57. Betty снова прыгает, но теперь она готова поразить любого врага


    Прыжок со стрельбой Прыжок со стрельбой Прыжок со стрельбой



    в реальном времени может иметь


    Обычный персонаж игры в реальном времени может иметь примерно от 200 до 2000 кадров анимации. Насколько маленьким или большим будет это число - зависит от роли персонажа в игре, а также от способа, которым он реализован в игре. Больше всего кадров анимации определенно приходится на главных персонажей, потому что они должны многое делать, особенно если в игре на них смотрят со стороны.

    Как правило, первым движением, которое нужно создать в анимационной папке (файле персонажа 3ds max), является анимация бездействия. Независимо от того, одна или несколько анимаций бездействия есть у персонажа, в основном создание движения при бездействии заключается в определении интересной позы, которая затем при прохождении по циклу немного изменяется. После определения первой позы заблокируйте ступни с помощью кнопки Set Planted Key и скопируйте позу в конец диапазона анимации. Чтобы избавится от избыточной анимации, обнулите параметры Continuity или воспользуйтесь удваиванием ключей - так быстрее всего избавится от подобного рода дополнительного движения. Вторичное движение - ключевой момент, определяющий качество любой анимации. Всегда добавляйте в анимацию, тем или иным способом, дополнительные детали.

    При создании анимаций стрельбы сначала определите позу персонажа, в которой он держит оружие. Затем добавьте эффект отдачи при выстреле из оружия. Как и в случае с анимациями бездействия, особое внимание уделите созданию интересной позы, которая удовлетворяет требованиям набора анимации. Экспериментируйте с различными идеями. Определив положение оружия, присоедините к звену Biped Forearm кость или объект-пустышку - он будет играть роль прицельного механизма для программиста, помогая ему определить, в какой точке образуется выстрел.

    Захват движения - хороший способ создания анимаций прыжка, но при разработке персонажа игры в реальном времени прыжки настолько специфичны, что их порой проще выполнить с помощью ключевых кадров. В физическом мире прыжок состоит из четырех частей: ожидание, подъем, зависание и приземление. В мире персонажей игр в реальном времени анимации прыжка разделены на три части: прыжок, касание и приземление. Анимируйте одну полную последовательность прыжка, затем разделите ее на эти части, чтобы они соответствовали игровому движку и персонажу. Некоторым персонажам придется, возможно, стрелять в прыжке, а для этого требуется другая анимация, в которой оружие всегда должно быть направлено на воображаемую цель. Воспользуйтесь инструментом Snapshot и создайте экземпляр объекта, по которому можно выровнять оружие по мере того, как персонаж совершает прыжок.


    Наконец, есть много анимаций, которые необходимы персонажу и для которых захват движения был бы более эффективен, но плавание требует особой анимации с ключевыми кадрами, потому что с помощью захвата движения трудно получить точные движения под водой. Чтобы создать правильный цикл с таким медленным движением в жидкой среде, иногда необходимо дублировать ключевые кадры не просто методом «двойного касания» (double-tap), нужно скопировать целые сегменты ключевых кадров до и после диапазона анимации.


    в реальном времени может иметь в реальном времени может иметь

    Создание плавного цикла


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

    Измените параметры в окне Time Configuration: в поле Start Time введите значение 500, а в поле End Time - 700. Удалите ключи, удвоенные в кадрах 499 и 601. Затем скопируйте все ключевые кадры из кадра 525 в кадр 625 и все ключи из кадра 550 в кадр 650. Установите начало и конец анимации в кадрах 525 и 624 и воспроизведите анимацию (рис. 7.70).

    Создание плавного цикла

    Рис. 7.70. Создайте гладкий цикл: продублируйте ключи, тем самым увеличив диапазон анимации и изменив сам диапазон так, что он попадет в больший цикл
    Теперь анимация должна быть полностью плавной. Копирование ключей таким способом - всего лишь вариация приема с удваиванием ключей, которое вынуждает программу 3ds max либо распознавать, либо игнорировать ключи до и после текущей анимации. Поэтому, используя подход с анимационной папкой, нужно представлять себе анимации, находящиеся в файле 3ds max, скорее как близкие по смыслу отрезки движений, а не отдельные анимации. Эта аналогия поможет в дальнейшем при работе в режиме Flow Mode (который будет обсуждаться в следующей главе).

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




    Способ прицеливания


    Когда персонаж игры в реальном времени стреляет из различных типов оружия, программист должен знать, откуда исходит выстрел. Единственный способ, которым можно заставить игровой движок сделать так, чтобы казалось, что выстрелы исходят из конца оружия, - определить это место за него самим. В Q3A система тегов, допускавшая анимационную схему из трех частей, обеспечивала и механизм определения места на оружии, из которого делается выстрел. Это место также называлось тегом. В анимационной системе Betty следует добавить еще одну кость на конце оружия, которую нужно оставить во время процесса экспорта (об этом рассказывается в главе 9), - так программист узнает, откуда произойдет выстрел. В 3ds max любой объект может быть костью, поэтому к звену Betty L Forearm будет привязан объект-пустышка, который и станет такой костью. Таким образом, дополнительная полигональная геометрия не добавляется и не визуализируется.

    На панели Create активизируйте пиктограмму Helpers и кнопку Dummy, щелкнув по ним. Создайте и расположите объект-пустышку так, чтобы он совпадал в кадре 230 с передней частью дула ружья (рис. 7.34).

    Переименуйте объект-пустышку в Weapon Pointer и свяжите его с звеном Betty L Forearm. Для этого выделите объект-пустышку и щелкните по кнопке Select and Link (Выделить и привязать) - рис. 7.35, позиция 1. Затем нажмите клавишу Н, чтобы вызвать список объектов сцены, и выберите объект Betty L Forearm (рис. 7.35, позиция 2). В завершение щелкните по кнопке Link, которая находится в нижней части окна (рис. 7.35, позиция 3).

    Связывание объекта Weapon Pointer с предплечьем Betty логичнее, чем с ладонью, потому что оно не используется для деформации и не анимируется. Этот кадр, содержащий объект, который является источником выстрелов, исходящих из оружия, также дает точку присоединения геометрии и эффектов вспышки из дула. Завершите отрезки анимации стрельбы, добавив временные теги, и сохраните файл.

    При желании загрузите файл Betty10.max и посмотрите, как выглядят анимации стрельбы. Встряхните руки, наклонитесь и приготовьтесь к прыжкам!

    Способ прицеливания

    Рис. 7.34. Создайте объект-пустышку и выровняйте его с концом ружья
    Способ прицеливания

    Рис. 7.35. Если связать объект Weapon Pointer с рукой Betty, то можно определить место, в котором образуется выстрел




    Стрельба при касании земли


    И снова ключ к такого рода анимации - физическое обоснование этого движения, приземления. При приземлении после прыжка даже Клинту Иствуду будет трудно прицелиться из такой пушки, которой пользуется Betty. Заставить игрока поверить в невозможное - требование игры action, в этом ее прелесть; добавьте героического реализма - это сделает игру еще более правдоподобной. Не забывайте об этом, задавая первую позу приземления (рис. 7.61).

    Теперь добавьте в анимацию поворот, позаимствовав его из анимации Fire3. Положение ступней взято из позы приземления, которая, в свою очередь, перешла из Idle3, поэтому имеет смысл закончить анимацию в позе Fire3. Вызовите список временных тегов и щелкните по анимации Fire3 в кадре 230, чтобы использовать ее в качестве конечной позы в этой анимации. Скопируйте ключевые кадры из кадра 230 в кадр 480, удлинив анимацию приземления на несколько кадров.

    Затем добавьте убедительности процессу приземления, обратившись к кадру 273, - изогните талию Betty, немного опустите ее руки, наклоните голову и ладонь вниз. Добавление этих вторичных движений при подъеме Betty после наклона к земле усиливает впечатление, что она только что приземлилась (рис. 7.62).

    Перейдите к кадру 275 и добавьте последнюю часть вторичного движения, усиливая эффект восстановления Betty от столкновения с землей, повернув ее голову, руку с ружьем и правую ладонь немного вперед до того, как она перейдет в позу из кадра 230. Так будет казаться, что реакция Betty на приземление была быстрой и она снова готова к действию (рис. 7.63). Наконец еще немного уточните анимацию.

    Стрельба при касании земли

    Рис. 7.61. Если во время приземления оружие наведено, то Betty придется присесть сразу после касания земли
    Стрельба при касании земли

    Рис. 7.62. Betty реагирует на резкий удар при приземлении
    Стрельба при касании земли
    Рис. 7.63. Реакция Betty позволяет ей быстро оправиться после удара при приземлении
    Откройте окно Track View и с помощью инструмента Slide Keys перетащите ключи для треков Betty Spine, Betty Pelvis и Betty Head из кадра 480 в кадр 478. Так, ладони, которые занимают обычное положение (наготове и поверх оружия), заметнее, потому что туловище восстанавливает свое положение быстрее, чем они (рис. 7.64). Добавьте ключи для недостающих нюансов в кадре 480 и создайте двойные ключи в начале и конце анимации. В завершение создайте временные теги в начале и в конце.




    Третья анимация бездействия


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

    Ниже приведены действия, которые нужно выполнить, чтобы создать короткую повторяющуюся анимацию бездействия:

    1. Задайте диапазон анимации.

    2. Определите позу персонажа.

    3. Заблокируйте ступни.

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

    5. В середине анимации создайте слабое движение.

    6. Настройте параметры контроллера ТСВ или удвойте ключи, чтобы цикл был гладким.

    7. Добавьте временные теги в начальный и конечный кадры анимации. Для этой анимации бездействия создайте позу, в которой персонаж смотрит вперед, а правая ступня слегка выступает относительно левой. Заблокируйте ступни. Затем, чтобы создать движение, заставьте Betty покачиваться из стороны в сторону, сгибая и разгибая пальцы. Измените диапазон анимации в окне Time Configuration на 120 и 149, перейдите в кадр 20, убедитесь, что кнопка Auto Key включена, и определите позу персонажа, как показано на рис. 7.26.

    Третья анимация бездействия

    Рис. 7.26. Поза в третьей анимации бездействия не такая динамичная
    В кадре 135 сдвиньте Betty с одной сторону в другую, добавив вторичное движение к левой руке и голове, как в предыдущей анимации бездействия. Также немного согните пальцы в кадре 135, чтобы получить движение сжимания/разжимания. Затем измените параметры в окне Time Configuration так, чтобы видеть кадр 150, добавьте временные теги для начала и конца анимации. На этом работа над анимациями бездействия закончена.

    Сохраните файл или загрузите файл Betty09.max и посмотрите, как должны выглядеть эти три анимации бездействия. Теперь можно перейти к анимации стрельбы.




    Удвоение ключей


    Использовать 3ds max файл в качестве папки с анимациями, в которой хранится набор анимаций персонажа, чрезвычайно полезно, но контроллер ТСВ может привести к некоторым проблемам с промежуточным движением, которые возникают из-за исходного значения параметра Continuity. Чтобы избавиться от этого, необязательно вручную изменять значение Continuity на 0, можно просто удвоить ключи. Воспользуйтесь этим методом - он также называется «заключением в скобки» (bracketing) -в следующей анимации бездействия Betty. Сначала измените диапазон анимации: в поле Start Time введите значение 70, а в поле End Time - 99. В кадре 70 определите позу Betty так, чтобы она выглядела, как показано на рис. 7.13, - правая ступня должна быть впереди.

    Удвоение ключей

    Рис. 7.13. Betty в позе бездействия с правой ступней впереди
    Снова заблокируйте ступни, но на этот раз в окне Track View введите вручную значение IK Blend и выберите пространство Object. Откройте окно Track View, выделите ключ в кадре 70 для объекта Betty L Thigh и щелкните по нему правой кнопкой мыши, чтобы вызвать окно параметров ключевого кадра. Измените параметр IK Blend с 0 на 1, а вместо переключателя Body выберите Object (рис. 7.14).

    Удвоение ключей

    Рис. 7.14. Чтобы заблокировать ступни, определите значение IK Blend равным 1 и переключитесь на пространство Object
    Проделайте то же самое для трека Betty R Thigh, а затем скопируйте все ключи из кадра 70 в кадр 100. Сверните окно Track View и подвигайте ползунок шкалы времени из стороны в сторону. Очевидно, что лишняя анимация осталась. Вернитесь в окно Track View и скопируйте столбец ключей из кадра 70 в кадры 69 и 101 (рис. 7.15).

    Закройте окно Track View и еще раз протащите ползунок по шкале времени. Теперь дополнительное движение отсутствует. Этот метод двойного «заключения в скобки» позволяет избавиться от изгиба анимационной кривой параметром Continuity, хотя его значение по-прежнему равно 25. Между двойными ключами нет временного промежутка, анимационная кривая становится прямой и так же влияет на движение объекта, как если значение бы параметра Continuity было равно 0.

    Теперь нужно придать персонажу небольшую анимацию, как при первом бездействии, - добавить незначительное колебательное движение. Перейдите в кадр 85, выделите объект СОМ персонажа Betty, убедитесь, что кнопка Auto Key активна и опустите корневой объект Biped на 0,7 единицы вниз по оси Z (рис. 7.16).

    Удвоение ключей

    Рис. 7.15. Результат удвоения ключей такой же, как при изменении параметра Continuity на 0
    Удвоение ключей

    Рис. 7.16. Если немного сдвинуть тело вниз в середине анимации, то движение приобретет оттенок нетерпеливости




    Все дело в позе


    Анимации бездействия должны быть относительно короткими циклами; поскольку это все-таки состояние неподвижности, они не должны слишком усложняться - в основном в них требуется определить позу. Измените параметры диапазона анимации в окне Time Configuration: в поле Start Time введите значение 20, а в поле End Time - 50. Затем с помощью команды преобразования Rotate and Move задайте в кадре 20 позу Betty так, чтобы она выглядела, как показано на рис. 7.3. В качестве поверхности, на которой располагается персонаж, воспользуйтесь основной строительной плоскостью (main construction plane) - ступни должны быть на одной плоскости.

    Все дело в позе

    Рис. 7.3. Сделайте позу бездействия интересной
    Тело Betty немного повернуто, оружие наготове, правая рука отведена для равновесия, а центр тяжести смещен вниз -Betty настороже и готова к атаке. Теперь нужно заблокировать ступни и скопировать все ключевые кадры из кадра 20 в кадр 50. Для этого выделите по очереди каждую ступню и в свитке Key Info нажмите кнопку Set Planted Key. Убедитесь, что опция Join to Prev IK Key не активна (рис. 7.4).

    Все дело в позе

    Рис. 7.4 Как только поза определена, заблокируйте ступни с помощью кнопки Set Planted Key
    Кнопку Set Planted Key нельзя применять одновременно к нескольким конечностям. Выделите и определите закрепляющий ключ для одной конечности, а затем повторите процедуру для других.
    В character studio при определении закрепляющего ключа на выделенной конечности автоматически появляется красная точка, которая обозначает активную точку центра трансформаций обратной кинематики. Эти точки на руках (ладонях) и ступнях не только позволяют лучше воспользоваться цепочкой обратной кинематики, которая определена для рук и ног, но могут повлечь за собой некоторые интересные анимации. Выделите объект Betty L Foot и в свитке Key Info в разделе IK нажмите кнопку Select Pivot (Выделить центр трансформаций), чтобы просмотреть доступные центры трансформаций для ступни (они показаны синими точками). Измените активный центр трансформаций, щелкнув по любой из точек, которые появляются на ступне, когда кнопка Select Pivot активна (рис. 7.5).

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

    Отожмите кнопку Select Pivot, откройте окно Track View и скопируйте все ключи из кадра 20 в кадр 50. Закройте или сверните окно Track View и подвигайте ползунок шкалы времени из стороны в сторону. Вы увидите незначительное движение, так как параметр Continuity для всех ключей равен 25, а ключи определены в кадре 0.




    Вторичное движение


    В кадре 85 выделите все пальцы правой руки (кроме большого) и поверните их относительно оси Z, создавая видимость того, что Betty слегка сгибает руку. Немного согните большой палец вниз и вовнутрь (рис. 7.17).

    Вторичное движение

    Рис. 7.17. Добавьте вторичное движение правой руке, слегка согнув пальцы
    Чтобы быстро выделить только пальцы руки, дважды щелкните по руке объекта Biped. Затем, удерживая нажатой клавишу Alt, щелкните по объектам Hand и Thumb (Большой палец руки) и тем самым отмените их выделение.
    Не выходя из кадра 85, выделите объект Betty L UpperArm и поверните его вниз (по часовой стрелке) на 2° относительно оси Z. Чтобы выделить левое предплечье, нажмите клавишу Page Down (эта «горячая» клавиша выделяет объект, стоящий в иерархии на уровень ниже, чем выделенный), перейдите в кадр 90 и поверните предплечье вниз (по часовой стрелке) на 3° относительно оси Z (рис. 7.18).

    Не выходя из кадра 90, поверните голову Betty на 3° по часовой стрелке, чтобы голова слегка наклонялась (рис. 7.19).

    Вторичное движение

    Рис. 7.18. Добавьте вторичное движение левой руке, задав небольшие вращения предплечья и плеча
    Вторичное движение

    Рис. 7.19. Поверните голову Betty в кадре 90, создайте ощущение, что она готова к бою и горит от нетерпения
    Завершите настройку вторичных движений, присвоив ключам для треков Betty Head, Betty L Clavicle и Betty R Clavicle в кадре 100 значение параметра Ease To, равное 25, - цикл анимации станет более плавным (рис. 7.20).

    Вторичное движение

    Рис. 7.20. Если задать значение параметра Ease To, равное 25, для последнего ключа анимированных объектов, то цикл анимации станет более плавным
    Кивок головой и поворот предплечья в кадре 90 нужен из-за эффекта задержки, который он создает. Если незначительный кивок головой сочетается с небольшим движением основного тела, то Betty выглядит проворной, неукротимой, готовой к действию. Задержка в повороте предплечья создает впечатление, что огромное ружье немного тяжелее, чем казалось. В завершение добавьте временные теги в первый и последний кадры второй анимации бездействия.




    Выполнение прыжка в игре в реальном времени


    Чтобы персонаж в игре прыгал, движение придется разбить на части, или сегменты, которые программист сможет запускать в зависимости от того, насколько высоко должен подпрыгнуть персонаж, как далеко он пролетит и когда ударится о землю. Прыжок не может быть одним длинным движением, иначе его нельзя будет выполнить, ведь невозможно сказать, как долго персонаж будет находиться в воздухе после толчка и как далеко он улетит, поскольку скорость и направление движения все время меняются. Прыжок в игре будет работать, только если он продуман немного по-другому и разделен на три части: прыжок (1), касание (2) и приземление (3) -рис. 7.38.

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

    Выполнение прыжка в игре в реальном времени

    Рис. 7.38. Чтобы выполнить последовательность прыжка, ее нужно разбить на три части
    Еще одно условие выполнения прыжка - он анимируется «на месте». Это значит, что персонажи не перемещаются во время анимации, потому что в игре они перемещаются движком вертикально и горизонтально на основе кода, который зависит от команд, полученных от игрока. Также это обусловлено ограничениями габаритного контейнера и ограничениями, связанными со столкновениями. Создавая анимацию прыжка, сначала добейтесь нужного ее вида, прежде чем думать об ограничениях. Затем просто удалите вертикальные ключи для объекта СОМ и остальное предоставьте коду, когда персонаж будет в игре.

    Многие персонажи игр в реальном времени окружены так называемым габаритным контейнером (bounding box), который базируется на заранее заданном размере и/или на крайних вершинах персонажа. В этом случае граничные прямоугольники можно создавать по зонам (высокие, средние и низкие) или для каждой кости в каркасной анимационной системе. Из трех подходов к созданию граничных прямоугольников первый - наименее, а последний - наиболее дорогостоящий.




    Добавление вторичного движения с помощью слоев


    После загрузки Deathanim.bip в объект Biped в файле появился отрезок, который сохранен после редактирования в Motion Flow Editor. Откройте окно Track View и перетащите все ключевые кадры так, чтобы анимация начиналась в кадре 0 (рис. 8.56).

    Добавление вторичного движения с помощью слоев

    Рис. 8.55. Теперь персонаж смотрит в нужную сторону, он готов правильно умереть
    Добавление вторичного движения с помощью слоев

    Рис. 8.56. Чтобы сохранить анимацию при использовании Motion Flow Editor, требуется немного сместить ключи
    Измените параметры в окне Time Configuration: в поле End Time введите значение 100, а затем с помощью кнопки Create Layer из свитка Layers добавьте слой. Включите кнопку Auto Key, выделите все объекты Biped Spine и примените к ним команду Set Key в кадрах 0, 10 и 54. Это анимация смерти, значит, нужно подчеркнуть, что удар смертелен, каким бы способом он ни был нанесен. Перейдите в кадр 5 и поверните выделенные объекты Spine на 8° относительно оси Z. Так толчок от удара будет заметнее (рис. 8.57).

    Добавление вторичного движения с помощью слоев

    Рис. 8.57. Поверните туловище назад, чтобы подчеркнуть движение, вызванное ударом
    Поскольку ключевые кадры определены в кадрах 0 и 10, то анимация в них останется той же самой, так как изменение происходит в кадрах 1-9. Если перетащить ползунок в разные позиции анимации на шкале времени, то в точке, где Biped ударяется об землю, можно заметить, что левая рука актера выброшена вниз, чтобы предотвратить падение. Такого рода недостатки объясняют, почему для захвата данных важно найти талантливого актера. Во время сессии захвата движения режиссер должен был заметить, что персонаж движется не совсем верно, и исправить исполнение. Однако эту проблему легко решить. Перейдите в кадр 50 и поверните объекты Spine примерно на -10° относительно оси X в противоположном падению направлении (рис. 8.58).

    Добавление вторичного движения с помощью слоев

    Рис. 8.58. Поверните объекты Spine, чтобы уменьшить эффект реакции на падение
    Теперь выделите объект Head и примените команду Set Key в кадрах 0, 10, 30 и 50. Затем перейдите в кадр 5 и поверните голову на 50° относительно оси Z так, чтобы она наклонилась вперед под воздействием удара. Затем перейдите в кадр 20 и поверните голову вперед на 40°, чтобы казалось, что персонаж смотрит на атакующего в замешательстве. В кадре 45 поверните голову примерно на 35°, чтобы при падении персонажа назад на время задержать голову, тогда соприкосновение с землей несколькими кадрами позже будет еще более заметным (рис. 8.59).


    После того как туловище и голова настроены, нужно исправить движение левой руки: она не должна двигаться назад, чтобы смягчить падение. Выделите объект Bip01 L Upper Arm и примените к нему команду Set Key в кадрах 0 и 55. Перейдите в кадр 45 и поверните левую руку на -120° относительно оси Z, а затем в кадре 50 поверните ее на -35° также относительно оси Z (рис. 8.60).

    Добавление вторичного движения с помощью слоев

    Рис. 8.59. Дополнительное движение головы подчеркивает результат удара и сам удар о землю

    Добавление вторичного движения с помощью слоев

    Рис. 8.60. Поверните руку, чтобы падение было более неожиданным

    Наконец исправьте правую ногу: она не должна твердо стоять на поверхности земли в конце падения, иначе падение будет выглядеть неестественным. Выделите звено Bip01 R Calf и примените команду Set Key в кадрах 35 и 65. Перейдите в кадр 50 и поворачивайте икру и ступню, пока они не будут указывать наружу и вверх, как будто нога выброшена при падении назад (рис. 8.61).

    Добавление вторичного движения с помощью слоев

    Рис. 8.61. Если выпрямить ногу, придать ей пинающее движение, то падение будет выглядеть лучше

    Такие незначительные изменения подчеркивают падение, делают его более убедительным. Они устраняют недостатки исполнения, а падение становится более реалистичным. Теперь нужно настроить скорость падения (и его направление) вблизи земли, чтобы падение было более динамичным. Воспроизведите анимацию и посмотрите, как она выглядит. Сравните изменения, внесенные в исходную анимацию, щелкнув по кнопке Previous Layer (Предыдущий слой) и просмотрев неотредактированную версию (рис. 8.62).

    Добавление вторичного движения с помощью слоев

    Рис. 8.62. Щелкнув по кнопке Previous Layer, просмотрите изменения, внесенные с помощью последнего слоя

    Чтобы вернуться на слой анимации, щелкните по кнопке Next Layer (Следующий слой) с изображением стрелки, указывающей вверх, и сверните слой. Сохраните файл как Deathanim2.bip и переходите к последнему шагу преобразования имеющихся данных захвата движения в эффектную анимацию смерти.


    Файлы захвата движения


    В 3ds max и character studio можно работать с тремя различными форматами файлов захвата движения: BIP, CSM и BVH. Файлы BIP - это собственно файлы движения Biped, a CSM и BVH - это файлы необработанных данных, состоящие из ASCII-символов, представляющих собой обычные выходные данные, которые были получены в результате захвата движения. Аниматоры на самом деле работают только с законченными файлами BIP, которые были «вычищены» в студии, осуществлявшей захват или продающей данные в библиотеках. В character studio есть возможность подгонять данные захвата движения под персонажей, однако в компаниях, специализирующихся на предоставлении захвата движения, оборудование для настройки данных лучше. Но все же полезно иметь представление о форматах CSM и BVH, потому что в character studio есть возможность преобразовывать эти типы файлов в обычный формат BIP.




    Формат BVH


    Формат файлов BVH также основывается на системах оптического захвата движения. Первоначально он был разработан компанией по захвату движения Bio Vision как способ обеспечения своих клиентов данными захвата движения. Название BVH обозначает данные Bio Vision Hierarchical. Этот формат в основном заменил более ранний, разработанный компанией формат BVA, в котором не было возможности предоставления информации об иерархии каркаса в добавление к данным о движении. Формат BVH - отличный многогранный формат, но его недостаток заключается в отсутствии полного описания основной позы. Этот формат до сих пор используется, но популярным форматом файла захвата движения уже не является.




    Формат CSM


    Формат CSM используется для импорта данных датчиков положения, которые получены от оптических систем захвата движения, в объект Biped. Аббревиатура CSM означает Character Studio Motion Capture file (Файл захвата движения character studio). В формате CSM есть некоторые ограничения - в нем должны использоваться имена, соответствующие ограничениям character studio, иначе он будет несовместим с этим приложением. В нем также должно быть подходящее число датчиков, которые располагаются на теле актера в определенных местах (хотя в character studio 3 и 4 в настоящий момент разрешается использовать несколько дополнительных датчиков). Формат CSM сам по себе способен переносить любой тип данных, полученных от датчиков, но предполагается, что он придерживается конфигурации имен и датчиков, требуемой character studio.




    Хорошая анимация бега


    Загрузите в объект Biped файл Goodrun.bip.

    Подвигайте ползунок шкалы времени из стороны в сторону и просмотрите анимацию. Даже не указывая на какие-либо конкретные кадры, ясно, что данные достаточно хорошие и явно содержат цикл. Наклон туловища во время движения практически не изменяется, значит, скорость бега постоянна (рис. 8.17).

    Хорошая анимация бега

    Рис. 8.17. Данные, захваченные в середине движения, — пример хорошего бега
    В подходящей позе нет очевидных наклонов туловища назад или вперед при замедлении или ускорении. Эти данные также длиннее предыдущего файла - они занимают 45 кадров. Этого достаточно, чтобы получить два полных цикла бега.




    Использование редактора Motion Flow Editor для поворота Biped


    Создайте новый объект Biped или воспользуйтесь тем, который применялся в анимации бега. Загрузите сохраненный ранее, после преобразования из файла формата CSM, файл Shotdrop.bip.

    Если по какой-то причине у вас нет этого файла, загрузите в окно Motion Capture Conversion Parameters исходный файл Shotdrop.csm с компакт-диска и преобразуйте его. Загрузив файл, активизируйте окно проекции Front (рис. 8.46).

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.46. Очевидно, что персонаж должен смотреть не туда
    Правила, предписывающего совершать захват движения при какой-либо особой ориентации - спереди, сзади или сбоку, - не существует. Захват может производиться в позиции под любым углом, слева, справа или с противоположного направления. Что касается именно этих данных, то они были захвачены с неверной ориентацией. Один из способов повернуть объект Biped целиком - применить слой с соответствующей настройкой и повернуть объект СОМ так, чтобы персонаж смотрел вперед. Однако с помощью режима Motion Flow (Поток движения) это сделать гораздо удобнее.

    Выделите объект Biped, откройте свиток Biped и щелкните по кнопке Motion Flow Mode (Режим потока движения) - на ней изображена кривая в форме буквы Z, - которая находится справа от кнопки Footstep Mode (Режим следа) - рис. 8.47.

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.47 С помощью редактора Motion Flow Editor можно быстро трансформировать данные
    Когда вы щелкаете по кнопке Motion Flow Mode - ничего не происходит, поскольку сначала нужно открыть файлы в редакторе с помощью окна Motion Flow Graph (Граф потока движения) и сценария Motion Flow Script (Сценарий потока движения). Представьте себе, что Motion Flow Editor (Редактор потока движений) - это отдельная программа внутри character studio. В ней можно объединять файлы в формате BIP и изменять их, создавая более длинные (или просто другие) анимации. Чтобы воспользоваться программой Motion Flow Editor, сначала нужно щелкнуть в свитке Motion Flow по кнопке Show Graph (Показать граф) - рис. 8.48.

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.48. Чтобы воспользоваться редактором Motion Flow Editor, сначала нужно щелкнуть по кнопке Show Graph

    Появится окно Motion Flow Graph. Активизируйте кнопку Create Clip (Создать отрезок) Использование редактора Motion Flow Editor для поворота Biped и, когда курсор примет форму причудливой стрелки, щелкните где-нибудь внутри окна (рис. 8.49).

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.49. Именно в окне Motion Flow Graph и создаются отрезки движений

    Поместив отрезок clip1 в окно Motion Flow Graph, в свитке Motion Flow Script в разделе Scripts (Сценарии) щелкните по кнопке Define Script (Определить сценарий) - рис. 8.50.

    Щелкнув по кнопке Define Script, укажите, какие отрезки вводить в список отрезков, которые определены сценарием. Щелкните один раз по созданному в окне Motion Flow Graph отрезку clip1. Он станет красным -так обозначается, что отрезок был добавлен в сценарий script 1, а в самом сценарии теперь есть введенные данные (рис. 8.51).

    Теперь дважды щелкните правой кнопкой мыши по красному отрезку clip1; появится диалоговое окно clip1, и в нем можно будет загрузить файл формата BIP. Заметьте, что кнопка Define Script стала недоступной. Это произошло, так как вы указали, что определение сценария закончено (рис. 8.52).

    Щелкните по кнопке Browse (Обзор) и выберите файл Shotdrop.csm. Нажмите кнопку ОК и закройте окно Motion Flow Graph.

    Загрузка файла в редактор Motion Flow Editor не оказывает какого-либо влияния на текущую анимацию, используемую в Biped. Если выключить режим Motion Flow, все параметры и файлы остаются неизменными до возврата в этот режим, даже если сохранить сцену 3ds max и выйти из программы. При следующей загрузке файла вы обнаружите, что данные в Motion Flow Editor никуда не исчезли.

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.50. С помощью кнопки Define Script можно установить связь между отрезками движений

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.51. Если щелкнуть по отрезку clip 7 в окне Motion Flow Graph, то он появится в списке в свитке Motion Flow Script

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.52. Чтобы загрузить файл формата BIP в отрезок движения, щелкните по нему правой кнопкой мыши

    Теперь нужно сделать то, ради чего все это затевалось, а именно изменить ориентацию данных, чтобы персонаж смотрел вперед. Откройте раздел Script в свитке Motion Flow и введите значение 200 в поле Start Rotation (Начальный поворот) - рис. 8.53.



    Ориентация изменится только по оси Z. Теперь персонаж смотрит вперед. Перетащите ползунок шкалы времени и убедитесь, что переориентация проведена правильно, а затем сохраните измененный файл формата BIP, воспользовавшись опцией Save Segment. Чтобы изменить начальный и конечный кадры, в окне Save As щелкните по кнопке Active Time Segment. Затем, так как нас интересует только та часть анимации, в которой персонаж падает, введите в поле Start Frame значение ПО. Назовите новую анимацию Deathanim.bip (рис. 8.54).

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.53. Если ввести в поле Start Rotation значение 200, то персонаж повернется на 200° относительно оси Z

    Использование редактора Motion Flow Editor для поворота Biped

    Рис. 8.54. Анимацию, созданную с использованием редактора Motion Flow Editor, можно сохранить с помощью опции Save Segment только как отдельный файл в формате BIP

    Выйдите из режима Motion Flow, еще раз щелкнув по кнопке Motion Flow Mode, и загрузите в объект Biped обновленный файл Shotdrop.bip, щелкнув в свитке Biped по кнопке Load File (рис. 8.55).

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


    Использование сокращения ключей


    Одна из самых полезных функций в окне Motion Capture Conversion Parameters - предоставляемая возможность сокращения числа ключевых кадров анимации при импорте файла захвата движения. Так как у файлов захвата движения обычно есть столбец ключевых кадров для каждого трека анимации в каждом кадре, то фильтрация данных с целью сокращения ключевых кадров упрощает процесс редактирования анимации при подгонке ее к своему персонажу. Однако обычно есть смысл хранить как образец исходного качества по крайней мере одну версию файла захвата движения, в которой присутствуют все ключевые кадры в первоначальном состоянии.

    Использование сокращения ключей

    Рис. 8.4. При загрузке файла в формате BVH или CSM конфигурация Biped значительно изменяется
    Не отменяя выделения объекта Biped, щелкните еще раз по кнопке Load Motion Capture File и на этот раз загрузите файл формата CSM с именем Shotdrop.csm (рис. 8.5).

    В окне Motion Capture Conversion Parameters оставьте все параметры без изменений. Когда файл будет преобразован и помещен в сцену для анимации объекта Biped, сохраните его как файл в формате BIP, щелкнув по кнопке Save File в свитке Biped (рис. 8.6).

    Использование сокращения ключей

    Рис. 8.5. Чтобы преобразовать файл формата CSM, нужно выбрать этот тип файла в списке и загрузить файл
    Использование сокращения ключей

    Рис. 8.6 Сначала сохраните файлы захвата движения в форматах BVH и CSM как BIP-файл без сокращения ключей
    Сохраните файл как Shotdrop.bip и щелкните еще раз по кнопке Load Motion Capture File. Выберите в качестве типа файлов пункт Biped Files и загрузите только что сохраненный файл (рис. 8.7).

    Использование сокращения ключей

    Рис. 8.7. На этот раз в окно Motion Capture Conversion Parameters загрузите файл формата BIP
    Заметьте, что в нижней части окна Open есть две опции. При загрузке файла BIP, как в этом примере, есть дополнительный выбор: реструктуризировать объект Biped, в который будут загружаться данные, или нет. Это одно из преимуществ сохранения файлов типа BVH и CSM как BIP, и проведение всех настроек осуществляется уже с файлом В IP. Но в этом случае обратиться к данным датчиков в кадре 0 будет невозможно.


    Когда появится окно Motion Capture Conversion Parameters, в выпадающем списке Conversion выберите пункт Use Key Reduction (Использовать сокращение ключей) - рис. 8.8.

    Нажмите кнопку ОК, то же самое движение теперь оптимизировано и имеет меньше ключевых кадров. В character studio можно легко увидеть разницу между сокращенными ключевыми кадрами, так как начальные, не сокращенные, данные хранятся в буфере захвата движения. Чтобы оценить результат сокращения, сначала откройте в свитке Biped раздел Display и в выпадающем графическом меню выберите вторую кнопку Bones - рис. 8.9.

    Использование сокращения ключей

    Рис. 8.8. Чтобы сократить число ключевых кадров в данных захвата движения, выберите пункт Use Key Reduction

    Использование сокращения ключей

    Рис. 8.9. Если просматривать только кости объекта Biped, то разницу между сокращенным и не сокращенным числом ключевых кадров проще увидеть

    Наконец, чтобы увидеть исходные данные захвата движения со всеми ключевыми кадрами на своих местах, активизируйте кнопку Show Buffer (Показать буфер), щелкнув по ней (рис. 8.10).

    Подвигайте ползунок шкалы времени из стороны в сторону, чтобы увидеть разницу между совершенно красной фигурой и фигурой обычной окраски. Разница между ними очень мала - кроме тех моментов, когда движение более резкое при ударе Biped о землю (рис. 8.11).

    Чтобы посмотреть на результат еще более значительного сокращения, можно увеличить значение допусков (tolerance) в разделе Key Reduction Settings (Установки сокращения ключей). Вместо того чтобы снова загружать файл захвата движения с помощью кнопки Load Motion Capture File, щелкните по кнопке Convert from Buffer (Преобразовать из буфера) и тем самым снова вызовите окно Motion Capture Conversion Parameters (рис. 8.12).

    Использование сокращения ключей

    Рис. 8.10 С помощью кнопки Show Buffer можно просмотреть исходные данные захвата движения до сокращения числа ключевых кадров

    Использование сокращения ключей

    Рис. 8.11. В нескольких местах, например в кадре 164, движения немного отличаются друг от друга

    Использование сокращения ключей

    Рис. 8.12 Кнопка Convert from Buffer - еще один способ вызова окна Motion Capture Conversion Parameters



    Когда появится окно преобразования, увеличьте значения в полях группы Tolerance (Допуск) до 10 для всех треков, кроме Body Horizontal, Body Vertical и Body Rotation. Их значения в полях группы Tolerance оставьте без изменений, равными 1. Измените значения в полях группы Minimum Key Spacing (Минимальное расстояние между ключами) на 6 для всех треков, кроме указанных трех, оставив значения 3, 4 и 3 соответственно (рис. 8.13).

    Если у большинства треков одинаковые параметры допуска и промежутка между соседними ключами, то, чтобы изменить одно или оба значения в полях групп Tolerance и Minimum Key Spacing для всех треков сразу, воспользуйтесь строкой Set All (Установить все), которая находится в верхней части раздела Key Reduction Settings. Затем настройте отдельные параметры, которые должны отличаться от других.

    Нажмите кнопку OK - и разница, производимая большими значениями, станет очевидна. Значение Tolerance определяет максимальное число единиц (или градусов), на которое может отклоняться трек положения или поворота от своего истинного положения. Как только character studio посчитает реальное значение Tolerance для конкретного трека, число ключевых кадров уменьшится далее с учетом ограничивающего параметра Minimum Key Spacing. Этим значением обычно устанавливается нижняя граница промежутка между соседними ключевыми кадрами, но даже после сокращения промежуток может быть меньше этого значения в зависимости от параметра Tolerance.

    Использование сокращения ключей

    Рис. 8.13. При увеличении значений в полях групп Tolerance и Minimum Key Spacing число ключевых кадров уменьшается более значительно

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


    Изменение назначения файла захвата движения


    Очень часто данные захвата движения используются совершенно не в тех целей, для которых они предназначались. Объединив даже самые неожиданные данные с анимацией, созданной вручную с помощью ключевых кадров, можно получить нечто полезное и интересное. Чтобы проиллюстрировать такое изменение назначения данных захвата движения, мы определим для Betty особую анимацию стрельбы из самого мощного ее оружия - рельсовой пушки (railgun). Чтобы подчеркнуть для зрителя, какую опасность представляет собой этот вид оружия, при стрельбе из него Betty должна испытать сильную отдачу и затем восстановить позу. Чтобы получить движение такого типа, воспользуемся анимацией персонажа, которому наносят удар, а также применим ручное кадрирование.

    Изменение назначения файла захвата движения

    Рис. 8.64. Выделите и удалите ключи рядом с точкой удара о землю, чтобы усилить эффект
    Изменение назначения файла захвата движения

    Рис. 8.65. бы почти слышите, как персонаж ударяется о пол
    Загрузите файл Betty13.max (рис. 8.66).

    Изменение назначения файла захвата движения

    Рис. 8.66. Betty вернулась, она опять готова кого-нибудь подстрелить




    Извлечение лучшего отрезка цикла


    Теперь, когда продолжительность цикла известна, нужно решить, из какой части анимации его выделить. Лучше всего выбирать удобный цикл из середины файла захвата движения, однако это верно, только если данные имеют полный диапазон движения. При использовании данных, которые захватили не вы или которые изменил кто-то другой до вас, лучше всего просто проверить движение, воспользовавшись в качестве ориентира известной длиной цикла. Например, если кадры 0-26 - завершенный цикл, то и кадры 5-31 тоже можно использовать в качестве цикла. Кадры 19-45 - последний отрезок, который можно применить, так как цикл должен целиком лежать внутри исходной анимации.

    Извлечение лучшего отрезка цикла

    Рис. 8.22. Ближайшее совпадение с начальной позой - в кадре 26
    Извлечение лучшего отрезка цикла

    Рис. 8.23. В поле Current Frame отображается номер текущего кадра, а если в это поле ввести какое-либо число, то анимация перейдет к кадру с введенным номером
    Определить, какой отрезок анимации лучше для создания цикла, можно двумя способами: найти ближайшие позы начала и конца цикла или применить различные диапазоны анимации и воспроизвести варианты цикла. Чтобы найти наиболее похожие позы в начальной и конечной точках цикла, воспользуйтесь полем Current Frame (Текущий кадр), которое находится под кнопкой Time Configuration. Удалите сгруппированные копии звеньев Biped, убедитесь, что вы все еще находитесь в окне проекции Left и что активен режим сглаженного или граненого (faceted) затенения. Щелкните дважды по отображаемому числу или кадру, введите значение 36 и нажмите клавишу Enter (рис. 8.23).

    Поле Current Frame становится выделенным (синим), когда в него вводится значение, - можно, не снимая пальцы с клавиатуры, вводить номера кадров. Чтобы найти точки цикла с наилучшим совпадением, просто вводите номера кадров, промежуток между которыми равен 26 кадрам, и сравнивайте позы. Если активен кадр 36, введите число 10, снова нажмите клавишу Enter - и текущим станет кадр 10, а поза изменится. Понимаете, как это работает? Теперь пройдитесь по анимации, начав с кадра 0, и вводите наборы номеров, которые представляют возможные крайние точки цикла: 0 и 26, 1 и 27, 2 и 28 и т.д.


    С помощью этого метода можно выяснить, что лучше всего совпадают кадры 0 и 26 (А) и 11 и 38 (В), - рис. 8.24.

    Извлечение лучшего отрезка цикла

    Рис. 8.24. Кадры 0 и 26, 11 и 38 - наиболее близкие

    Почему кадр 38, а не 37? Иногда человеческое тело не вписывается в удобное число кадров. Иногда актер бежит не с постоянным темпом. Кадры 0 и 26 совпадают достаточно хорошо, но после кадра 26 актер немного замедлил бег. Даже незначительное замедление скорости добавляет в цикл еще один кадр. Поэтому первые возможные крайние точки цикла находятся на расстоянии 26 кадров, а следующие - на расстоянии 27 кадров.

    Чтобы проверить пригодность двух этих точек цикла, воспользуйтесь возможностью сохранения сегмента в окне сохранения файлов типа .bip и изолируйте в отдельные файлы два отрезка цикла. Так будет проще увидеть, какой цикл наилучший. Щелкните по кнопке Save File1 в свитке Biped (рис. 8.25).

    Извлечение лучшего отрезка цикла

    Рис. 8.25 Чтобы изолировать потенциальные циклы - так будет проще их проверить, - воспользуйтесь кнопкой Save File

    Убедитесь, что началом отрезка анимации является кадр 0, а концом -26; сохраните отрезок как файл Looptestl.bip (рис. 8.26).

    Извлечение лучшего отрезка цикла

    Рис. 8.26. Опция Save Segment at Current Position and Rotation позволяет определить только ту часть анимации, которая нужна

    В диалоговом окне Save As (Сохранить как) есть опция сохранения ключа для каждого трека каждого кадра анимации. Это хорошая опция, с помощью которой можно добавить ключи в более длинные анимации, когда это необходимо.

    Проделайте то же самое со вторым потенциальным циклом: начальный кадр -11, конечный - 38. Сохраните второй отрезок как файл Looptest2.bip. Сделав это, загрузите Looptestl.bip в объект Biped, включите режим In Place и изучите анимацию дальше.


    Команда Paste Pose/Posture/Track


    Перейдите в кадр 0, включите кнопку Auto Key, убедитесь, что все звенья Biped выделены, и нажмите кнопку Paste Posture/Pose/Track Команда Paste Pose/Posture/Track. Поза, сохраненная ранее, теперь вернет Betty обратно в положение перед стрельбой (рис. 8.70).

    Команда Paste Pose/Posture/Track

    Рис. 8.69. Обрежьте анимацию получения удара, удалив первые 69 ключевых кадров
    Команда Paste Pose/Posture/Track

    Рис. 8.70. Betty вновь примет позу готовности к стрельбе после того, как сохраненная поза будет вставлена
    Выделите только объект СОМ персонажа Betty. Вставка сохраненной позы обратно на Betty, к сожалению, не перемещает ее назад, в то место, в котором она была, когда копировалась поза. Скопирован был лишь трек поворота СОМ, поэтому придется вручную переместить Betty в нужное положение.


    Команда Paste Pose/Posture/Track Команда Paste Pose/Posture/Track Команда Paste Pose/Posture/Track



    Копирование позы


    Поза, в которой находится Betty, создана, чтобы держать любой тип оружия, из которого она стреляет. Когда бы она ни использовала рельсовую пушку, ей приходится несколько секунд ждать, пока оружие зарядится. Как только оно достигнет полной мощности, Betty стреляет и проходит анимацию, которая вскоре будет создана. Как же переместить анимацию получения удара на данный объект Biped, не потеряв текущую позу? Очень просто. То, что это всего лишь поза, упрощает задачу. Выделите объект СОМ персонажа Betty, сделайте кнопку преобразования Select and Move Копирование позы активной и щелкните по ней правой кнопкой мыши, чтобы вызвать окно Move Transform Type-In (рис. 8.67).

    Теперь активизируйте кнопку Select and Rotate Копирование позы и выделите все объекты Biped. Затем откройте свиток Copy/Paste и щелкните по кнопке Copy Posture, чтобы временно поместить текущую позу Betty в буфер поз.

    Копирование позы

    Рис. 8.67. Держите эти числа под рукой - они вскоре понадобятся
    При копировании поз в буфер тип записанных данных зависит от того, какая кнопка преобразований активна и какая ось движения является текущей. Если копируются позы Biped целиком и необходимо выбирать между треками анимации Body Horizontal, Body Vertical и Body Rotate, то нажмите кнопку Body Rotate. Эту кнопку нужно использовать и перед выделением всех объектов Biped. Иначе выбор трека вручную отменит выделение всех объектов (рис. 8.68).
    Копирование позы

    Рис. 8.68 Если у объекта СОМ будет только один трек, то используйте кнопку Body Rotate




    Настройка верхней части тела


    Положение персонажа правильно выровнено полностью, теперь нужно настроить туловище, руки и голову, тогда стрельба из ружья будет более реалистичной. В текущий момент ладони после удара поднимаются к лицу, а туловище и голова слишком сильно повернуты вправо. Выделите объекты Spine, руки и голову и примените к ним команду Set Key в кадрах 35 и 100. Затем перейдите в кадр 40 и определите положение верхней части тела так, чтобы оно было больше повернуто вперед и соответствовало движению сразу после выстрела (а не после получения удара). Поверните все объекты Spine, руки и голову. Не забудьте и про ключицы. На эти части рук иногда не обращают внимания, но они играют важную роль в движении руки (рис. 8.82).

    Настройка верхней части тела

    Рис. 8.82. Поверните голову, позвоночник и руки так, чтобы Betty смотрела вперед
    Затем, чтобы завершить впечатление того, что Betty сразу же собирается вернуться в исходное состояние и снова выстрелить, перейдите в кадр 0 и поверните верхнюю часть тела так, чтобы оно было немного больше направлено вперед. А позвоночник сильнее согните по оси Y, так как Betty пытается сохранить равновесие. Поверните голову, чтобы она смотрела вперед и немного вниз (рис. 8.83).

    Настройка верхней части тела

    Рис. 8.83. Расположите верхнюю часть тела так, чтобы Betty начала вновь обретать равновесие для следующего выстрела
    Наконец вернитесь в кадр 45 и поверните голову вниз так, чтобы она смотрела вперед. Голова всегда будет опережать тело при подобном восстановлении, потому что глаза обычно смотрят вперед или на цель. Подвигайте ползунок шкалы времени и настройте голову так, чтобы она всегда отчасти смотрела вперед (рис. 8.84).

    Настроив голову, сверните слои и исправьте ступни там, где они погружаются в пол в кадрах 35 и 40.

    Настройка верхней части тела

    Рис. 8.84. Голова всегда стремится повернуться вперед, чтобы глаза могли видеть цель




    Определение длины цикла


    Выделите все звенья и объекты Biped (кроме маленького круглого объекта Footsteps) и перейдите в кадр 0. Убедитесь, что активно окно проекции Left. Увеличьте масштаб и передвиньте вид так, чтобы Biped оказался слева. Затем выполните команды Tools/Snapshot (рис. 8.18, позиция 1) и создайте копии выделенных объектов Biped для кадра 0 (рис. 8.18, позиция 2).

    Определение длины цикла

    Рис. 8.18. Чтобы скопировать звенья Biped, зафиксируйте их мгновенное положение в кадре 0
    Для определения длины цикла необходима своего рода поза-образец, поэтому в кадре 0 было зафиксировано мгновенное положение звеньев Biped. Теперь нужно сгруппировать эти объекты, чтобы в дальнейшем их случайно не выделить поодиночке. Перейдите вперед на несколько кадров анимации, Biped должен переместиться на некоторое расстояние от копий мгновенного начального положения. Выделите копии, откройте меню Group (рис. 8.19, позиция 1) и сгруппируйте выделенные объекты (рис. 8.19, позиция 2), назвав их по умолчанию Group 1 (эта группа потом будет удалена).

    Определение длины цикла

    Рис. 8.19. Чтобы случайно не выделить скопированные объекты в дальнейшем, сгруппируйте их
    Теперь, когда есть мгновенное положение первого кадра анимации и объекты сгруппированы для упрощения выделения, нужно активизировать режим In Place (На месте), чтобы можно было понять, когда цикл повторяется. Еще раз выделите любую часть исходного объекта Biped и в разделе Modes (Режимы) свитка Biped щелкните по кнопке, которая похожа на мишень для стрельбы - она станет фиолетовой (рис. 8.20).

    Во время работы над движением объект Biped, таким образом, будет находиться на одном месте - в центре сцены. Для просмотра анимаций с целью определения качества и приемлемости данных захвата движения этот режим подходит как нельзя лучше.

    Режим In Place можно настроить и так, что движение будет ограничено осями X и Y по отдельности. Для этого выберите в выпадающем графическом меню одну из осей (рис. 8.21).
    Определение длины цикла

    Рис. 8.20. Включите для объекта Biped режим In Place, чтобы во время роботы он всегда был на одном месте
    Определение длины цикла

    Рис. 8.21. В режиме In Place можно выбрать только ось X или Y
    Затем перемещайтесь по анимации кадр за кадром, пока не дойдете до первого наилучшего совпадения с зафиксированным мгновенным начальным положением. Ближайший кадр, в котором повторяется мгновенная поза, - кадр 26. Так как снимок Biped сделан в кадре 0, то длина цикла равна примерно 27 кадрам (кадры 0-26) - рис. 8.22.




    Отработка эффекта отдачи


    Выстрел произведен, теперь можно извлечь пользу из загруженной ранее в объект Biped анимации. Но сначала выделите ступни и скопируйте их мгновенное положение в качестве образца, на который нужно будет ссылаться при перемещении анимации эффекта отдачи ближе к анимации стрельбы (как во времени, так и на самой сцене). Включите режим каркаса, выделите ступни, в меню Tools выберите пункт Snapshot (рис. 8.75, позиция 1) и, когда появится окно Snapshot, щелкните по кнопке ОК (рис. 8.75, позиция 2).

    В поле End Time в окне Time Configuration введите значение ПО и затем откройте окно Track View. Выделите и переместите все ключи, которые составляют анимацию получения удара, влево, чтобы они начинались в кадре 40. Затем выделите ряд ключей в кадре 30 и скопируйте их в кадр 100 (рис. 8.76).

    Отработка эффекта отдачи

    Рис. 8.75. Зафиксируйте мгновенное положение ступней, чтобы использовать его в качестве образца при определении позы отдачи
    Отработка эффекта отдачи

    Рис. 8.76. Переместите ключи эффекта отдачи ближе к точке, в которой Betty стреляет из ружья
    Воспроизведите анимацию и посмотрите, как она выглядит. Во время анимации получения удара персонаж отрывается от земли и отходит немного вправо. Нужно изменить положение Betty, чтобы начальная и конечная позы полностью совпадали.




    Перемещение объекта СОМ


    Вызовите окно Move Type-In Transform и, сделав активной нужную ось, переместите Betty, введя координаты по осям X, Y и Z, которые показаны на рис. 8.67 (рис. 8.71).

    Перемещение объекта СОМ

    Рис. 8.71. С помощью координат, определенных ранее, переместите Betty обратно в нужное положение
    Если при попытке расположить объект СОМ персонажа путем ввода значений координат в окне Move Type-In Transform ничего не происходит, щелкните по кнопке Body Horizontal или Body Vertical и попытайтесь снова.
    Вызовите окно Track View и скопируйте столбец ключей из кадра 0 в кадры 1, 9, 10 и 30. Созданная таким образом «анимация» будет использоваться для временного фрагмента стрельбы, отвечающего за зарядку оружия, а в движении не будет заминки, обусловленной параметром Continuity (рис. 8.72).

    По-настоящему анимировать персонаж для этого неподвижного состояния не нужно, потому что его продолжительность изменяется, требуется лишь определенная поза. Ключи, скопированные в кадр 30, предназначены для следующего шага в создании анимации стрельбы.

    Перемещение объекта СОМ

    Рис. 8.72. Скопируйте ключи, чтобы создать неподвижную «анимацию», которая будет использоваться как фрагмент подзарядки оружия




    Плохая анимация бега


    Большинство анимаций персонажей игр в реальном времени, если не все они, выполняются «на месте». Поэтому движение, которое вам требуется для использования, должно быть достаточно характерным, чтобы быть адекватным для игрового персонажа. Анимация бега не может смещаться в каком-либо направлении. Не должно быть наклонов в стороны или признаков ускорения или замедления.

    Если не оговорено противное, частота смены кадров для всех анимаций по умолчанию определена как частота, принятая для стандарта NTSС, и равна 30 кадрам в секунду.
    Откройте свиток Biped и щелкните по кнопке Load File. Укажите путь к файлу Badrun.bip и загрузите его (рис. 8.14).

    Плохая анимация бега

    Рис. 8.14 Чтобы загрузить файл формата BIP в объект Biped, щелкните по кнопке Load File и укажите путь к файлу
    Выключите кнопку Show Buffer и перейдите в режим показа объектов, а не костей. Активизируйте окно проекции Left (Левый) и перетащите ползунок шкалы времени, чтобы просмотреть анимацию. Положение туловища на протяжении анимации изменяется от наклона вперед в начале до наклона назад ближе к концу. Это указывает на ускорение и замедление движения (рис. 8.15).

    Плохая анимация бега

    Рис. 8.15. Пример плохой анимации бега
    Очень важна скорость персонажа и направление его движения. Прежде чем принять решение, использовать анимацию бега или нет, нужно найти точки замыкания цикла. Это две наиболее близкие позы в анимации, которые можно соединить, основываясь на близком угле наклона туловища, размещении ступней и положении рук. В загруженном файле захвата движения самые близкие точки, которые можно было бы назвать начальной и конечной точками цикла, находятся соответственно в кадрах 0 и 23 (рис. 8.16).

    Плохая анимация бега

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

    Другая причина, по которой этот определенный файл захвата движения плох, - то, что его длина равна только 29 кадрам. Актеру не просто требовалось больше расстояния для бега, но ему нужно было бы бежать в два раза дольше. Проверяя данные, которые будут преобразованы в бег, убедитесь, что повторяется достаточное число движений, иначе выявить в захваченном движении циклический отрезок не получится. А значит, данные должны быть достаточно длинными, чтобы можно было вырезать фрагменты в начале и в конце, устранить смещения туловища при ускорении и замедлении и в результате получить удачный отрезок.




    Преобразование CSM- и BVH-файлов


    Откройте новый файл 3ds max или сбросьте (reset) старый и создайте объект Biped. Объект СОМ нового Biped будет выделен автоматически, поэтому откройте панель Motion и в свитке Motion Capture (Захват движения) щелкните по кнопке Load Motion Capture File (Загрузить файл захвата движения) - рис. 8.1.

    Преобразование CSM- и BVH-файлов

    Рис. 8.1. Чтобы импортировать файлы в форматах CSM и BVH, щелкните по кнопке Load Motion Capture File
    Когда появится диалоговое окно Open, из трех доступных в выпадающем списке Files of type (Тип файлов) типов файлов выберите формат BVH. Затем загрузите файл Walky.bvh, выделив его и нажав кнопку Open (рис. 8.2).

    Когда появится окно Motion Capture Conversion Parameters (Параметры преобразования захвата движения), убедитесь, что в поле Footstep Selection (Выбор следов) выбрано None: Freeform (Нет: Свободная деформация), а в поле Conversion (Преобразование) - No Key Reduction (Без сокращения ключей). Нажмите кнопку ОК (рис. 8.3).

    Преобразование CSM- и BVH-файлов

    Рис. 8.2. Чтобы загрузить файл формата BVH, нужно выбрать этот формат в выпадающем списке Files of type
    После того как 3ds max обработает преобразование, движение будет загружено в объект Biped. И сразу же станут заметными изменения конфигурации и пропорций Biped. Причина этому - место размещения маркеров во время захвата и экспорт в формат BVH (рис. 8.4).

    Для преобразования файлов в форматах BVH и CSM всегда используйте Biped общего вида, установленный по умолчанию, а не сам персонаж. Конфигурации датчиков и Biped во время захвата движения и последующего экспорта в файл формата BVH или CSM повлияют на форму и конфигурацию Biped, в который они загружаются, и сильно исказят или разрушат сетку.
    Преобразование CSM- и BVH-файлов

    Рис. 8.3. Окно Motion Capture Conversion Parameters - отличный инструмент для быстрого преобразования файлов в форматах BVH и CSM
    Переместите ползунок шкалы времени в кадр 0, если он еще не в этом кадре. Заметьте, что стали доступны кнопки в нижнем ряду свитка Motion Capture. Так происходит потому, что при загрузке файла в формате BVH или CSM с помощью этих кнопок можно еще раз прокалибровать данные от датчиков. Однако обращаться к ним приходится редко, и лучше всего доверить такие изменения студии захвата движения, которая предоставляет данные.




    и 3ds max можно использовать


    В character studio и 3ds max можно использовать файлы захвата движения трех типов: в формате CSM, BVH или BIP. Близкое знакомство с первыми двумя типами необходимо только тем, кто профессионально занимается захватом движения, используя данные датчиков и другие калибровочные элементы. Аниматору же нужно главным образом знать, как в character studio преобразовывать форматы CSM и BVH в BIP. Это можно сделать с помощью окна Motion Capture Conversion Parameters, которое вызывается из свитка Motion Capture. Именно в этом окне можно сократить число ключей, составляющих файл захвата движения (по умолчанию ключи созданы для каждого кадра каждого трека анимации), или создать цикл простым повторением данных.

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

    Чтобы увеличить или подчеркнуть действие физических сил, например центробежной силы и удара, можно добавить в файл захвата движения кадры или удалить их из него. Применение слоев в character studio дает возможность настраивать данные захвата движения так, как это необходимо.

    Файлы захвата движения можно использовать в различных целях. Не стоит изощряться в выдумках - используйте данные по назначению. Поэкспериментируйте лучше с комбинациями данных захвата движения -так можно получить нечто совершенно новое.


    и 3ds max можно использовать и 3ds max можно использовать

    Создание анимации смерти


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




    Создание циклического бега


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




    Создание движения стрельбы


    Поза скопирована, теперь нужно создать саму анимацию стрельбы из ружья. Закройте окно Track View, затем выделите и заморозьте все объекты сетки Betty. Активизируйте окно проекции Left, в поле Start Time окна Time Configuration введите значение 30 и щелкните по кнопке Auto Key - она станет активной и приобретет красный цвет. При изменении значения в поле Start Time вы автоматически должны оказаться в кадре 30, если этого не произошло, перейдите в кадр 30. По очереди выделите каждую ступню и заблокируйте ее с помощью кнопки Set Planted Key (из свитка Key Info). При блокировании каждой ступни снимите отметку с опции Join to Prev IK Key (рис. 8.73).

    Создание движения стрельбы

    Рис. 8.73. В кадре 30 заблокируйте каждую ступню, сняв отметку с опции Join to Prev IK Key
    Еще раз откроите окно Track View и скопируйте столбец ключей из кадра 30 в кадр 35. Перейдите в кадр 35 и создайте позу Betty, которая изображает ее сразу после выстрела. При этом представьте, как вы сами держали бы ружье, подобно Betty, и время от времени стреляли. От выстрела вас дернет влево и назад. Левая рука от удара отбрасывается назад, туловище поворачивается влево, а голова наклоняется вперед и вниз. При определении положения левой руки Betty с оружием постарайтесь, чтобы она при смещении назад указывала вперед, а правую ладонь вынесите вперед, как будто Betty пытается сохранить равновесие (рис. 8.74).

    Создание движения стрельбы

    Рис. 8.74. Betty отклоняется назад под воздействием выстрела




    Сравнение отрезков цикла


    Теперь нужно решить, какой цикл выбрать, чтобы превратить его в плавную, улучшенную анимацию. Для этого внесите несколько изменений в каждый цикл и сравните их возможности. Измените параметры в окне Time Configuration: в поле Start Time введите значение 0, а в поле End Time - 25 (заметьте, что последний кадр не включен в диапазон, потому что он больше всего совпадает с первым). Затем откройте окно Track View и измените параметры фильтра, чтобы показывались только анимированные треки. Нажмите сочетание клавиш Alt+Ctrl+H, чтобы скопировать сцену во временный буфер (на всякий случай), затем выделите и удалите все ключи в кадрах 25 и 26. Скопируйте ключи из кадра 0 в кадр 26 (рис. 8.27).

    Сравнение отрезков цикла

    Рис. 8.27. Удалите последние два набора ключей и скопируйте первый набор в кадр 26
    Воспроизведите анимацию, чтобы посмотреть, как она выглядит. Теоретически копирование ключей первого кадра в конечный кадр цикла должно обеспечить плавный цикл. Однако, просматривая анимацию шаг за шагом, можно увидеть, что при переходе от последнего кадра цикла к первому происходит заминка. Кажется, что в конце цикла персонаж немного прихрамывает. Это указывает на то, что, возможно, для движения левой ступни широким, ровным шагом, которое описано в кадрах 1-10, 25 и 26 недостаточно кадров. Сравните: правая ступня проходит тот же диапазон движений из кадра 11 до кадра 24, то есть имеется 13 кадров перемещения левой ступни против 14 кадров правой. Заминка может быть вызвана этой разницей в продолжительности движения. В качестве эксперимента (взяв за основу второго цикла больший промежуток) попытайтесь увеличить цикл на один кадр.

    Нажмите сочетание клавиш Alt+Ctrl+F, чтобы забрать сцену из временного буфера, или просто загрузите Looptestl.bip обратно в объект Biped. Снова откройте окно Track View, выделите все ключи и переместите их на один кадр вперед. Затем удалите ключи из кадров 1 и 26. Скопируйте ключи, находящиеся вне диапазона, из кадра 27 в кадр 0 (рис. 8.28).

    Сравнение отрезков цикла

    Рис. 8.28. Чтобы зациклить первый отрезок, воспользуйтесь другим подходом

    Воспроизведите анимацию и посмотрите, как она выглядит. В точке сведения цикла все еще есть заметная заминка, вызванная положением туловища, которое начинает немного выпрямляться в конце отрезка. Это не идеально, но, в отличие от первой попытки, с дополнительным кадром цикл выглядит лучше. Затем возьмите второй отрезок и посмотрите, можно ли сделать из него что-нибудь лучше. Сохраните измененный цикл Looptestl.bip как Looptestla.bip и загрузите Looptest2.bip в объект Biped.

    Снова включите режим In Place, измените параметры в окне Time Configuration: в поле Start Time введите значение 0, а в поле End Time -26, затем откройте окно Track View. Удалите ключи из кадра 26 и скопируйте ключи из кадра 0 в кадр 27 (рис. 8.29).

    Есть заминка, но, вообще говоря, с этой анимацией работать будет проще - чтобы достичь подходящего цикла, нужно приложить меньше усилий, чем в случае с первым отрезком. Сохраните его как Looptest2a.bip -теперь можно продолжать уточнять цикл.

    Сравнение отрезков цикла

    Рис. 8.29. Во втором пробном отрезке удалите ключи последнего кадра и скопируйте ключи первого кадра в кадр 27

    Сравнение отрезков цикла Сравнение отрезков цикла Сравнение отрезков цикла

    Удаление кадров для усиления эффекта соударения


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

    Начните с первого удара, который наносится персонажу. Откройте окно Track View и удалите все ключи в кадрах 1, 2 и 4. Затем закройте промежуток, созданный удаленными ключевыми кадрами, выделив и переместив остальные влево (рис. 8.63).

    Воспроизведите анимацию и посмотрите на результат удаления ключей. Затем то же самое проделайте с точкой, в которой персонаж ударяется о землю. Еще раз откройте окно Track View, выделите и удалите столбцы ключей в кадрах 40, 44, 47, 49 и 50 (рис. 8.64).

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

    Закройте промежутки, образовавшиеся при удалении, и воспроизведите анимацию, чтобы посмотреть результат (рис. 8.65).

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

    Удаление кадров для усиления эффекта соударения

    Рис. 8.63. Если удалить ключи и убрать промежутки, то начальный удар будет резче




    Удвоение цикла


    Выбрав хороший отрезок и приблизительно настроив его, чтобы он плавно замыкался, усовершенствуйте его с помощью окна Motion Capture Conversion Parameters. Щелкните по кнопке Load Motion Capture File и загрузите только что сохраненный файл Biped (он уже будет введен в список и выделен в поле File name (Имя файла)). Отметьте опцию Loop (Цикл) в разделе Load Frames (Загрузить кадры) и введите в это поле значение 1 (рис. 8.30).

    Выбранный и настроенный ранее цикл удвоен по продолжительности. Таким образом, число кадров, с которыми можно работать, увеличивается и появляется возможность изменять начальную и конечную точки цикла, чтобы удовлетворить нужды анимации персонажа. Например, вы хотите, чтобы анимация начиналась с правой ступни, а не с левой, как в настоящий момент. Или же вы хотите, чтобы анимация начиналась с полушага. Удваивая цикл, вы получаете возможность вносить такие изменения. Нужно лишь немного исправить новый удвоенный цикл.

    Начальный и конечный кадры исходного цикла совпадали, поэтому в середине анимации есть двойные ключи. Откройте окно Track View, выделите все ключи в кадре 27 (или 28) и удалите их. Затем выделите ключи справа от удаленного столбца и перетащите (slide) их на один кадр влево. Измените значения начала и конца анимации на 0 и 54 соответственно и воспроизведите анимацию. Даже несмотря на то что в кадрах 0 и 54 ключи совпадают, анимация проигрывается плавно (рис. 8.31).

    Удвоение цикла

    Рис. 8.30. Опция Loop в окне Motion Capture Conversion Parameters - удобный инструмент
    Удвоение цикла

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




    Уточнение цикла с использованием слоев


    Чтобы сделать цикл еще более плавным, нужно внести в анимацию дополнительные уточнения. Сначала измените первый кадр цикла, чтобы он был больше похож на начало бега. Таким образом, когда персонаж остановится, а затем начнет бежать, движение не будет сильно зависеть от того, какая ступня впереди. Для этого в окне Time Configuration в поле Start Time введите значение 0, а в поле End Time - 31.

    Затем определите первый фрагмент, который нужно настроить, посмотрев на траекторию объекта СОМ. Выключите режим In Place, щелкнув по соответствующей кнопке, и выделите объект Bip0l. Щелкните по нему правой кнопкой мыши, щелкните по пункту Properties (рис. 8.32, позиция 1) и отметьте опцию Trajectory (Траектория) - рис. 8.32, позиция 2.

    Уточнение цикла с использованием слоев

    Рис. 8.32. Включите опцию Trajectory, чтобы увидеть траекторию объекта СОМ
    Появится красная пунктирная кривая, соответствующая положению объекта СОМ при прохождении по анимации. И хотя линия обрывается в начале кадра 26, ее точки максимума и минимума можно увидеть. Разница высот этих точек по отношению друг к другу и вызывает одну из проблем с анимацией (рис. 8.33).

    Уточнение цикла с использованием слоев



    Рис. 8.33. Если отображается траектория, то источник одной из проблем с циклом становится очевиден
    Кривая изображает естественное движение центра тяжести персонажа вверх и вниз по мере того, как он бежит. Если воспроизвести анимацию с включенным режимом In Place, то можно увидеть, что ближе к концу движения персонаж на правой ступне поднимается выше, чем на левой. Доказательством этому служит сравнение второй точки максимума траектории с первой. К тому же первая точка минимума в кадре 0 находится ниже, чем вторая в кадре 13. Чтобы анимация была гладкой и не раздражала несимметричностью, две точки минимума должны находиться на одной высоте, то же верно и для двух точек максимума.

    Путь любого выделенного объекта Biped можно просмотреть, включив кнопку Trajectory в разделе Display в свитке Biped (рис. 8.34).
    Проще всего исправить проблему разницы в высотах траектории с помощью слоев. Выделите объект СОМ и щелкните по кнопке Create Layer, чтобы добавить еще один слой анимации (рис. 8.35).


    Уточнение цикла с использованием слоев

    Рис. 8.34. Кнопка Trajectory отображает траекторию или путь любого выделенного объекта либо звена Biped

    Уточнение цикла с использованием слоев

    Рис. 8.35. Добавление слоя - лучший способ внести значительные изменения в анимацию

    Прежде чем переместить объект Biped, щелкните по пиктограмме Select and Move в верхней части окна - она станет активной. Затем нажмите кнопку Set Key в кадрах 5 и 27 - и эти положения останутся без изменения.

    Производить анимирование при включенной кнопке Auto Key - хорошая привычка, но кнопка Set Key установит ключ, даже если кнопка Auto Key выключена.

    Затем перейдите в кадр 8 и поднимите объект СОМ по оси Z, пока он не окажется на ближайшей линии сетки (А). Перейдите в кадр 14 и опустите СОМ, пока он не окажется на линии сетки на одно деление ниже той, которая использовалась в кадре 8 (В). Наконец, перейдите в кадр 21 и опустите СОМ, пока он не окажется на линии сетки, которая использовалась в кадре 14 (С), - рис. 8.36.

    Теперь настройте ступни Biped так, чтобы они твердо стояли на плоскости земли. Добавьте еще один слой в анимацию, щелкнув по кнопке Create Layer.

    Добавление слоев один поверх другого при внесении изменений в анимацию во многом схоже с добавлением модификаторов в стек модификаторов. Это необязательно, но если придется вернуться назад и удалить или изменить добавленное уточнение, вы сможете провести эти операции в рамках слоев, соответствующих уточнениям, то есть получите дополнительные уровни отката.

    Выделите правую ступню и нажмите кнопку Set Key для кадров 11 и 18. Затем в кадре 13 поверните и переместите ее относительно оси Z так, чтобы она своей плоскостью идеально легла на плоскость земли. То же проделайте в кадре 15 (рис. 8.37).

    Уточнение цикла с использованием слоев

    Рис. 8.36. Переместите объект СОМ так, чтобы точки минимума и максимума траектории были на одном уровне

    Уточнение цикла с использованием слоев

    Рис. 8.37. Правая ступня должна находиться на плоскости земли и лежать на ней полностью в те моменты, когда ступня неподвижна

    Затем выделите левую ступню и поступите с ней точно так же. Добавьте еще один слой, посмотрите, где необходимо установить ключ, чтобы сохранить нужную часть анимации, и настройте поворот и перемещение.



    В этом случае изменения незначительны. Щелкните по кнопке Set Key для кадров 24 и 27, а затем поверните и поставьте ступню на плоскость в кадрах 25 и 26.

    Последний слой, который нужно добавить, решает вопрос с небольшим выпрямлением туловища ближе к концу анимации. Создайте другой слой, выделите первый объект Spine и нажмите кнопку Set Key для кадров 21 и 29. Затем перейдите в кадр 25 и поверните объект Biped Spine на -5° относительно оси Z (рис. 8.38).

    Уточнение цикла с использованием слоев

    Рис. 8.38. Поверните объект Spine, чтобы устранить небольшое выпрямление в конце цикла

    Сверните стек слоев и перейдите в окно проекции Front, чтобы исправить последнюю проблему (рис. 8.39).

    Уточнение цикла с использованием слоев

    Рис. 8.39 С помощью кнопки Collapse Stack (Свернуть стек) все анимационные слои сворачиваются

    В окне проекции Front просмотрите анимацию шаг за шагом и проследите за левой ступней. В кадрах 24-26 ее нужно переместить и немного повернуть так, чтобы внутренняя сторона ступни была направлена вдоль основной линии сетки в начале координат. Использовать слой не нужно -просто начните с кадра 24, переместите и поверните ступню соответствующим образом.

    Поворачивать объекты и звенья Biped при активной кнопке Auto Key можно только в системе координат Local (Локальная). Когда нужно будет переместить звено Biped после поворота, система координат может остаться локальной. В этом случае просто смените ее на систему координат View (Вид) - рис. 8.40.

    Теперь можно посмотреть, как внесенные изменения отразились на анимации. Анимации хорошо просматривать, держа персонаж на виду, но при использовании режима In Place в исходном варианте при визуализации анимации в любом виде, кроме вида сбоку, ее воспроизведение не будет точным. Если вы хотите более точно просмотреть анимацию, снова включите для Biped режим In Place, но на этот раз выберите режим In Place Y (рис. 8.41).

    Уточнение цикла с использованием слоев

    Рис. 8.40. Преобразования поворота ограничены системой координат Local

    Уточнение цикла с использованием слоев

    Рис. 8.41. Удерживая выпадающее графическое меню, щелкните по пиктограмме In Place Y



    Теперь персонаж будет слегка двигаться из стороны в сторону, перемещаясь по мере анимации бега, - важное вторичное движение для любого бега или ходьбы. Чтобы получить плавное воспроизведение анимации, в поле End Time окна Time Configuration введите значение 32 (рис. 8.42).

    Последнее, что нужно сделать, настраивая анимацию, - вручную переместить объект Biped в начало координат. Режим In Place прекрасно подходит для внесения изменений и просмотра, а также для центрирования объекта Biped вручную - завершающего шага для создания циклических анимаций, таких как бег или ходьба. Выделите объект СОМ, выключите режим In Place и из кадра в кадр перемещайте Biped обратно к кадру 0 по оси Y, используя систему координат View. Безусловно, проще всего переместить объект Biped, вызвав окно Move Transform Type-In и введя значение 0 в поле Absolute:World (Абсолютная:Мировая) - рис. 8.43.

    Уточнение цикла с использованием слоев

    Рис. 8.42. После внесения изменений нужно сделать еще один, завершающий анимацию, шаг

    Уточнение цикла с использованием слоев

    Рис. 8.43 Окно Transform Type-In никогда не бывает ненужным

    Если вызвать окно Track View и удалить все ключи типа Horizontal для трека Ыр01, то объект СОМ останется в начале координат, но будут удалены перемещения по осям X и Y. Перемещение из стороны в сторону вдоль оси X очень важно в таких анимациях, как бег и ходьба, - оно моделирует равновесие и перенос веса, поэтому предпочтительнее переместить анимацию вручную в точку с координатой 0 по оси Y.

    Как только объект Biped будет перемещен в начало координат во всех кадрах цикла, сохраните анимацию с помощью опции Save Segment. Чтобы автоматически задать отрезок текущим диапазоном анимации, щелкните по кнопке Active Time Segment (Активный временной сегмент), которая находится справа от поля То (До). Сохраните новый файл Biped как Myrun.bip (рис. 8.44).

    Уточнение цикла с использованием слоев

    Рис. 8.44. С помощью кнопки Active Time Segment начальный и конечный кадры задаются в соответствии с установками в окне Time Configuration

    В качестве эксперимента загрузите файл Myrun.bip в окне Motion Capture Conversion Parameters. He используя режимы в списке Footstep Extraction (Извлечение следов), примените сокращение ключей. Снимите отметку с опции Loop, потому что она не нужна, также отмените выделение треков Body Horizontal, Body Vertical, Left Leg и Right Leg в разделе Key Reduction Settings (рис. 8.45).

    Поэкспериментируйте со значениями Tolerance и Minimum Key Spacing и добавьте звенья Legs и Body в число объектов для сокращения ключей, чтобы посмотреть, нельзя ли еще больше сгладить анимацию.

    Уточнение цикла с использованием слоев

    Рис. 8.45. Оптимизируйте верхнюю часть туловища во время анимации с помощью окна Motion Capture Conversion Parameters


    Внесение изменений с помощью функции Set Multiple Keys


    Внести необходимые изменения в файл захвата движения можно не только с помощью слоев, но и используя функцию Set Multiple Keys1 (Установить несколько ключей) Внесение изменений с помощью функции Set Multiple Keys. Откройте окно Track View и выделите все ключи в кадрах 40-89 только для трека Betty R Thigh (рис. 8.85).

    Не отменяя выделения ключевых кадров, закройте окно Track View, активизируйте окно проекции Front и перейдите в кадр 59. Увеличьте правую ступню в окне проекции и посмотрите, как она сгибается по оси Z (рис. 8.86).

    Угол наклона ступни неестественен, это обусловлено мягким покрытием пола, на котором производилось движение. Этот недостаток можно быстро и легко исправить с помощью функции Set Multiple Keys.

    Внесение изменений с помощью функции Set Multiple Keys

    Рис. 8.85. Выберите только ключи для корректного добавления эффекта отдачи
    Внесение изменений с помощью функции Set Multiple Keys

    Рис. 8.86. Правая ступня поворачивается во время анимации, что обусловлено покрытием пола
    Выключите кнопку Auto Key, выделите ступню и поверните ее относительно оси Z так, чтобы она ровно стояла на полу (рис. 8.87, позиция 1). Затем в свитке Keyframing щелкните по кнопке Set Multiple Keys (рис. 8.87, позиция 2) - появится окно Biped Multiple Keys (Несколько ключей Biped). Щелкните по кнопке Apply Increment (Применить инкремент) - рис. 8.87, позиция 3, - и ко всем выделенным в окне Track View ключам будет применена операция вращения.

    Внесение изменений с помощью функции Set Multiple Keys

    Рис. 8.87. Чтобы применить функцию преобразования к определенному ряду ключей, воспользуйтесь функцией Set Multiple Keys
    Иногда кажется, что в результате применения функций Set Multiple Keys и Apply Increments сетка растягивается или деформируется. Чтобы убедиться, что команда Apply Increments привела к желаемому результату, подвигайте ползунок шкалы времени из стороны в сторону либо нажмите клавишу . ( точка) или, (запятая) несколько раз. Не забывайте также, что нужно повернуть или переместить выделенный объект относительно одной оси и воспользоваться функциями Set Multiple Keys и Apply Increment прежде, чем переходить к другой оси или другому типу преобразования. Иначе говоря, если совершить ряд поворотов или перемещений, а затем нажать кнопку Set Multiple Keys, то результата не будет.
    Воспроизведите анимацию и посмотрите, нет ли других фрагментов, которые нужно исправить. Во время анимации попробуйте удалить ключи для рук, позвоночника и головы из различных положений, чтобы сделать движения более плавными. На этом превращение Betty, получающей удар, в Betty, отпрянувшей от удара, и наконец в Betty, восстанавливающуюся после сильной отдачи ружья, завершено (рис. 8.88).

    Внесение изменений с помощью функции Set Multiple Keys

    Рис. 8.88. Эффект отдачи от оружия Betty




    Выбор формата файлов захвата движения


    Конечно, нельзя позволить себе записывать сессию захвата движения каждый раз, когда нужно анимировать персонаж. Иногда приходится работать с тем, что уже имеется, или с тем, что можно найти в свободном доступе в приличном виде. В студии House of Males существует огромная коллекция CSM-файлов для мужских и женских персонажей, к которым можно получить доступ как за деньги, так и через систему онлайнового доступа Diva. У студии Modern Uprising есть файлы BVH для мужских и женских персонажей, которые доступны по запросу.

    Определяя, подходит вам файл захвата движения или нет, рассмотрите два фактора: качество и возможность его применения для ваших целей. Качество закладывается в момент съемки; вы полагаетесь на актера, на режиссера, затем на конечный результат, предоставляемый компанией после обработки и настройки файла. Остается только загрузить эти файлы в ваш объект Biped и посмотреть на результат. Файл либо хорошо подойдет для ваших целей, либо нет. Возможность применения зависит от длительности полученной анимации и их цикличности, так как персонажи игр в реальном времени должны бегать, прыгать, плавать и стрелять в бесконечно повторяемых циклах. Чтобы получить цикл, в движении должен быть отрезок, начальная и конечная позы которого похожи (или должна быть возможность создать достаточно близкие позы).

    Анимация бега - один из лучших примеров для иллюстрации разницы между хорошими и плохими данными захвата движения.




    Выравнивание правой ступни перемещением объекта СОМ


    Откройте свиток Layers и щелкните по кнопке Create Layer а, чтобы создать новый слой. Перейдите в окно проекции Front, включите кнопку Auto Key и выделите объект СОМ персонажа Betty. Убедитесь, что активна кнопка преобразований Select and Move, и примените команду Set Key для объекта СОМ в кадрах 35 и 100. Нужно, чтобы движения до и после отдачи совпадали. Перейдите в кадр 40 и переместите объект СОМ так, чтобы ступни выровнялись со снятым ранее мгновенным положением. Больше внимания уделите совпадению зеленой правой ступни, а не синей левой (когда персонаж отходит назад, вес перебрасывается на правую ступню) - рис. 8.77.

    Выравнивание правой ступни перемещением объекта СОМ

    Рис. 8.77. Перемещайте объект СОМ до тех пор, пока правая ступня не выровняется со снятым мгновенным положением правой ступни
    В свитке Track Selection кнопки Body Horizontal и Body Vertical использовать одновременно нельзя. Можно нажать только на одну из них. Однако, если выбрать кнопку Restrict to ZX (Ограничить по ZX) или Restrict to YZ (Ограничить по YZ) на панели Axis Constraints (Ограничения по осям), то обе кнопки - Body Horizontal и Body Vertical - будут выделены и теперь можно одновременно определить ключи для обоих треков анимации (рис. 8.78).

    Выравнивание правой ступни перемещением объекта СОМ

    Рис. 8.78 С помощью кнопки Restrict to ZX или Restrict to YZ можно определить ключи для обоих треков анимации Body Horizontal и Body Vertical для объекта СОМ
    Если для перемещения по осям X, Y и Z вы используете трехгранник осей (axis tripod), то станет проще определить ключ для обоих треков. Просто переместите объект СОМ с помощью значка в углу трехгранника, что вызовет перемещение по двум осям одновременно (рис. 8.79).

    Выравнивание правой ступни перемещением объекта СОМ

    Рис. 8.79. Если воспользоваться трехгранником осей и переместить объект СОМ с помощью значка перемещения в углу, можно определить ключи для трека как Body Horizontal, так и Body Vertical
    Затем, не выходя из окна проекции Front, перейдите в кадр 90 и снова переместите объект СОМ. пока правая ступня Betty не выровняется со снимком правой ступни (рис. 8.80).

    Теперь подвигайте ползунок шкалы времени между кадрами 40 и 60. В кадрах 45-53 персонаж немного подпрыгивает. Перейдите в кадр 45 и опять переместите объект СОМ, пока правая ступня не выровняется с образцом. Затем перейдите в кадр 53 и сделайте то же самое. Подвигайте ползунок шкалы времени из стороны в сторону и везде, где ступня отклоняется от снимка, переместите СОМ - ступня должна быть выровнена во всей анимации. В кадрах 36-39 проигнорируйте положение ступни, потому что в этих кадрах, чтобы выровнять ее, надо перемещать саму ступню, а не объект СОМ. Переместите СОМ в кадре 95, чтобы выровнять ступни, проигнорируйте кадры 91-94 и 96-99 по той же причине.


    Теперь просмотрите анимацию в окне проекции Right, переместив СОМ в каждом кадре, где ступня не выровнена, принимая во внимание прыгающее движение в кадрах 45-55 (просто переместите СОМ по оси Y), - рис. 8.81.

    Выравнивание правой ступни перемещением объекта СОМ

    Рис. 8.80. Переместите объект СОМ в кадр 90, пока правая ступня не совпадет с мгновенным положением

    Выравнивание правой ступни перемещением объекта СОМ

    Рис. 8.81. Переместите объект СОМ в окне проекции Right, выровняв ступню должным образом

    Если положение будет неточным, не волнуйтесь. Здесь самое главное -обработать движение получения удара с помощью слоя и поместить ступни в правильное положение, сначала переместив СОМ. Пока не обращайте внимания на то, что ступня проходит сквозь пол.

    Не пытайтесь использовать в слое команду Set Planted Key - сначала слои нужно свернуть. Попробуйте проделать это - и вы поймете причину. Ступня и нога будут двигаться неестественно.


    Загрузка анимации получения удара


    Щелкните по кнопке Load File в свитке Biped и загрузите в объект Biped файл Whacked.bip.

    Чтобы удалить избыточные ключевые кадры, которые не нужны для анимации, откройте окно Track View. Затем выделите и удалите все ключи из кадров 0-69 и 120-135 (рис. 8.69).

    Удаление большого числа ключевых кадров в окне Track View иногда может создать нехватку памяти и ресурсов процессора компьютера, а программа 3ds max может зависнуть. Тогда вместо удаления ключевых кадров сохраните нужную часть анимации с помощью опции Save Segment.




    Экспорт актера с анимациями


    На этом этапе пригодятся все временные теги. Щелкните по полю Add Time Tag и отметьте кадры, в которых имеет место анимация Swim Forward (кадры 680-720) - рис. 9.29.

    Откройте свиток Actor Motions (Движения актера) и щелкните по кнопке New Motion (Новое движение). В поле имени введите Swim Forward. Нажмите клавишу Tab или дважды щелкните по полю Start Frame и введите значение 680. В поле End Frame введите значение 720 (рис. 9.30).

    Еще раз нажмите кнопку Export Actor и снова откройте страницу просмотра (рис. 9.31).

    Экспорт актера с анимациями

    Рис. 9.29. Чтобы увидеть список кадров начала и конца анимаций, щелкните по полю Add Time Tag
    Экспорт актера с анимациями

    Рис. 9.30. Чтобы добавить анимации, нужно просто присвоить имя диапазону анимации и определить его границы
    Если вас раздражает проблема отсечения изображения по границам и вы умеете редактировать HTML-страницу, сделайте следующее. Откройте папку, в которую был помещен экспортер, и найдите файл WildTangent.html. С помощью программы FrontPage, Notepad (Блокнот) или любого другого редактора HTML откройте файл и перейдите к строке 339. Измените строку camera.setClipping( 10000*globalPositionIncrement,
    2*globalPositionIncrement);
    на camera.setClipping( 10000*globalPositionIncrement, 4.0);
    Точность Z-буфера увеличится, но если увеличение слишком велико, то будут отсечены передние части модели, поэтому немного измените значение. Экспортер старается установить хорошее значение по умолчанию - значение, которое подойдет для большинства моделей, но в зависимости от размеров модели эти числа можно увеличить и получить лучший характер видимости вдоль оси Z. Сохраните файл и держите его под рукой, чтобы заменять им исходный файл WildTangent.html, который записывается каждый раз при экспорте актера.

    Экспорт актера с анимациями

    Рис. 9.31. Теперь Betty «плывет» в Web-браузере
    Чтобы поместить в игру такого персонажа, как Betty, нужно ввести все его анимации в список движений перед тем, как экспортировать персонаж. Помимо этого есть и другие возможности для настройки, например, выдвинутых костей (promoted bones) и создаваемых материалов WildTangent. Изучите работу экспортера WildTangent, посетите сайт www.wildtangent.com. где представлены более подробные руководства.

    Экспортер WildTangent производит экспорт на Web-страницу, поэтому вы можете создать одну или несколько моделей, анимировать их, экспортировать и разделять их со всеми, кто может и хочет скачать WildTangent Web Driver.




    Экспорт


    Процесс разработки персонажей игр в реальном времени не может обойтись без экспорта в том или ином виде. В Q3A персонажи экспортировались в ASCII-формат 3ds max (под названием ASE), затем программисты взмахивали своими волшебными математическими палочками - и персонажи появлялись в игре. В файле конфигурации определялась скорость смены кадров для анимации, а также точка начала и конца анимации. Такой подход, использующий группу файлов, вполне приемлем, но он определенно предназначен не для художника.

    Однако не все компании отказываются от подхода визуальных инструментов и заставляют художника (трепещите!) вводить массивы данных в процессе экспорта. Технология Web Driver компании WildTangent и набор инструментов RenderWare фирмы Criterion Software представляют новое поколение графически ориентированных экспортеров, в которых художественная разработка упрощена. Чтобы проиллюстрировать один пример экспорта, в следующем разделе подробно рассматривается использование экспортера для 3ds max 4 компании WildTangent1. На компьютер придется установить ряд программ WildTangent, поэтому, если вы хотите пропустить данный раздел, переходите сразу к заключению.




    Настройка длины перехода между отрезками движений


    После того как сценарий определен, а движения внесены, нужно устранить резкие переходы между отрезками движений. Закройте окно Motion Flow Graph и вызовите окно параметров перехода для первого элемента сценария (шаги 13-15 в списке, приведенном ранее). В поле Length (Длина) введите длину перехода 0 и измените значение времени начала для следующего отрезка в поле Start Frame на 731 (рис. 9.13).

    Настройка длины перехода между отрезками движений

    Рис. 9.13. Чтобы устранить резкие переходы между отрезками, измените значения в полях Start Frame и Length
    Красная фигура, появляющаяся, когда открывается окно параметров перехода, изображает целевое движение. Она важна только при создании перехода к следующему отрезку движения. Желтая фигура, обозначающая исходный отрезок анимации, позволяет при перетаскивании ползунка в разные позиции на шкале времени сравнить относительные положения персонажа во время перехода.
    Значение, которое нужно ввести в поле Start Frame в разделе Source Clip (Исходный отрезок), легко определить. Введите в это поле число, которое находится справа в текстовом поле прямо над полем Start Frame. Изменив два значения, щелкните по кнопке Next Transition in Script (Следующий переход в сценарии) - рис. 9.14, - перейдите к следующему отрезку анимации и измените значения в полях Length и Start Frame соответствующим образом.

    Настройка длины перехода между отрезками движений

    Рис. 9.14. Пройдите по всем переходам сценария, нажимая на кнопку Next Transition in Script




    Подготовка анимации для режима Motion Flow


    Прежде чем переносить отрезок движения в Motion Flow Editor, нужно удостовериться в наличии трех условий, при необходимости внеся исправления. Прежде всего, первый столбец ключей должен быть в кадре 0. Даже если по какой-то причине в кадрах, например, с 0 по 50 нет анимации, первый столбец ключей, определенных для всех звеньев Biped при просмотре в окне Track View, должен находиться в кадре 0. Иначе, когда будет включен режим Motion Flow, переходы и длина отрезка анимации могут быть неправильными.

    Загрузите файл Betty15.max (рис. 9.1).

    Вызовите окно Track View - и вы увидите, что ключи сдвинуты вправо, они не начинаются в кадре 0. Такое иногда случается при сохранении сегмента анимации, а не всего файла Biped (особенно в режиме Motion Flow). Выделите все ключи и перетащите их так, чтобы первый столбец оказался в кадре 0 (рис. 9.2).

    Подготовка анимации для режима Motion Flow

    Рис. 9.1. Betty готова к объединению всех движений
    Во-вторых, нужно убедиться, что в последнем кадре анимации присутствуют ключи, которые полностью закрывают отрезок движения, то есть ключи для всех треков. Тогда при соединении анимации не будут влиять друг на друга. В загруженной анимации эффекта отдачи Betty скопируйте набор ключевых кадров из первого кадра в последний (рис. 9.3).

    В-третьих, - и это последнее, что нужно сделать, - добавьте дополнительный столбец ключей в конец отрезка движения. Когда отрезок движения окажется в редакторе Motion Flow Editor, последний кадр отрезка, если после него добавить другой отрезок движения, будет «съеден». Так происходит, даже если переходы не определены. В 3ds max и character studio предполагается, что последний кадр либо дублирует первый (для циклов), либо используется при переходе. Выделите последний столбец ключей и перетащите его в соседний кадр, чтобы создать «подушку» из ключевых кадров (рис. 9.4).

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



    Поворот отрезков движения


    После устранения переходов, которые происходят между анимациями движения, нужно проверить ориентацию отрезков. Каждый последующий отрезок начинается в конце предыдущего, а вращение объекта СОМ относительно - оно происходит в зависимости от положения персонажа. Это значит, что иногда нужно повернуть отрезок анимации с помощью того же метода, который использовался при повороте всего движения. Перейдите в кадр 731 и посмотрите на Betty в окнах проекции Тор и Front (рис. 9.15).

    Поворот отрезков движения

    Рис. 9.15. Второй отрезок ориентирован неправильно
    Вернитесь в окно параметров перехода для первого отрезка движения в сценарии и в поле Angle введите значение 40 (рис. 9.16).

    Поворот отрезков движения

    Рис. 9.16. Если ввести значение в поле Angle, то следующий отрезок анимации повернется
    Обычно при вращении отрезков движения в окне редактирования перехода правильное значение угла определяется экспериментально.
    При вводе значения в поле Angle персонаж поворачивается соответствующим образом (рис. 9.17).

    Поворот отрезков движения

    Рис. 9.17. Второй отрезкок можно исправить, повернув все движения после первого отрезка на 40°
    Очевидно, что параметры в окне переходов влияют на следующий отрезок движения в сценарии. Однако не забывайте, что все отрезки движений, которые в сценарии следуют за первым, повернуты на 40°, потому что ориентация каждого отрезка определяется по отношению к предыдущему.

    Теперь нужно проверить другие отрезки движения и убедиться, что они ориентированы правильно. Чтобы перейти к следующему отрезку движения, не закрывая окно параметров перехода, снова щелкните по кнопке Next Transition in Script Поворот отрезков движения.

    В сценарии можно перейти к первому кадру каждой анимации, выделив конкретный отрезок движения и щелкнув по кнопке Go To Frame (Перейти к кадру) Поворот отрезков движения, которая находится в свитке Motion Flow.
    В следующем переходе, от betty_bigshot к betty_kick, поворот будет немного больше: голова Betty должна смотреть вперед, а не под углом (рис. 9.18).

    Поворот отрезков движения

    Рис. 9.18. Чтобы исправить ориентацию третьего отрезка, в поле Angle введите значение -8

    Если в поле Angle ввести положительное число, то персонаж повернется по часовой стрелке, а если отрицательное - против часовой стрелки.

    Перейдите к следующему переходу и перетащите ползунок шкалы времени, чтобы воспроизвести анимацию смерти. Здесь поза ориентирована более или менее правильно, так как Betty падает почти строго назад, перпендикулярно виду сбоку. А следующий переход нужно исправить. Для перехода от betty_death к betty_recovery введите в поле Angle значение -58°, чтобы Betty падала прямо назад и вставала на ноги, смотря вперед (рис. 9.19).

    Не заботьтесь об изменении относительной высоты. Это можно исправить с помощью слоев, окончив работу со всеми переходами, сохранив файл в формате BIP и перезагрузив его в новый объект Biped. Обратитесь к следующему переходу. Голова Betty, хотя этого можно и не заметить, повернута слишком сильно, поэтому всю анимацию нужно повернуть на 5°, чтобы голова смотрела вперед (рис. 9.20).

    Поворот отрезков движения

    Рис. 9.19. К четвертому переходу нужно добавить угол, равный -58°

    Поворот отрезков движения

    Рис. 9.20. Голову Betty нужно повернуть на 5°

    В следующем переходе протащите ползунок по шкале времени, просматривая анимацию в окне проекции Front. Голова Betty не смотрит вперед, но перемещение ее ступней и туловища таково, что поворота на -10° будет достаточно, чтобы выровнять ее нужным образом (рис. 9.21).

    Поворот отрезков движения

    Рис. 9.21. Отклонение назад нужно исправить, голова Betty должна более явно смотреть вперед

    Последний отрезок движения состоит из нескольких анимаций, как и betty_clip01. Перейдите в кадр 1082, где персонаж в окне проекции Front смотрит куда-то вперед. Видно, что движение нужно повернуть еще примерно на-10°, выровняв отрезок правильно (рис. 9.22).

    Поворот отрезков движения

    Рис. 9.22. К последнему переходу нужно также применить поворот на -10°

    У последнего отрезка движения нет опций настройки перехода, потому что он последний и дальше переходить некуда. Переходы изменены -и анимацию можно сохранять и перезагружать на новый объект Biped. В свитке Biped щелкните по кнопке Save FileПоворот отрезков движения и воспользуйтесь опцией Save Segment. Чтобы получить правильный диапазон анимации, щелкните по кнопке Active Time Segment и снимите отметку с опции A Keyframe per Frame (Генерировать ключевой кадр в каждом кадре), чтобы избежать добавления ненужных ключевых кадров. Назовите новый файл betty_01.bip (рис. 9.23).



    Щелкнув по кнопке Motion Flow Mode и выключив ее, вы вернетесь в обычный режим character studio. Нажмите кнопку Load File Поворот отрезков движения - и только что сохраненный файл автоматически появится в поле имени файла. Нажмите кнопку Open - теперь можно продолжать настраивать соединенные анимации.

    Редактор Motion Flow Editor нужно рассматривать как инструмент, который временно используется для соединения анимаций друг с другом. Экспортировав анимации в новый файл и загрузив их в объект Biped, вы сможете редактировать их и дальше. Сохранять и перезагружать новый файл в формате BIP нужно еще и потому, что Motion Flow Editor загружает отрезки анимации из определенной папки. Это усложняет процесс доступа других пользователей к той же сцене 3ds max и/или тем же анимациям, так как файл будет искать отрезки движения в прежней папке. Если она не существует и файлов нет, анимации нельзя будет загрузить. Сохранение нового файла в формате BIP устраняет зависимость от положения файла движения.

    Поворот отрезков движения

    Рис. 9.23. Не забудьте снять отметку с опции A Keyframe per Frame, чтобы избежать добавления ненужных ключевых кадров

    Вот некоторые изменения, которые нужно внести в новый файл формата BIP: переместите все движения персонажа (например, отрезок betty_recovery), добавьте буфер между анимациями и временные теги. Завершив работу над набором анимаций, можно переходить к экспорту.


    Режим Motion Flow


    Редактор Motion Flow Editor предназначен для создания переходов между движениями и изменения направления файлов движения, если это необходимо. Он идеально подходит для соединения отдельных созданных вами анимаций, завершая аналогию с анимационной папкой. В режиме Motion Flow есть много полезных функций, но в этой главе рассматривается только сшивание (stitching) набора анимаций.




    Создание и экспорт актера


    Щелкните по кнопке New Actor (Новый актер) в свитке Actor Geometry (Геометрия актера). По умолчанию в качестве имени актеру присваивается название одного из выделенных объектов. Выделите появившееся в поле имя и измените его на Betty (рис. 9.26).

    Щелкните в любом месте окна проекции, чтобы сохранить измененное имя, и в свитке Actor Export (Экспорт актера) нажмите кнопку Export Actor (Экспортировать актера). Приложение начнет экспортировать актера в особую программу просмотра, а в нижней части экрана появится синяя полоса состояния. По окончании экспорта в нижней части экрана на панели задач Windows вы увидите ярлык новой программы. Щелкните по нему, чтобы вызвать окно программы просмотра (рис. 9.27).

    Создание и экспорт актера

    Рис. 9.25. Загрузите файл Betty06.max и выделите все объекты сетки Betty
    Создание и экспорт актера

    Рис. 9.26 Измените имя актера, присвоенное по умолчанию, на Betty
    Удерживая нажатой левую кнопку мыши, перетащите курсор в окне программы просмотра, поворачивая камеру вокруг экспортированной Betty. Чтобы перетащить сцену, удерживайте нажатой правую кнопку мыши, а чтобы увеличить или уменьшить масштаб, удерживайте обе кнопки мыши, перемещая указатель вперед и назад. Чтобы переключаться между серым, белым и черным фоном, нажимайте клавишу В.

    Создание и экспорт актера

    Рис. 9.27. Просмотр актеров Wile/Tangent осуществляется через Internet Explorer
    Исходные параметры камеры обеспечивают отсечение изображения, поэтому издалека Betty выглядит немного странно. Однако в увеличенном виде она выглядит хорошо. По умолчанию только что созданный файл хранится в папке Documents and Settings\[Имя пользователя]\Аррlication Data\WildTangent\Generated Files\Web.. Закройте окно программы просмотра, вернитесь в 3ds max и в свитке Actor Export щелкните по кнопке Preferences (Настройки). Когда появится окно Export Preferences (Настройки экспорта), щелкните по вкладке Web-ready Format (Формат, готовый для Web), а затем - по адресной строке, расположенной под опцией Web-Ready Output (Выход для Web). Введите путь C:\artgc\export (вместо C:\ можно указать любой диск) - рис. 9.28.

    Создание и экспорт актера

    Рис. 9.28. В окне Export Preferences определяется, куда попадут экспортируемые актеры
    Когда появится предложение создать папку, нажмите кнопку ОК. Теперь каждый раз при экспорте актера в этой конкретной сцене 3ds max его файл окажется в определенной выше папке.




    Создание сценария Motion Flow Script


    Чтобы соединить все анимации, нужно создать сценарий потока движений, определив тем самым порядок, в котором связываются анимации, и всевозможные переходы или изменения ориентации, которые нужно осуществить. Этот сценарий всегда создается одинаково, поэтому в файле Betty 12.max выполните следующие шаги:

    1. Выделите объект Biped.

    2. Щелкните по кнопке Motion Flow - она станет активной (фиолетовой) - рис. 9.6.

    Создание сценария Motion Flow Script

    Рис. 9.6. Создание сценария потока движений начинается с активизации режима Motion Flow
    3. Щелкните по кнопке Show Graph - она станет активной.

    4. В окне Motion Flow Graph: Betty активизируйте кнопку Create Clip.

    5. Создайте столько полей для отрезков, сколько нужно (для Betty создайте восемь) - рис. 9.7.

    Создание сценария Motion Flow Script

    Рис. 9.7. Создайте поля в окне Motion Flow Graph
    Расположите поля отрезков движений так, чтобы их было проще связывать друг с другом. Обычно больше всего подходит ступенчатая конфигурация, но можно применить и любую другую придуманную вами систему. Чтобы переместить отрезки, сначала нужно нажать кнопку Move Clip (Переместить отрезок) - рис. 9.8.
    Создание сценария Motion Flow Script

    Рис. 9.8. Позиционируйте отрезки движений: активизируйте кнопку Move Clip и определите положение отрезков
    6. Щелкните правой кнопкой мыши по пустым полям отрезков движений.

    7. Укажите путь к нужным отрезкам движения.

    8. В каждое поле отрезка загрузите файл движения. Загрузите файлы betty_*.bip из папки в следующем порядке (рис. 9.9):

    Создание сценария Motion Flow Script

    Рис. 9.9.Загрузите отрезки движений в окне Motion Flow Graph
  • betty_clip01;

  • betty_bigshot;

  • betty_kick;

  • betty_death;

  • betty_recovery;

  • bettyjog;

  • bettyjbackpedal;

  • betty_specials.

  • 9. Когда все движения будут загружены, обратите внимание на раздел Scripts (Сценарии).

    10. Активизируйте кнопку Define Script, щелкнув по ней.

    11. Выберите пункт Create new script (Создать новый сценарий) и нажмите кнопку ОК (рис. 9.10).

    Создание сценария Motion Flow Script

    Рис. 9.10. Создайте новый сценарий потока движений
    12. Щелкните по каждому полю отрезка в том порядке, в котором они должны быть соединены друг с другом. Порядок для отрезков Betty таков (рис. 9.11):


  • betty_clip01;


  • bettyjbigshot;


  • betty_kick;


  • betty_death;


  • betty_recovery;


  • bettyjog;


  • betty_backpcdal;


  • betty_specials.


  • Создание сценария Motion Flow Script

    Рис. 9.11. Чтобы определить порядок воспроизведения отрезков в сценарии, щелкните по каждому из них

    13. Закройте окно Motion Flow Graph, щелкните по имени отрезка в списке под названием сценария справа - оно будет выделено (синим).

    14. Щелкните по кнопке Edit Transition (Редактировать переход).

    15. Отредактируйте параметры перехода (рис. 9.12).

    Создание сценария Motion Flow Script

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


    Прежде чем устанавливать экспортер WildTangent,


    Прежде чем устанавливать экспортер WildTangent, прочитайте раздел Known Issues файла Readme на компакт-диске, чтобы убедиться, что параметры вашей системы удовлетворяют требованиям.

    Если проблем совместимости не должно возникнуть, закройте все программы, включая 3ds max. Откройте папку Demos\WT на компакт-диске и запустите файл установки wtwdinstFull. Пакет Web Driver компании WildTangent будет установлен на ваш компьютер. Эта программа позволяет запускать содержимое, созданное на патентованной платформе WildTangent.

    Затем запустите файл WildTangentMax4Plugins, чтобы установить сам экспортер 3ds max. После этого снова запустите 3ds max. Откройте панель Utilities, щелкните по кнопке More (Еще), выделите в списке утилиту WildTangent Actors и нажмите кнопку ОК (рис. 9.24).

    Прежде чем устанавливать экспортер WildTangent,

    Рис. 9.24. После установки к экспортеру Wile/Tangent можно получить доступ на панели Utilities

    Загрузите файл Betty16.max и затем выделите объекты сетки Betty (рис. 9.25).


    Без сомнения, ничто так не


    Без сомнения, ничто так не достойно вознаграждения, как анимация персонажей. В этой книге я давал советы, указывал тонкости, приводил инструкции в надежде, что вы сможете поверить в свою способность «оживить» персонажи. Программы 3ds max и character studio - отличные инструменты, и с каждой новой версией они становятся все лучше. Этот факт, а также рост мощности компьютеров и игровых приставок открывают новые горизонты анимации персонажей игр в реальном времени. Я не сомневаюсь, что в ближайшие пять лет мы увидим персонаж, состоящий из 10000 полигонов, невероятно быстро анимируемый, с тоннами пиротехники и других эффектов.

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

    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн