InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

3D-живность

Максим Зиннатов

3ds MAX имеет огромное количество встроенных возможностей, открывая тем самым огромные просторы для аниматора. Эти просторы еще более расширяются при использовании внешних модулей. С одним из них - Character Studio - я и собираюсь познакомить читателя

Вообще-то MAX предоставляет возможность использовать для анимации живых персонажей "bones", но, на мой взгляд, возиться с расстановкой "костей" и IK-solver'ов слишком утомительно. В Character Studio готовый "скелет" с заданным числом пальцев на руках и ногах, фаланг этих самых пальцев, хвостов и косичек появится в два щелчка мыши. Остается лишь подогнать его размеры под персонажа.
Однако я увлекся. Чтобы проанимировать персонажа, его сначала нужно создать. Этим и займемся. Создадим небольшого человека, а затем - короткую анимацию с ним в главной роли.
Поскольку создание персонажа не является основной темой статьи, я не стану долго на этом задерживаться. Опишу лишь вкратце два основных метода создания персонажей.
Первый метод: создать box с достаточным количеством height, width и length segments, затем преобразовать его в редактируемый mesh (щелчок правой кнопкой по объекту, Convert to - Convert to Editable Mesh). Далее параллелепипед редактируется на уровне подобъектов (vertex, edge, face, polygon). Этот метод достаточно подробно описан в Tutorial к 3ds MAX 4. (IMHO, он больше подходит для создания "неживых" объектов.)
Второй метод - создание персонажа при помощи модификатора Surface. Я опишу этот процесс пошагово, на примере моделирования ноги. Для начала начертите при помощи объекта Line контур ноги в боковой проекции или, если у вас есть этот контур в графическом файле, задайте Viewport background. Сравните свой результат с рис. 1а.
Что значит "некрасиво"? Я почти художник, я так вижу! Этот контур будет для нас подсказкой при рисовании ноги. Теперь в проекции Top чертим круг (Create - Shapes - Circle) и при помощи Uniform scale подгоняем его диаметр под диаметр "ноги" в самой верхней точке. Нам нужно отсечь половину круга. Для этого конвертируем его в Editable Spline, на уровне подобъекта Segment выделяем половину круга и нажимаем магическую клавишу "Del". При нажатой клавише "Shift" сдвигаем полученный полукруг вниз и в поле Number of copies вводим "14". Можно больше, можно меньше. Скорее всего, по ходу работы мы сделаем еще несколько копий.

У вас должно получится нечто, похожее на рис. 1б. Теперь при помощи Move, Rotate и Uniform scale размещаем полукруги по всей длине ноги (рис. 1в). Если полукругов не хватает, создаем копии.
Последний полукруг, находящийся на самом конце ступни, уменьшите до каких-нибудь ничтожных размеров - так, чтобы его даже не было видно, иначе нога превратится в трубу. Большая часть работы сделана. Удалим контур (если он сделан из Line) - он нам больше не понадобится. Выделяем первый полукруг и на панели Modify ищем кнопочку Attach. Нашли? Кликаем сначала на ней, затем последовательно на всех элементах нашего каркаса. Не забудьте и о практически невидимом последнем полукруге!
Дальше все просто. К полученному большому сплайну применяем модификатор CrossSection, в параметрах которого устанавливаем Smooth вместо Linear. Оркестр, барабанную дробь! Применяем модификатор Surface и получаем "обтянутый" каркас (рис. 1г).
Если поверхность "вывернута наизнанку" - отмечаем галочкой flip normals. Параметр Patch Steps настройте по своему усмотрению. Теперь полученную поверхность конвертируем в Editable Mesh. Почему не Patch? Если бы у меня был Pentium 4 на два гигагерца и 512 Мб памяти, я бы использовал patch. На моем же скромном Duron 900 двухминутный ролик с таким персонажем будет рендериться, как минимум, сутки.
Но я опять отвлекся. Кликнув на кнопку Mirror selected objects на главной панели, выбираем соответствующую ось, в Clone Selection - copy. Получаем отличную зеркальную копию нашей половинчатой ноги. Прикрепить ее ко второй половине можно с помощью кнопки Attach (кстати, таким же способом эту ногу можно прикрепить и к туловищу).
Далее переходим к подобъектам vertex и в проекции Front, выделяем все vertex'ы, расположенные вертикально по середине ноги. Кликом по кнопке Weld Selected добиваемся полного слияния половинок ноги (значение счетчика после кнопки Selected, скорее всего, придется увеличить). К готовой ноге примените модификатор Optimize или MultiRes - всегда нужно стараться сократить количество полигонов в сцене.
Таким же образом создаются туловище, руки и голова. Но перейдем к анимации. Допустим, у нас есть вот такой персонаж (рис. 2).

