Выбрать главу

Теперь мы можем видеть именно то, что мы привыкли видеть в современном кино, только в неестественной позе.

Текстура представляет собой просто картинку, части которой впоследствии будут «натягиваться» на персонажа. Для каждой вершины (угла полигона) на теле задаются текстурные координаты (обычно их называют UV). После чего цвет каждой точки полигона считается как цвет соответствующей ей точки на текстуре, если полигон «положить» на текстуру так, чтобы его углы попали в свои UV-координаты.

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

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

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

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

Теперь настал момент вдохнуть в персонажа «жизнь». Для начала нам нужен скелет. Скелет у CG-существ очень похож на наш с вами. Только в отличие от наших все кости в нем прямые, зато могут не только поворачиваться в суставах, но и изменять длину. Чтобы сделать что-то похожее на ребро, приходится строить цепочку из прямых костей. Компьютерные скелеты иногда включают несвойственные биоорганизмам части, для лучшего контакта с кожей. Теперь кожу и скелет необходимо связать вместе. Эта операция называется скинингом. Что такое вообще привязка кожи к скелету? Каждой вершине ставится в соответствие некоторое количество костей, за которыми она будет следовать, и весовой коэффициент для каждой из костей. Как нетрудно понять, эта операция крайне трудоемкая и муторная, к счастью есть автоматические системы скининга, которые хоть и обладают рядом недостатков и не всегда верно «скинят» объекты сложной формы, существенно облегчают жизнь создателям 3D-персонажей. Теперь мы можем пошевелить кости нашего существа, и его тело в точности повторит движения скелета. Уже можно худо-бедно управлять нашим зверем. Однако каждый раз задавать положение персонажа с помощью взаимного поворота костей не всегда удобно.

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