Всем привет, меня зовут Вадим Удальцов, я 3D-художник студии BIT.GAMES. В этом тексте я расскажу, как устроен арт-пайплайн Storyngton Hall. В создании арта для игры принимает участие достаточно много людей — на протяжении всего процесса мы задействуем около 25 сотрудников нашей студии, а еще дополнительно привлекаем аутсорсеров. Чтобы координировать работу наших специалистов, как раз и нужен четкий пайплайн, в котором прописано, кто ответственен за разные аспекты и в какой момент нужно приниматься за работу. Подробнее об этом — читайте в моей статье.
![](https://habrastorage.org/getpro/habr/upload_files/3fa/976/6d2/3fa9766d2aa3c07bef2f4d62214f87a8.png)
Storyngton Hall — это классическая match-3, главная фишка которой — незамысловатый сюжет с проработанными героями. Завязка сюжета заключается в том, что некое семейство Грин получает в наследство особняк. Но оказывается, что он достаточно ветхий, поэтому его нужно ремонтировать. Позже выясняется, что там живут не только они — постепенно в истории появляется все больше персонажей, завязываются интриги.
Работа над художественной составляющей игры начинается со сценария. Изначально сценарист пишет драфт: формирует идеи и записывает их. На этом этапе важно тезисно прописать основную концепцию. После он собирает все это в историю, словно это целый роман — некая схожесть и правда есть: в игре множество глав, поэтому сценарий можно представить в виде реального романа.
Когда основная история готова, ее делят на главы, квесты и кат-сцены, а также составляют список диалогов и прописывают поведение персонажа. Это выглядит примерно так.
![](https://habrastorage.org/getpro/habr/upload_files/3a5/c3f/293/3a5c3f2937356a7c1bb02b20e30c1e38.png)
Далее все это заносят в таблицу.
![](https://habrastorage.org/getpro/habr/upload_files/1c5/16b/589/1c516b589bbbd4f5e82df4fd9e607578.png)
По этой таблице потом формируют задания для концепт-художников, аниматоров, верстальщиков, UI-художников, VFX-художников, переводчиков. Когда таблица готова, художники собираются на читку сценария и распределяют задачи. В процессе выясняется, какие нужны будут анимации, персонажи, объекты.
После этого начинается главный процесс, мы назвали его «челночным пайплайном» — ассеты постоянно передается из рук в руки и дорабатываются.
Зачастую именно визуальная часть определяет сценарий. У нас есть множество наработок и готовых объектов, поэтому сценарист оценивает схему локации и решает, какие готовые объекты можно использовать, а какие нужно нарисовать. Потом он правит сценарий и заполняет список сюжетных объектов.
Когда сюжетные объекты отрисованы, они попадают в кат-сцену — это помогает художнику по кат-сцене ориентироваться в ней. Далее черновая версия кат-сцены отправляется на ревью — если все хорошо, то все объекты в сцене финализируются и отправляются на отсмотр. После этого они попадают в кат-сцены, где происходит финальная сборка. Поверх всего этого еще накладываются VFX-эффекты.
Создание окружения
События игры происходят в эпоху регентства. Это важная деталь, потому что мы стремимся соблюсти все ключевые аспекты этого времени. Сама локация выглядит как поместье в изометрической проекции.
![](https://habrastorage.org/getpro/habr/upload_files/8f6/886/a20/8f6886a2049f3b9b51f6f4f4496a9154.jpeg)
Вся эта 2D-графика создается в несколько этапов: поиск референсов, концепт модели, моделирование, рендер, постобработка, экспорт в Unity.
Ниже представлен пример, как художник создает драфт локации, основываясь на референсах. Важно уделять внимание всем деталям — интерьеру, одежде, мебели.
![](https://habrastorage.org/getpro/habr/upload_files/e35/4de/d2a/e354ded2a63ca5f18c3ef191b54e69b0.jpeg)
Затем идет этап концептирования объектов. Из сценария художники узнают, какие объекты нужно нарисовать. Соответственно, они начинают подбирать формы и цвета на концепте.
![Тут, например, видно, что художник собирается изобразить сад Тут, например, видно, что художник собирается изобразить сад](https://habrastorage.org/getpro/habr/upload_files/5c1/6d1/7ec/5c16d17ec32892c7ad7d7f0ad62b4ad3.png)
После того, как концепт утвержден, он уходит к 3D-художнику, который занимается моделированием в Maya. На этом этапе не так важно количество полигонов — самое главное, чтобы объект выглядел приятно и точно повторял концепт.
![](https://habrastorage.org/getpro/habr/upload_files/da8/556/50d/da855650d91cc11bf5142d6930c63a3e.jpeg)
Затем модель попадает в рендер. Для этого мы применяем Maya и Arnold. И рендерим все в определенном освещении. Для строений мы используем заливку серым цветом, а также материал из Arnold. И рендерим в двух источниках освещения, направленных относительно друг друга в противоположные стороны. После рендера мы добавляем маски, чтобы в процессе постобработки художнику было удобно наносить цвета.
![](https://habrastorage.org/getpro/habr/upload_files/935/23e/3df/93523e3dfe1e1a65b5297bb9ffd60e5e.jpeg)
В качестве материалов мы не всегда используем серый цвет. Например, у этого стула сразу понятно, что ножки сделаны из дерева, поэтому мы можем поставить соответствующий материал еще на рендере. Также для упрощения последующей постобработки, 3D-художник накладывает на модель определенную текстуру.
Когда модель полностью отрендерена, ее передают художнику, а он начинает процесс постобработки, во время которого дорисовывает все необходимые элементы. Все это происходит в Photoshop.
![](https://habrastorage.org/getpro/habr/upload_files/a29/1c0/83b/a291c083beed8cefb3f3da433557e378.jpeg)
Если вы приглядитесь к изображению выше, то у вас может появиться вопрос: а почему растительность не замоделена? Все просто — 3D-художник потратит на создание зелени куда больше времени, чем 2D-художник.
На следующем этапе ассет передают техническому художнику, который импортирует его в Unity и настраивает для создания локаций. С помощью скрипта картинка преобразуется в соответствующий префаб. В тех-арте мы делим объекты на два типа: объекты земли (ground) и биллборды.
Объекты ground располагаются строго на плоскости, а персонажи по ним перемещается. Герои всегда находятся над уровнем этих объектов — к ним относятся ковры, трава, тайлы земли.
![Пример объекта ground Пример объекта ground](https://habrastorage.org/getpro/habr/upload_files/84a/bdb/b85/84abdbb851421d74cf33b4534887af82.jpeg)
А биллборды всегда «смотрят» прямо на камеру и создают иллюзию объема. Получается, что они всегда возвышаются над землей, а персонаж может проходить сквозь них.
![Пример биллборда Пример биллборда](https://habrastorage.org/getpro/habr/upload_files/ee6/9e6/b1f/ee69e6b1f3cafdcf899fbfc2bb1f054f.png)
Так как по сюжету персонажи восстанавливают особняк, каждая новая комната изначально выглядит немного обшарпанной.
![](https://habrastorage.org/getpro/habr/upload_files/355/a50/9b6/355a509b6c3419d87efe1d3b17accc20.png)
Постепенно герои приводят особняк в порядок.
![](https://habrastorage.org/getpro/habr/upload_files/be2/994/258/be2994258b8b6792c125d6c89e513f5f.png)
В комнатах есть активные объекты, а есть статичные. К статичным объектам относится все, что не меняется со временем, а с активными все наоборот — они могут трансформироваться. Поскольку игрок может заполнять пространство как угодно, у каждого активного объекта есть состояние, которое может меняться в процессе игры.
Соответственно, активные объекты имеют модификаторы для изменения своего состояния. Разберем на примере стула. Допустим, у нас есть пустой game object, на который мы накладываем компонент Decor Placeholder. В этом компоненте содержится вся визуальная информация о нескольких состояниях предмета, и игрок может выбрать любое.
![](https://habrastorage.org/getpro/habr/upload_files/e4b/1d0/c6c/e4b1d0c6cd47576eb73b88afa311fa23.jpeg)
Следующий этап — добавление VFX- и SoundFX-эффектов. Игрок может выбрать любой стул и поставить его на свою локацию. И для каждого действия есть соответствующие эффекты.
На этом производство локации завершается. Следующая важная часть работы — создание персонажей, вокруг которых как раз и вертится вся история.
Создание персонажей
Все герои в нашей игре — это 3D-модели. Процесс создания делится на несколько этапов: концептирование, моделирование, текстурирование, риггинг, анимирование, экспорт в игру.
Сначала идет концептирование — мы записываем все характеристики персонажа, его поведение, какие у него будут анимации и прочее. Когда описание готово, концепт-художник подбирает референсы. На этом этапе важно найти нужный характер, почувствовать его.
![Мы позаимствовали элементы одежды, стойки и постарались передать характер Мы позаимствовали элементы одежды, стойки и постарались передать характер](https://habrastorage.org/getpro/habr/upload_files/8e8/cb0/b9f/8e8cb0b9ffeb1fe8ec3097669d53cdce.png)
Когда референс найден, все это переносится на концепт. Концепт — 2D-изображение, на котором 2D-художник изображает персонажа в А- или Т-позе. Также на концепте художник изображает персонажа в характерных для него стойках. А еще он показывает рост персонажа относительно других.
![Каждый персонаж состоит примерно из 12-13 тысяч полигонов. Наиболее детализированная часть героев — это лицо: оно состоит примерно из 3 тысяч треугольников Каждый персонаж состоит примерно из 12-13 тысяч полигонов. Наиболее детализированная часть героев — это лицо: оно состоит примерно из 3 тысяч треугольников](https://habrastorage.org/getpro/habr/upload_files/ff5/d7c/57b/ff5d7c57b5ac7cc432fb9951601efe10.png)
После того, как общий концепт готов, его отдают на 3D-моделирование в Maya. В своей работе я не использую скульптинг, потому что он отнимает много времени — я приверженец моделирования из примитивов.
У нас есть несколько внутренних требований к моделям персонажей. Они должны хорошо деформироваться, выглядеть гладкими, поскольку игроки видят их близко. Именно поэтому мы делаем сетку на лицах более плотной. Это позволяет добиться мягкой и корректной деформации лица для передачи эмоций.
![](https://habrastorage.org/getpro/habr/upload_files/3ce/d84/20a/3ced8420ac976e1541141821146f427f.png)
Поскольку в игре есть кастомизация персонажей, мы используем несколько моделей для организации нашего префаба. Когда основной драфт модели готов, ее разделяют на сегменты: тело, волосы, платье. Это позволяет легко кастомизировать персонажа.
![](https://habrastorage.org/getpro/habr/upload_files/b3f/702/bd1/b3f702bd1d86effef88291453325773f.png)
После того, как модель прошла тысячу ревью и наконец всех устраивает, наступает этап текстурирования. Его мы делаем в 3D Coat и Photoshop. Поскольку у нас нет как такового освещения, все нюансы изображаются строго на текстуре. Мы используем только одну color-текстуру, которая просто заполнена цветом. Для удобства текстурирования я разделяю модель на сегменты — так, чтобы можно было покрасить язык, полость рта, зубы, глазницы.
![Модель с нанесенной текстурой Модель с нанесенной текстурой](https://habrastorage.org/getpro/habr/upload_files/5cd/751/fc3/5cd751fc3b1580edb99ae12313aafd4a.png)
![Карта текстур Карта текстур](https://habrastorage.org/getpro/habr/upload_files/3c7/2c2/ce9/3c72c2ce93863a3b50b9f371f4373871.png)
Разрешение карты текстур — 2048х2048. Потом все это ужимается в Unity до необходимых размеров.
Параллельно идет подготовка рига. Мы уделяем особенное внимание анимации лиц и платьев — стремимся добиться правдоподобности и стилистического соответствия.
![В лицевой анимации этого персонажа используется около 15 костей В лицевой анимации этого персонажа используется около 15 костей](https://habrastorage.org/getpro/habr/upload_files/8ac/037/fc4/8ac037fc4bfe38587168e04947bc510f.jpeg)
Также мы используем специальные кости в кистях, благодаря чему можем вложить любой предмет в руку персонажам.
![](https://habrastorage.org/getpro/habr/upload_files/596/9dc/e2d/5969dce2d412fe7220c5d22243386fcb.png)
Системами для анимации обладают не только персонажи и органические объекты, но и техника. Например, у нас есть карета, которая умеет входить в дрифт.
![](https://habrastorage.org/getpro/habr/upload_files/06b/684/315/06b68431586c8b538cfec08f08f60da4.png)
Следующий этап — анимирование. Ниже представлено рабочее окно аниматора. Это Graph Editor — здесь можно увидеть ключи, контроллеры и кривые.
![](https://habrastorage.org/getpro/habr/upload_files/381/50f/fb0/38150ffb0d5626586704188b66f9f0a6.png)
![](https://habrastorage.org/getpro/habr/upload_files/171/5df/04b/1715df04b1ef6aaa769e68d21a83df53.jpeg)
Затем модели экспортируют в движок. При этом модель делят на несколько сегментов. Также экспортируются материалы и текстуры. Мы не используем источники освещения, поэтому у нас материал без источников освещения — мы применяем unlit.
![Снизу находятся префабы с анимацией, сверху — префабы туловища и головы Снизу находятся префабы с анимацией, сверху — префабы туловища и головы](https://habrastorage.org/getpro/habr/upload_files/c0a/1e4/4b6/c0a1e44b60792b7cb7272c09056c367d.png)
Когда все модели готовы, мы начинаем создавать кат-сцены. Мы работаем в собственном менеджере кат-сцен. Там мы можем добавить любую анимацию для любого персонажа, задать конкретный путь и прописать диалоги.
![Менеджер кат-сцен Менеджер кат-сцен](https://habrastorage.org/getpro/habr/upload_files/b86/94f/959/b8694f95989e637ad18c5466955d1b57.png)
![Настройка пути следования персонажа Настройка пути следования персонажа](https://habrastorage.org/getpro/habr/upload_files/8dd/998/17c/8dd99817c5449bbc40c20899c0bebc06.png)
Сверху пример кат-сцены без диалогов. Общий полигонаж сцен в среднем около 70 тысяч треугольников. Но иногда доходило и до 100 тысяч.
Это один из финальных этапов донесения сценарной истории до зрителя.
Работа над геймплеем
Работа над новой механикой начинается с гейм-дизайнера: он ищет подходящую идею и описывает концепцию. Затем за дело берется художник — его задача заключается в том, чтобы найти для фишек форму и образ, который будет смотреться гармонично.
![Пример того, как художник ищет форму для механики, связанной с ключом и медальоном Пример того, как художник ищет форму для механики, связанной с ключом и медальоном](https://habrastorage.org/getpro/habr/upload_files/30d/eb0/a3b/30deb0a3bb9419671f06dacb7bcd2aab.png)
Финальный результат экспортируется в движок.
![Окно экспорта. Для элемента создают собственный префаб, настраивают маску, добавляют анимацию, VFX Окно экспорта. Для элемента создают собственный префаб, настраивают маску, добавляют анимацию, VFX](https://habrastorage.org/getpro/habr/upload_files/23e/8c1/0c3/23e8c10c3681461bfe20e3c8ac3e55cd.png)
У BIT.GAMES есть собственный инструмент для разработки match-3 уровней — он позволяет гейм-дизайнеру раскладывать фишки как угодно. Там можно подбирать любые сегменты, фишки, бэкграунд. С помощью этого редактора создано уже более 1 тысячи уровней.
![Так выглядит интерфейс редактора Так выглядит интерфейс редактора](https://habrastorage.org/getpro/habr/upload_files/151/38d/609/15138d60967f632ab53ca78eb412c932.png)
![Финальный уровень. Все фишки отрисованы в 2D Финальный уровень. Все фишки отрисованы в 2D](https://habrastorage.org/getpro/habr/upload_files/a89/8de/be4/a898debe44d01ff52c0f478107b89ae0.png)
Пайплайн разработки арта совместно со сценарием — сложный процесс, который совмещает в себе компетенции множества специалистов разных профессий. В нашем проекте сюжет имеет особое значение, поэтому весь процесс подчинен потребностям сценаристов. Мы следим за тем, чтобы арт-элементы соответствовали выбранной временной эпохе, а также максимально поддерживали стремление сценаристов рассказать историю.
Хотя иногда происходит и наоборот — сценарист формирует историю, учитывая, какие ассеты уже нарисованы. В результате получается неразрывная связь между разными игровыми аспектами — в процессе разработки они формируют друг друга. Спасибо за внимание!