Pixonic
22 325

От идеи до 3D: как концепт-арт попадает в игру

Как работают моделлеры, и почему 3D-модели могут отличаться от концепт-артов — третья статья из цикла «Арт» для начинающих разработчиков.

В закладки

Автор: Валерий Букаренко, глава арт-отдела Pixonic. С детства увлекался разработкой игр, графикой и 3D-моделированием. В геймдеве с 2004 года, в основном занимался созданием трехмерной графики.

В этом цикле мы уже рассмотрели, как выбрать визуальный стиль для игры, и зачем нужен концепт-арт. Пора делать внутриигровой арт — то, что игрок будет видеть на смартфоне, мониторе или телевизоре. Но сначала определим, с чего начинается работа над игрой для любого художника — будь то концептер персонажей или 3D-моделлер окружения.

Разработка арта всегда базируется на первом концепт-арте — именно он должен передать настроение будущей игры, задать стиль, показать всю красоту идеи геймдизайнера и зарядить команду энергией.

Первый концепт нового проекта студии Playdead, создателей Limbo и Inside

Арт выше отлично передаёт атмосферу будущей игры. Одинокая фигура бредет из тьмы к свету, но в то же время от тепла ветхой лачуги к холоду. И мы понимаем, что этому человеку предстоит долгий путь сквозь метель к надежде. Одна картинка передает настроение всего будущего проекта, толкает художников делать новый арт, а программистов — писать код.

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

Что делать с концептами, которые уже есть

Ответ прост — отдать их 3D-моделлеру или 2D-художнику, в зависимости от проекта. Или заняться моделлингом самостоятельно, если их нет.

С 2D всё немного проще, потому что концепты уже двумерные. Но тут тоже есть свои нюансы — арт должен быть качественно перерисован в финальный вариант, на сценах должны быть выделены интерактивные элементы, часть 2D-арта уходит аниматорам и так далее. Но сейчас мы подробнее рассмотрим ситуацию с 3D-проектом (хотя многие моменты будут справедливы и для 2D).

Концепт-арт — главный референс для работы моделлера или художника. Чем подробнее концепт проработан со всех возможных ракурсов, тем проще сделать игровой объект.

Концепт-арт для XCOM 2. 3D-моделлер сравнительно легко превратит такой рисунок в трехмерную модель — ему не придется думать, как выглядит персонаж со спины, и как будет работать оружие.

Теперь ознакомимся с базовыми принципами трехмерного моделирования — это поможет понять суть работы 3D-моделлера, если вы не собираетесь делать объекты самостоятельно.

Сначала — основные термины. Любая модель называется меш (mesh). Меш состоит из полигонов (polygon) или поверхностей/фейсов (face), а у каждого полигона/фейса есть ребра (edge) и вершины (vertex).

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

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

Работа моделлера напоминает работу скульптора, который создает объект, постоянно сравнивая его с 2D-образом. Результат часто может отличаться от концепта (об этом ещё поговорим), но одна из главных характеристик хорошего моделлера — способность точно передать в 3D заложенный образ.

Что делает моделлер

Рассмотрим самые базовые методы. Любую модель можно буквально вытянуть из простого трехмерного объекта. Это называется extrude (выдавливание) — берется простая фигура, наиболее близкая к финальной форме, выбирается любой её полигон или группа полигонов, после чего они «вытягиваются» из модели.

Как «вытянуть» башмак из цилиндра

Другой метод — cut (разрезание) — менее простой и немного напоминающий резьбу по дереву. Инструмент разрезает поверхности и создаёт на них новые грани, вершины и полигоны.

Пример «резки» головы из простой коробки

Затем моделлер берет каждую точку (вершину) модели и двигает её, чтобы придать правильную форму. Комбинируя перечисленные методы и ещё массу других техник, моделлер получает финальную модель.

Полигонаж

За последнее время графика в играх сделала ощутимый шаг в плане качества и реализма. Тут не обойтись без высокодетализированных моделей, а чем больше деталей — тем больше полигонов. Такие модели называют high-poly или высокополигональные модели.

Хорошая высокополигональная модель может состоять из миллионов треугольников. Но если каждая модель в игре будет такого уровня, то типичный компьютер просто не сможет их обработать и одновременно вывести на экран. Поэтому чаще моделлер сначала делает high-poly модель, а потом — её низкополигональную копию, которая называется low-poly. К тому, зачем тогда нужна high-poly модель, мы ещё вернёмся.

