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







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

 

Toy dog story


(или о том, как я создавал модель игрушечной собаченки)


Владимир Верстак, Digital Light


Jump to Dog End Image

Интернет - это огромный кладезь знаний или огромная свалка всякого хлама - это кому как нравится. Лично для меня Интернет послужил источником решения многих проблем, связанных с освоением 3D MAX-а. Об этом можно говорить еще очень долго, но сегодня я решил вернуть свой долг любителям этой программы и описать пример создания детской игрушки, прототипом которой послужил песик, некогда подаренный моей жене.

Хочу так же предупредить, что урок расчитан на людей, которые знакомы с основами работы в 3D MAX-е, по крайней мере с его интерфейсом. Я больше буду описывать сам подход к построению модели, некоторые способы, призванные облегчить работу, нежели последовательность нажатия клавиш.

Итак, к делу...

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

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

Первым делом надо было нарисовать фронтальный и боковой вид.

DogFront DogRight

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

Далее есть два пути:

Первый - это поставить рисунки в качестве background во viewport (Views > Viewport Bakground) - фронтальный вид  во фронтальный вьюпорт и боковой в Right соответственно. Кроме того, не забудьте включить "галочку"  напротив Match Bitmap и Lock Zoom/Pan, ну и конечно Display Background. Это не позволит искажать изображение и привяжет ваш рисунок к создаваемому объекту. Из опыта замечу, что удобно пользоваться сочетанием клавиш Ctrl+Alt+B для корректировки объекта по отношению к фону.

И второй,  которым мы в дальнейшем и воспользуемся, это создание т.н. виртуальной студии. Для этого надо на фронтальном виде создать объект Plane, с пропорциями, соответствующим пропорциям фронтального рисунка. В моем случае это 115.3 х 83.4. Далее нужно сделать копию этой плоскости, перетащив в сторону плоскость с нажатой клавишей Shift и указав в качестве метода копирования Copy. Во второй плоскости, которая будет являться подложкой для бокового вида, надо изменить ширину с 83.4 на 58.2 (для соответствия рисунку бокового вида). Далее эту плоскость на виде сверху поворачиваем на 90 градусов и с помощью кнопки Align, которая находится на панели инструментов, выравниваем две плоскости так, что бы  они вместе создавали  букву "Г". Теперь следующим шагом будет наложение на плоскости рисунков. Для этого в редакторе материалов создадим два материала на один из которых поместим в качестве Diffuse Color рисунок фронтального вида ( для этого щелкаем мышкой на кнопке рядом с цветом Diffuse и выбираем карту Bitmap, щелкнув на которой, в свою очередь, выбираем наш отсканированный рисунок фронтального вида). Далее присваиваем этот материал объекту Plane01, что соответствует фронтальному виду. Следует заметить, что в редакторе материалов надо активизировать кнопку Show map in viewport, а в настройках вида ( Front и Right ) выставить Smooth+Highlights, иначе Вы не увидите свои рисунки во вьюпортах.  Те же операции надо произвести и для второго материала, накладываемого на Plane02.

В итоге должно получиться нечто похожее на изображение внизу.

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

Вот мы и подошли к непосредственному созданию самой модели. Начинать будем с построения сплайна по характерным точкам на рисунке. Для этого сделайте активным вид сбоку и выбрав во вкладке Create > Shapes > Line начните построение сплайна.

Сразу же хотелось бы дать несколько советов.

Начнем с того, что строить модель можно по-разному, но если модель имеет симметричные детали (или вся модель симметрична), то логичнее всего делать одну половинку, а затем ее скопировать и присоединить к существующей. Далее, если вы не используете для построения модели предварительные рисунки или фотографии, то построение надо вести от общего к частному, т.е. вначале создаете сплайнами контуры всей модели, а затем приступаете к ее детализации. Из личной практики хочу заметить, что сплайн удобнее строить, используя Bezier Corner, причем длина ручек Бизье должна соответствовать приблизительно 1/3 расстояния между вершинами, тогда модель получается более сглаженной. Хотя иногда полезно пренебрегать этим правилом для создания криволинейной поверхности, используя минимальное количество точек. Кстати о точках. Чем меньше точек будет задействовано для создания модели - тем лучше. Хотя и здесь все зависит от конечной цели. Если Вы, скажем, собираетесь анимировать свою модель, то она должна на выходе иметь достаточное количество полигонов что бы не казаться неестественной при анимации.

Итак, продолжим.

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



На рисунке 3 хорошо видно, как расположены точки в нашем случае. Построенный сплайн будет являться серединной линией, используя которую, будем строить остальные сплайны. На кончике носа построим два других сплайна, принадлежащих объекту Line01 (в нашем случае контур головы) и соединяющих противоположные точки. Каждая линия имеет дополнительную точку посередине. Эти точки понадобятся для проведения через них линии от кончика носа. Полезно при проведении таких операций использовать 3D Snap Toggle - это избавит Вас от необходимости совмещать две точки вручную. Очень важно контролировать весь процесс создания новых точек в других окнах проекций. После построения новых сплайнов их вершины нужно поставить на место. Крайние точки уже стоят там, где им и положено быть, а вот средние надо на фронтальном виде сдвинуть вправо так, что бы они соответствовали контурам рисунка. Вид сверху еще раз позволяет проконтролировать их местоположение. Таким образом добавляя к основному сплайну дополнительные мы будем опоясывать сплайнами всю модель.

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

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

