Кто не хочет читать ONLINE, можете скачать доступные части книги:

Скачать часть1 (1.1 Мб) - Ознакомление с программой 3ds MAX

Скачать часть2 (1.4 Мб) - Объекты произвольной формы

Скачать часть3 (2.2 Мб) (не завершена) - Текстурирование

Глава 19. Рекомендации по моделированию

Вот мы и познакомились с методами моделирования. Самое главное теперь - понять, в какой ситуации каким методом следует пользоваться. А понять это довольно-таки не просто. Но определённо можно сказать одно: в подавляющем большинстве ситуаций наиболее удобным и хорошим по всем показателям является метод Editable Poly, или, когда Editable Poly не подходит, то Editable Mesh. Эти два метода очень похожи друг на друга, имеют лишь незначительные различия, о которых уже говорилось. Для моделирования технических средств при наличии соответствующих навыков, можно использовать NURBS.

Как не надо делать

Любая сложная задача имеет много
простых неправильных решений.
Закон Мерфи

Чего уж говорить, что помимо простых неправильных решений есть ещё и сложные неправильные решения, и их тоже много!

Приходится писать этот параграф именно птому, что вы можете найти много уроков, которые учат как раз тому, КАК НЕ НАДО ДЕЛАТЬ. Странное дело, вроде в программе есть все средства для того, чтобы сделать так, как надо, но ведь некоторые люди находят способы, чтобы усложнить себе жизнь, и ещё учат этому других! Может быть, конечно, они ищут способ усложнить жизнь другим... Но наша задача - не поддаться их влиянию.

В трёхмерной графике появился такой термин, как "органическое моделирование". С точки зрения русского языка - это нечто совершенно несусветное. Вы можете себе представить, как моделирование может быть органическим? Может быть, оно бывает и минеральным, и металлическим и ещё невесть каким? Моделирование - это процесс, может ли процесс состоять из вещества?

На самом деле следует говорить: моделирование органических форм жизни. Или, органических персонажей, в крайнем случае. Итак, у нас могут быть органические персонажи: люди, животные, гуманоиды, органические формы жизни: органические персонажи + растения, и техника и технические персонажи (роботы).

NURBS

Можно найти много уроков в которых предлагается моделировать органические формы жизни при помощи NURBS. Особенно это опасно для новичков, поскольку новички по причине неопытности не могут сами оценить, на что способен метод NURBS или сплайновый метод. А на первый взгляд сплайновый метод может показаться очень заманчивым. Ведь что можно видеть на первый взгляд? Достаточно небольшое число плавных линий, на которые натягиваются гладкие поверхности. Вот это небольшое число и прельщает в первую очередь. Но действительно ли этим небольшим числом можно обойтись?

Но то, что можно найти сейчас в Интернете, да, думаю, и во всех остальных местах - это полное безобразие. Сколько мне попадалось уроков, как для 3ds MAX, так и для Maya, где предлагалось смоделировать человеческую голову при помощи метода NURBS. Во-первых, чтобы смоделировать что-то дельное, всегда предлагается нарисовать много линий. На всех этих линиях много точек. У многих получается всё криво. В общем, NURBS не лучшее средство для моделирования органических форм жизни. Ещё и по той причине, что вырезать в них дырки, в котороые можно вшить новые элементы, а так же что-либо пристыковывать - целая проблема.

Сплайновое моделирование + модификатор Surface, Editable Patch

Так же весьме проблематично моделировать при помощи сплайнов с последующим применением модификатора Surface. Чтобы получить достаточно хорошую модель, сплайнов надо много. А управляться с ними трудно, к тому же надо всё время следить, чтобы пересекающиеся линии не расползались и не превращались в скрещивающиеся линии. В отличии от NURBS тут линии вообще нельзя слепить в точках соприкосновения. И опять же, надо помнить, что сетка сплайнов должна содержать только треугольники и четырёхугольники, надо постоянно воевать с кривизной, которая у каждой линии своя. Если в точках соприкосновения линии сходятся под негладким углом, либо сходится более четырёх линий, начинают появляться всякие нежелательные складки. Избавиться от складок можно либо поставив меньшее число шагов интерполяции, либо применяя к нашей модели пост-обработку в виде модификатора Relax, который разглаживает складки, но так же может разгладить и то, что разглаживать не надо. При том этот Relax нельзя схлопнуть, а то наш объект превратися в Editable Mesh или Editable Poly.

Обведение фотографий и собственных набросков

Ещё часто попадаются такие уроки по моделированию персонажей, где предлагается на плоскости в программах 3d моделирования помещать фотографии людей или сделанные вручную рисунки персонажей. Рисунки или фотографии анфас и в профиль, а иногда и вид сверху, размещали на взаимноперпендикулярных плоскостях, чтобы рисунки соответствовали проекциям.

А потом модель создавать так, чтобы она вписывалась в линии на этих рисунках. Там, где дело касалось фотографий людей, которые таким образом пытались "обводить", нигде красивой модели мне видеть не доводилось. И не странно. Фотографии и эскизы - это не чертежи.

По фотографиям особое замечение: чтобы их можно было вот так вот обводить, сделать их надо именно во взаимноперпендикулярных направлениях, а можно ли это сделать? Разве что если иметь специально настроенные при помощи точных методик фотокамеры. У нас самих их нет, кто-либо для нас таких снимков не сделает. Сами мы тоже не сделаем. А если фотографии не будут отображать строго взаимноперпендикулярные виды, то никакого соответствия между этими видами мы не получим.

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

