Техника каркасного моделирования

Автор о себе:

Здравствуйте. Меня зовут Игорь Веретенников, живу в городе Краснодаре. Компьютерной графикой занимаюсь 3 года. Этот урок посвящен одному из способов моделирования персонажа для анимации, здесь также рассмотрены некоторые особенности, упрощающие дальнейшую анимацию модели.

Когда поверхность модели содержит большое количество полигонов, то основной трудностью при анимации такой модели является контроль над ее вершинами. Если, к примеру, хотя бы одной вершине неправильно назначить весовой коэффициент в модификаторе Skin, Physique или Flex, то это приведет к неправильной деформации поверхности и появлению перехлестов и неожиданных изгибов сетки модели. Лучший выход из данной ситуации - это создание модели с каркасом низкого разрешения. Это намного упростит процесс присвоения вершин, а последующие применение к уже анимированной модели модификатора MeshSmooth, придаст модели сглаженный вид и существенно снизит вероятность появления неожиданных ошибок. Сейчас мы испробуем один из методов создания модели для анимации, в итоге у нас должны получиться 2 варианта модели, с каркасом низкого и высокого разрешения. Этот урок посвящен именно принципу моделирования, поэтому для построения модели ограничимся описанием всего двух инструментов: выдавливания Extrude и разрезания Cut. Во второй части урока описывается применение Сегментного морфинга, а также правильной последовательности расположения в стеке таких модификаторов как Morpher, Physique,Flex, MeshSmooth. Итак, начнем.


Подготовка виртуальной студии (создание шаблонов для моделирования, а также создание объекта ссылки-Reference моделируемого персонажа).

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

Начнем. Во фронтальном виде проекции создадим плоскость и назначим ей стандартный материал, где вместо цвета диффузного рассеяния используем растровое изображение с отсканированным фото или рисунком (вид сбоку). В редакторе материалов включим отображение текстур в окнах проекции. В параметрах Bitmap карты в группе Cropping / Placement установим флажок на Apply и щелкнем на кнопку View Image, в результате откроется окно Specify Cropping / Placement, где при помощи маркеров сделаем обрезку по размеру рисунка. Далее увеличим значение Self-illuminations материала до 100 и поставим галочку в 2-sided. (см.рис.1)

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

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


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


Сейчас сделаем один из важных этапов в подготовки для моделирования - создание упрощенной каркасной модели и объекта ссылки (Reference) этой модели, для дальнейшего применения к этой ссылке модификатора MeshSmooth. В окне проекции Front в верхней части изображения дракона создадим Box с сегментами по сторонам равными 1 (рис.5).

Преобразуем созданный Box в Editable Poly. Это можно сделать с помощью вкладки Modify или щелкнуть правой кнопкой мыши на объекте и из появившегося контекстного меню выбрать команду Convert toEditable Poly. Переименуем Box как Каркасная модель, далее удерживая клавишу Shift и левую кнопку мыши, переместим объект Каркасная модель влево. В появившемся диалоговом окне Clone Options (Параметры клонирования) в группе Object установим переключатель Reference (ссылка), изменим имя объекта на Сглаженная модель и нажмем Ok (рис 6).

Теперь любые изменения объекта Сглаженная модель, никаким образом не повлияют на родительский объект Каркасная модель и наоборот. То есть изменения передаются только в одном направлении, от родительского объекта Каркасная модель на объект ссылку Сглаженная модель, но никак не в обратном направлении. Далее создаем две направленных камеры: Camera01 для объекта Каркасная модель и Camera02 для объекта Сглаженная модель. В окне проекции Camera01 ставим галочку Edged Faces. Выделяем объект Каркасная модель и нажимаем комбинацию Alt+X, это делает объект полупрозрачным (то же самое, если поставить галочку See-Through в свойствах объекта). Вот что должно получиться (рис7).

Далее применим к объекту Сглаженная модель модификатор Symmetry с параметрами как на рис8.

И сверху модификатора Symmetry добавляем MeshSmooth (рис9).

В итоге у нас должна получиться вот такая Виртуальная студия (рис10).

