На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети "Интернет", находящихся на территории Российской Федерации)

Игры!!!

69 989 подписчиков

Свежие комментарии

«Во славу красивой картинки»: создание окружения и освещения в Grimshade

Как сочетаются двумерные задники и трёхмерные модели.

Grimshade — изометрическая RPG от российской студии Talerock. Действие игры разворачивается в фэнтезийном мире Ри’Фа, где люди сосуществуют с расой антропоморфных животных — элеорами. Игроку предстоит изучать этот мир, принимать решения, влияющие на развитие сюжета и участвовать в пошаговых сражениях. На данный момент разработчики собирают деньги на создание Grimshade на Kickstarter.

Все локации в игре сделаны в виде двумерных задников, а вот персонажи напротив, выполнены в 3D. Арт-директор Talerock Варвара Любовная в колонке для DTF рассказала, как разработчики добились органичного сочетания двух этих элементов, хитром свете, который меняется от того, видит ли игрок объект, а также о дизайне звероподобных существ.

Меня зовут Варвара, я арт-директор студии Talerock, которая делает Grimshade— классическую сюжетно-ориентированную RPG в фэнтези-сеттинге с элементами стимпанка. Сегодня я вам расскажу о том, как мы решили не ходить по простому пути и выдумали свой велосипед во славу красивой картинки.

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

Хорошо, решили мы, давайте тогда сделаем персонажей модельками в 3D, но оставим себе ламповую рисованную стилистику всего остального. И нам, юным и отчаянным, даже в голову не пришло, что начиная ещё со времён Baldur’s Gate разработчики сначала моделировали окружение, а только потом рисовали спрайты. То есть, конечно же, пришло, мы тщательно изучили их опыт, но всё равно решили, что окружение мы нарисуем сами, руками, потому что так интереснее и красивее. И так никто не делал до нас (почти).

Если окружение нарисовано от руки, процедурный Unity-свет отпадает. А также тени и прочие прелести процедурной генерации. Тут точка бифуркации — либо ты рисуешь локацию всю полностью, но тогда модель персонажа может передвигаться только по условной дорожке, никогда не заходя за препятствия, либо у тебя куча мелких спрайтов кустиков и камней (каждый на своём слое), а карту света и теней надо вручную нарисовать поверх собранной локации.

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

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

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

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

Левелдизайнер собирает всё это в красивую, логичную и отвечающую боёвке и квестам локацию, которая затем проходит тщательное тестирование. Только после всех правок она отправляется художникам на освещение, поскольку каждая попытка «подвинуть» объект после этого этапа влечёт за собой корректировку карты света.

Без освещения
С освещением

Карта света — каждый фонарик, каждая падающая тень — рисуется поверх всей локации. На неё добавляются 2D-анимации — дымок, птички, волны на воде, всякие забавности. Затем можно запускать на локацию модельку персонажа.

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

Без цветовой карты
С цветовой картой

О душе и заднем свете

Но что-то я всё о техническом. Пора и о душе. А также об обещанном хитром свете.

Наша изначальная установка — сделать очень красивую игру. Такую, чтобы все наши труды с рисованием от руки окупились (и тут, очевидно, мы тоже немного перемудрили, потому что пользователи в сообществе доказывали нам, что они видят на локации модельки, а не 2D). Далее надо придумать неординарные сеттинги. Например, Болота Арту.

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

Значит, решили мы, когда камера сдвигается вверх по стволу дерева — оно должно в лучших традициях того же «Ведьмака 3» просто растворяться. Исчезать, потому что ничто не должно мешать видеть персонажа на локации. Отличная идея. Но ведь у нас есть карта света локации, в которой учтены эти вот самые деревья? А вот и нет — всё устроено хитрее.

Локация освещена «задним светом», который хоть и находится как бы позади деревьев, не учитывает их от слова совсем. А у каждого дерева (а их на локации может быть больше десятка) есть своя собственная карта света. И когда дерево исчезает, за ним не остаётся постыдная дырка, а открывается взору основная карта света, которая невозмутимо говорит, что всё хорошо и никакого дерева тут не было. Да, велосипед на костылях, но ужасно эффектно выглядит.

Итого, у нас есть двухмерные локации, которые умеют работать с трёхмерными персонажами. У нас есть все возможности 2D, которое выглядит на порядок лучше, чем набор ассетов Unity. У нас даже звук считается с учётом того, где у модельки нога: идёт она по мягкому коврику — звук глухой, а если вторая нога в этот момент на каменном полу — звук соответствует. При этом, напомню, и ковёр, и каменный пол на самом деле всё те же двухмерные спрайты.

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

Элеоры, монстры и нюансы их дизайна

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

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

Наши элеоры порой внезапные (элеор-агама, элеор-лань, элеор-агути), но у них как бы есть прямая отсылка к реальному животному из земного мира. Чего нельзя сказать о монстрах. Наш тотемный и лелеемый, но пока не сделанный монстр — змеебедь, как бы лебедь, но вместо шеи у него змея. Мы строим базовых монстров как химер из животных и не только. И тут у нас полная свобода и сюрреализм. То, что в студии называется «лягушка» на самом деле какое-то дикое месиво собственно лягушки, троглодита и плащеносной ящерицы. И это буквально простейший из врагов, с которыми игроку предстоит биться.

О дизайне и графическом исполнении можно ещё долго вещать. Например, отдельно хотелось бы рассказать о боевых сценах, их гибридности, о том, что у нас с vfx, но «рука бойца колоть устала», хотя если всё вышесказанное вам интересно, то мы с удовольствием продолжим знакомить вас с производственным процессом.

Если вам понравилось наше детище, и вы хотите поддержать Grimshade на Kickstarter, то мы вам будем за это крайне признательны и продолжим творить дивный новый мир игры с утроенной энергией.

Источник

Картина дня

наверх