Что касается наброска, то рисуем мы так, как видим. А видим мы как раз в перспективе.

Если мы хотим обводить, нам нужны не наброски, не фотографии, а чертёж, где будет строгое соответствие между видами. Если вы можете сделать фотографии строго взаимноперпендикулярно расположенными телескопическими фотокамерами или нарисовать не набросок, а чертёж персонажа, можете помещать эти картинки на плоскости и потом обводить.

Но мне кажется, что если уж говорить о чертеже, проще нарисовать сразу в 3d, чем сначала вычерчивать на бумаге. А вообще, набросок или фотография могут быть использованы на начальных стадиях работы, но на стадии проработки мелких деталей вам придётся положиться на ваше художественное чутьё.

Сравнение редактируемых объектов разных типов

Почему-то некоторые люди очень любят методы NURBS и Editable Patch, вернее, моделирование при помощи сплайновых форм с последующим применением к нему модификатора Surface. Хотя, на мой взгляд, у Editable Mesh и Editable Poly несравнимо больше преимуществ перед объектами этих типов.

Здесь надо сразу сказать, что Editable Mesh и Editable Poly самые лучшие средства для создания геометрических моделей для визуализации. Но Editable Patch могут служить как вспомогательные объекты, деформирующие другие объекты (есть такие модификаторы - Patch Deform).

Сейчас мы будем проводить сравнение объектов разных типов с точки зрения моделирования поверхностей для визуализации.

Editable Mesh и Editable Poly

Editable Mesh - cамый базовый из всех редактируемых объектов. Редактируемые объекты как правило дают нам возможность управлять вершинами и гранями при помощи всяких инструментов и вспомогательных подобъектов. У Editable Mesh мы управляем непосредственно вершинами и гранями - то есть базовыми элементами трёхмерного объекта и это нам даёт возможность наиболее чётко контролировать форму объекта.

Рёбра - в Editable Mesh- некий вспомогательный подобъект, правда если для материала включить флажок Wire (проволока), то объект будет визуализироваться в виде проволочной сетки, при том визуализироваться будут только видимые рёбра. Во всех остальных случаях видимость рёбер не влияет на визуализацию никак, но имеет значение для применения модификаторов, таких как MeshSmooth, TurboSmooth, Lattice.

В Editable Mesh допускаются практически любые веольности в построении модели - можно натягивать несколько граней на одни и те же вершины, можно, чтобы на одно и то же ребро опирались сразу несколько граней, и прочие вещи. Правда, в таких случаях после применения модификаторов MeshSmooth или TurboSmooth в таких местах будут разного рода дырки с отдельными, висящими в воздухе треугольниками, что ухудшит качество нашей модели.

Editable Poly - можно считать, усовершенствованная версия Editable Mesh. Здесь указанных выше атрефактов просто невозможно создать, потому что сам инструментарий устроен так, что он этого не позволяет. Если к одному ребру уже прилегают две грани или два многоугольника, то третий многоугольник на это ребро уже никак не натянется. Вы просто не сможете этого сделать. Так же нельзя натянуть многоугольник на вершины, лежащие внутри поверхности. То есть, если вершина лежит на границе поверхности, на неё ещё можно что-нибудь нацепить, но если со всех сторон вершина окружена поверхностью, то к ней уже ничего приделать нельзя.

У объектов Editable Mesh и Editable Poly есть много полезных возможностей и опций:

Все эти опции делают объекты Editable Mesh и Editable Poly хорошей основой для того, чтобы использовать их в сочетании с модификаторами MeshSmooth и TurboSmooth и получать при этом гладкие поверхности. Эти модификаторы так же сохраняют данные о текстурах и Vertex Color, поэтому специальные текстурные модификаторы можно схлопывать в исходный объект и не хранить в стеке.

Surface на основе сплайновых форм и Editable Patch

Это модель, полученная из сетки сплайновых форм, к которой применён модификатор Surface. Если модификатор схлопнуть, мы получим объект Editable Patch, но часто удобно управлять формой именно при помощи отдельных линий, а не лоскутков.

На базовом уровне объекта Editable Spline (или Line) мы не можем контролировать ни свойства поверхности (ID и SG), ни координаты наложения текстур. Всё это можно осуществлять только с помощью модификаторов Patch Select, Edit Patch и специальных модификторов по раскраске вершин и наложению текстур. И если мы не хотим потерять базовые свойства объекта Editable Spline (или Line), то нам всё это придётся хранить в стеке, схлопывать будет нельзя.

Есть ещё у Surface глюки:

1) Не всегда удаётся удалить поверхности, лежащие внутри требуемой поверхности.

2) Иногда куски нашей поверхности самопроизвольно выворачиваются наизнанку. Этот эффект часто исчезает при рендеринге, но делает процесс работы в окнах проекций неудобным. К тому же, в таких случаях часто возникают проблемы у тех, кто использует подключаемые модули для моделирования волос - над самой поверхностью волосы не прорисовываются, рисуются только те части, которые не закрывают собой поверхность.

С Editable Patch, который можно получить если схлопнуть модификатор Surface, таких проблем вроде не бывает. Но сами инструмнты работы c Editable Patch не дают нам возможностей легко добавлять и убирать подобъекты и вообще легко их редактировать.