Процесс создания low-poly на основе уже существующей high-poly модели называется ретопология. Именно low-poly модели игроки видят в большинстве графически простых игр. В ААА-проектах персонажи, как правило, mid-poly или мiddle-polygons — это примерно по 50 тысяч треугольников на модель. Low-poly — в основном до десяти тысяч, а high-poly — гораздо больше пятидесяти.

High-poly робот на 6 500 000 полигонов и этот же робот, состоящий из 8 900 полигонов
Те же роботы без полигональной сетки

Материалы и текстуры

Когда 3D-моделлер создает модель в редакторе, она по умолчанию покрыта серым матовым материалом. Material (материал) — это определенные свойства поверхности, по которым человеческий глаз поймет, из чего сделана модель — металл, пластик, ткань, стекло. То есть материал — это, в частности, способность отражать свет, преломлять его и так далее.

Texture (текстура) — это 2D-изображение поверхности 3D-модели. Вы легко отличите серый пластик от серого металла просто по бликам, но они могут иметь один и тот же рисунок на поверхности.

Пример из жизни: обычно ткань плохо отражает свет, зато у неё есть текстура и рисунок. Текстура ткани — это её шершавость (например, парча или мешковина), а рисунок — узор на поверхности. В 3D-моделях и рисунок, и шершавость — это 2D-текстуры, а способность отражать свет и блики на поверхности — это материал.

Чтобы получить красивую модель, мы сначала придаём свойства её поверхности, чтобы она выглядела так, словно сделана из нужного материала — для робота это будет металл. Затем «покрываем» модель текстурой — 2D-картинкой с надписями, основными цветами, камуфляжем и так далее. Все равно, что сначала слепить из серого пластилина куклу, а потом её покрасить.

Чтобы покрыть текстурой 3D-модель, последняя должна быть раскроена в плоскость, ведь текстуры — это всего лишь 2D-картинки. Это называется mapping (мэппинг модели) — создание двумерной развертки трёхмерной модели.

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

После этого модель практически готова.

Для чего нужны high-poly модели

С их помощью можно сделать так, чтобы низкополигональная модель стала выглядеть как высокополигональная. Это называется baking normal map (запекание карты нормалей) или создание текстуры карты нормалей.

Высокополигональная модель запекается в текстуру для низкополигональной модели. Выглядит это так: выбираете high-poly модель как источник запекания текстуры → выбираете её low-poly копию как приемника → указываете название и размер текстуры → нажимаете кнопку «запекание» (bake).

В этот момент вся детализация с high-poly модели переносится в специальную текстуру, которая сразу же накладывается на low-poly модель. В результате получается текстура, которая называется normal map, и низкополигональная модель начинает выглядеть как высокополигональная, хотя количество полигонов остаётся прежним.

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

Напоследок о текстурах. Их на модели может быть больше одной: на примере выше это текстура окраски поверхности (diffuse-текстура) и текстура, которая содержит в себе информацию о детализации модели (normal map).

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

Почему 3D-модель может отличаться от 2D-концепта

2D-художник не ограничен никакими рамками, кроме своего таланта. Он может нарисовать любую картину, наполнив её бесконечным числом деталей и источников света, создать любую по сложности и качеству тень. Но моделлер жёстко ограничен в количестве полигонов, материалах и размерах текстур. А значит, их качестве.

Для понимания расскажу, в чем основная проблема проектирования 3D-моделей для мобильных игр. Представьте, что вы делаете игру для владельцев самых разных смартфонов — в том числе с 500 МБ оперативной памяти и слабым процессором. Ограничений тут будет много, и всё нужно учесть. К примеру, модель должна состоять не более чем из 7000 треугольных полигонов, максимальное разрешение текстуры — 1024×1024 пикселя, никаких полупрозрачных поверхностей, и ещё масса нюансов.

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

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

Инструменты моделлера

Для создания 3D-моделей используется множество инструментов. Например, Autodesk Maya или Max, Blender или ZBrush. Моделлеры обычно используют сразу несколько.

В Autodesk Maya, Max или Blender (кстати, бесплатный) можно создать практически любую трёхмерную модель или сцену, настроить свет, создать спецэффекты, анимацию и так далее — это полноценные программы для работы с трёхмерной графикой.

