Оффтоп Rakot
1 078

Создание волос главной героини игры In the Valley of Gods

Опытом делится ведущий художник Campo Santo Джейн Нг.

В закладки

При анонсе игры In the Valley of Gods многие отметили характерный дизайн Зоры, одной из главных героинь игры. Особенно понравились людям её волосы, показанные в рекламном трейлере продукта.

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

В 2015 году Эван Нарцисс написал важное эссе о естественности волос чернокожих людей в видеоиграх. Тогда я в первый раз серьёзно подумала о волосах, их представлении в видеоиграх, и тоска овладела мной.

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

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

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

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

Волосы - это сложная комбинация из геометрии, шейдерной работы и текстурирования, и для этого требуется большое количество правильных итерации. Мне выпала задача моделирования «первого прохода» волос в реальном времени; затенение и рендеринг достались нашему графическому программисту Пете; а текстурирование и внешняя работа - нашему арт-директору Клэр. Мы начали с изучения того, как бы поступили другие разработчики.

Насколько я могу судить, геометрия волос в реальном времени относится к двум категориям: «статичные волосы» и «волосяные пряди». Первая - это то, что я называю полностью непрозрачной геометрией, её вы можете видеть на пластиковой фигурке, например статуэтке Лего (или пример из игры - волосы принцессы Зельды в The Legend of Zelda: Breath of the Wild). Второй вариант используют игры на подобии Uncharted 4, где изображены более «свободные» волосы. Этот подход хорошо подходит для длинных прямых волос. Существуют также гибридные системы, о них хорошо написано в замечательном пособии Баджа Сингха.

Для проектирования волос Зоры необходимо было не только наложить множество текстур для придания объёма, но также просчитать их «текучесть» в движении. Ни один из предыдущих вариантов не подходил.

Наиболее похожим персонажем, выбранным в качестве примера, была Надин Росс из Uncharted 4, но при ближайшем рассмотрении оказалось, что Надин имеет волосы третьего типа с характерными завитушками, сильно отличающимися от более жёсткого четвёртого типа волос Зоры.

Иногда единственный способ решить проблему - это...сделать хоть что-то, даже если это «что-то» будет плохо выглядеть в начале. Поэтому я взяла статичную форму волос из скульптуры, вылепленной Тедом Локвудом и присоединила к ней «большие трубки» из нескольких пересекающихся частей для поддержания формы и плавности волос Зоры. Было важно сохранить некоторую геометрию, которая будет отдаленно напоминать то, что мы в конечном счёте создадим перед наложением шейдеров, создаваемых Пете.

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

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

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

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

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

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

PS. Некоторые GIF-изображения дёргаются после загрузки на сайт, их можно посмотреть в оригинале (ссылка дана в начале статьи).

{ "author_name": "Rakot", "author_type": "self", "tags": [], "comments": 12, "likes": 34, "favorites": 9, "is_advertisement": false, "subsite_label": "flood", "id": 17368, "is_wide": false }
{ "id": 17368, "author_id": 21749, "diff_limit": 1000, "urls": {"diff":"\/comments\/17368\/get","add":"\/comments\/17368\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/17368"}, "attach_limit": 2, "max_comment_text_length": 5000 }

12 комментариев 12 комм.

Популярные

По порядку

Написать комментарий...

Комментарий удален

10

И белой :D

Ответить

Комментарий удален

3

Грудь-пирамидку забыли!

Ответить
1

Не слишком ли опасно огонь так близко держать?

Ответить
–1

Щас такая прическа будет у всех черных девчонок в игорах, да?

Ответить
0

Лучше бы про создание ее жопки рассказали

Ответить
3

Напомнило об американской олимпийской форме:

Ответить
0

Джейн Нг.

Это фамилие такое (с)

Ответить
0

Читается как Джейн Энь (Эн')

Ответить
0

Всегда было интересно, это все парики?

Ответить
0

Очень жаль что без подробностей насчет шейдера :(

Ответить
0

Ну возможно расскажут в докладе после релиза на одном из следующих Unite или GDC

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Уве Болл вернулся в кино
и начал экранизировать flash-игры
Подписаться на push-уведомления