Если в Editable Mesh и Editable Poly кривизну поверхности можно придать только создав дополнительные вершины, то в Editable Patch и Surface на основе сплайновых приходится использовать как этот метод, так и помнить про касательные. Касательные необходимо настраивать очень точно, иначе в местах вершин всегда будут нежелательные складки. В Editable Mesh и Editable Poly достаточно просто подвигать вершины, чтобы сменить форму, в Editable Patch и Surface быстро и красиво всё не получится, надо ещё помнить и про касательные, а в случае Surface - ещё и про то, что точки на линиях в некоторых местах должны соприкасаться и двигая их, надо следить чтобы они двигались все вместе.

У объекта Editable Patch есть поддержка координат наложения текстур и можно схлопывать модификаторы, накладывающие текстуру.

NURBS

Вообще, можно найти разные сообщения на тему того, что 3ds MAX плохо работает с NURBS, и вообще для этих целей лучше использовать программу Rhinoceros (Носорог). Я не знаю, насколько лучше работает Rhinoceros, но могут указать ряд существенных недостатков NURBS в 3ds MAX.

Например, поверхности NURBS как правило имеют швы. То есть, NURBS состоит из плотно прилегающих друг к дружке раздельных кусков поверхностей. Это может быть не видно, но если применить к Nurbs определённый модификатор, швы тут же вылезут. Например, они пролезают при применении модификатора Shell, который появился в 3ds MAX 6. Другой случай, когда швы начинают нам докучать - это если требуется создать низкополигональную модель. Когда мы скручиваем число шагов аппроксимации, на поверхности могут пропадать нужные дырки, зато появляются ненужные дырки между швами, модель быстро принимает безобразный вид. В то время, как в объектах Editable Mesh и Editable Poly безобразнее нашей базовой поверхности модель быть просто не может. И редактируя объект на базовом уровне мы вручную управляем степенью его "безобразности", сами решаем, какие дырки зарастить, а какие оставить.

Другой неприятный момент - это кривые, создаваемые на поверхности. Можно создавать на поверхности замкнутые контуры, по которым выгрызаются дырки. Так вот, к примеру круг на сложной поверхности создать сложно. Здесь уже работает хитрая геометрия типа Лобачевского. Через наши управляющие точки или вершины (CV) уже проходит совсем не та кливая, которая проходила бы через них, лежи они в одной плоскости. Например, если расположить четыре точки по углам квадрата, на плоскости через них пройдёт круг. А на неровной поверхности - чёрти что. Чтобы приблизить наш контур к форме круга, надо очень точно наставить очень много точек, которые чётко бы и строго следили за формой нашей кривой, и то абсолютной гладкости добиться не удастся, в местах, где поставлено много точек, линия будет как-бы змеиться между ними. Пусть змеистость будет и небольшой, но она так или иначе будет.

При создании CV-кривых на неровной поверхности иногда надо оттягивать контольную вершину CV далеко. За поверхность её вытащить нельзя, следовательно, мы ограничены в возможностях.

Другой способ создания кривых на поверхности - создать кривую независимо и спроецировать методом Vector Projection Curve или Normal Projection Curve. Но и эти методы дают какие-то дико-безобразные проекции. Если мы прецируем на поверхность ровный гладкий круг, то в итоге можем получить контур в виде бобового зёрнышка или что-либо ещё хуже. Здесь проецирование работает не так, как в составном объекте Shape Merge, а по каким-то необъяснимым с точки зрения конструкторской логики законам. Здесь уже работает какая-то крутая, оторванная от реальной жизни математика.

К тому же метод Vector Projection Curve вообще трудно настроить так, чтобы он работал.

Для вырезания дырок внутри отдельной поверхности NURBS есть средства, а вот чтобы разрезать поверхность на две части - таких средств нет, и часто это бывает очень неудобно.

Если бы не указанные недостатки (швы и плохая управляемость формой кривых на поверхности), метод NURBS был бы неплох для моделирования техники. В общем, если надо создать глянцевую красивую машину для рекламы - он и не плох (если удастся справится с проблемой формы кривых на поверхности).

Но трудности возникают, если эту машину потом надо будет помять или продырявить или прочим образом деформировать.

Подключаемые модули

Можно так же найти средства моделирования, которые приобретаются и устанавливаются отдельно, подключаются к программе 3ds MAX и ими тоже можно пользоваться. Но они, как правило, тоже имеют ряд всяких недостатков.

Clay Studio от фирмы Digimation - позволяет лепить объекты из шариков и всяких колбас. Когда эти самые элементы сближаются на определённое расстояние, они начинают перетекать друг в друга. Примитивы Clay Studio можно анимировать и достигать различных интересных эффектов, но для моделирования сложных геометрических поверхностей этот метод плох. Во-первых, он создаёт модели со сложной равномерной сеткой. На гладких участках, где можно ставить мало больших многоугольников, у нас всё равно будет много маленьких. Кроме того, когда мы наставили много примитивов Clay Studio, компьютер начнёт тормозить. А ещё в этом средстве часто случаются глюки, когда возникают трудности с обработкой перетекания.