Создадим для него скелет. На панели Create нажимаем клавишу Systems, далее кликаем на Biped и растягиваем прямоугольник так, чтобы его высота соответствовала росту нашего персонажа. Во вкладке Create задаем необходимое количество пальцев, хвостов и так далее. Чтобы вышеупомянутый персонаж не мешался, выделяем его и во вкладке Display щелкаем Freeze Selected. Выделяем какую-либо часть скелета и переходим во вкладку Motion. Кликом по кнопке с человечком переходим в режим Figure mode. В этом режиме мы "подгоняем" скелет под размеры персонажа. Выделите центр тяжести (такой ромб внутри таза скелета), переместите его туда, где, собственно, у вашего персонажа таз. Кстати, этот самый центр тяжести удобно будет "забить" в Named Selections. Мы будем довольно часто к нему обращаться.
Еще один нюанс при подгонке таких частей тела, как пальцы и хвосты: будет лучше, если их размеры будут превышать размеры пальцев персонажа, то есть слегка "выпирать". Посмотрите, что у меня получилось (рис. 3).

На этой иллюстрации я сделал персонажа полупрозрачным, чтобы скелет был хорошо виден. Можно выйти из Figure mode.
Приступаем к самой ответственной части работы. Выделяем нашего персонажа и применяем к нему модификатор Physique. Кликнув по кнопке Attach to Node, а затем по нашему центру тяжести (иногда это легче бывает сделать через Select by Name), "надеваем" персонажа на скелет. Здесь лучше сохранить свою работу. Делаем небольшую проверку: кликаем по кнопке с изображенными на ней ступнями (Footstep mode), а затем - Create Multiple Footsteps - Ok. Последний штрих - Create keys for inactive footsteps. Кстати, чтобы спрятать скелет от посторонних глаз, выделяем тело персонажа и в параметрах модификатора Physique
отмечаем галочкой Hide attached Nodes. Опять сравниваем результат с рис. 4.

Подсказка: если персонаж толстоват, а его руки при ходьбе задевают туловище - вернитесь в Figure mode и расширьте плечи персонажа. Если вы разместили "кости" правильно, то всяческих "отстающих" от тела точек быть не должно. Если же таковые появились (особенно часто подобное случается в районе пальцев), существует два пути для исправления этого безобразия. Первый - самый простой, но не всегда эффективный - вернуться в Figure mode и "вправить" все неправильно размещенные "кости". Второй путь - выделить тело персонажа и перейти к модификатору Physique на уровне подобъекта Envelopes. Далее необходимо кликнуть на "проблемной" Envelope и в параметрах (во вкладке Modify) увеличить параметры Radial scale, parent и child overlap. Можно рендерить все в AVI'шку.
Подведем итоги. Мы создали простую анимацию, базирующуюся на шагах (иначе перевести Footstep-driven animation я просто не могу). Теперь давайте ее слегка усложним. Для начала перейдем в Footstep mode и, предварительно выделив все шаги, удалим их одним кликом по кнопке Delete footsteps. Не плачьте, мы новые создадим! Кликаем Create multiple footsteps и в поле Number of footsteps вводим какое-нибудь крупное число, например "15". Дальше, как обычно: create keys for inactive footsteps. Теперь наш персонаж проходит в несколько раз большее расстояние! Но это не главное. При создании чуть более сложных движений, чем ходьба, Mesh персонажа будет нам Mesh'ать :). Чтобы избежать этого, выделите его и во вкладке Display кликните Hide selected. Воспроизведите анимацию. Ходьба есть, а что дальше? Допустим, пусть на определенном этапе ходьбы он повернет голову налево и отсалютует. Пацифисты могут заставить персонажа просто почесать голову.
Приступим к анимации. Прокрутите Time slider примерно до того момента, когда скелет (вы же спрятали Mesh, не так ли?) будет в районе пятого footstep'а - допустим, кадр 84. Выделите голову скелета (как-то не хочется называть это черепом). По временной шкале видим, что keyframe'ы у головы присутствуют в момент каждого шага. Давайте при помощи того же Time slider'а посмотрим, где бы нам желательно закончить поворот головы, то есть повернуть ее назад. Кадр 174, записали? Выделяем и удаляем все keyframe'ы головы между этими кадрами. Теперь нажмем кнопку Animate и, отсчитав примерно полсекунды от начала поворота (пусть будет кадр 100), поворачиваем голову примерно на 50° влево. При помощи клавиши "Shift" копируем этот ключевой кадр в кадр 160. Воспроизводим анимацию. Теперь делаем нечто подобное с правой рукой, но, кроме поворота, придется воспользоваться перемещением. Посмотрите на скомпонованный мною рис. 5.

Между прочим, к пустой голове (я имею в виду голову, не покрытую головным убором) руку не прикладывают. Чтобы сделать человечку кепку/фуражку/колпак, создайте этот объект и просто "прилинкуйте" (select and link) его к голове (к Mesh'у линковать бесполезно). А дальше все просто - Display - Unhide All; Modify - Physique - Hide attached nodes; Rendering - Render. Кстати, добавив какой-нибудь фон, поставив в направлении поворота головы персонажа фотографию любимого прапорщика и добавив музыку из "Army Men", можно сделать интересный клип.


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua