Making Of "Наташа Ростова"

Здравствуйте, меня зовут Черганов Иван, я художник по персонажам для кино и игр, и в этой статье я расскажу о создании своей работы — серии портретов Наташи Ростовой.

01_final_render.jpg

Работа всецело посвящена актрисе театра и кино Людмиле Савельевой и тому незабываемому образу, который она создала в экранизации Сергея Бондарчука "Война и мир" 1965 года. Основная идея — подчеркнуть естественную красоту и грацию, которые актриса привнесла в эту роль, а также передать элегантность, нежность и чувственность самого персонажа.

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

Сбор и анализ референсов

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

02_reference_board.jpg

Моделирование и портретное сходство

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

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

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

03_sculpting_progress.gif

Так как фокусное расстояние камеры в ZBrush довольно условно, проверка результатов работы проходит в Maya при помощи рендера с HDRI-освещением, а также референсов лица, выставленных в качестве image plane для камер. Поверх рендеров я делаю пеинтовер, чтобы нагляднее видеть, какие изменения нужно сделать.

04_maya_camera_backplate.jpg

Детали кожи лица и тела (и его геометрия) были взяты с бесплатных 3D сканов, которые я нашел в сети. Алгоритм переноса деталей кожи следующий.
Исходные данные: у вас есть скан с n-количеством уровней сабдива и собственной топологией, а также своя модель, на которую вы хотите перенести детали скана.

Порядок действий: с помощью программы Wrap4D вы переносите топологию скана на свою модель, а затем в ZBrush заменяете этим результатом первый уровень сабдива скана, который использовали при ретопологии, через операцию Import (нумерация вершин должна совпадать). Теперь ваша модель содержит n-количество уровней сабдива и детали кожи скана. Далее можно продолжить использовать получившуюся модель, если тополигия вас устраивает, или спроецировать детали на свою исходную модель. При этом чтобы исходная модель не потеряла первичные и вторичные детали, можно использовать Morph Target.

Далее детали кожи я дорабатывал вручную: убирал ненужные складки и морщины и добавлял их там, где они были видны в соответствии с референсами.

05_zbrush_viewport.jpg

Для моделирования платья я создал его концепт в Marvelous Designer и экспортировал низкополигональную базовую геометрию. Все складки и детали были потом уже добавлены в ZBrush.

Текстурирование и шейдинг.

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

Карта specular рисовалась слоями с постепенным уменьшением радиуса кисти и увеличением интенсивности. Таким образом уже сама карта получалась объемной в восприятии, а основной идеей было получение этого объема на коже за счет создания точечных областей высокого и низкого отражения.
Карта roughness мною не использовалась, вместо этого шероховатость кожи имитировалась через bump. Сила, с которой bump применялся к поверхности кожи, регулировалась через текстуру bump_height, соответственно визуально, как и в случае использования текстуры roughness, я получал более или менее гладкие участки кожи.

06_skin_texture_set.jpg

Упрощенная схема шейдера кожи:

07_simplistic_shader_scheme.jpg

Настройки шейдера кожи (Maya):

08_skin_shader_properties.jpg

Платье текстурировалось в Substance Painter.

Опишу свой общий подход к текстурированию. Первыми слоями я задаю базовые характеристики цвета, фактуры, roughness и metalic. Далее в каждую из этих характеристик добавляю вариативность, используя noise- или grunge текстуры. Затем идут слои повреждений, слой грязи и слой пыли. В случае тканей добавляю дополнительные складки и замятости. Также в текстуру цвета я могу добавить еле заметную текстуру AO и\или Curvature Map для придания большей объемности. При использовании генераторов масок обязательна ручная доработка результата для придания большей вариативности и устранения повторяющихся паттернов.

09_texturing_layers.gif

Шейдеры, текстуры и геометрия моделей многократно претерпевали изменения в зависимости от результатов рендера.

Моделирование прически (Xgen)

10_viewport_hair_01.jpg

11_viewport_hair_02.jpg

На этапе сбора и анализа референсов я стараюсь получить четкое представление о характеристиках моделируемой прически, а именно: какова ее форма и структура, какие у нее наиболее отличительные детали, какова высота, форма и плотность линии начала роста волос и т.д. Такую комплексную задачу, как моделирование прически, я разбиваю на подзадачи: создание основного волосяного покрова, первичных, вторичных и третичных деталей. Затем определяю количество создаваемых description для прически, способы получения направляющих роста (hair guides) и приступаю к процессу моделирования.