Обратите внимание, что применение модификаторов к объекту Сглаженная модель никак не отразилось на объекте Каркасная модель. Теперь выделим объект Каркасная модель и зайдем на уровень редактирования полигонов Polygon (то же самое можно сделать, нажав клавишу 4 на основной клавиатуре). Теперь выделим самый нижний полигон и применим к нему выдавливание Extrudeрис11.

По мере выдавливания полигона мы увидим как вытягивается и преобразуется поверхность объекта Сглаженная модель в виде из Camera02. Это значит, что теперь, работая с каркасом низкого разрешения, мы можем сразу контролировать конечный вариант сглаженной модели. Благодаря такой мгновенной обратной связи между моделями мы можем сразу исправлять возникающие ошибки при моделировании. Также этот метод позволяет более рационально вести моделирование и избежать построения лишних граней в Каркасном варианте модели, это может значительно облегчить дальнейшую анимацию Каркасной модели. Еще одним из отличий этого метода от других является то, что Каркасная и Сглаженная модель находятся на значительном расстоянии друг от друга. Это дает комфортную видимость Каркасной модели при моделировании. (Есть альтернативные методы, без создания модели ссылки. К примеру, можно работать только с Каркасной моделью, но при этом поместить вверху стека модификатор MeshSmooth и включить кнопку Show end result on/off toggle на панели Modify. Или сделать еще проще: в свитке Subdivision Surface редактируемой Каркасной модели, поставить галочку Use NURMS Subdivision и увеличить число Iterations).

Итак, продолжим. После того, как мы сделали выдавливание полигона, перейдем на уровень редактирование вершин Vertex (или нажмем клавишу 1) и в окне проекции Front выровняем вершины по контуру рисунка дракона (рис12).

Далее будем придерживаться принципа от общего к частному, то есть начнем с туловища, а потом добавим руки и ноги. Так как к Сглаженной модели у нас применен модификатор Symmetry, то работая с Каркасной половиной модели, мы будем видеть в окне Camera02 уже цельную готовую модель.

Сделаем несколько раз выдавливание нижнего полигона, причем после каждого выдавливания будем корректировать вершины согласно рисунку на шаблоне. Главное здесь постараться минимальным количеством выдавливания полигонов Каркасной модели добиться требуемой кривизны поверхности Сглаженной модели (к примеру, в районе живота будет достаточно четырех выдавливаний). Удобнее производить данные действия во фронтальном окне проекции. Вот что примерно должно получиться (рис.13).

Откроем панель Display и сделаем видимым скрытый ранее шаблон вида спереди. Поменяем вид в окне проекции Top на вид Left (или нажмем клавишу L при активной проекции Top ). Далее снова выделяем объект Каркасная модель и переходим на уровень редактирования вершин Vertex(или нажмем клавишу 1).Откорректируем новые созданные вершины согласно шаблону вида спереди, вершины которые лежат на оси симметрии трогать не надо (При выделении одиночных вершин нужно ставить галочку Ignore Backfacing свитка Selection). Стремиться к точности сейчас не будем, просто обозначить габариты тела персонажа (рис14).

Начнем выдавливание руки. Для этого нам потребуется создать несколько новых полигонов в районе плеча персонажа. Перейдем на уровень редактирования ребер Edge (или нажмем клавишу2). В свитке Edit Geometry нажмем Cut (или Alt+C) и сделаем в окне Front несколько разрезов как на рис15. (цифрами показан порядок разрезания)

Перейдем на уровень вершин Vertex (или нажмем клавишу 1) и придадим форму поперечного сечения руки рис16.

Переходим на уровень полигонов Polygon и выделяем полигоны поперечного сечения руки и применяем выдавливание Extrude (рис.17). (Вместо Extrude можно применить Bevel, это выдавливание с последующим масштабированием полигонов)

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

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

Десна и зубы были сделаны отдельно от модели дракона, потом отредактированы модификатором FFD Box под размер челюсти и присоединены Attach к модели. Глаза, а точнее радужная оболочка, обычные сферы сплюснутые модификатором FFD Box и присоединенные Attach к модели. Внутри радужной оболочки есть еще две сферы-глаза, которые являются самостоятельными объектами и в дальнейшем будут прилинкованы к Bip Head.

