Журнал «Компьютерра» №1-2 за 2006 год
Дальше в дело вступают художники, их главная задача – создать визуальный образ персонажа. Они прорабатывают образ в общих чертах, создают именно те детали персонажа, которые зритель запомнит, которые сделают этого персонажа уникальным. И опять все эти действия в точности повторяют и современные разработчики CG-персонажа[CG (computer graphics) – компьютерная графика], и творцы прошлого, создавая своего монстра, с той лишь разницей, что они чуть больше ограничены в фантазии, ведь далеко не все, что можно нарисовать, можно изготовить из пластика и металла. Еще больше ограничена фантазия тех, кто выбирает актера на определенную роль, ведь они выбирают из конкретного числа людей, и могут лишь незначительно «подправить» материал с помощью грима.
Далее определяется то, что нашему новому персонажу придется делать перед камерами. Должен ли он бегать и прыгать или ему достаточно только неторопливо ходить, будут ли крупные планы с его участием или его место в массовке на краю карты? Все это определяет как степень достоверности, так и технические возможности модели существа. Эта стадия уже сильнее привязана к технологии, но все равно пока еще различия в работе над двумя типами персонажей не принципиальны. Да и к «живым» актерам зачастую предъявляются специальные требования, например возможность выполнения некоторых трюков, но этих требований существенно меньше, так как все люди в известной степени похожи между собой.
И вот эскизы и техническое описание готовы. Теперь в дело вступают кукольники, или моделлеры. Перед воплощением механического актера «в железе» проводится большая конструкторская работа. Основой практически любой куклы является скелет – это может быть и простой проволочный каркас, и стальная конструкция с множеством рычагов и шарниров. Потом на скелет навешивается «мясо» – сделанные из специальных пластичных материалов мышцы, которые впоследствии будут покрываться «кожей». Результат должен как можно лучше передавать движения существа: например, при сгибе локтевого сустава (если таковой, конечно, имеется) бицепс должен увеличиться в объеме, если же планируются крупные планы, то не обойтись без мимики. Иногда даже делают несколько экземпляров кукол в разных масштабах. Одни маленькие, с низкой детализацией, но простые в управлении, другие более крупные и функционально оснащенные, и, наконец, может быть создана отдельно голова и шея, с максимальной деталировкой и функциональностью для самых крупных планов.
Создание же CG-персонажа обычно начинают не со скелета, а, наоборот, с тела. Сначала, в 3D-редакторе строится модель в так называемой позе одевания[Поза, в которой разные части тела максимально отстоят друг от друга. Для человекообразных существ это прямые руки в стороны, пальцы растопырены, ноги вниз]. Обычно это замкнутая поверхность, состоящая из элементарных плоских фигур (треугольников или четырехугольников) – полигонов. Эта модель еще одноцветная, практически лишена деталей – тут нет ни ресниц, ни волос, ни морщин – форма и только форма. Все эти «недостатки» устраняются на следующем этапе разработки персонажа. Для него создается текстура, карта неровностей, добавляется множество деталей – зачастую даже волоски на коже героя требуют внимания разработчиков, в случае же с Кинг-Конгом волосяной покров составляет чуть ли не основу персонажа.
Теперь мы можем видеть именно то, что мы привыкли видеть в современном кино, только в неестественной позе.
Текстура представляет собой просто картинку, части которой впоследствии будут «натягиваться» на персонажа. Для каждой вершины (угла полигона) на теле задаются текстурные координаты (обычно их называют UV). После чего цвет каждой точки полигона считается как цвет соответствующей ей точки на текстуре, если полигон «положить» на текстуру так, чтобы его углы попали в свои UV-координаты.
Рисование текстур и привязывание их к модели – это целое искусство. Текстурщик должен совмещать в себе талант художника и скульптора. Это на плоскость текстуру наложить просто, как на стену наклеить обои, а на сложную поверхность существа сделать это не так уж просто. Представьте, что вам надо обклеить обойной бумагой скульптуру человека, да так, чтобы еще и рисунок совпадал, и не было никаких перехлестов.
Но кожа практически всех существ не гладкая, а имеет какую-то фактуру. Для имитации этих пупырышков и трещинок обычно используют карты неровностей. Карта неровностей – это та же текстура, только она задает не цвет, а направление нормали. И при освещении плоская поверхность начинает выглядеть рельефно. Большинство программ 3D-моделирования позволяют использовать в качестве карты неровностей саму текстуру, после чего объект выглядит куда живее.
Поподробнее хотелось бы остановиться на волосах. До недавнего времени прически большинства персонажей были примитивны. Они моделировались на этапе создания формы персонажа и были статической конструкцией на голове у героя. Сейчас же волосы компьютерных актеров очень похожи на настоящие, Они моделируются или по отдельным волоскам, или как набор прядей. Каждая прядь представляет собой «пластичную» полоску. Такие волосы могут развеваться на ветру, колыхаться при резком движении головы.
Подобным образом моделируется и мех животных. По всей поверхности тела «выращивается» множество волосков, причем автоматически, от моделлера требуется лишь указать набор свойств: цвет и густоту покрова, среднюю длину шерстинок, степень их «кудрявости», способность сбиваться в пучки и пр.
Теперь настал момент вдохнуть в персонажа «жизнь». Для начала нам нужен скелет. Скелет у CG-существ очень похож на наш с вами. Только в отличие от наших все кости в нем прямые, зато могут не только поворачиваться в суставах, но и изменять длину. Чтобы сделать что-то похожее на ребро, приходится строить цепочку из прямых костей. Компьютерные скелеты иногда включают несвойственные биоорганизмам части, для лучшего контакта с кожей. Теперь кожу и скелет необходимо связать вместе. Эта операция называется скинингом. Что такое вообще привязка кожи к скелету? Каждой вершине ставится в соответствие некоторое количество костей, за которыми она будет следовать, и весовой коэффициент для каждой из костей. Как нетрудно понять, эта операция крайне трудоемкая и муторная, к счастью есть автоматические системы скининга, которые хоть и обладают рядом недостатков и не всегда верно «скинят» объекты сложной формы, существенно облегчают жизнь создателям 3D-персонажей. Теперь мы можем пошевелить кости нашего существа, и его тело в точности повторит движения скелета. Уже можно худо-бедно управлять нашим зверем. Однако каждый раз задавать положение персонажа с помощью взаимного поворота костей не всегда удобно.
Для более рационального манипулирования персонажем существует специальный инструментарий. Прежде всего нужно ограничить неестественные степени свободы суставов и выбрать пределы изменения углов между костями, теперь уже нашего героя будет не так просто поставить в неестественную позу, а количество параметров для управления заметно сократилось. Но управление все равно не оптимально. В большинстве пакетов трехмерной графики для управления персонажами предусмотрена как прямая кинематика (управление путем изменения взаимного расположения костей), так и инверсная (ИК). При использовании ИК для управления рукой можно перемещать кисть в пространстве, а локоть сам займет наиболее естественное положение. Такой способ зачастую бывает намного удобнее предыдущего, но не всегда. Например, для анимации расслабленной походки, когда рука просто качается, лучше подходит первый способ, ведь это всего лишь циклическое изменение одного параметра (угла поворота руки относительно плеча), а в случае ИК – это движение кисти по нелинейной траектории.
И для имитации работы мышц существует насколько способов. В скелет могут быть добавлены особые кости, которые, поворачиваясь и изменяя длину, имитируют увеличения объема и «перетекание» кожи по суставам. А можно под кожей разместить специальное тело, обычно это эллипсоид, который подобно костям будет деформировать кожу. И когда надо, менять размер этого тела. Этот способ позволяет более тонко передать работу мышцы, но более требователен к ресурсам машины, так как, по существу, каждая вершина деформирующего тела – это отдельная кость.