Путешествие в мир игрового техно-арта: Часть 1. Создание миров [опубликовано 3 января 2019 г.]
Работа с чистыми и абстрактными формами, цветами и градиентами вовсе не означает, что результаты ваших трудов (изображения, эффекты и пр. способы визуализации) будут примитивными. Для меня всё это открытый холст, который можно значительно дополнить и расширить, используя техно-арт.
Думаю, что, будучи игровыми художниками, мы всегда гонимся за неким воображаемым горизонтом. За этим горизонтом находятся такие слова, как "лучшая графика", "следующее поколение" или "фотореализм". Слова, которые в какой-то момент перестали меня волновать. Последние пять лет я шёл по нисходящей параболической творческой траектории, где вместо того, чтобы идти вверх и желать "большего", теперь стремлюсь к "меньшему".
И кульминацией этого путешествия стало то, что теперь я предпочитаю создавать игровую графику очень своеобразным способом. Графику, которую не нужно облекать в пиксели и которая может быть такой, какая она есть сама по себе. Простые модели, которые поступаются текстурами и картами нормалей и обычно обладают лишь некоторыми цветами вертекса. Простая геометрия, с помощью которой я могу начать создавать что-то внутри выбранного мной движка и накладывать слои того, что обычно называют техно-артом.
Как ни странно, я люблю освещение и смену настроения при работе с графикой в игровом искусстве, так что мои статьи не для тех игровых художников, которые хотят просто перейти на "низкополигональные модели". И не для программистов, желающих освоить простую графику, которую можно без труда создать самостоятельно.
Выходя за рамки
Игровая графика, которую я создаю, иногда смехотворно переусложнена или непрактична, а ведь я прежде всего художник и дизайнер. Но дизайнер с технической базой, поставивший себя в рамки строгих ограничений в качестве творческого вызова и отправной точки. Ограничений, которые не всегда понятны мне самому, но из которых, например, отсутствие текстур является важным, но не единственным требованием. Я также стараюсь что-либо менять и порой нахожу весьма странные способы решения простых задач.
Как всё начиналось
Всё началось в 2013 году после выхода мода Moonpath to Elsweyr для Skyrim. Создание собственного арта для Skyrim было рутинной задачей, и я находился в поисках простого и эффективного стиля для своей игры Oberon's Court. В какой-то момент практически случайно был создан представленный визуальный ряд, который отправил меня в интересное путешествие длиной почти в 5 лет:
Это был мир, который я создал, используя только геометрию и несколько довольно простых шейдеров. Но в нём было несколько хитростей, позволяющих выделиться из общего низкополигонального стиля, который в то время разрабатывали другие люди. Никакой плоской модели затенения или краёв там, где я этого не желал. Речь идёт о складках и горных склонах, созданных с наименьшей сложностью, которую я мог себе позволить, но при этом оставаясь в состоянии всё же достичь желаемого настроения и обстановки. Это просто поразило меня.
В основном это касается тщательно смоделированных поверхностей, которые позволяют создавать угловатые края и гладкие поверхности, которые затем выделяются с помощью различных эффектов затенения. Эта чистая техника моделирования позволила мне создавать миры, здания и обитателей, не сосредотачиваясь на деталях, но с достаточной глубиной и пластичностью, чтобы поддерживать очень тонкие и разнообразные настроения посредством использования цвета и освещения.
Этот чистый образ заставил меня по-новому взглянуть на использование цветов и контраста, в то время как прежняя работа с фотореализмом не требовала от меня подобных усилий. Теперь, если я не нахожу нужные мне цвета и оттенки, которые контрастировали бы и дополняли друг друга, результат выглядит просто ужасно, а когда я достигаю правильного сочетания – великолепно. Этот путь привел меня к новым испытаниям в ряде игр.
В качестве другого примера возьмём игру Rekt! (iOS), для которой меня попросили подготовить техно-арт в прошлом году. Здесь в игре уже был привлекательный гладкий 3D-мир и транспортные средства, которым требовалось что-то большее, чем чистота в моделировании. Я решил использовать статичные модели арены и создать динамические цветовые циклы, основанные на состоянии игры и проецируемые на цвета окружающего мира. А также путём непосредственного кодирования цветов и генерации палитры из контрастных и дополняющих друг друга цветов в шейдерах.
Погружаясь в техно-арт, вы начинаете воспринимать визуальный ряд, мир или сцену уже не как набор отдельных объектов, а как единый взаимосвязанный объект, которым вы хотите точно управлять. Например, для Rekt! я хотел, чтобы каждый аспект визуальных эффектов соответствовал игровому процессу, для чего создал сценарий управления цветом / шейдером, который управлял каждым аспектом визуального оформления. Это позволило изменять цвета в зависимости от режимов игры и взаимодействия с игроком. Но при таком подходе вы больше не можете позволять ресурсам и визуальным элементам "нарушать" ваш контроль над ними. А техно-арт становится сложной задачей о том, ограничить количество переменных до чего-то, чем вы всё еще можете управлять и настраивать на глаз. По крайней мере, именно это произошло со мной.
В одной игре, разрабатываемой Little Chicken Game Company, я расширил этот метод управления шейдерами и цветами, чтобы создать полностью стилизованные циклы дня и ночи для псевдопроцедурной генерации города:
Недавно я снова начал работать над сольным проектом, после того как заморозил разработку Oberon's Court. Мне нужно было что-то более скромное по своему масштабу. Что-то, что объединило бы все технические художественные приемы, которые я накопил в предыдущих проектах. И этим "чем-то" стал The Falconeer/
А началось всё с упражнения по созданию простого вида на море.
Из этой простой сцены возник целый свободный от текстур мир, мир простой и чистой геометрии, который ощущается настолько рукотворным, насколько это вообще возможно, но в то же время ощущается и как реальное место.
The Falconeer — это не просто техно-арт, выраженный в разнообразном затенении и освещении мира; он также содержит в себе массу анимаций и эффектов, созданных с помощью кода, что является другим важным аспектом проявления техно-арта в играх.
Путешествие в мир игрового техно-арта: Часть 2. Вдыхая жизнь через код [опубликовано 3 января 2019 г.]
Как техно-арт может привнести движение, разнообразие, взаимодействие и жизнь в ваши игры.
В первой части статьи я рассказывал о том, как управлять визуальными элементами игрового окружения с помощью кода и техно-арта, чтобы иметь возможность влиять на внешний вид вашего мира. Это важно для меня, потому что позволяет использовать простые и понятные формы для создания чего-то, что поражает воображение и наполнено глубиной и атмосферой.
Но не всё может сводиться к красивым картинкам, мир "оживает" только тогда, когда всё в нём движется и занимается своими делами. И принципы "меньше значит больше", которые, похоже, лежат в основе моего дизайна, привели меня к некоторым интересным экспериментам и творениям в этой области.
Во время разработки Oberon's Court я понял, что, убрав текстуры, был вынужден искать новые средства для создания определённых эффектов. Даже в том, что касается элементов пользовательского интерфейса. Возьмём, к примеру, объём пространства, который заполняется без текстур, и вам нужно полагаться только на математику для создания определённых форм и эффектов в ваших шейдерах. В прилагаемом примере заполнение идёт через создание синусоид из UV-координат.
Этот простой тест был первым, но, конечно, не последним, когда мне пришлось выйти за пределы своей зоны комфорта, чтобы добиться желаемого эффекта. Но как только я разработал относительно простую математику (а также, наконец, понял, для чего была нужна вся эта математика в старшей школе), то понял, что это гораздо более гибкое решение, чем статичное или анимированное изображение. Добавление различных значений мгновенно создавало новые визуальные эффекты.
Результатом многолетнего опыта в этой области является то, как я создаю лица персонажей в The Falconeer. Если вы можете создать форму волны, вы также можете исказить что-то вдоль этой волны. Это правило относится к простому измерителю так же, как и к условному лицу.
Создав простую нейтральную лицевую сетку с несколькими слоями цветов вертекса, я могу искажать и изменять форму этой модели для дальнейшей процедурной генерации персонажа.
В основном цвета вертекса разделяют различные области для окрашивания и искажения. А UV-координаты и каналы используются для искажения размеров фигуры.
Конечно, соответствующий реквизит помогает создать иллюзию. Но очень забавно наблюдать, как сильно можно растянуть щёки, подбородки и носы вышеописанным способом.
Лицо на изображении выше — это одна и та же сетка для каждого из лиц, представленных на нижеприведённой анимации:
Итак, я упоминал, что использую UV-координаты как быстрый способ применения эффектов и искажений в отображаемой геометрии, это удобная система координат для создания эффектов.
Я люблю анимацию, и использование этой техники для создания анимации на основе шейдеров позволяет использовать множество мелких деталей, которые иногда действительно важны. Например, паруса этого корабля. Спускание парусов, а также их кривизна — всё это сделано через шейдер. Небольшой код заставляет их реагировать и поворачиваться в соответствии с направлением ветр. Сама вода, конечно, тоже не более чем куча синусоид:
Для меня что-то подобное — более ценная инвестиция, чем необходимость думать о текстуре самих парусов, движение и форма которых теперь больше напоминают о том, что такое парус, чем с этим могла бы справиться любая наложенная текстура ткани.
Я написал эти статьи не для того, чтобы обратить людей в свой способ создания игровой графики, потому что, по правде говоря (и как мне указывали бесчисленное множество раз), часто есть более быстрые и простые способы добиться желаемого результата. И я думаю, что это настолько близко к тому, что означает быть художником-программистом, насколько это возможно. Но оно же позволяет мне экспериментировать в очень точном и чистом творческом процессе, где технологии и вынужденные ограничения становятся прекрасной тюрьмой, из которой можно попытаться сбежать, встречая по пути всевозможных новых и интересных заключённых. Всё началось с того, что я попрощался с текстурами, а закончилось тем, что я захотел создавать всё из как можно меньшего количества материалов.
Вот ещё один пример: ни одна игра о полётах, подобная The Falconeer, не может обойтись без облаков, а с облаками, как известно, трудно справиться, особенно если они не служат фоном, а иногда являются центральным элементом вашей игры.
Это был мой первый эксперимент, в котором я сочетал синусоидальный шум с эффектами Френеля и цветов вертекса для создания очень простого облака на основе сферы.
Недавно я добавил в микширование созданную в режиме реального времени карту шума Перлина, выполненную в трёх плоскостях, а затем придумал способ исказить окружающий купол неба над сферами облаков (мне нужно будет написать об этом целую статью, потому что у меня есть ощущение, что это странный и совершенно новый способ освещения облаков без каких-либо реальных расчетов освещения). И теперь они выглядят вот так:
Итак, я упоминал, что не использую текстуры, и на самом деле я просто помешан на этом, но, в конце концов, это всего лишь одна странная отправная точка для целого путешествия в игровую графику, шейдеры и создание игровых миров, которые кажутся честными и демонстрируют свои технологии, а не прячут их за фотореализмом.
Я не математический гений, а математика, скрытая за облаками, — это, по сути, результат множества проб и ошибок. Такие инструменты, как shadergraph и shaderforge, позволяют экспериментировать на настолько огромных уровнях, что зачастую прозрение и понимание проистекают из простого манипулирования, попыток объединить и немного повозиться с вещами, которые, возможно, и вовсе не предназначены для объединения друг с другом.
Обычно я не стремлюсь к достижению глубокого понимания тех или иных процессов, просто схватываю достаточно основ, чтобы подчинить их своей воле. У меня часто возникают проблемы с объяснением того, как я добился определённых результатов, потому что я неправильно понимаю или путаю некоторые из техник, которые использовал. И это всего лишь результат того, что я дал волю своей внутренней обезьяне и наугад набросился на шейдеры и код, пытаясь случайно создать что-то блестящее.
Надеюсь, это вдохновит художников погрузиться в программирование и узнать, как технологии могут расширить их художественное видение.
Комментарии
Утащу в дайджест.
Всегда пожалуйста :В а то я словил лютейший хук справа от того, как мои статьи разошлись. На том же dtf интервью с разработчиком, совмещённое с рассказом о его пути и мини-обзором обеих игр, прочитало хорошо если человек десять (судя по статистике "дочитываний", часть из которых мои). ДЕСЯТЬ. Сайт об играх, [censored]...
ты крут, спасибо за проделанную работу
Рад стараться. Мне не столько за себя обидно, сколько за Томаса. Была надежда на хоть какое-то продвижение в русскоязычной сфере, даже перевод игры на русский язык смог выбить у издателя к Рождеству. А тут такой эпический провал.
да, действительно жаль. ну, интервью, как и всякие девлоги у нас нишевый жанр. если ориентироваться на блогеров, ютуберов, то какое-никакое освещение через ревью в основном проходит, если брать не прямо открытую рекламу. ну и жанр у Falconeer тоже не самый популярный. эх
Не говоря уже о Bulwark, весьма специфичный градострой получился, необычный. Собственно, поэтому и хотел хоть как-то помочь разработчику, а то в рунете об игре — молчок.
я про демку писал.
Молодец. Видимо, я не нашёл :В когда гуглил и яндексил.