Анимация персонажей в 3ds max

         

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



Алгоритм применения модификатора 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 готова к действию!



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


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

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



Большинство значений по умолчанию в диалоговом окне physique initialization подходят для задания весов нашего персонажа



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



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



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


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



Что это?



Что это?



Чтобы инициализировать модификатор...





Рис. 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.6 Чтобы настроить весовые значения, нужно открыть свиток редактирования одного из подобъектов модификатора Physique


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

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

Чтобы применить анимацию bip-файла к персонажу, щелкните по пиктограмме load file



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


Загрузите файл Run.bip на объект Biped персонажа.

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



Даже объекты сетки туловища должны быть бронированными, то есть твердыми



Даже объекты сетки туловища должны быть бронированными, то есть твердыми


Начните с шеи. Голова является отдельным объектом, поэтому веса шеи и головы проще задавать вместе. Если шея присоединена к туловищу, то для определения весовых значений требуется больше операций с полигонами и времени. Увеличьте масштаб верхней части шеи, выделите ее вершины и присвойте их звену 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).



Диалоговое окно type-in weights можно вызвать, только если вершины заблокированы



Диалоговое окно Type-In Weights можно вызвать, только если вершины заблокированы


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



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



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





Если вы вводите значения для набора...



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


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

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



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



Если выделить эти звенья, то они больше не будут влиять на выбранные вершины



Если выделить эти звенья, то они больше не будут влиять на выбранные вершины


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

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

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



Геометрию соединительной ленты нужно связать как с задней частью плеча, так и с предплечьем



Геометрию соединительной ленты нужно связать как с задней частью плеча, так и с предплечьем


Чтобы решить эту задачу, не имеет смысла добавлять дополнительные кости, нужно осторожно разделить веса между звеньями 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. ЗАДАНИЕ ВЕСОВ СЕТКИ ПЕРСОНАЖА ВРУЧНУЮ С ПОМОЩЬЮ РЕДАКТИРОВАНИЯ ВЕРШИН

ЗАДАНИЕ ВЕСОВ СЕТКИ ПЕРСОНАЖА ВРУЧНУЮ С ПОМОЩЬЮ РЕДАКТИРОВАНИЯ ВЕРШИН Типичный персонаж игры Алгоритм применения модификатора Physique Применение и инициализация модификатора Physique Присвоение вершин звену Ввод весовых значений Отмена привязки вершин к звеньям Настройка области локтя Работа над рукой и пальцами Сохранение весовых значений Определение шеи, плеч и туловища Задание весов второй ноги Загрузка BIP-файла в объект Biped Закрепление бедер Настройка руки с оружием Резюме



Иногда, чтобы получить правильную деформацию, нужно изменять геометрию, с не веса



Иногда, чтобы получить правильную деформацию, нужно изменять геометрию, с не веса


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



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



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



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



На колено должны влиять звенья как thigh, так и calf



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


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



На скелетной фигуре человека внутри сетки, к которой был применен модификатор physique, отображаются все звенья



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


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



Щелкните правой кнопкой мыши в любом месте окна проекции, затем в контекстном меню Quad (Квадрант) выберите пункт Hide Unselected (Спрятать невыделенное). На экране останутся только объекты сетки (рис. 3.5).



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



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



На вершину могут влиять сколько угодно звеньев



Рис. 3.14 На вершину могут влиять сколько угодно звеньев


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



Отобразите скрытое звено Betty L Foot и поверните его относительно оси Z, чтобы проверить задание веса (рис. 3.15).



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



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



У персонажа 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.



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



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



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

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

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



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



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



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



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



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



Опция triangle pelvis весьма полезна



Опция Triangle Pelvis весьма полезна



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



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



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



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



Определите длительность анимации в полях start time и end time -19 кадров (0-18)



Определите длительность анимации в полях 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).





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



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



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


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



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



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



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

Затем активизируйте кнопку Auto Key (Автоматическое создание ключей)

Поч~и все вершины голени можно присвоить звену l calf



Поч~и все вершины голени можно присвоить звену L Calf



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



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


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

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



При выборе левого звена foot с...



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




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



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



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



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



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



Сначала лучше задать веса более простых объектов (или элементов объекта), которые затем можно скрыть. Это значит, что объект необходимо отделить от остальных, а звено, которому нужно присвоить вершины, должно быль легко различимо. В случае с 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.