Meta Reyes Infografica - напоминает Clay Studio, поскольку модели создаются на основе перетекания специальных примитивов друг в друга. Создавалось для моделирования и мускулатуры с последующей её анимацией. Однако, как пишут авторы уроков по этому плагину, работает он опять же очень медленно, создаёт сложные поверхности с большим числом подобъектов, опять же всё тормозит и глючит. Если вам нужна имитация работы мышц, лучше воспользоваться теми мышцами, которые не позволяют из них создавать поверхности, но могут помещаться внутрь готовой "шкуры" и деформировать её так, словно под ней действительно расположены мышцы (например плагины Absolute Character Tools (ACT), Hercules от Digimation или Muscle Toolkit от http://www.catoolkit.com). Сейчас плагин Meta Reyes Infografica уже не выпускается, он есть только для пятой версии 3ds MAX.

Выводы

Наиболее универсальными методами являются всё же Editable Mesh и Editable Poly, они позволяют нам точнее и в то же время проще управлять формой и свойствами нашей поверхности.

Этапы изготовления модели персонажа

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

В каком-то смысле, наши объекты - они как люди: что заложится в ранней молодости, с тем потом жить дальше. Но у объектов есть преимущества перед людьми - можно вернуться на начальные стадии их развития и что-нибудь там исправить. Но это лишняя работа, лучше по возможности всё делать как надо сразу. Опыт приходит постепенно, и как сразу делать правильно становится понятно только после проб и ошибок. Но кое-что можно оговорить и заранее.

  1. Изготовление геометрической поверхности, отвечающей за внешний облик персонажа.
  2. Такая геометрическая поверхность не обязательно должна являться одним объектом. Она может состоять и из нескольких объектов, например, часто удобно сделать глаза и зубы отдельными объектами. Если поверхность состоит из плотно стыкующихся друг с другом разных объектов, всё-таки между этими объектами будут существовать швы. Когда мы вставляем глаза, проблем швов не возникает, глаз как раз находится внутри глазницы. А вот если мы делаем отдельным объектом голову, руки, ноги, туловище - если персонаж голый, между ними будут заметны нестыковки. В случае моделирования людей - швы можно спрятать под одеждой. То же касается модели черепахи - швы можно разместить внутри панциря. Зубы хорошо делать отдельными объектами, поскольку они как правило не плавно переходят в дёсны. Часто и сами дёсны, и язык делают отдельными объектами, но тогда они плохо стыкуются со слизистой рта.

    Моделировать следует так, чтобы у вас было как можно меньше подобъектов. Чем меньше подобъектов, тем меньше проблем. Гладкость и дополнительные элементы добавляются при помощи MeshSmooth (или, в версии 3ds MAX 7 и более можно применять так же Turbo Smooth). Можно найти уроки и примеры, где операции проводятся с моделями, имеющими достаточно густую сетку. И густота сетки обусловлена не тем, что к ней применён MethSmooth, а просто объект имеет густую сетку уже на нижнем уровне стека. Ну что тут можно сказать - чем больше деталей, тем больше возни и проблем. Ведь после создания на объект ещё как правило приходится текстурировать, а для того, чтобы хорошо и качественно осуществить текстурирование, приходится практически вручную оперировать с вершинами и многоугольниками. И если таковых у вас много, вы ничего не сделаете, только замучаетесь.

    Обычно персонажи являются более-менее симметричными, поэтому создавать надо одну половину, потом отражать при помощи Symmetry. В конце моделирования модификатор Symmetry можно схлопнуть (существует много причин, по которым удобно так поступить) и уже после этого добавлять в модель ассиметрию. Но прежде, чем схлопывать модификатор, надо осуществить текстурирование.

  3. Наложение текстур
  4. После того, как создана одна половинка модели, для неё следует создать координаты наложения текстур. Следует различать создание координат наложения текстур и рисование текстур. Хотя эти вещи и тесно взаимосвязаны, это не одно и то же. Большинство текстур являются плоскими, и как правило представляют собой картинки. На картинке рисуется наш объект в развёрнутом виде. У соображающих читателей возникнет вопрос: как объект понимает, каким образом ему надо обернуть на себя текстуру? Так вот, объект этого не понимает. Понимать это должен тот, кто создаёт объект. И чтобы текстура наложилась нужным образом на нужные места, существуют два модификатора: UVW map - который как бы проецирует текстуру на объект (существуют несколько типов проекций, например, плоская, цилиндрическая, сферическая и ещё два типа, которые в двух словах не объяснишь). Другой модификатор - unwrap UVW- редактирует развёртку объекта. То есть, он даёт нам возможность как бы разрезать объект по швам и развернуть над нашей текстурой. Тогда текстура ложиться на объект соответственно тому, как мы его развернули над ней.

    Наложение текстур - важная, интересная, но очень большая и сложная тема, поэтому ей будет посвящён отдельный специальный раздел.

  5. При желании схлопывание модификатора Symmetry и внесение ассиметрии.
  6. Схлопывать модификатор Symmetry не обязательно, но в большинстве случаев желательно. Если объект полностью симметричен и текстуры на нём должны быть полностью симметричны, то модификатор можно и не схлопывать. Но всё же, во-первых, существует такая неприятность: уже после осуществления привязки шкуры к скелету надо вернуться на нижний уровень и осуществить там редактирование. При этом, если модель отражена при помощи Symmetry, при возвращении вниз сильно пострадают насторойки привязки шкуры к скелету. В версии 3dsMAX 6 для одного из инструментов привязки шкуры к скелету тоже введена возможность симметричного отражения настроек. Но инструментов таких два: Skin и Physique. Второй инструмент, Physique во многом более удобен, чем Skin, но к сожалению лишён возможности отражать настройки симметрично. Тем не менее, не смотря на этот достаточно существенный недостаток, Physique по многим параметрам лучше и удобнее, чем Skin. Если мы будем производить изменения с одной половиной объекта, то может нарушиться нумерация вершин. Это плохо скажется как на Physique, так же и на Skin. Гораздо более целесообразно вносить несущественные изменения в модель, у которой модификатор Symmetry схлопнут. Конечно, тогда нужно вносить изменения для обоих половин, но если эти изменения несущественны, сиё можно пережить. Либо, если надо серьёзно переделать какую-нибудь определённую часть поверхности, её следует отделить и работать с ней как с отдельным объектом, а потом отразить и присоединить обратно.

  7. Привязка модели к анимационному скелету
  8. Органические формы жизни могут быть смоделированы только при помощи более-менее цельной поверхности. Даже если на поверхности имеются в некоторых местах швы и стыки, она ни коем образом не из шарниров состоит, поэтому, единственный способ сделать персонажа подвижным - это деформировать саму поверхность. Чтобы она деформировалась, вершины поверхности прикрепляются при помощи специального модификатора к костям анимационного скелета, и дальше, когда скелет начинает двигаться, вершины следуют за костями. К слову сказать, сам объект при этом остаётся на месте. Если скелет убежит далеко от того места, где к нему привязали геометрическую поверхность, а потом у самой поверхности удалить или выключить модификатор привязки её к скелету, она окажеся на своём исходном месте.

    Геометрическую поверхность, изображающую внешний облик персонажа принято называть "шкурой", и не случайно. Не только потому, что она внутри пустая. Дело в том, что если не принимать специальных мер, как правило привязанная к скелету "шкура" как раз и выглядит, как пустая резиновая оболочка, внутрь которой помещён тонкий скелет.

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

Рекомендации по созданию модели шкуры

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

Для имитации волн существуют два модификатора: Ripple - для кругов на воде, и Wave. Wave - на самом деле не обычные синусоидальные волны, а прямо солитон какой-то, поэтому лучше для имитации равномерных волн взять модификатор Noise. В общем, так или иначе, когда мы применим любой из этих модификаторов к описаной выше плоскости, волн у нас не будет, будет только меняться положение вершин, и, соответственно, между ними будут перетягиваться два треугольника. Чтобы мы увидели волны, надо сделать нашей плоскости большое число сегментов. Чем больше сегментов, тем плавнее и натуральнее будут волны, но когда сегментов слишком много, компьютер будет тормозить, или вовсе ресурсов не хватит.

В случае моделирования персонажа вовсе не обязательно создавать поверхность с высоким разрешением сетки. Надо только заранее предусмотреть линии, по которым поверхность может гнуться. Надо предусмотреть все положения и позаботиться о том, чтобы поверхность имела необходимые линии изгиба.

Естественно, что заранее всё предусмотреть трудно, поэтому следует быть готовым к тому, что при моделировании персонажа часто придётся возвращаться на нижний уровень и добавлять там детали. Больше всего проблем при этом возникает с морфингом. Как мы уже знаем из Главы 17 (Morph - объект, меняющий форму ), морфинг - операция очень чувствительная к количеству и нумерации вершин подобъекта. Упомяналось уже, что есть не только морф-объект, но и модификатор Morpher. В этом плане модификатор ничуть не лучше самого объекта. К счастью в 3dsMAX 6 уже появилась утилита Channel Info, которая несколько облегчает жизнь при работе с Morph-модификатором, но полностью проблему она не решает, и не делает жизнь лёгкой и красивой. В 3ds MAX 7 появилось новое усовершенствование - Skin Wrap, которое позволяет деформировать главную поверхность при помощи вспомогательной. Тогда весь морфинг можно применить именно к вспомогательной поверхности, которую во многих случаях не понадобится переделывать. Но об этом позже.

Сейчас нам надо условится, что все подобъекты, которые могут понадобится при создании тех или иных поз или положений тела, должны содержаться в поверхности заранее. Наиболее наглядный пример - веки и рот персонажа. В прошлой главе мы сделали собаку. У неё рот закрыт, и внутри ничего нет. Она не может открыть рот потому, что во-первых, он зашит. А в процессе деформации и разрезов тоже не появляется. Ибо появление разреза сопряжено с появлением дополнительных вершин. Во-вторых, если бы рот не был зашит, собака могла бы его открыть, но внутри ничего нет.

Что касается век - их мы худо-бедно создали, можно попытаться натянуть их на глаз, но как они натянутся - вот вопрос.

Поэтому два вывода:

Во-первых, все детали, которые так или иначе должны иногда быть доступны для взора, должны содержаться в модели. Здесь, конечно, следует сразу оговориться. Если в фильме, например, задумывается страшная сцена ранения персонажа, это не значит, что рана и все видные в неё внутренности должны быть созданы в изначальной модели. Если большую часть сцены или фильма вообще персонаж будет целым и здоровым, лучше для требуемой сцены создать другую модель и подставить её только в нужный момент.

Но открывать и закрывать рот персонаж будет довольно-таки часто, поэтому прорисовать его изнутри надо.

Как сделать веки? Лучше всего создать исходную модель с закрытыми глазами, потому что в этом случае веко максимально растянуто, и мы будем сразу видеть, сколько подобъектов необходимо для того, чтобы веко хорошо закрывало глаз.

Итак, давайте будем рассматривать по порядку, по ходу изготовления модели. Когда мы создавали собаку, нашей задачей было освоить метод моделирования, теперь же мы меньше будем обращать внимание на то, где и как надо сделать Extrude, Сut и так далее, а будем обращать внимание на то, какой должна быть наша шкура.

Как мы поняли, начинать изготовление модели удобно с создания грубой заготовки, на которой потом, главным образом при помощи Cut, и несколько меньше при помощи Extrude и Chamfer добавлять подобъекты. Собаку мы начинали делать с цельной коробки, но на самом деле удобнее создать Box уже разделённый на две половинки - параметр Width Seg надо поставить равным 2. Тогда не придётся резать Box при помощи Slice Plane. Не забываем про то, что наш исходный объект очень желательно расположить так, чтобы его ориентация (поворот) был равен 0,0,0. Это автоматически достигается если создавать объект в виде Top или Perspective. И разместить его желательно в нуль мировых координат.

Далее, как мы помним, при помощи многочисленных операций Extrude и некоторых трансформаций экструзируемых многоугольников, создаётся начальная заготовка.

Итак, изготовим сначала туловище и хвост, при помощи последовательных экструзий. Экструзии следует проводить пока объект ещё симметричен, так удобнее. Хвост тоже делается при помощи экструзии, а потом кончик схлопывается посредством Collapse. Потом одну половинку удалим и сделаем ручки и ножки.

Здесь сразу можно обратить внимание на то, какими должны быть суставы. Сустав не может быть обозначен одним контуром рёбер, под него надо выделить полосу некоторой ширины (см. рис 20.1). Полосу не обязательно делать при помощи Chamfer, её можно сразу при помощи операции Extrude изготовить, если делать в нужных местах остановки экструзии.

Плечевой и тазобедренный суставы - несколько особенные. Плечо - у человека и некоторых животных - достаточно подвижная часть тела. У отдельных зверей, прежде всего у кошек и их родственников, и лопатки очень подвижны. Всё это требует проработки. Тазобедренный сустав - напротив, самый неподвижный из всех суставов. Если лопатки имеют возможность двигаться, то тазовые кости почти у всех позвоночных представляют собой прочно сросшуюся неподвижную конструкцию.



Рис. 20.1. На этой заготовке показано, какими в первом приближении должны быть суставы. (Области суставов показаны синим цветом. Тазобедренный сустав не выделен, поскольку он на данном рисунке должным образом ещё не проработан).


Если задумывается проработать персонажу пальцы, то они должны обязательно быть отделены друг от друга, а не одной варежкой. Прежде, чем делать пальцы, надо нарезать места, из которых Пальцы будут расти. Это легко сделать при помощи Cut (рис 20.2).



Рис. 20.2. Нарезка поверхности перед экструзией пальцев.


Важный момент, что между пальцами тоже должны быть не просто рёбра, а полоски, которые можно сделать при помощи Chamfer (рис 20.3).



Рис. 20.3. Полоски между пальцами


В данном конкретном случае полоски необходимы для того, чтобы при MeshSmooth не зарезались сильно углы в местах, где пальцы стыкуются с конечностью. Небольшие треугольнички, появившиеся при Chamfer, лучше всего устранить нехитрым способом: взять вершинки и при помощи Target Weld стащить к другим вершинам, как показано на рис. 20.4.



Рис. 20.4.


На подошве таких уголков, скорей всего не будет. Но нам при помощи Cut надо изготовить нечто, вроде того, что показано на рис. 20.5.



Рис. 20.5


Вообще, всё, что здесь, и на предыдущих рисунках показано синим цветом - это области, в которых во время деформаций кожа сильней всего растягивается или сжимается. Вот как раз именно области, в которых происходит наиболее сильное сжатие или растяжение и следует отделить от других областей. Если у вас объект будет одноцветным и без текстуры, то можно не тратить столько усилий на разделение объекта на области, которые растягиваются и сжимаются с разной интенсивностью. Но без текстуры достаточно живых и реалистичных персонажей не получится. По крайней мере, даже если создавать стилизованного героя, понадобится несколько цветов. И вот если мы не разделим поверхность на соответствующие участки, в границах между областями разного цвета, во время анимации или позиционирования будут видны всякие нехорошести.

Итак, мы обозначили места, из которых будут расти пальцы, теперь надо отредактировать квадратики, из которых будут пальцы произрастать, и можно экструзировать сами пальцы (рис 20.06).



Рис. 20.6


Теперь можно вспомнить и про группы сглаживания. Во время экструзии создаются боковые грани, к которым группа сглаживания не применена вовсе. А мы можем сделать вот что: выделить весь элемент и применить к ниму одну и ту же группу сглаживания. Если мы создавали нашу заготовку из объекта Box, то в элементе будут присутствовать всякие разные группы сглаживания. Поскольку мы не сами их задавали, лучше их все снять - поотключать нажатые кнопочки в группе групп сглаживания, или под конпочками с номерами нажать кнопку Clear All. Потом применить ко всей поверхности какую-нибудь одну группу сглаживания, например, первую. А к когтям - другую, например, вторую. Быстро выделить когти в данном случае можно в режиме работы с многоугольниками при помощи Grow: сначала выделить самые кончики коготков, а потом нажать Grow два раза. У выделенных многоугольников отключите первую группу сглаживания и поставьте вторую.

Далее применим модификаторы. Раз уж подошло время применять модификаторы, сначала применим Symmetry, а потом MeshSmooth у которого включем в группке Surface Parameters Separate By: Smoothing Groups. На рис 20.7 показано, как можно использовать SG не для баловства, как это было когда мы только с ним знакомились, а на практике для достижения реального эффекта.



a)
б)