Основные принципы:
- для большего контроля над формой использовать большее число направляющих роста;
- располагать направляющие роста равномерно вдоль поверхности головы;
- увеличивать визуальную сложность прически за счет постепенного наслоения деталей. Сначала моделируется базовый слой крупных локонов, формирующих основную форму прически, затем несколько слоев меньших по размеру локонов, чтобы подчеркнуть естественную комплексную структуру локонов волос и направление их роста, и, наконец, слои малых локонов и отдельных волосков, чтобы сделать моделируемую прическу более "воздушной" и натуральной;
- направляющие роста, расположенные выше на поверхности черепа, должны соответственно располагаться на более высоком слое волос прически нежели направляющие, которые расположены ниже по черепу;
- не допускать визуального пересечения слоев прически.

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

12_baby_hair.gif

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

13_bun_modelling.jpg

Несколько слов о стеке модификаторов.

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

14_hair_clumping_nature.jpg

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

15_xgen_clumping.jpg

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

И, наконец, для получения вариативности волос по длине я использую модификатор "Cut".

16_xgen_noise.jpg

Этот набор модификаторов базовый и при необходимости он дополняется.

Для рендера прически был использован шейдер aiStandardHair. При этом для придания волосам вариативности по блеску для каждого description был создан дополнительный параметр (Xgen – Preview/Output – Custom Shader Parameters), который присваивается каждому генерируемому примитиву и содержит случайное значение в заданном диапазоне. Это значение считывается шейдером (через ноду aiUserDataFloat) и используется при визуализации (параметр Roughness шейдера). Такой подход имеет широкие возможности применения, потому что в этих дополнительно созданных параметрах есть возможность хранить не только значения с плавающей точкой (float), но и цвет (color). Например, цвет волос можно определять через нарисованную Ptex текстуру и здесь же, используя функционал Xgen Expression, задавать вероятность и производить расчет появления седых волосков.

Риг. Создание блендшейпов лица

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

17_rig.jpg

Advanced Rig также предлагает библиотеку мокап анимаций для проверки качества выполненной работы.

Блендшейпы лица я создавал на основе блендшейпов Metahuman. Сначала через Wrap4D я перенес топологию своей модели на модель лица Metahuman, а затем, используя все тот же Wrap4D и ноду Lattice, получал модель с интересующими меня мимическими изменениями и моей топологией.

18_wrap4d_lattice_node.jpg

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

Для этого я импортировал полученные результаты в Maya (модель лица Metahuman с моей топологией без эмоции и с ней), делал блендшейп и экспортировал его через Shape Editor в формате .shp. Затем этот .shp я импортировал уже для своей модели лица и получал мимические изменения Metahuman, но уже у своей модели. Результат, конечно же, не был идеальным и дорабатывался уже в ZBrush с проверкой через рендер в Maya.

19_blendshapes.gif

20_blendshapes.jpg

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

Рендер

Для рендера, опираясь на экранизацию романа, я также смоделировал интерьер.

21_background_interior.jpg

Освещение в сценах осуществлялось с использованием HDRI-карты (взятой с polyhaven) и нескольких дополнительных заполняющих источников света, действовавших исключительно на прическу (настройка через Relationship Editor -> Light Linking).

Заключение

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

1.jpg

2.jpg

815 0 850 17
13
2025-07-28
Потрясающая работа и отличная статья! Спасибо!)
2025-07-29
Отличная статья и работа! +10
2025-07-30
Полезный мейкинг, больше бы таких
2025-07-30
Из за переднего света будто бы у нее слишком бледная кожа
2025-07-31
Супер
2025-07-31
Радим, ну сделай лучше, если сможешь.
2025-08-01
Радим, Всё по канону. Она же представительница дворянского рода. Бледная кожа - один из отличительных признаков статусного положения в обществе.
2025-08-01
слишком блестит... в то время тонны пудры накладывали
2025-08-01
Сергей, ещё и опиум наверное бахала перед сном, как Анна Каренина ))
2025-08-02
Попадание в образ отличное, на мой взгляд
2025-08-04
Извините, но как раз портретного сходства мало. В фильме, она хоть и не красавица, но миленькая. А у вас страшненькая получилась. ) Но образ да - в целом считывается.
2025-08-04
Очень хорошая работа, специалистов способных делать персонажа на таком уровне из России, найдется десятка 2 - 3 не больше!
2025-08-14
Очень крутой разбор! Особенно впечатлило, как Вы подошли к моделированию прически и текстурированию. Выглядит как настоящая работа для киноиндустрии.
RENDER.RU