4. Делаем глаза и прочие части тела
Немного лирики
И так, после почти годового перерыва, я возвращаюсь к моему проекту. Где я пропадал так долго? Не поверишь, занят был :) и впереди предстоит еще Бог знает сколько дел, так что не удивляйся, если вновь исчезну. Что же до моего (или твоего) проекта, то их огромный плюс в том, что они не коммерческие, а стало быть способны выдержать любые перерывы в работе. Главное, чтобы ты сам за это время не сдулся и не потерял интерес, а файло полежит на диске столько, сколько надо. И так, поехали дальше.
Мультяшные глаза Желтого
Что же из себя представляют глаза Желтого M&Ms-а. При ближайшем рассмотрении можно заметить, что у него нет глазниц, вращающихся в них глазных яблок - это типичные плоские, налепленные на голову кукольные глаза-пуговки. Сложность заключатся в том, что эти глаза, в отличие от пуговок, функциональны, т. е. имеют подвижный зрачок, закрывающиеся и открывающиеся веки и т. д. Как же добиться такой функциональности от плоских пуговиц? Ты удивишься, насколько это просто.
Для начала сделаем обычный круглый глаз. Опять таки не важно, какой тип поверхности ты выберешь, бери тот, что тебе больше по душе. Я взял NURBS. Глазное яблоко - это обычная сфера. Давай сделаем веки. Возьми еще одну сферу, или продублируй глазное яблоко, и задай ей диаметр чуть больше первой. Разрежь сферу на две половинки, разверни, как показано на картинке, и вот он, прототип глаза:

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

Теперь нам нужно сделать более скругленным край века. Для этого достаточно соединить две поверхности - полусферу и крышку. Я сделал это с помощью Align Surfaces с установленным флажком Attach. Предварительно я отрезал заднюю половину крышки, которую все равно никогда не будет видно.

Вообще-то, если ты справился с моделированием рта, то эти действия должны казаться тебе элементарными, сам не знаю, зачем я их тут так подробно расписываю :)
И так, у нас есть одно веко, зеркалим его (делай дубликат и ставь по оси Y скейл -1, после чего Modify > Freeze Transformations > Scale). Возвращаем на сцену предварительно скрытое глазное яблоко и вот уже у нас нарисовалось что-то, весьма напоминающее глаз.

Обрати внимание вот на что: когда ты зеркалишь NURBS-ы указанным выше способом (а другой мне лично и не известен), в качестве побочного явления нормали отзеркаленной поверхности выворачиваются наизнанку. Это трудно заметить, так как по умолчанию нормали NURBS-ов не отображаются, и в сцене все выглядит как надо, но на рендере это может привести к искажениям, внешний вид которых варьируется (в зависимости от твоей видеокарты, драйверов и прочего) от сплошного черного пятна на месте поверхности с вывернутыми нормалями, до полного ее отсутствия. А может статься так, что на рендере все будет выглядеть как надо, но даже в этом случае не поленись проследить, чтобы нормали всех поверхностей были обращены наружу.
Выдели оба века и включи отображение нормалей (Display > NURBS > Normals (Shaded Mode)). Shaded Mode означает, что нормали ты увидишь только в режиме затенения, нажми 5, чтобы включить этот режим. Теперь стало хорошо видно, что нормали верхнего века торчат наружу, в то время, как нормали нижнего века торчат внуть. Выдели нижнее веко и сделай Edit NURBS > Reverse Surface Direction > Swap. Теперь нормали нижнего века смотрят наружу, как положено.
Не забывай удалять историю с завершенных фрагментов - Edit > Delete by Type > History, это существенно облегчит твою модель.
Ну вот, глазик в первом приближении готов. Давай разместим его по месту и сделаем наконец из него пуговичку. В виде спереди передвинь и масштабируй глаз так, чтобы он стал по месту.

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