Когда моделирование модели будет закончено, удалим Каркасную половину модели и оставляем Сглаженную модель. Теперь обязательно удаляем модификатор MeshSmooth и делаем сворачивание стека вместе с модификатором Symmetry. В итоге, у нас остается готовая модель низкого разрешения с которой мы и будем производить дальнейшую анимацию, назовем ее Базовой.

Теперь у нас есть готовая модель. Анимируем ее при помощи Сharacter studio и модификатора Morpher. В этой части урока мы рассмотрим Сегментный морфинг и последовательность установки в стеке таких модификаторов как Physique, Morpher,Flex, MeshSmooth.

Сегментный морфинг позволит нам создавать множество выражений лица на основе всего 7-ми целевых объектов. Проще говоря, представим, что у нашего персонажа всего 7 лицевых мышц и каждой мышцей локально управляет только один целевой объект. То есть, изменяя коэффициенты целевых объектов, мы получим различные выражения лица персонажа. (Конечно 7 это условная цифра, чем больше будет это число, тем разнообразней мимика персонажа). Теперь возьмем нашу Базовую модель и сделаем 7 независимых клонов этой модели, назовем их Цели. Каждой цели назначим управление только одной мышцей. Начнем с глаз. Выделим Цель1 и сделаем, чтобы она управляла закрытием левого глаза, для этого выделим 2 точки верхнего века и опустим их вниз. Конечно, на каркасе низкого разрешения не будет видно правильного результата, поэтому чтобы не работать вслепую, нужно создать объект-ссылку (как мы это делали раньше) и применить к ней модификатор MeshSmooth. После настройки вершин объект-ссылку удалим, а Цель переименуем в Левый глаз закрыт. (см.рис.19)

Далее выделяем Цель2 и применяя аналогичные операции получаем объект Правый глаз закрыт. (рис.20)

Из Целей 3 и Целей 4 делаем объекты для верхней губы, а именно Губа Верхняя опущена и Губа верхняя поднята. (Рис.21)

Из Целей 5 и Целей 6 делаем объекты Брови хмурит и Брови удивление (рис.22).

Из последней Цели 7, сделать объект Рот открыт.

Так как нижняя челюсть содержит большое количество вершин, то передвинуть их вручную было невозможно. Но при помощи модификатора Skin, это не составило больших проблем. В итоге, получили объект Рот открыт. (рис.23)

У нас получилось 7 целей для морфинга, причем каждая цель контролирует только ей одну назначенную часть лица. Выделяем Базовую модель и применяем к ней модификатор Morpher. Загружаем целевые объекты Брови хмурит, Брови удивление, Правый глаз закрыт, Левый глаз закрыт, Губа Верхняя опущена и Губа верхняя поднята, Рот открыт. В модификаторе Morpher в свитке Глобальных параметров увеличим Limits от -50 до 150, это позволит добиться лучших результатов. Далее, меняя значения весовых коэффициентов целевых объектов, можно легко оживить наш персонаж, причем ключи анимации можно делать отдельно для каждой цели.

Добавим нашему чудному персонажу моргание. Для этого лучше сделать новый целевой объект Оба глаза закрыты. (Рис.24)

Назначаем Базовой модели еще один модификатор Morpher, в свитке Глобальных параметров выставим Limits от -0 до 100 и загрузим в канал цели объект Оба глаза закрыты. Открываем меню Track View - Curve Editor и назначаем контроллер Noise. (Рис.25)

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

Несколько слов о правильном расположении модификаторов в стеке. Первым ставим все модификаторы Morpher (в нашем случае их 3): 1-мимика,2-моргание,3-крылья (если бы параметр Limits для всех объектов совпадал, можно было бы обойтись одним Morpher). Вторым идет модификатор Physique (для добавления движения при помощи модуля Сharacter_studio). Третьим модификатор Flex (для имитации динамики мягкого тела). Четвертым модификатор MeshSmooth, для придания модели завершенного сглаженного вида. (рис.26)