Но есть и более специфичный софт. К примеру, ZBrush и Mudbox специализируются на создании персонажей методом лепки скульптуры, но в них гораздо сложнее сделать прямые и строгие формы — например, механизмы. Поэтому 3D-моделлеры часто используют Max и Zbrush параллельно.

Раньше для создания текстур приходилось использовать исключительно 2D-редакторы, вроде Photoshop. Но в последнее время появились программы, которые позволяют легко текстурировать модель сразу в 3D. Например, Substance Painter или пакет программ Quixel. Теперь можно красить кистью прямо по модели, что сильно ускоряет процесс. А набор готовых кистей и материалов позволяет делать это даже качественнее, чем раньше. Художнику больше не нужно с нуля рисовать ржавый металл на корпусе автомобиля — в программах уже есть нужные материалы. Достаточно «окунуть» в них кисть и нарисовать реалистичную ржавчину сразу по поверхности.

Типичный воркфлоу моделлера:

  1. Создание high-poly модели по 2D-концепту.
  2. Создание low-poly модели на базе hi-poly модели (ретопология).
  3. Мэппинг low-poly модели — создание развертки модели в плоскость для последующего текстурирования.
  4. Запекание деталей с high-poly модели на low-poly, чтобы вторая выглядела как высокополигональная. Получение normal map.
  5. Создание текстур.
  6. Модель передаётся аниматору.

Узнаваемые образы в играх

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

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

Вспомните BFG — ведь это просто оружие, но любой, кто играл в Doom, представляет его себе как большую чертову пушку, стреляющую зеленым шаром и убивающим все живое вокруг. Или Redeemer — первая управляемая ракета в шутерах. Или Serious Sam с безголовыми, вечно орущими самоубийцами с дымящимися пушечными ядрами в руках. Всё это — образы, которые врезаются в память навечно.

Угадайте название игры по одной картинке

Каждая игра должна быть по-своему уникальной. Даже если игра — это клон другой игры. Иначе игрок просто не обратит на неё внимание или быстро её забудет.

Поэтому ключевой арт всё же лучше делать уникальным вместе с художниками и моделлерами. В крайнем случае можно купить готовые ассеты и модифицировать их до неузнаваемости — это займет меньше времени, но размах фантазии будет ограничен.

Домашнее задание

В этот раз пункт только один. Возьмите любой из своих концепт-артов и сделайте по нему внутриигровой объект. Сами или отдайте на аутсорс — не важно. Это может быть 3D-персонаж, 2D-локация или какой-нибудь космический корабль. Главное, чтобы объект максимально близко передавал образ, заложенный в концепт-арт, и был уникальным.

А в следующей статье мы выйдем на финишную прямую цикла — будем объединять всё в одной сцене и начнём сбор работ на конкурс. Призом в этот раз будет Limited Edition Kingdom Hearts III PS4 Pro Bundle.

Эта статья — часть нашего большого проекта с vc.ru. Если выполнять все задания, можно — ни много ни мало — научиться делать видеоигры. И выиграть PS4 Pro в конце каждого цикла статей.

Узнать правила
{ "author_name": "Pixonic", "author_type": "editor", "tags": [], "comments": 6, "likes": 52, "favorites": 27, "is_advertisement": false, "subsite_label": "pixonic", "id": 60299, "is_wide": true, "is_ugc": false, "date": "Tue, 05 Mar 2019 16:39:29 +0300" }
{ "id": 60299, "author_id": 181238, "diff_limit": 1000, "urls": {"diff":"\/comments\/60299\/get","add":"\/comments\/60299\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/60299"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 181238 }

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

Популярные

По порядку

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

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

Ответить
0

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

Ответить
0

Почему всё квадратное?

Ответить
0

Можно уточнить вопрос? Что все?

Ответить
0

Подскажите пожалуйста "любой из своих концепт-артов". Под "свой" имеется ввиду нарисованный лично мной?)

Ответить
0

Привет! Главное, чтобы он принадлежал вам, а так можно заказать у художника) Подробнее писали в прошлой статье про концепт-арт: https://vc.ru/pixonic/58186-concept-art

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "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" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "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": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&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": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления
{ "page_type": "default" }