Глазик-пуговичка готов! Теперь запомни: ни в коем случае не удаляй историю у частей глаза. Почему - сейчас помогу разобраться. Выдели верхнее веко и поверни его по оси X. Глаз закроется, при этом не переставая быть пуговичкой, веко скользит по глазному яблоку - замечательно, как раз то, что нам нужно, можно моргать, просто поворачивая его. Теперь попробуй удалить историю и снова повернуть веко - ужас, теперь это плоская фиговина которая ведет себя совсем не так, как нужно. Фокус в том, что пока существует история, глаз остается сферическим, заплющенным решеткой, но как только история удалена, глаз становится просто набором поверхностей, как если бы ты отмоделил их вот такой вот плоской формы вручную.
Так с помощью решетки мы получили вполне функциональный мультяшный глаз-пуговичку, который может моргать, щуриться и изображать разные эмоции.
Скорее всего, повернув веко, ты столкнешься с такой проблемой: часть века останется заплющенной, а часть как бы вырвется наружу. Чтобы бороться с этим явлением, нужно понимать принципы работы сеток. На самом деле сетка состоит из двух сеток - видимой и опорной, невидимой. Деформация предмета расчитывается на основании разницы между этими двумя сетками, соответственно, деформируемая поверхность должна полностью покрываться опорной сеткой, и вначале так оно и есть, но при повороте века, какие-то его части оказываются за пределами невидимой опорной сетки и соответственно больше не подлежат деформации, они возвращаются на свои исходные позиции, а мы видим это на экране в виде вырывающихся из глаза шипов. Решение простое: нужно увеличить размеры опорной сетки, чтобы даже повернутое веко вписывалось в ее пределы. Увидеть невидимую сетку можно в Outliner-е:

Видишь, у каждой сетки есть спутник с постфиксом Base, это и есть невидимая опорная сетка, выдели ее прямо в Outliner-е и сделай скейл. Увидишь, как артефакты пропадут. Вместе с этим уменьшится в размерах глаз-пуговичка, что логично, ведь деформация расчитывается из разности между сетками, если мы увеличиваем опорную сетку, то деформирующая относительно нее уменьшается. Выдели деформирующую сетку и масштабируй, пока глаз не достигнет нужного размера. Еще раз покрути оба века, проверь, чтобы артефактов больше не появлялось, если появляются - знаешь, что делать :)
Глаза зеркалятся по тому же принципу, что и раньше, предварительно все фрагметы глаза следует сгруппировать. После дублирования желательно разгруппировать - лишние узлы трансформации в модели нам ни к чему. Не забывай про нормали.
Прочие части тела
У нашей сверхпростой модели это ручки и ножки. Ну еще бровки, которые даже упоминать смысла нет. Я решил сделать конечности Желтого комбинированными - ноги и руки NURBS-ами, а ступни и кисти рук - полигонами. Полигональное моделирование выполнялось без каких-либо хитростей, так что описывать здесь этот процесс я не считаю нужным: во-первых, Инет без этого кишит уроками по полигональному моделированию; во-вторых, скорее всего, это первое, что ты освоил в Maya, прежде чем задумался о создании своего фильма. Вобщем, так или иначе, а рассказывать в деталях, как я делал Желтому ручки и ножки я не буду. К стати, вот они:

Обрати внимание на стильненькую клетчатую раскраску. Нет, я знаю, что у M&Ms-ов белые перчатки и ботинки, эта клетка говорит лишь о том, что я не поленился сделать UVMapping, что и тебе советую. Если ты до сих пор не знаешь, что это за зверь такой UVMapping, советую прерваться и изучить этот вопрос, иначе рискуешь спохватиться на этапе финального рендеринга и вдруг обнаружить, что модели выглядят чертекак и ты не знаешь, что с этим делать. Тема эта слишком емкая, чтобы можно было изложить вкратце, или даже в рамках целого выпуска, изучи документацию, поищи уроки в Инете. Здесь я лишь в двух словах скажу, что UVMapping - это процесс натягивания двумерной текстуры на трехмерную модель. Две главные проблемы такого натягивания - это швы и растяжки. В одном из следующих выпусков я расскажу пару приемов по борьбе со швами, а вот с растяжками помогает справиться такая клетчатая текстура, которая есть в Hypershade-е и так и называется Checker (проверялка), на ней сразу видно, где допущена растяжка, или наоборот зажим текстуры, хорошо замапленная модель должна по всей поверхности быть покрыта равномерной шахматкой.
Вообще UVMapping - занятие кропотливое и малоприятное, но я категорически не советую тебе откладывать его на потом, равно как и правильное расположение нормалей поверхностей, можешь мне поверить, потом это будет сделать в разы сложнее (если вообще возможно).
Кстати, NURBS-ы мапить не надо, UVMap им дан от рождения и модификации не подлежит.
Ну а дальше, после того, как сделана ручка и ножка, зеркалим их и получаем почти готового Желтого M&Ms-а. Вот как он выглядит с примененной к нему Checker-текстурой:

Я подумываю еще добавить ему челюсти. Правда у настоящих M&Ms-ов челюстей и зубов нет, но мой-то не настоящий :) К тому же зубы позволяют более ярко передавать эмоции и мимику, вспомните хотя бы мультяшных персонажей - Дисней вставил зубы даже тем из них, кому зубов не дала Природа. Вобщем, над этим я еще подумаю, а на сегодня пожалуй хватит.
P.S.
Все же я сделал ему зубы, так веселее будет :)

|