ПРАВИТЕЛЬСТВО РОСССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Кафедра информационных систем в искусстве и гуманитарных науках
ДОПУСТИТЬ К ЗАЩИТЕ
Заведующий Кафедрой
информационных систем в
искусстве и гуманитарных
науках
___________(Борисов Н.В.)
“_____”_______________2016 г.
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
Основная образовательная программа
«Прикладная информатика в области искусств и гуманитарных наук»
Направление 230700 «Прикладная информатика»
Уровень Бакалавриат
«Создание моделей и анимации для анимационного фильма «Нейл»»
Студента Коротких Алексея Евгеньевича
_______________________
(подпись студента)
Руководитель ст. преподаватель СПбГУ
Логдачева Елена Викторовна
__________________________
(подпись руководителя)
Санкт-Петербург
2016
АННОТАЦИЯ
выпускной квалификационной работы
___________________________________________________________________________
(фамилия, имя, отчество)
название выпускной квалификационной работы
_______________________________________________________________
_______________________________________________________________
Пояснительная записка 44 страницы, 29 изображений, 10 источников.
3D ГРАФИКА, ТРЕХМЕРНОЕ КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ,
ТЕКСТУРИРОВАНИЕ, ВИЗУАЛИЗАЦИЯ, ТРЕХМЕРНАЯ
КОМПЬЮТЕРНАЯ АНИМАЦИЯ
Целью данной работы является освоение инструментов и методов
работы для создания 3D моделей и анимации для анимационного фильма.
Задачи - создание 3D моделей персонажей и объектов окружения,
сборка сцены и создание анимации персонажей для анимационного фильма
«Нейл».
В процессе работы использовались редакторы трехмерной графики
Autodesk Maya 2016, ZBrush 4R6 , xNormal 3.19, редактор обработки
изображений Adobe Photoshop CC.
Автор работы ___________________ _____________________________
подпись
(фамилия, имя, отчество)
Руководитель работы ____________ _____________________________
подпись
(фамилия, имя, отчество)
3
Оглавление
Определения........................................................................................................ 4
Введение.....................................................................................................5
1. Создание персонажей............................................................................8
1.1. Нейл................................................................................................. 8
1.1.1. Эскиз Нейла............................................................................. 9
1.1.2. Моделирование и текстурирование Нейла......................... 10
1.1.3. Создание шерсти Нейла........................................................12
1.1.4. Создание рига Нейла.............................................................16
1.2. Змея-испытатель...........................................................................22
2. Создание объектов окружения........................................................... 23
2.1. Растительность............................................................................. 24
2.1.1 Пальмы.................................................................................... 24
2.1.2. Лиственное дерево................................................................ 28
2.1.3. Кустарники и низкие растения.............................................29
2.2. Изобретения Нейла...................................................................... 29
2.3. Другие объекты окружения......................................................... 30
3. Сборка сцены.......................................................................................32
3.1. Настройка Color Management......................................................32
3.2. Настройка базового освещения...................................................33
3.3. Организация сцены...................................................................... 34
3.4. Расстановка растительности и других объектов.......................35
3.5. ZDepth............................................................................................36
4. Анимация............................................................................................. 40
Заключение.............................................................................................. 42
Список использованных источников.....................................................43
4
Определения
В настоящей работе применяют следующие термины с
соответствующими определениями.
Autodesk Maya – полнофункциональная профессиональная
программная система для создания и редактирования трёхмерной графики
и анимации.
Zbrush – программа для трехмерного моделирования, основной
особенностью которой является работа с высокополигональными
моделями.
Adobe Photoshop – графический редактор для работы с растровыми
изображениями.
XNormal – программа для запекания текстурных карт.
Текстурная карта (текстура) – изображение, накладываемое на
трехмерную модель.
Тайлинг (англ. tiling) – многократное повторение текстуры на
трехмерной модели.
Развертка (англ. mapping, UV map) – соответствие между
координатами на поверхности трёхмерного объекта (X, Y, Z) и
координатами на текстуре (U, V).
Карта нормалей (англ. normal map) – текстурная карта, хранящая
информацию о нормалях.
Запекание (бэйк, англ. baking) – процесс переноса информации с
высокополинональной модели на низко- или среднеполигональную модель
путем её преобразования в растровое изображение.
Топология (англ. topology) – сетка, сформированная совокупностью
вершин, ребер и полигонов, составляющих один 3D объект.
Mental ray – программа для визуализации.
5
Введение
Более 40 лет прошло с момента первого применения компьютерной
графики в художественном кино. Отправной точкой для аниматоров и
ученых того времени стало появление в фильме «Мир будущего»
трехмерной модели руки, созданной Эдом Катмуллом. Следом за кино
новые технологии проникли и в мультипликацию. В 1983 году свет
увидело новое творение Джона Лассетера «Там, где живут чудовища».
Именно в нем Джон Лассетер впервые воплотил свою идею применения
3D технологий в анимационном кино, именно эта идея в дальнейшем
подарила нам легендарные «Luxo Jr» и «Звезда цирка», именно она дала
нам возможность наслаждаться такими современными мультфильмами как
«ВаллИ», «Головоломка», «Зверополис» и многими другими.
Развитие 3D технологий продолжается и по сей день, и идет оно
весьма быстро. То, что раньше создавалось командами людей неделями и
месяцами, сейчас может сделать один человек. Индустрия мультипликации
растет, растет и потребность в квалифицированных специалистах,
владеющих современными инструментами и способными применить их на
практике.
В соответствии с вышеперечисленными факторами основной целью
данной работы стало освоение инструментов и методов работы для
создания 3D моделей и анимации для анимационного фильма.
Под усвоением инструментов и методов работы понимается поиск
решений, с помощью которых с доступными средствами можно достичь
результата, необходимого для анимационного кино и удовлетворяющего
другим поставленным задачам. Если говорить более конкретно, то в
данной работе рассказывается о создании 3D моделей персонажей и
объектов окружения для анимационного фильма «Нейл», сборке сцены, а
также о создании анимации персонажей.
6
Для осуществления вышеперечисленных задач были рассмотрены
технологии, инструменты и методы, применяемые как крупными
анимационными студиями, так и одиночными авторами, которые в
совокупности позволяют выйти на новые решения конкретных проблем,
возникающих в процессе выполнения поставленных задач. Кроме этого,
найденные решения могут быть полезны и для работы над сходными
проблемами в будущем.
В большинстве случаев, прежде чем перейти непосредственно к
реализации определенного этапа, в данной работе формулируются
некоторые требования на основании препродакшена и того факта, что
контент создается для анимационного кино. Например, по сценарию один
из персонажей (гепард Нейл) будет ходить как на 4-х лапах, так и на 2-х,
соответственно, необходимо предусмотреть это заранее, так как это может
повлиять и на дизайн, и на топологию модели, и на риг. Далее, имея
примерное представление о будущей модели или сцене, начинается
реализация. В данной работе осуществляется попытка максимально связать
вместе продакшн и препродакшн, так как именно грамотная реализация
последнего может стать ключевым моментом в производстве хорошего и
качественного мультфильма.
В первой главе речь пойдет о создании персонажей. На основании их
описания создается примерный эскиз их внешнего облика, затем создается
непо средственно геометрия модели, рисуются текстуры, при
необходимости настраивается шерсть, создается риг, а также модель
подготавливается к финальной визуализации.
Во второй главе рассказывается о создании объектов окружения, в
третьей же речь пойдет о сборке сцены, используя эти самые объекты, о
настройке света и визуализации.
7
В четвертой главе говорится об анимации. Анимация создается на
примере реализации небольшого промо-ролика, представляющего одного
из персонажей.
8
1. Создание персонажей
Создание персонажей начинается ещё с момента написания
сценария, а иногда и формирования самой идеи. Именно на этапе
препродакшена продумывается характер, их место в сеттинге
мультфильма, их цели, роль и другое, что дает нам понимание сути
персонажей. Задача художника здесь максимально точно воссоздать в
визуальной форме созданного авторами персонажа, возможно, привнести в
него что-то новое. В данной главе осуществляется попытка выполнить эту
задачу на примере двух персонажей: гепарда Нейла и змеи-испытателя.
1.1. Нейл
Нейл – главный персонаж мультфильма. Он гепард, живущий в
джунглях. В детстве он нашел вещи (инструменты, материалы),
оставленные людьми из экспедиции. С тех пор он создает различные
изобретения из доступных ему материалов и испытывает их с другими
обитателями джунглей. Если говорить о его характере, то этот на самом
деле добродушный кот может слегка увлечься своими исследованиями и,
сам того не замечая, начать вредить окружающим. У него имеются повадки
человека, например время от времени он передвигается на двух лапах.
1.1.1. Эскиз Нейла
Имея описание Нейла можно начинать придумывать его внешний
облик. Примеры промежуточных вариантов можно увидеть на рисунке 1.
9
Рис. 1 – Ранние эскизы Нейла.
Финальный эскиз Нейла представлен на рисунке 2.
Рис. 2 – Финальный эскиз Нейла.
10
1.1.2. Моделирование и текстурирование Нейла
Теперь, имея на руках эскиз персонажа, можно переходить к
моделированию, но перед этим очень важно полностью предусмотреть те
моменты, которые позволят нам сделать модель качественной, пригодной
для анимации, и, что главное, дадут нам возможность сделать персонажа
таким, каким он был задуман. Если говорить конкретно о Нейле, то
важными моментами в его реализации можно выделить следующее:
Так как модель будет сглаживаться для возможности её показа
крупным планом, необходимо делать топологию пригодной для
этого, чтобы не возникало «затяжек», «звезд» и других
артефактов;
Топология должна быть пригодна для будущей анимации;
Геометрия должна предусматривать дальнейшее наложение на
неё шерсти;
Существует множество подходов к моделированию персонажей, в
данном случае сначала создается болванка в ZBrush. Это позволяет
довольно быстро и точно найти общие формы, пропорции, объёмы. На
болванке нет необходимости вдаваться в мелкие детали, подобные вещи
прорабатываются далее, целью данного этапа является поймать образ
персонажа.
После завершения болванки была начата работа над финальной
геометрией тела, которая должна предусматривать вышеперечисленные
требования. Для её создания использовалась программа Autodesk Maya. С
помощью инструмента Quad Draw на основе созданной ранее болванки
была сделана ретопология, в процессе чего был получен следующий
результат (см. Рис. 3). Кроме этого, используя стандартные средства Maya,
была создана UV развертка и в программе Adobe Photoshop нарисованы
текстуры цвета (diffuse), рельефа (normal bump), интенсивности и
характера отражений (specular и glossiness).
11
Рис. 3 – Финальная геометрия модели Нейла.
Далее, создав оставшиеся модели (глаза, зубы, гогглы) и текстуры
для них, переходим к настройке материалов для дальнейшей визуализации.
Так как для визуализации было решено использовать визуализатор mental
ray, в качестве шейдера для геометрии персонажа был выбран
mia_material_x_passes, созданный для работы с вышеназванным
визуализатором. Данный шейдер предоставляет достаточно гибкий и
обширный набор настроек для создания материалов. Все созданные карты
добавляются в соответствующие поля, настраиваются необходимые
свойства, в том числе и настройки качества. Важным нюансом здесь
является корректный выбор цветового пространства загружаемых текстур.
В нашем случае визуализатор будет автоматически производить расчеты в
линейном цветовом пространстве, о чем подробнее будет говориться в
третьей главе, в соответствии с этим необходимо самим указывать, в каком
цветовом пространстве создана подгружаемая текстура. Так, например, для
карты цвета в поле Color Space необходимо выбрать sRGB, а для карты
нормалей scene-linear Rec 709/sRGB. В противном случае визуализация
материалов, использующих данные карты, будет проходить некорректно.
12
Кроме этого, для создания некоторых материалов использовались
процедурные текстуры. Например, такие текстуры применялись в
материале глаза, для которого в качестве базы создавался градиент с
необходимыми цветовыми переходами, а в качестве компонентов этого
градиента использовались процедурные карты noise того или иного цвета,
что позволило создать имитацию радужки глаза.
1.1.3. Создание шерсти Нейла
Теперь, имея модель Нейла и создав для неё материалы, можно
перейти к созданию шерсти.
В качестве инструмента для её генерации и настройки был выбран
плагин XGen. Многим он известен по мультфильму «Рапунцель» студии
«Дисней», в котором для создания волос и шерсти персонажей
использовался преимущественно он [1].
В одном из режимов данный плагин, ныне встроенный в Autodesk
Maya 2016, позволяет генерировать на выбранной поверхности множество
кривых, имитирующих волоски (см. Рис. 4). Именно манипулируя
данными кривыми мы можем настроить направление, длину, ширину,
характер будущей шерсти или волос. Для этого имеется множество
инструментов, позволяющих «расчесывать» имеющиеся кривые.
После базовой настройки волос были добавлены так называемые
модификаторы, которые тем или иным образом влияют на шерсть при её
просчете. Так, например, была добавлена вариативность длины волосков,
небольшая потрепанность и некоторые другие визуальные эффекты. Кроме
этого с их помощью была добавлена динамика шерсти, которая
просчитывается в соответствии с анимацией модели, для которой
генерируется шерсть.
13
Рис. 4 – Отображение шерсти в виде кривых.
Покраска шерсти в этом плагине осуществляется с помощью
технологии Ptex, являющейся альтернативой для привычной UV развертки
и позволяющая получать корректный маппинг нажатием лишь одной
клавиши [2]. В данном случае создавались две карты цвета: одна для
корней, вторая для кончиков. Изначально рисовалась текстура цвета для
о б ы ч н о й UV развертки. Полученное изображение переводилось в
линейное цветовое пространство (обоснованно выбранным способом
визуализации) и затем конвертировалось под Ptex. Аналогичным способом
создавались и другие используемые на шерсти текстуры, например карта
интенсивности.
Кроме этого осуществлялась настройка примитива волоска:
настраивалась его форма, максимальная толщина, способ его
визуализации. Последний важный момент, о котором имеет смысл
упомянуть, это превизуализация шерсти. Дело в том, что “честно”
визуализировать шерсть каждый раз при тех или иных её изменениях очень
затруднительно, так как это будет занимать много времени. В XGen
существует возможность предварительной визуализации, которая хоть и в
14
упрощенной форме, но отображает шерсть в окне viewport-а, что позволяет
оперативно вносить и контролировать необходимые изменения.
Так была создана шерсть для персонажа Нейл (см. Рис. 5). Как можно
заметить, она довольно значительно изменила вид персонажа по
сравнению с “голой” геометрией. На следующем этапе создавался риг
Нейла, на нем, кроме создания непосредственно самого рига, необходимо
было понять, насколько грамотно ведет себя созданная шерсть при
изменении позы персонажа или при его движении.
Р
ис.
5 –
Виз
уал
иза
ция
шер
сти
Ней
ла.
15
16
1.1.4. Создание рига Нейла
Начиная разговор о риге, стоит отметить два ключевых принципа, на
основе которых в данной работе разрабатывались риги персонажей.
Первый принцип говорит о том, что риг должен разрабатываться с учетом
тех целей, для которых он будет использоваться. Иными словами,
пользуясь им в дальнейшем у аниматора не должна возникать
необходимость менять его для выполнения заранее поставленных задач.
Второй принцип касается удобства использования. Чем риг более
“дружелюбен” к аниматору, тем больше шанс получить качественную
анимацию.
Создание рига Нейла можно условно разбить на две части: риг лица
и риг тела. Приступая к первому очень важно определить будущую мимику
персонажа. Это касается первого принципа, когда аниматор при работе с
ригом не ограничен и имеет все необходимые средства.
Говоря непосредственно о реализации, было принято построить риг
лица так, что в распоряжении аниматора будет два вида контроллеров.
Первые будут давать возможность манипулировать общими элементами
лица, например, опускать и поднимать веки или уголки рта, двигать
челюстью или ушами. Второй вид контроллеров будет давать возможность
более тонкой настройки мимики.
Изначально вдоль основных линий деформации создавались кривые
на основе геометрии персонажа. Далее на каждой из кривых создавались
так называемые локаторы, положение которых привязано к кривым. Они
представляют собой нулевые объекты, к которым в дальнейшем можно
привязывать другие объекты. В нашем случае это были joint-ы (в
дальнейшем кости). Таким образом, была получена система, позволяющая
и змен яя к ри вые кон т ролировать привязанные к ним ко сти.
После этого для каждой созданной кости создавалась дочерняя, которая
17
позволяет задавать смещение. Привязав к этим костям обычные сферы, мы
получили контроллеры, с помощью которых можем более тонко управлять
мимикой персонажа путем их смещения относительно самой кривой.
Также были добавлены кости для шеи, нижней челюсти и ушей, после
чего геометрия персонажа привязывалась к созданным костям с помощью
инструмента Skin [3].
Следующим этапом стало создание дополнительных, более общих
контроллеров. Для создания этих контроллеров использовался следующий
алгоритм. Создавался некоторый примитив, ставился в удобное для
последующей анимации положение, после чего значения всех его
атрибутов обнулялись с помощью функции Freeze Transform. Далее для
кривых создавались необходимые блендшейпы, которые условно
соответствуют крайним значениям возможной деформации элементов
лица. После с помощью «Expression editor-а» создавались выражения,
связывающие между собой степень влияния блендшейпов и атрибуты
контроллеров. Пример выражения для контроллера верхнего века:
L_upperLidBlend.L_upperLid_down1 =
clamp(L_upperLidBlend.L_upperLid_down1, 1,
-L_upperLidControl.translateY*2);
L_upperLidBlend.L_upperLid_down2 = clamp(0, 1,
-L_upperLidControl.translateY*2);
L_upperLidBlend.L_upperLid_rot1 = clamp(0, 1,
L_upperLidControl.rotateZ/30L_upperLidBlend.L_upperLid_down1);
L_upperLidBlend.L_upperLid_rot2 = clamp(0, 1,
-L_upperLidControl.rotateZ/30L_upperLidBlend.L_upperLid_down1);
L_upperLidBlend.L_upperLid_up2 = clamp(0, 1,
L_upperLidControl.translateY*2);
L_lowerLidBlend.L_lowerLid_up1 = clamp(0, 1,
L_lowerLidControl.translateY*2);
В завершении были добавлены контроллеры для направления
взгляда, привязка гогглов к joint-у головы. Финальный вид рига головы
представлен на рисунке 6.
18
Рис. 6 – Лицевой риг Нейла.
Различные примеры эмоций, полученные с использованием
созданного рига, представлены на рисунке 7.
Рис. 7 – Различные эмоции Нейла.
19
Создание рига тела начиналось с формирования более точного
представления о будущей анимации. Важной задачей стало создание рига
пригодного для анимации Нейла, передвигающегося как на двух, так и на
четырех лапах. Для этого было принято решение добавить у передних лап
возможной переключения прямой и инверсной кинематики. Кроме этого
анимация на 4-х лапах требует плавной анимации тела, для чего была
создана весьма специфичная “эластичная система”, о которой более
подробно рассказывается далее.
Риг тела также представляет собой набор взаимосвязанных костей,
соединенных с уже имеющимся ригом лица. Для привязки новых костей к
геометрии модели использовалась функция Add Influence [3].
Имеет смысл сказать о том, что система костей для спины работает
так, что все её кости привязаны к кривой, управляемой несколькими
контроллерами, что позволяет, манипулируя ими, получать плавное
движение спины. Финальный скелет представлен на рисунке 8.
Теперь для полученного скелета необходимо создать систему
контроллеров, дающую аниматору возможность не обращая внимания на
технические моменты создавать задуманную анимацию. Кроме простых
контроллеров были созданы так называемые трэкеры, которые
отслеживают положение одних костей относительно других. В
зависимости от их близости начинает действовать тот или иной
блендшейп, что решает проблемы в местах сильных сгибов. Также на
лапах была добавлена инверсная кинематика и контроллеры, дающие
полное управление над ней. Финальный вид рига Нейла представлен на
рисунке 8.
Теперь, когда создана модель, настроена шерсть и создан полный риг
Нейла, можно передавать результат для дальнейшей анимации. На
рисунках 9 и 10 изображены примеры финальной визуализации Нейла в
различных позах.
20
Рис. 8 – Риг Нейла.
Рис. 9 – Нейл на двух лапах.
Р
ис.
10 –
Ней
л на
4-х
лапа
х.
21
22
1.2. Змея-испытатель
Змея создавалась тем же образом, что и Нейл, исключая этап
настройки шерсти. Сначала создавались эскиз и болванка для поиска
основных форм. На основе болванки с помощью инструментов
ретопологии была получена финальная геометрия тела змеи (см. Рис. 11).
Дополнительно была создана модель кокосовой каски. Затем с помощью
программы XNormal запекались и рисовались все необходимые текстуры.
После настройки необходимых материалов была начата работа над
лицевым ригом. Аналогично ригу гепарда вдоль основных линий
деформации создавались кривые, к которым привязывались кости, для
управления которыми создавались два типа контроллеров. Риг тела
представляет собой простую последовательность костей, управление
которыми осуществляется так же через контроллеры. Финальный вид
персонажа представлен на рисунке 11.
Рис. 11 – Змея-испытатель.
23
2. Создание объектов окружения
Перед созданием объектов окружения было необходимо определить,
какие из них потребуются для сцены. Сама разработка сцены начиналась с
ознакомления со сценарием и раскадровкой. На их основе создавались как
эскизы самих сцен (см. Рис. 12), так и концепты отдельных объектов (см.
Рис. 13). Очень полезным для экономии времени и поиска лучших решений
бывает использование референсов. Выбирая те или иные референсы нам
важно понимать, какую информацию мы из них берем. Будь то
дизайнерское решение или же технический прием, они должны
максимально помогать нам в формировании образа и заранее учесть
технические особенности реализации.
Рис. 12 – Эскизы сцены.
Рис. 13 – Эскизы объектов окружения.
24
2.1. Растительность
Для создаваемой нами сцены было принято решения создать
несколько видов растений, с помощью которых в дальнейшем будут
собираться джунгли: пальмы, лиственное дерево, кустарники и низкие
растения.
2.1.1 Пальмы
Для создания пальм было решено использовать универсальную
геометрию для листьев и тайловые текстуры для стволов. Под
универсальной геометрией понимается использование одной и той же
геометрии с последующим наложением на неё различных шейдеров. Таким
образом удалось без особых затрат создать множество вариаций пальм.
Само моделирование пальмы начало сь с моделирования
высокополигональной модели пальмы в
Zbrush. Там же рисовался базовый цвет. При
моделировании ствола необходимо было
помнить, что все карты, в том числе и карта
нормалей, в итоге должны быть бесшовными.
Закончив работу с высокополигональной
моделью и базовым цветом необходимо было
создать низкополигональную (см. Рис. 14).
Для её создания использовалась Maya. Для
возможно сти использования тайловой
текстуры на стволе, развертка “ячейки” ствола
была разложена в виде квадрата.
Рис. 14 – Модели ствола.
Далее модели экспортировались для дальнейшего запекания в
программе XNormal. С помощью неё были получены карты Normal map
(Tangent Space), Ambient occlusion и Vertex Color, которые позже
использовались для создания необходимых текстур и материалов.
25
Далее рисовались текстуры. За основу текстуры цвета бралось
полученное ранее изображение базового цвета (Vertex Color) и, используя
фототекстуры и карту AO, текстура доводилась до финального результата.
Когда модель и текстуры были готовы, началась настройка шейдера в
Maya. Для этого использовался уже знакомый нам mia_material_x_passes.
Все созданные ранее текстуры добавлялись в соответствующие поля.
Важно не забывать прямо указывать значение Color Space для загружаемых
текстур. Кроме этого для загружаемых текстур во вкладке Effects
снижалось значение Filter, в противном случае при визуализации текстуры
получались размытым. Далее были настроены значения для полей,
отвечающих за отражения. Одной из важных здесь является настройка,
меняющая их
силу
разных углах
наблюдения
отражающей
поверхности,
и находится
она во вкладке
B R D F. Д л я
активации
этой
настройки
необходимо
включить
параметр Use
Fresnel
Reflection,
который
активируют
Рис. 15 – Материал ствола.
при
алгоритм
вычисления отражений по Френелю [4]. Далее, во вкладке Refraction
задавалось значение Index of Refraction в соответствии с настраиваемым
материалом. После подбора настроек отражений активировался флаг Use
Ambient Occlusion и настраивались нижестоящие параметры. В итоге был
получен шейдер следующего вида (см. Рис. 15).
26
Далее создавались листья.
Для них была смоделирована
универсальная геометрия, на которую позже накладывались различные
материалы, включающие альфу, для получения различных форм листьев
(см. Рис. 16).
Рис. 16 – Геометрия листа пальмы.
В Zbrush создавалась высокополигональная модель с базовым
цветом, которая в дальнейшем запекалась на уже созданную
низкополигональную. В данном случае было необходимо запекать карты
уже на сглаженную модель, при этом сгладить её нужно было тем же
алгоритмом, который будет сглаживать модель при финальной
визуализации. В данном случае использовался алгоритм Maya CatmullClark [5].
Ключевой задачей в создании материала листьев стало имитация
эффекта полупрозрачности, при котором свет частично проходит через
поверхность листа. Одним из способов её решения может служить шейдер
SSS, однако он очень требователен к ресурсам [6]. Поэтому было принято
решения использовать mia_material_x_passes, но задействовать ранее
неиспользуемые поля. Во-первых, в качестве аргумента для Cutout Opacity
во вкладке Advanced была добавлена карта цвета, сохраненная с
альфаканалом, соответствующим форме листа. Во-вторых, в поле Color
Correction в качестве аргумента была добавлена процедурная 3D текстура,
в нашем случае Noise, что позволило добиться небольшого разнообразия в
27
цветах листьев. Третье дополнение касалось как раз полупрозрачности. В
качестве аргумента для Color вкладки Transluency указывалась карта цвета,
добавленная через ноду multiplyDivide с множителем 2, что сделало
собственные тени листа более цветными. Во вкладке Advanced Refraction
была включена опция Thin Walled, значение Transparency увеличено до 0,1,
а в Advanced Reflection отключено свойство Skip Reflection on Inside.
Результат представлен на рисунке 17.
Рис. 17 – листья пальмы.
Далее ствол и листья объединялись вместе и создавались различные
вариации пальм (см. Рис. 18).
28
Рис. 18 – Пальмы.
2.1.2. Лиственное дерево
Вопрос создания различных растений в компьютерной графике
решается уже много лет. Если говорит об актуальных инструментах, то
сейчас множество анимационных и киностудий используют SpeedTree,
работу которого можно наблюдать, например, в фильмах «Мир юрского
периода» и «Аватар» [7]. Именно он и был использован для создания
дерева в нашем случае. Он позволяет строить дерево в виде графа, при
этом управляя различными параметрами его генерации. При этом кроме
геомет рии SpeedTree позволяет генерировать развертку. Перенести
сгенерированное дерево в необходимую программу можно через любой
удобный формат, в данном случае был использован OBJ. После импорта
модели в Maya были созданы необходимые текстуры и уже известным
путем настроены шейдера (см. Рис. 19).
29
Рис. 19 – Дерево.
2.1.3. Кустарники и низкие растения
Для создания некрупных растений использовались уже разобранные
ранее методы: генерация с помощью SpeedTree и использование
универсальной геометрии. Материалы листьев аналогичны созданным
ранее. Примеры растений представлены на рисунке 20.
30
Рис. 20 – Кустарники и низкие растения.
2.2. Изобретения Нейла
Помимо множеств растений, заполняющих сцену, важными
элементами окружения являются изобретения Нейла, помогающие
сформировать образ самой сцены и дать зрителю дополнительную
информацию о персонаже.
На основе эскизов в программе Maya была создана геометрия
изобретений, сделана развертка. Дополнительно были созданы
универсальные материалы древесины, лианы, металла. Назначив
полученные материалы на модель, был получен следующий результат (см.
Рис. 21).
Рис. 21 – Изобретения Нейла.
31
2.3. Другие объекты окружения
Говоря об объектах окружения нельзя не сказать о террейне и скалах.
Для создания террейна создавалась плоскость, которая в дальнейшем
деформировалась с помощью инструмента Sculpt Tool, позволяющим
“лепить” необходимую форму
прямо внутри Maya. Кроме этого был
создан автоматериал, который позволяет, рисуя черно-белые маски с
помощью инструмента Paint Tool прямо по геометрии террейна, обозначать
зоны различных материалов (трава или гравий).
Геометрия скал создавалась в Zbrush, там же высокополигональная
модель упрощалась, для неё создавалась развертка и рисовался базовый
цвет. В Maya полученные карты совмещались с автоматериалом скал, что
позволило добавить на них детали для близких планов.
Также были созданы различные вспомогательные объекты (см. Рис.
22).
Рис. 22 – Другие объекты окружения.
32
3. Сборка сцены
3.1. Настройка Color Management
Перед началом работы со сценой было необходимо внести некоторые
изменения в работу визуализатора с цветом для его более корректной
работы. Работа с цветовыми пространствами важно для создания
физически корректной визуализации. Дело в том, что все алгоритмы,
используемые визуализатором mental ray, ориентированы на работу с
линейным цветовым пространством (Gamma
1 . 0 ) . Maya 2 0 1 6
предоставляет достаточно гибкий набор инструментов для работы с
33
цветовым пространством. Данные инструменты совместимы с
визуализатором mental ray, используемым в нашем проекте.
В окне настроек редактора Autodesk Maya было активировано поле
Enable
Color
Management, позволяющее управлять цветовым
пространством сцены. В качестве цветового пространства для
визуализатора был выбран scene-linear Rec 709/sRGB, а для окна viewport
было выбрано пространство sRGB(Gamma 2.2).
Не вдаваясь в подробности понятия гаммы можно сказать, что
цветовое пространство sRGB (Gamma 2.2), в отличие от линейного (Gamma
1.0), создано с учетом технических особенностей мониторов и зрительных
особенностей человека. Таким образом, изображение с гаммой 2.2
выглядит более естественно (см. Рис. 23).
Рис. 23 – Сравнение sRGB и линейного цветовых пространств.
3.2. Настройка базового освещения
Данный раздел называется настройкой именно базового освещения
по той причине, что финальное освещение выставлялось только после
финальной анимации. Так как создаваемая сцена является экстерьером, то
было решено для базового освещения использовать Physical Sun and Sky.
Physical Sun and Sky являются физически корректными и достаточно
гибкими в настройке шейдерами. Чтобы добавить их в сцену достаточно в
окне настроек визуализации в разделе Indirect Lighting нажать кнопку
Create напротив подписи Physical Sun and Sky.
34
После этого действия создаются три шейдера: mia_physicalsky,
mia_physicalsun и mia_exposure_simple. Все эти шейдеры определенным
образом связанны друг с другом. С помощью mia_physicalsun задаются
направление источника света (солнца) и настройки теней. Большинство
остальных настроек, таких как Multiplier (интенсивность) или Haze
(дымка), этот шейдер наследует у mia_physicalsky. mia_exposure_simple
является шейдером, имитирующим линзу камеры.
Также, при создании physical sun and sky автоматически активируется
Final Gathering (FG).
FG это метод, имитирующий глобальное освещение (см. Рис. 24).
При этом методе на любой поверхности в сцене генерируются так
называемые точки FG, которые испускают лучи. Эти лучи “запоминают”
яркость и цвет тех объектов, с которыми столкнулись, и возвращаются
обратно в точки FG, после чего эта информация используются
визуализатором для имитации глобального освещения [8]. Одной важной
особенностью при визуализации анимированных сцен с использование FG
является то, что на анимированных объектах точки FG могут
генерироваться неудачным образом, из-за чего будет возникать мерцание.
Решить данную проблему можно выбрав Optimize for Animations во
вкладке Final Gathering Tracing.
Рис. 24 – Результат применения FG.
Существует ещё один известный метод имитации глобального
освещения Global Illumination. Часто,
для получения оптимального
результата, данные методы используются вместе, но для данной работы
35
было решено использовать только FG. Причиной стало то, что
использование GI значительно увеличивает время визуализации, при этом
на экстерьерах его действие не так сильно заметно.
После выполнения вышеописанных действий были подобраны
настройки созданных шейдеров, источников света и визуализатора.
3.3. Организация сцены
При работе с большими сценами может возникнуть проблема, когда
количество объектов становится довольно большим. Это замедляет работу
редактора и мешает решать необходимые задачи, именно поэтому особое
внимание уделялось организации сцены. В нашем случае было выделено
несколько категорий объектов, которые с помощью инструмента Layer
были разбиты по соответствующим слоям. Данный инструмент позволяет
объединять объекты в группы и определенным образом влиять на все
объекты конкретной группы одновременно, в частности он позволяет
скрывать объекты в сцене, если в какой-то момент в них нет нужды. К
организации сцены также относится и логичное именование объектов
сцены, что будет полезно при поиске объектов в сцене (см. Рис. 25).
Рис. 25 – Окна Display и Outliner.
36
3.4. Расстановка растительности и других объектов
Перед началом расстановки сцены на основе эскизов и раскадровки
был создан так называемый вайтбоксинг (англ. whiteboxing), который с
помощью примитивов обозначает расположение основных объектов и их
масштаб. На основе сцены, содержащей такие примитивы, был создан
аниматик, речь о котором пойдет в следующей главе. На основе аниматика
были сделаны определенные выводы, в том числе и о правильности
построенной сцены. Другими словами ещё перед началом сборки было
необходимо понять, как лучше строить сцену для достижения
необходимого результата.
После того, как примерная расстановка была ясна, с помощью
стандартных средств Maya были расставлены заготовленные заранее
объекты окружения. Однако, проблемы возникли с расстановкой большого
количества деревьев на большой территории. Первая из них касается того,
что наличие в сцене очень большого количества объектов с высоким
полигонажем сильно замедляет работу редактора и увеличивает время
визуализации. Вторая касается возможности быстрой и вариативной
расстановки большого количества деревьев.
Для решения первой была использована технология mental ray proxy.
Суть её заключается в том, что вместо некоторой необходимой нам модели
в сцене находится примитив, в котором хранится ссылка на внешний файл,
и при визуализации примитив заменяется этим самым файлом [9].
Использование данной технологии позволяет значительное сэкономить
ресурсы и сделать работу художника проще.
Для решения второй проблемы был использован скрипт под
названием spPaint3d, предоставляющий возможность удобной расстановки
объектов на выбранной геометрии [10]. Он позволяет выбрать список
объектов, которыми мы будем «рисовать», по которым мы будем рисовать,
а также задать пределы вариации параметров для масштаба и поворотов.
37
Используя данный скрипт, пальмы были расставлены довольно быстро и
при этом случайным образом. С помощью этого же инструмента были
разложены камни и некоторые другие объекты.
Использование вышеперечисленных методов позволило оптимально
и эффективно собрать сцену, при этом оставив возможность без особых
усилий изменить её при необходимости (см. Рис. 26).
Рис. 26 – Отображение сцены в окне Viewport-а.
3.5. ZDepth
П ом и м о о с н о в н о го п р оход а в и зуа л и з а ц и и б ы л с о зд а н
дополнительный пас, хранящий в себе информацию о расстоянии от
камеры до объекта. В дальнейшем он использовался на этапе
постобработки для регулирования фокуса и добавления атмосферных
эффектов, например таких как туман или воздушная перспектива.
Для его создания был добавлен отдельный слой визуализации, на
котором все шейдеры были заменены на такие, которые не содержат
информации о свете и тенях и сами являются абсолютно белыми. Далее
был добавлен туман черного цвета. В результате были получены
изображения подобного вида (см. Рис. 27).
38
Рис. 27 – ZDepth.
Описанные выше методы и инструменты позволили довольно
эффективно собрать сцену и с помощью приемлемых машинных ресурсов
визуализировать её. Результат визуализации сцены с дальнейшей
постобработкой представлен на рисунках 28 и 29.
39
Рис. 28 – Примеры визуализации сцены с постобработкой.
40
Рис. 29 – Примеры визуализации сцены с постобработкой.
4. Анимация
В данной работе создание анимации осуществляется на примере
реализации небольшого промо-ролика, представляющего персонажа по
имени Нейл.
Ещё до завершения работы над персонажами и сценой, на основе
раскадровки, был создан аниматик, в упрощенной форме представляющий
будущий ролик. Аниматик создавался для более четкого понимая
таймингов, поиска интересных ракурсов, уточнения расстановки объектов
41
и персонажей в сцене. На этом этапе формировалось более точное
понимание будущей анимации персонажей. После завершения аниматика и
всего необходимого контента была начата работа над финальной
анимацией.
Перед тем, как приступить к анимации в финальной сцене, была
создана анимация цикла походки для Нейла. Дело в том, что такая
универсальная анимация потребуется в дальнейшем в тех ситуациях, когда
персонаж просто идет по определенной траектории, поэтому имеет смысл
сделать цикл такой анимации, а в дальнейшем, используя её как базу,
дорабатывать под конкретную сцену. Ключевым моментом является
цикличность такой анимации, что дает возможность корректно повторять
её необходимое количество раз в ситуации, когда персонаж просто
перемещается из одной точки в другую на значительное расстояние.
Говорить о цикле походки для змеи не приходится в силу
объективных причин. Однако змея все же может ползать, поэтому для этого
действия также была создана цикличная анимация.
После завершения анимации походки для Нейла и ползанья для змеи
началась работа над анимацией финальной сцены. Сначала была создана
примерная анимация камер в соответствии с аниматиком. На этом же этапе
создавались ключевые позы персонажей. При этом постепенно уточнялись
тайминги, движения камеры и ракурсы для получения лучшего результата.
После завершения “блочной” анимации началось её уточнение: более
детально прорабатывались кривые, к камере добавлялись эффекты
покачиваний и тому подобное.
Далее было необходимо добавить и более детально проработать
лицевую анимацию персонажей. В завершении всего добавлялась
анимация взаимодействия
осуществлялась полировка.
персонажей с окружающим миром и
42
После завершения работы над анимацией были доработаны свет,
настройки некоторых материалов и настройки рендера, отвечающие за
качество визуализации. Далее была запущена визуализация всех
необходимых слоев визуализации. После её завершения полученные
секвенции были импортированы в программу для композитинга The
Foundry Nuke для дальнейшей постобработки. В ней были добавлены
атмо с ферные эффекты, частицы, глубина ре зко сти, сделана
цветокоррекция. В завершении был сделан монтаж видео и аудио.
Заключение
В рамках данной работы была достигнута основная цель,
заключающаяся в освоении некоторых из инструментов и методов работы,
применяемых для создания 3D моделей и анимации для анимационного
фильма.
Кроме этого были созданы готовые к анимации модели персонажей и
множество моделей окружения. Используя полученные навыки и знания,
была создана готовая к визуализации сцена для анимационного фильма
43
“Нейл”. Также весь созданный контент был использован для создания
промо-ролика, представляющего одного из персонажей. На примере
данного ролика была создана анимация, демонстрирующая возможности
созданного рига персонажей.
В дальнейшем имеющиеся материалы и полученные навыки можно
применить для создания полноценного мультфильма.
Список использованных источников
1.
Autodesk Пресс-центр. [Электронный ресурс] // Autodesk. –
URL:
http://www.autodesk.ru/adsk/servlet/item?
siteID=871736&id=17552918&linkID=407756 (дата обращения:
2.
20.05.2016).
Ptex Overview. [Электронный ре сурс] // Ptex.
http://ptex.us/overview.html (дата обращения: 19.05.2016).
– URL:
44
3.
Edit smooth skinning. [Электронный ресурс] // Autodesk
knowledge
network.
– URL:
https://knowledge.autodesk.com/support/maya/learnexplore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUIDEA1D1658-A32C-4136-8CA6-F7111117DECE-htm.html
4.
(дата
обращения: 02.03.2016).
Что такое PBR: физически корректный рендеринг и шейдинг.
[Электронный ресурс] // Компьютерная 3d графика за кулисами.
– URL: http://3dyuriki.com/2015/02/26/chto-takoe-pbr-fizicheski-
5.
korrektnyj-rendering-i-shejding-2/ (дата обращения: 20.05.2016).
Smooth. [Электронный ресурс] // Autodesk knowledge network. –
URL:
https://knowledge.autodesk.com/support/maya-lt/learn-
explore/caas/CloudHelp/cloudhelp/2015/ENU/MayaLT/files/Mesh-6.
Smooth-htm.html (дата обращения: 17.05.2016).
SSS шейдер. [Электронный ресурс] // Компьютерная 3d графика
за кулисами. – URL: http://3dyuriki.com/tag/sss-shejder/ (дата
7.
обращения: 20.05.2016).
SpeedTree Customer Comments. [Электронный ресурс] //
Speedtree.
8.
– URL:
http://www.speedtree.com/tree-rendering-
comments.php (дата обращения: 19.05.2016).
Understanding Final Gather. [Электронный ресурс] // Pluralsight. –
URL: http://blog.digitaltutors.com/understanding-final-gather/ (дата
9.
обращения 03.04.2016).
Mental Ray Proxies Tutorial for Maya. [Электронный ресурс] //
Antoniobosi. – URL: http://www.antoniobosi.com/maya-tutorialsmental-ray-3d/maya-tutorial-c/maya-mental-ray-proxies-tutorial
(дата обращения: 20.03.2016).
10. spPaint3d 1.1.1. [Электронный ресурс] // Creativecrash. – URL:
https://www.creativecrash.com/maya/script/sppaint3d
обращения: 25.03.2016).
(дата
В ып уск н ая к ва л иф икационная работ а выполнена м ною
самостоятельно. Использованные в работе материалы из опубликованной
научной, учебной литературы и Интернет имеют ссылки на них.
Отпечатано в ____ экземплярах.
Библиография ____ наименований.
Один экземпляр сдан на кафедру.
Дата
Отзывы:
Авторизуйтесь, чтобы оставить отзыв