Конечно, один урок не в силе охватить всех тонкостей моделирования и анимации персонажа, в нем я постарался раскрыть лишь основные моменты. По возникшим вопросам обращайтесь reactor7070@mail.ru, буду рад помочь.

516 0 850 13
21
2006-03-07
Приветствую земляка... не ожидал встретить... Как жизнь, где работаешь?
2006-03-07
Привет Mark,приятно земляка встретить.Интересно сколько еще людей с нашего города здесь. 3d-графика для меня хобби и просто отдых ,с работой ни как не связано. Хотя пару анимационных презентаций делал для нашего Универа.
2006-03-07
Чувствую что нас не много, но мы берём качеством :-) Удачи!!!
2006-03-07
я тебе ставлю 4 с плюсом
2006-03-08
хорошая четверочка...
2006-03-09
жуть...
2006-03-11
Я новичок, поэтому мне этот урок дал много полезной инфы, правда пока не очень разобрался с анимацией,а так всё прекрасно!!
2006-03-11
Замечательная урок, друг по моделированию, поздравляю!
2006-03-12
Друзья спасибо за отзывы, рад что урок оказался полезным. Всем Удачи!!!
2006-03-13
Отличный урок! Сам недавно проходил по твоему пути, когда делал своего персонажа. Часть способов знал и ранее, но некоторые вещи узнал тут впервые! Например, про параметр Limits. Спасибо большое! И удачи!!!
2006-03-19
Спасибо за замечательный урок! Не побоюсь сказать, что он и вполне актуален и очень качественно выполнен. По крайней мере достаточно ясен. Я не могу сказать, что в нём есть элементы нуждающиеся в "лучшем разжёвывании". Сам я в 3D MAX явный новичок и нормально работаю в нём всего несколько месяцев. Но тем не менее весьма быстро изобразил в трёхмерном варианте персонажа своих комиксов девятилетней давности... [URL=http://imageshack.us][IMG]http://img218.imageshack.us/img218/9688/simplevis34rp.jpg[/IMG][/URL]
2006-04-07
Замечу , что я этот уро еще не пробывал, но пробежавшись...... глазами, понял что урок оч полезен... хотелосьбы видеть на рендере ру побольше именно таких уроков.. И побольше уроков по рендеру.........
2006-04-11
Хороший урок. Победы автору.
2006-09-11
Спасибо!
2006-09-12
Автору спасибо.
2006-09-12
Настоящий мастер-класс!
2007-04-22
Я бы лучше сделал
2007-10-16
урок прикольный, единственное что сглаженная модель получается меньше лоу-полигональной. Какую модель нужноподгонять под скетч?
2008-04-26
Приветсвую. Я новичек и у меня возникло пара вопросов. Помогите их решить плиз. 1. Десна и зубы были сделаны отдельно от модели дракона, потом отредактированы модификатором FFD Box под размер челюсти и присоединены Attach к модели. [u][u]Глаза, а точнее радужная оболочка, обычные сферы сплюснутые модификатором FFD Box и присоединенные Attach к модели.[[/u]/u] Внутри радужной оболочки есть еще две сферы-глаза, которые являются самостоятельными объектами и в дальнейшем будут прилинкованы к Bip Head. Вопрос. Выше подчеркнутым выделена ваша фраза. Но если сделать эту операцию сфера станет частью всей модели и примет цвет модели, а на рисунке глаза-сферы другого цвета. Поясните пожалуйста создание глаз поподробнее. 2. Загружаем целевые объекты Брови хмурит, Брови удивление, Правый глаз закрыт, Левый глаз закрыт, Губа Верхняя опущена и Губа верхняя поднята, Рот открыт. Вопрос. Как это сделать (поподробнее)?
2009-02-21
Урок отличный! Действительно урок, а не поверхстное описание собственных действий. Благодаря этому уроку у меня на модель персонажа хватает вечера. Огромное спасибо автору!
2009-06-03
Да спс, за урок позновательный для меня как для новичка) Но с головой, с кистями и со ступнями проблемы у меня)
RENDER.RU