Рис. 20.7.

а) - при MeshSmooth не включён флажок Separate By: Smoothing Groups. При этом для результата действия MeshSmooth совершенно не важно, к каким местам нашей поверхности применены какие группы сглаживания и применены ли вообще.

б) - при MeshSmooth не включён флажок Separate By: Smoothing Groups. Такой эффект, как виден на этом рисунке, возможен лишь в том случае, когда к когтям и остальной части поверхности применены разные SG.



Далее, если мы хотим, чтобы рот открывался, надо его прорисовать. Для этого надо выделить рёбра, которые обозначают рот и нажать в группе Edit Edges кнопочку Split. Если у вас нет контура, обозначающего рот, нарисуйте его, а потом сделайте Split. Потом губы надо немного разделить. Пока у нас только заготовка, а не до конца оформленная модель, можно просто выделить многоугольники одной из челюстей, либо верхней, либо нижней, и сдвинуть соответственно немного вверх или вниз, как показано на рис. 20.8.



Рис. 20.8


Потом выделяем контуры губ и делаеем для них (рёбер) Extrude вовунтрь (Рис 20.9).



Рис. 20.9


В местах, отмеченных цифрами 1 и 2 надо сразу же совершить некоторую коррекцию.

В месте, помеченном цифрой 1 две новые вершины. Они, по идее, должны лежать в плоскости разреза нашей поверхности, то есть иметь координату x=0. (Мы оговаривали не раз, как будем располагать персонажа, если кто забыл - см. Часть 2 и Глава 11. Эффективная работа с подобъектами). Итак, две вершины, попадающие в кружочек, помеченный цифрой 1 надо переместить на плоскость x=0.