Как мне кажется, хорошей практикой является тот способ построения модели, при котором во время построения каркаса из сплайнов Вы можете видеть модель покрытую патчами. Для этого надо воспользоваться одним "хитрым" способом: Вам надо создать копию модели и применить к ней модификатор Surface. Делается это так. Удерживая Shift перетаскиваем нашу модель (пока еще только сплайны) на свободное место позади нашей виртуальной студии и затем в качестве метода копирования указываем Reference. Далее, навешиваем на копию модификатор Surface и делаем Mirror, выбрав Instance. После этого две половинки модели надо совместить (но не "сваривать"), чтобы получился цельный объект. Этот клонированный объект и поместим в окно перспективы. Иногда я для этого объекта ставлю в сцене несколько камер, для того, чтобы можно было контролировать модель из нескольких наиболее характерных точек и быстро между ними переключаться.

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

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

Пришло время немного отвлечься от непосредственного построения модели и выслушать несколько советов.  Чем больше мы создаем дополнительных сплайнов, тем сложнее затем разобраться в их взаимном расположении, но тем неменее есть способы разобраться в этой паутине сплайнов. Во-первых, не забывайте о том, что работая со сплайнами и вершинами Вы всегда можете с помощью команды Hide в свитке Geometry спрятать, мешающие Вам сплайны. Во-вторых, как мне кажется, очень удобно использовать Viewport Clipping в окнах проекций для отсечения мешающих плоскостей пространства, с которыми Вы в данный момент не работаете. Особенно это полезно при работе с видом сверху, когда из-за большого скопления линий и узлов трудно разыскать нужную точку внизу модели. Таким образом, Вы оставляете в поле зрения только те сплайны, с которыми непосредственно в данный момент работаете. Кроме всего прочего хочу сказать пару слов о том, что оккуратность в моделировании  - это не последнее дело. Обращайте внимание на то, чтобы сплайны не только повторяли контуры рисунка, но и имели плавные линии, повторяющие геометрию модели.

Итак, продолжим нашу работу. Построим некоторое количество сплайнов формирующих пасть и сделаем правое ухо.

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

В процессе работы  с конечными точками сплайнов, MAX предлагает их склеить, если они расположены достаточно близко друг к другу. Обычно делать этого не стоит по той простой причине, что в дальнейшем будет затруднена корректировка сплайнов. Кроме того в параметрах модификатора Surface надо активизировать Remove interior patches. Это позволит убрать внутренние патчи (грубо говоря перегородки) с таких мест как уши и лапы. Хочу еще заметить, что в некоторых случаях, когда Вы применили модификатор  Surface к построенным сплайнам и не получили желаемый результат (появились дыры, патчи перевернуты или скручены), причиной может быть не только присутствие пятой точки, но и неправильная ориентация какого-то сплайна по отношению к остальным. Для этого в модификаторе Edit Spline, при выделенном сплайне, надо попробовать применить Revers или Mirror.

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

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

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

Т.к. у нас сложная геометрия и ее невозможно корректно покрыть одной текстурой, то придется создавать Multi/Sub-Object материал, а следовательно и объект нужно предварительно перевести в mesh, для этого "прибиваем" стек модификаторов и в качестве результирующей выбираем Editable Mesh - это нам позволит назначить ID  материалов. Конечно, если у Вас в избытке памяти, то Вы можете просто добавить в стек модификатор Edit Mesh. Далее надо проанализировать Вашу модель на предмет выявления отдельных деталей, на которые будут наноситься материалы. У меня их получилось 10: тело, правое ухо, левое ухо - перед, левое ухо - зад, кончик носа, верхняя челюсть, нижняя челюсть, правая лапа, левая лапа, хвост. У Вас может получиться другое количество материалов, все зависит от Ваших предпочтений, но главное - это выбрать места и способ наложения материалов так , чтобы они как можно меньше деформировались на геометрии.

Итак, приступим к назначению ID для тела, для этого в качестве Selection Level  выбираем Poligon и выделяем всю модель, а затем нажав и удерживая Alt удаляем все ненужные нам полигоны. Не забывайте контролировать процесс в других окнах проекций, а так же поворачивая модель. Но, как мне кажется, лучшим способом контроля выделенных полигонов является скрытие ненужных полигонов командой Hide, тогда сразу становится видно, если где-то упущен полигон, либо наооборот - выделены лишние (результат можно увидеть на рисунке слева внизу). Сейчас нужно в Material ID поставить номер материала (в моем случае 1) и запомнить этот номер для Multi/Sub-Object материала ( номер ID и номер материала должны соответствовать). После этого в стек добавляется UVW Map и в качестве параметра наложения карты выбирается Cylindrical, как наиболее подходящую в данном случае. Обратите внимание на то, что на  уровне Sub Object - Gizmo у нас зеленым цветом выделена линия стыка карты, так вот желательно, что бы она оказалась в наименее приметном месте (например на спине или сбоку). После этого есть два пути: первый - это воспользоваться  плагином все того же Питера Ватье, который называется Unwrap Objeck Texture и находится во вкладке утилиты, либо второй - программой Deep Paint  и ее подключаемым к MAX-у плагином. И в том и в другом случае результат будет одинаков, за исключением того, что Deep Paint позволяет рисовать прямо на трехмерном объекте и выполнять доводку в программе растровой графики (например Photosop), а после  Unwrap Objeck Texture нужно сразу все делать в такой программе.

Я не стал  "усложнять себе жизнь" и  перегнал ообъект в Deep Paint, там наметил основные цветовые пятна для Diffuse карты и места выдавливания для карты Bump, а затем все доработал в Фотошопе. Карту выдавливания и карту цвета для тела Вы можете увидеть ниже, а то, как она смотрится, наложенная на объект - на рисунке сверху справа ( правда там еще есть и карты для носа и пасти).



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

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

Отзывы и пожелания можно отсылать на адрес vlad_62@mail.ru и если будет достаточный интерес к отдельным деталям моей работы - я готов сделать их более подробное описание в следующих уроках.


Реклама на InfoCity

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



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








1999-2009 © InfoCity.kiev.ua