Персонажная анимация
Задание 18. Анимация походки
В задании 15 использован механизм с иерархической структурой с прямой кинематикой. В прямой кинематике элементы, находящиеся на верхнем уровне управляют движением элементов нижнего уровня. В инверсной кинематике наоборот – потомки приводят в движение родительские объекты. На основе инверсной кинематики строится персонажная кинематика.
Для персонажной анимации необходимо создать сеточную модель персонажа и встроить в него систему костей. Система костей образует скелет, и кости перемещаются по свойствам инверсной кинематики. Например, перемещение кисти приводит в движение всю руку.
При создании анимации перемещению подвергается скелет, а модель персонажа осуществляет движения благодаря связи с ним.
В 3DsMAX существуют два способа создания скелета персонажа: Bones(кости) и Biped (настроенный скелет).Во втором случае создания анимации немного проще.
Задание:
Постройте анимацию походки персонажа
Установим единицы измерения сантиметры. Выберем скелетную модель двуногого персонажа. Откроем свиток Systemsи нажмем на вкладку Biped (рис. 212) и выберем одного из персонажей, например Female (рис. 213).Можете выбрать и другой персонаж.
|
|
| Рис. 212 | Рис. 213 |
В окне перспективы щелкнем мышью на рабочей плоскости и не отпуская клавиши мыши перетащим вверх и отпустим клавишу. В результате в окнах появится выбранный персонаж. Высоту персонажа можно скорректировать, указав высоту в окошке Height (например, 175 см.).
С помощью TimeLineустановим продолжительность анимации 160 кадров. Перейдем на панель Move, щелкнув на клавише
.
В свитке Biped включим режим пошаговой анимации FootstepMode (рис. 214).
ВразделеFootstepCreationнажмемкнопкуCreateMultiple – несколько шагов (рис. 215).
|
|
| Рис. 214 | Рис. 215 |
В открывшемся окне введем в окошко NumberofFootstepЧисло шагов 8 (рис. 216). Остальные параметры оставим без изменений.

Рис. 216
ВсвиткеFootstepOperationнажмемнакнопкуCreate Keys in Inactive Mode(рис. 217).

Рис. 217
Проиграйте анимацию. Персонаж будет перемещаться автоматически созданной походкой.(рис. 218).

Рис. 218
Походка кажется механической. На самом деле человек шагает, слегка раскачиваясь в стороны. Скорректируем походку персонажа.
В свитке Bipedотключим FootstepModeи в разделе TrackSelectionактивизируем кнопку BodyHorizontal. В результате вовременной шкале отобразиться все ключевые кадры (рис. 219).

Рис. 219
Повернем окно Perspectiveтак, чтобы персонаж двигался на нас и выделим часть тела с центром тяжестиперсонажа (рис. 220).

Рис. 220
ВразделеTrackSelectionнажмемнакнопкуBody Rotation (рис. 221).

Рис. 221
В рабочем окне появится Gizmoвращения (рис. 222).

Рис. 222
Выключим все ключевые кадры во временной шкале, кроме кадров связанных с вращением. Для этого щелкнем правой клавишей мыши на временной шкале и выберем Filter->CurrentTransform(рис. 223)

Рис. 223
Проверьте, установлена ли локальная система координат в строке инструментов (рис. 224).

Рис. 224
Перейдем на 24 кадр (рис. 225) и слегка повернем фигуру вокруг центра тяжести относительно оси локальной системы координат (рис. 226).

Рис. 225

Рис. 226
В свитке Motionв разделе KeyInfoнажмем на кнопку SetKeyдля создания ключевого кадра. В результате левая нога сместится в сторону для автоматической компенсации смещения центра тяжести (рис. 227).

Рис. 227
Перейдем на 40 кадр и сместим фигуру в другую сторону. Сделаем кадр ключевым (рис. 228).

Рис. 228
В 55, 85, 116 кадрах проделайте те же операции как в 25-м, а в 79, 99, 123 как в 40-м. Кроме того в последнем ключевом кадре надо выделить поднятую ступню и опустить ее на поверхность, иммитируя остановку движения. Поиграйте анимацию.
В разделе Bipedнажмите на клавишу SaveFile(рис. 229)и выпавшем окне задайте имя сохраняемого файла и сохраните его(рис. 230).

Рис. 229

Рис. 230
В анимацию можно внести и другие движения частей тела, например, рук и головы. Для этого можно воспользоваться функцией автоматического создания ключевых кадров AutoKey (рис. 231).

Рис. 231
Нажмемна кнопку BodyRotationи выделим кисть правой руки. На временной шкале отразятся ключевые кадры анимации правой кисти. Включим режим переключения по ключевым кадрам и для перехода от ключевого кадра к другому ключевому кадру воспользуемся клавишей м на NextKey(рис. 232)

Рис. 232
В каждом ключевом кадре можно кисть поднять или опустить с помощью SelectendMoveилиповернутьспомощьюSelectandRotate. Новое положение кисти зафиксируется в ключевом кадре.
Аналогичные операции можно выполнить и с головой. Сохраните анимацию в файле bip.
В 3DsMAXимеется возможность объединить несколько bip файлов в одну анимацию. Для этого в свитке Motionнадо нажать на клавишу Mixer. В результате на экране появится группа треков MotionMixer(рис. 233).

Рис. 233
Создание системы костей
Использование объектов Bipedсокращает время на создание анимаций, но иногда приходится создавать кости вручную. При создании кости связываются между собой, создавая цепочки. Первая из созданных в цепочке костей становится предком для последующих костей. Две и более цепочки,соединённые между собой, образуют иерархию костей.
Для создания системы костей необходимо нажать на клавишу Bonesв свитке Create ->Systems (рис. 234). ВразделеIKChainAssignmentснимемфлажоксAssignToChildren(рис. 235)длятого, чтобы пока не устанавливать решатели инверсной кинематики. Решатель можно будет назначить по завершении построения скелета.
|
|
| Рис. 234 | Рис. 235 |
Параметры кости, заданные по умолчанию, можно изменить (рис. 236).

Рис. 236
В BoneObjectзадаются размеры кости, а Fin– это ребра кости. Создадим цепь, состоящую из 4 костей. Для завершения цепи после четвертой кости, нажав на правую кнопку мыши или Enter, увидим, что программа 3DsMAX создает маленькую пятую кость, означающую конец цепи (рис. 237). Если она мешает ее можно удалить (Delete).

Рис. 237
Выделим 4-ю кость. С помощью команды SelectandMoveсдвинем выделенную кость. В результате кости переместятся так, как показано на рис. 238.

Рис. 238
Применим для цепи решатель HISolver. В главной панели инструментов выберем Animation ->IKSolver ->HISolver (рис. 239).

Рис. 239
Соединим «резиновой» линией четвертую кость с первой (рис. 240).

Рис. 240
В результате цепи костей будет назначен решатель HISolver.Сместим четвертую кость влево (рис.241).Цепь переместится по законам инверсной кинематики.

Рис. 242
Построим скелет двуногого персонажа. Начнем строить скелет с головы. Кости строим последовательно с головы до одной из ног(рис. 243).

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

Рис. 244
Установим HISolverдля рук и ног (рис. 245).

Рис. 245
Иерархию соединений костей и решателей можно просмотреть в SelectbyName(рис. 246).

Рис. 246
Кости составляющее скелет можно редактировать. Для этого выполним команду Animation ->BoneEditingTools (рис. 247).

Рис. 247
В результате выполнения команды появится свиток BoneTools(рис. 248)

Рис. 248
С помощью BoneEditToolsможно изменить длину кости. Для этого нужно нажать кнопку и выбрать в инструментах SelectandMove. Для выхода из режима изменения длины отожмите кнопку BoneEditTools. Для изменения параметров кости не следует пользоваться инструментом Scale!
Клавиша Refineслужит для разбиения одной кости на две. RemoveBoneудаляет выделенную кость сохраняя цепочку костей, а DeleteBoneразрывает ее.
FinAdjustmentToolsпозволяет изменить размеры боковых ребер (SideFins), переднего (FrontFin) и заднего (BackFin)ребер.
Если в процессе построения цепочки костей оказались разъединёнными их можно соединить, выделив кость, острым концом направленную на следующую цепочку (рис. 249).

Рис. 249
Для объединения цепочек вызовем Animation ->BoneTools…->ConnectBones (рис. 250) и соединим резиновой линией с началом цепочки (рис. 251).

Рис. 243

Рис. 244
Вернемся к скелету. Перемещение промежуточной кости действует на родительские кости по правилам инверсной кинематики, а на дочерние по правилам прямой (рис. 245).

Рис. 245
Анимация движения с помощью цепи костей
Установим единицы измерения миллиметры DisplayUnitScaleи SystemUnitSetup(рис. 246, рис. 247).
|
|
| Рис. 246 | Рис. 247 |
ДлянастройкисеткивыберемTools -> Grid and Snap -> Grid and Snap Setting. В выпавшем окне установим расстояние между линиями сетки 1 сантиметр (рис. 248).

Рис. 248
Для быстроты создания анимации построим весьма упрощенную модель человека. Модель будем строить из графических примитивов.Создадим заготовки для частей тела: ChamberBoxразмером 40х70х20x5 с количеством сегментов 4х4х4 (тело), цилиндр 4х78 с количеством сегментов 6х1 (ноги), цилиндр 3х52 с количеством сегментов 6х1 (руки), цилиндр 5х7 с количеством сегментов 2х1 (шея), сферу, радиусом 9.
Выделим первый цилиндр и сконвертируем его EditablePoly.Щелкнем на кнопку Modify
. В свитке редактирования выделим объект Vertex(рис. 249).
Выделим все точки окружностей и перенесем их с помощью SelectandMove так, как показано на рис. 250.
Применим к окружностям модификатор SelectandUniformScaleи изменим их размеры (рис. 251).
|
|
|
| Рис. 249 | Рис. 250 | Рис. 251 |
Со вторым цилиндром (рука) поступим аналогично. В результате мы должны получить модель, изображенную на 252.
Отредактируем ChamberBox, придав ему форму тела (рис. 253).
|
|
| Рис. 252 | Рис. 253 |
Начертим контур ступни и выдавим ее на ширину ноги с помощью операции Extrude (Рис. 254). Нарисуем контур кисти и выдавим ее на 2 см (рис. 255).
110010
|
|
| Рис. 254 | Рис. 255 |
Переместим все части фигуры так, чтобы они составили фигуру. Части надо объединить с помощью логических операций. Выделим одну из частей фигуры. Выберем логическую операцию Create ->CompoundObjects ->Proboolean(рис. 256) и щелкнем последовательно на остальных частях фигуры. В результате получим фигуру как одно целое (рис. 257).
|
|
| Рис. 256 | Рис. 257 |
Создадим скелет фигуры. Выделим фигуру и нажмем правую клавишу мыши. В контекстном меню выберем FreezeSelection(рис. 258).Замораживание фигуры нужно для предотвращения случайного ее изменения. Кнопка Bones (кости) находится в разделе Systems (рис. 259).
|
|
| Рис. 258 | Рис. 259 |
Построим первую цепь от центра тяжести до левой ноги (рис. 260).

Рис. 260
От базовой родительской кости построим вторую цепь (рис. 261).

Рис. 261
Далее строим вертикальную цепь и две горизонтальные (рис. 262).

Рис. 262
Необходимо развернуть фигуру и проверить находится ли скелет внутри оболочки. Если нет, то необходимо переместить ее вовнутрь (рис. 263).

Рис. 263
Соединения скелета с оболочкой воспользуемся модификатором Skin.
Для этого разморозим оболочку, вызвав контекстное меню и нажав наUnfreezeAll(рис. 264).

Рис. 264
Выделим оболочку фигуры ив разделе модификаторы вызовем модификатор Skin. Нажмем на клавишу Add(рис. 265) и выпавшем окне выберем все кости Ctrl+A (рис.266)
|
|
| Рис. 265 | Рис.266 |
В разделе Bonesмодификатора Skinотобразятся все выбранные кости (рис. 267).

Рис. 267
Теперь кости перемещаются в месте с оболочкой, но не наоборот. Поэтому аккуратно выбирайте кости прежде чем их повернуть или переместить. Это проще сделать, если модель изображается в режиме Wireframe. Перемещение и вращения осуществляется с помощью SelectandMoveи SelectandRotate. (рис. 268).

Рис. 268
В принципе к анимации можно приступить уже сейчас, задавая перемещение модели, возвращая ее вид Realisticи записывая ключевые кадры. Однако можно улучшить процесс анимации, примерив решатели.
Снова выделим и заморозим оболочку (FreezeSelection). Выделим конечную кость правой ноги и вызовем решатель HISolver(рис. 269).

Рис. 270
Протянем «резиновую» линию и щелкнем на верхней части бедренной кости. В результате решатель вычертит замкнутую ломаную линию (рис. 271)
Установим решатели для левой ноги, левой и правой руки (рис. 272)
На концах цепочек костей появятся синие перекрестия, перемещая которые приводятся в движение цепочки костей. Выделив любую кость ее можно передвинуть или повернуть, причем перемещение кости будет с учетом связей между костьми. Выделив весь скелет, можно переместить фигуру целиком (рис. 273).
|
|
| Рис. 271 | Рис. 272 |

Рис. 273
Анимацию можно выполнить в ручном режиме, установив количество кадров, выбрав Setkeyи нажимая на значок ключа зафиксировать ключевые кадры. Не забудьте в ключевых кадрах переключаться в режим Realistic.






