Making Of "Знакомьтесь, Лилу"

Привет! Меня зовут Юрий Музыря, я живу в городе Ульяновск и удаленно работаю в студии Fox3D в качестве CG-Generalist'а. В основном делаю риг, много много рига... В этой статье я постараюсь рассказать о том, как я делал работу "Знакомьтесь Лилу" и почему это заняло у меня столько времени! :)
Идея, концепт, референс.
Я большой фанат студии Pixar, так что идея сделать персонажа в мультяшном, "пиксаровском" стиле посещала меня давно, и вот когда я, наконец, собрался с мыслями и поверил в свои силы, решил все таки воплотить эту идею в жизнь, сразу четко решив, что буду делать все серьезно и максимально хорошо, так как только могу. Поэтому какое то время я уделил на сбор и изучение референса, пытаясь подметить характерные детали, понять пропорции и так далее.

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

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

Так же, должен отметить, что моделировалось все в разные моменты. То есть сначала я сделал персонажа, потом риг для него, затем смоделировал кое-какую одежду и так далее. Это не самый правильный подход, например, я смоделировал много того, чего не использовал в конце (НОСКИ! Зачем я смоделировал их?!), но так или иначе сцена стала выглядеть как то так:

Риг.
До этой работы я делал лишь пару простых ригов, большинство из которых даже не были персонажами, так что я начал углубленно изучать этот вопрос, смотреть различные видео уроки, так же очень помогла ветка в разделе WIP и то, что по образованию я програмист :) Вообще риг можно представить в виде набора фичей для аниматора, как мне кажется. Например, есть конечность, она может быть ИК или ФК, можно добавить возможность растягивать ее, переключаться между ИК и ФК, добавить "Auto Forearm", добавить удобную систему контролеров. В конце нужно заставить это все масштабироваться, работать быстро и надежно, и риг готов.

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

Мимика управляется небольшим УИ с визуальной репрезентацией. Как я и сказал ничего сверхъестественного. Пожалуй, стоит отметить лишь важность правильного именования объектов, и структурирования сцены, я бы ни когда не разобрался в сцене после перерыва, если бы все было свалено в кучу. Это так же касается всего проекта: текстуры, сцены с объектами, различные рендеры – все это копится очень быстро! Ближе к концу файлов в проекте перевалило за 4000 штук и 30ГБ, представьте каково что-то искать там.

Текстуры, шейдеры.
Для кожи я выбрал misss_fast_skin_Maya шэйдер, он и стал основной причиной рендера в MentalRay, ведь хорошее подповерхностное рассеивание – залог успеха персонажа, особенно, когда речь идет о мультяшном персонаже! Так же для бликов кожи и губ использовал два Blinn шэйдера. Все карты были нарисованы в Zbrush одна за другой. Есть два набора текстур: отдельно для головы и отдельно для тела. Все в 4096px., так же из Zbrush снята 32х битная карта displacement (чтобы тратить вагон оперативки! вот зачем).

Остальные материалы можно разделить на несколько типов: отражающие (это в основном mia_material_x с тремя текстурами Diffuse, Specular и Bump), ткани (тут главным образом нужно отметить falloff на Diffuse map со слегка разными оттенками), матовые (phong, ни чего необычного).

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

Симуляция ткани.
Для симуляции ткани я использовал FX Gear Qualoth, из-за его невероятных результатов в симуляции быстрых движений, а так же из-за того, что он очень не требователен к топологии и выдает прекрасные раздвоенные складки даже на обычной модели. Можно не заботиться о случайной топологии, не использовать garment, и сделать финальный меш из гайда. Так же этот симулятор очень шустрый, что позволило симулировать весьма плотную сетку.

В целом процесс предельно прост. Симулируется гайд, в местах, где ткань прижата ремнем, используется Attach constraint. Так же с помощью карт я слегка поменял параметры жесткости в таких местах как швы. К гайду при помощи Wrap Deformer прикручен финальный меш, и он же, если это нужно, используется для коллизий. Симулировать нужно по слоям, например, сначала футболка, потом куртка, потом гоглы, так как в симуляции последнего объекта участвуют предыдущие.

Симулируются вся одежда, ремни, сумка, гоглы, даже шнурки, другими словами все.

Волосы, прическа, симуляция.

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

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

Так же во время причесывания я делал несколько прогонов симуляции в Houdini, чтобы волосы реалистично легли.

Что же касается симуляции, для начала, я полностью разочаровался в движке от Shave and Haircut, и дело тут вот в чем: у него как и у подавляющего большинства симуляторов нет честной толщины гайда. Это не беда в случае коротких волос или шерсти, так как в этом случае жесткости волос хватает, чтобы торчать, и симуляция выглядит правдоподобно. В случае же с длинными волосами (как у Лилу) массы волос должно хватать, чтобы они всегда свисали, но при симуляции они проваливаются и теряется объем, как раз потому, что гайд не имеет толщины, и даже при наличии Self collisions гайды просто стелятся по голове. Можно конечно повышать жесткость волос, но в таком случае они торчат, как короткие, что выглядит крайне неправдоподобно.

Итак, после долгих поисков я нашел Wire Simulation в Houdini, он обладал так желаемой мной толщиной гайда, так что мне осталось всего лишь научиться им пользоваться и как-то подружить с Maya. Дружатся они примерно так: после анимации в Maya записываешь Piont Cache на объекты участвующие в симуляции (Grow Mesh, Collision Mesh), их вместе с копией гайдов экспортируешь в Houdini через FBX, там симулируешь, экспортируешь симулированные гайды с Point Cache обратно в Maya, и соединяешь гайды волос для рендера с теми, что анимированы. Может показаться слега запутано, но после того как сцены готовы, нужно только заменить Point Cache и нажать на плэй.

Свет, рендер.

Для освещения я использовал один Key Light это лампа над головой персонажа, только у нее Ray Traced тени, это нужно для экономии ресурсов, так как в сцене много волос. Остальные источники имеют очень рассеянные Shadow Map тени, так что картинка не сильно меняется, если сделать их всех Ray Traced.

WindowLight – это свет сквозь окно, Hair_AmbientLight, самый верхний plane light – это заполняющий свет для волос, Hair_BlueBounceLight и Hair_OrangeBounceLight имитируют отраженный свет окна и свет от лампы, BlueBounceLight – это отраженный свет окна для геометрии, остальные источники света – это споты от ламп.

Так же я использую небольшую хитрость в качестве Fill Light: в каждом шэйдере есть AO текстура на Ambient Color, а в mia_material_x шэйдерах настроена Ambient Occlusion с теми же параметрами, это создает заполняющий, очень мягкий и шустрый в расчете свет. Так же в сцене есть Env_Override_Texture для фона в отражениях, она вытягивает весь металл.

В остальном самые обычные настройки рендера.
Кажется все просто, но нет.

759 0 850 21
0
RENDER.RU