Присвойте этим вершинам одинаковое значение веса для звеньев thigh и spine



Присвойте этим вершинам одинаковое значение веса для звеньев 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 и проверьте с разных точек обзора, как деформируется при беге правая ягодица. Проделайте то же самое с левой ягодицей, используя правую в качестве образца. Они должны выглядеть хорошо - бедра готовы.



Присвойте оставшиеся вершины соединительной ленты



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



Присвойте вершины эполета (1) звену betty r clavicle /a)



Присвойте вершины эполета (1) звену Betty R Clavicle /A)



Присвойте вершины руки, начав с кончиков пальцев



Присвойте вершины руки, начав с кончиков пальцев


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

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




Присвойте все вершины головы одному звену- head



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



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



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


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

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

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

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

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




Проверьте задание весов, повернув или переместив соответствующую кость



Проверьте задание весов, повернув или переместив соответствующую кость


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

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



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



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



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

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




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



Резюме

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

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



Рука выглядит гораздо лучше, если вершины присвоены звену l forearm



Рука выглядит гораздо лучше, если вершины присвоены звену L Forearm


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

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



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



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



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



С помощью кнопки select by link можно выделить все вершины, присвоенные звену



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




С помощью кнопки set key для выделенного объекта biped создается ключевой кадр



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



С помощью контекстного меню quad в 3ds max очень просто скрыть или заморозить объекты



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



С помощью пиктограммы time configuration можно вызвать окно, в котором задается число отображаемых кадров



С помощью пиктограммы Time Configuration можно вызвать окно, в котором задается число отображаемых кадров



Сгибая руку вне режима figure, можно протестировать задание весов сетки



Сгибая руку вне режима Figure, можно протестировать задание весов сетки


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



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



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



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



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



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



Сохраните файл модификатора physique на всякий случай, например для использования в дальнейшем



Рис. 3.36 Сохраните файл модификатора Physique на всякий случай, например для использования в дальнейшем


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

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



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



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



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



В разделе vertex type выберите цвет вершин, к которым применяется команда remove from link



В разделе Vertex Type выберите цвет вершин, к которым применяется команда Remove from Link


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

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



присвоены звену С, то



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



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



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



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



Вершины рюкзака и верхней части туловища (2) присвоены звену spine2 (в)



Вершины рюкзака и верхней части туловища (2) присвоены звену Spine2 (В)


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

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



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



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



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


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

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

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

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



Весовые значения соединительной ленты сдвинуты



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



Включая и выключая режим initial skeletal pose, можно переходить от анимированного состояния к неанимирсванпому



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



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



Вначале задайте одинаковое влияния звеньев spine2 и forearm на все вершины



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


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

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



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



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



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



Выделите и присвойте вершины ступни



Выделите и присвойте вершины ступни


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



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



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



Выделите все объекты сетки, к которым должен быть применен модификатор physique



Выделите все объекты сетки, к которым должен быть применен модификатор Physique


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



Выделив объекты, откройте панель Modify (Модификация) с помощью соответствующей пиктограммы

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



ЗАДАНИЕ ВЕСОВ СЕТКИ ПЕРСОНАЖА ВРУЧНУЮ С ПОМОЩЬЮ РЕДАКТИРОВАНИЯ ВЕРШИН
Подогнав объект Biped по сетке, примените к ней модификатор Physique. Еще раз заметим, что роль Physique в анимации персонажа игры в реальном времени заключается в том, что он преобразует сетку в кожу, которую «носит» объект Biped. При анимации объекта Biped сетка деформируется, так как ее вершины связаны с одной или более лежащими в ее основе «костями». Экспортированный на игровой движок Biped не отображается в конечной анимации, поэтому кажется, что анимация применяется только к сетке. С помощью элементов управления и параметров объекта Physique можно задавать наилучшее отношение влияния, которое будут оказывать на вершины сетки звенья Biped. Для создания отличной анимации главное - правильно задать веса вершин.










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



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



Присвойте вершины правой ноги нужным звеньям, взяв за образец левую ногу, на задание весов которой уже было потрачено некоторое время. Сначала присвойте вершины элемента ноги 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).



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



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




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



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



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


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



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



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



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

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

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



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



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

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

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




Звенья upperarm и forearm одинаково влияют на локоть



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