Перемещать следует каждую по отдельности, поскольку если мы сразу для обеих вершин будем впечатывать значение x равное нулю, это будет справедливо не для каждой вершины, а для среднего арифметического их координат. То есть, для некого геометрического центра группы выделенных вершин. Можно, конечно, сделать и по-другому: выделить сразу обе вершины и перейдя в вид Left (или, можно Right если у кого есть), нажать View Align (в группе Edit Geometry). Чтобы при пеходе в другой вид у нас сохранилось выделение вершин, надо либо кликать по окну проекции другого вида правой кнопкой мыши, либо кликать левой кнопкой по пустому месту, но при этом удерживать нажатой клавишу Ctrl. Команда View Align располагает все выделенные подобъекты, а то и весь объект (когда резим работы с подобъектами не активен) так, чтобы они лежали в одной плоскости, и эта одна плоскость параллельна плоскости вида. После того, как мы выполним View Align в виде Left или Right, у обеих точек координата x станет одинаковой, и можно будет впечатать сразу для обеих x=0.

В месте, помеченном цифрой 2 можно видеть в уголке губ треугольничек. Лучше, если это будет не треугольничек, а четырёхугольничек. Для этого надо добавить ещё одну вершину. Сделать можно это, если со внешней стороны губы вовнутрь аккуратно протянуть ребро при помощи Cut, а потом лишнее диагональное ребро удалить при помощи Remove. Потом положение вершин надо подкорректировать.

Далее надо создать внутренние стенки губ. Для этого надо выделять контуры верхней и низней губ по отдельности и проводить экструзию. Экструзию в данном случае уже лучше проводить при помощи численных значений, при том Extrude Base Weight = 0, а Extrusion Heigh надо накрутить нужным образом. Можно это значение тоже сделать нулевым и нажать в менюшке OK, а потом при помощи перемещения поместить экструзированные рёбра в нужные места. Обратите внимание, что при этом с уголком рта мы ничего не делаем, его мы не экструзируем.



Рис. 20.10 Здесь мы смотрим на нашу половинку с изнаночной стороны. То есть, видим внутренние бортики губ.


Теперь надо проверить, чтобы крайние вершины бортиков губ снова лежали на плоскости x=0, подкорректировать их положение по осям y и z и приступить к следующей стадии.




а)

б)

в)

г)
Рис. 20.12 Надо выделить рёбра, как показано на рис (а) и провести экструзию, как показано на рис (б). Далее, чтобы упростить жизнь, можно схлопнуть среднее ребро (в, г)


Кстати, бывают такие проблемы, что ребро вдруг не схлопывается. Это может происходить потому, что при экструзии контура получилась не одна лента, а две или более, которые плотно соприкосаются краями. Надо проверить, действительно ли у вас в одной точке (или маленькой окрестности) находится только одна вершина. Для этого надо выделить окрестность при помощи прямоугольной области и посмотреть, сколько вершин у вас выделено. Чтобы убедиться, что мы выделили только маленькую окрестность, и в выделение не попали вершины, лежащие ровно напротив выделяемыой области, надо покрутить наш вид. Если выделена маленькая окрестность, вспомогательная система координат будет лежать в ней. Если же в выделение попала далеко лежащая вершина, вспомогательная система координат окажется далеко от нашей области выделения.

Можно попробовать посхлопывать вершины на краях таких лент, но и это иногда не даёт результата. Если ничего не получается, нужно удалить подозрительные сомнительные многоугольники, но сохранить врешины (при удалении многоугольников всегда вывешивается табличка: Delete Isolated Verticies? - удалять ли изолированные вершины? - в данном случае ответить надо "Нет" (No)). Потом, вместо удалённых многоугольников натянуть новые. Новые должны быть без глюков.

Далее надо выделить рёбра так же, как показано на рис. 20.13 а) и сделать экструзию. Здесь лучше всего сделать экструзию при помощи численных значений, ввести по нулям и в Extrude Base Width и в Extrusion Heigh, а потом рёбра подвинуть в нужное место. Все точки на красном контуре надо переместить в плоскость x=0.

Можно быстро это сделать, если выдвинуть рёбра за плоскость симметрии, затем перейти в режим работы с вершинами. Вершины лежат так, что в виде спереди или сверху их можно легко выделить при помощи прямоугольной области. Далее надо перейти в вид слева (или справа), и сделать View Align. Потом для всех выделенных вершин впечатать в Transform Type-in в поле для x величину 0.



a)
б)
в)
Рис. 20.13 a) - рёбра, которые надо экструзировать, б) после экструзии, в) - выделенные вершины надо сшить. Для нижней челюсти надо поступить аналогично.


Потом надо сшить вершины, как показано на рис. 20.13. в). Следует иметь в виду, что при экструзии могут образовываться поразитные вершины и аномалии, поэтому неплохо проверять вершины в местах, откуда растёт экструзия и на полученном при экструзии контуре. Если в одной точке лежит много вершин, их надо схлопывать. Однако, при такой экструзии бывают и двойные многоугольники - то есть ленты из многоугольников тянутся с двух сторон. Это обычно видно, и ленту, натянувшуюся не с той стороны надо выделить и удалить.

Дорисуем руку и пока на этом остановимся. Рука дорисовывается с учётом тех же сообразений, которыми мы руководствоавлись создавая ногу. Только надо учесть, что большой палец руки идёт как бы отдельно от остальных пальцев. То, что получилось у нас на данной стадии, показано на рис. 20.7. Скажем только вот что: чтобы хвост и шея гнутся равномерно, их не стоит делить на участки, которые гнутся сильнее или слабее, но на них надо создать контуры, по которым эти части тела смогли бы гнуться. Пока заготовка размечена на синие и зелёные участки. Синие - это те, в которых при сгибов суставов кожа сильнее всего растягивается или сжимается. Подробнее посмотреть можно открыв файл заготовки.



а)
б)
Рис. 20.14


Далее, когда мы начнём текстурировать модель, мы эту полосатую раскраску удалим. Да и саму модель придётся существенно дорабатывать.

Моделирование закрывающегося века

Как и говорилось в начале, чтобы веко могло закрываться, надо создать в нём дополнительные подобъекты. Если просто натянуть веко на глаз, получится плохо, поскольку глаз имеет некоторую выпуклость.



Таблица 20.1 Моделирование закрывающегося века
Итак, мы создавали собаку, но её мы рисовали с открытыми глазами. Вот так выглядит открытый глаз с достаточно оптимальным числом подобъектов - их достаточно, чтобы придать форму, но не слишком много - чтобы не было лишней возни. На следующих рисунках мы попытаемся закрыть веко и увидим, что получиться. Чтобы глазное яблоко не мешало нам моделировать, его можно отсоединить (detach) и спрятать.
Здесь глазное яблоко спрятано. Глазница представляет собой ямку. Внутренний уголок глаза (тот, что справа) - сделан плавильно, два близкорасположенных ребра как раз формируют уголок, и будут играть важную роль при закрывании века. Внешний уголок - неплохо сделан для открытого глаза, но чтобы глаз хорошо закрывался, лучше раздвоить ребро при помощи Chamfer, а лишние вершины стащить к другим вершинам при помощи Target Weld. Далее, те рёбра, которые отмечены бледно-голубым цветом, мы будем опускать. Опускать удобно именно в режиме рабты с рёбрами.
Здесь указанные на предыдущем рисунке рёбра уже опущены. Только опустить - как правило, не достаточно, их ещё нужно будет подвигать вправо-влево и взад-вперёд, чтобы добиться соприкосновения с нижним веком.
Теперь отспрячем глаз и увидим, что он пролезает сквозь наше веко. Чтобы избавиться от этого недостатка, закрытое веко надо сделать выпуклым. Для этого опять спрячем глаз, и при помощи Cut и Create нарисуем на веке контуры.
Если начинать резать при помощи Cut из самых уголков, можно подконнектить наш контур не к той вершине. В уголках много вершин, и трудно попасть именно по нужной. Поэтому сначала при помощи Cut делаем рёбра, помеченные цифрами 2, 3, 6 и 7, а потом при помощи Create создаём все остальные рёбра, при том тянуть надо от концов нарезанных рёбер 2, 3, 6 и 7 к уголкам глаза.

Создаём выпуклость. Здесь глаз придётся отспрятать, чтобы видеть, закрывает ли его наша выпуклость. Выпуклость на начальной стадии можно формировать двигая рёбра, но окончательно скорректировать форму удастся только движением вершин.

Никакие части глаза не должны пересекать веко и пролезать наружу. Опять же, если движение вершин взад-вперёд долго не даёт результата, создаются слишком выдающиеся углы, попытайтесь немного поперемещать их вверх-вниз и вправо-влево.

Вот так будет выглядеть наша собака с закрытыми глазами. Лучше это положение принять за исходное.

Открыть глаза снова можно двумя способами: при помощи морфинга (лучше с использованием модификатора Morph) либо при помощи скелетной анимации.

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

Открыть глаз будет сложнее, чем его закрыть, мы создали новые подобъекты, и чтобы они не добавили нежелательной кривизны, придётся вручную расположить их так, чтобы они лежали ровно.

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

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

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

Кроме того, само создание промежуточных состояний весьма неприятно.

Из-за этих нежелательных эффектов, предпочтительно использование скелетной анимации в таких вещах.

Но морфинг очень хорош и полезен в анимации других видов мимики - улабка, нахмуривание бровей и т.п., где можно обойтись без промежуточных состояний.

 

<< Назад Оглавление   Вперёд >>
homepage: http://teapot3d.narod.ru
Используются технологии uCoz