На Хабрахабре достаточно много инди-разработчиков, некоторым из них приходится в той или иной степени заниматься левел-дизайном. В течение последних нескольких месяцев я безвылазно работал над примерно полусотней различных игровых уровней, и хотел бы поделиться своим опытом. В планах написать две статьи с эффективными Tips and Tricks, которые вы можете использовать, чтобы повысить качество вашей игры. Это ни в коем случае не пошаговое руководство, а только сборник идей и полезных советов.
Левел-дизайн и нарратив
Немного лирики, прежде чем перейдём к сугубо практическому материалу. Создание уровней тесно связано с нарративом. Иными словами, практически всё, что вы делаете, рассказывает историю. Если луч света пробивается в тёмное подземелье сквозь щели в камнях, этим вы намекаете на наличие мира за пределами пещеры. Если под куполом мрачной залы стоит массивная статуя лавкрафтовского бога, вы создаёте гнетущую атмосферу, поднимаете вопросы о том, что за существо запечатлено в камне? Кто и почему ему поклоняется?
Этим я хочу сказать, что даже находясь в режиме технаря и выполняя сугубо технические задачи, левел-дизайнер должен стремиться к своей цели — оптимальным способом рассказать игроку историю и погрузить его в мир игры. Кто-то может сказать, что это не важно для PvP уровней, но вспомните классическую карту “Warsong Gulch” из “World of Warcraft”, где весь бой крутится вокруг противостояния Орков и Эльфов за ресурсы и территорию. Тем не менее, даже работая с чем-то совершенно приземлённым типа настройки коллайдеров, вы убеждаетесь, что пользователь получит именно тот игровой опыт, который вы хотите для него создать.
Визуальное разнообразие
Хороший уровень поддерживает интерес игрока, периодически изменяя ощущения от окружающего пространства. У нас есть ряд инструментов, в том числе:
- Визуальный ряд. Если в начале у вас было сухое мёртвое подземелье, а в конце — подземные реки, водопады и биолюминисцентные растения, то игрока увлечёт визуальная новизна и смена атмосферы.
- Замкнутость пространства. Типичный приём из “Лары Крофт”: вы с трудом протискиваетесь сквозь трещину в скале; выбравшись, вы поднимаете взгляд и обнаруживаете себя у основания храма, от колоссальных размеров которого перехватывает дыхание.
- Форма. Любое пространство подчинено определённым формам. Детали и цвет вторичны. На картинке ниже лишь по одному силуэту вы можете определить, что находится на горизонте.
Как формы использовать в левел-дизайне? Отличный пример можно найти в космическом корабле Dreadnaught в “Destiny”, где диагональные элементы архитектуры создают очень своеобразные ощущения от интерьера вплоть до едва различимого в подсознании дискомфорта.
Без помощи цветов, текста, движения, звуков и т.п. одна только смена форм по мере прохождения уровня может раскрывать новые грани истории. Вот смотрите: в начале уровня вас окружают чистые гладкие формы, а затем появляются неровности. Даже по абстракции следующей картинке вы можете примерно понять, что произошло! Вероятно, в вашем воображении уже промелькнул отрывок какой-нибудь истории.
К слову, множество интересных идей можно почерпнуть, изучая стремящийся к оригинальности пост-модернизм в архитектуре. Настоятельно рекомендую. У «современного искусства» не очень хорошая репутация, но архитектура, как правило, слишком дорогая штука, чтобы с ней игрались полные бездари.
Уникальные кадры
“Vista” — это открывающийся игроку вид, да такой, что захватывает дух. В играх с открытым миром “vista” чаще всего — это высочайшая точка на какой-нибудь башне или горе, откуда вы осматриваете окресности. Все мы помним известный процесс “синхронизации” в “Assassin’s Creed”. Для других игр эпичные виды создаются специально, а не просто позволяют нам посмотреть сверху вниз.
Отдельным подвидом “vista” можно считать “hero assets”. Как правило, это особо примечательные объекты окружения, зачастую используемые только единожды за всю игру. На них обращают внимание, их запоминают, на них ориентируются, пока бегают по уровню. В принципе, неплохим примером может быть известная Цитадель, возвышающаяся над City-17.
“Vista” и “hero assets” могут помочь вам сделать более запоминающиеся уровни, добавить им изюминку, но знайте меру. Вы можете попасть в ловушку и уделить им слишком много внимания вместо тех ассетов, которые будут использоваться сотни или тысячи раз. Здесь уместна картинка из статьи ребят из Bethesda, работавших над уровнями для Skyrim:
Десять раз подумайте, точно ли вам понадобится этот уникальный контент, и есть ли у вас силы на его создание. Особенно важно трезво оценивать свои силы инди-девелоперам, имеющим крайне ограниченные производственные ресурсы.
Интерактив и динамика
В отличие от предыдущего пункта, этот сравнительно прост в создании и применении. Что бы ни шевелилось у вас на локации — это круто! Проще говоря, любые динамичные объекты вдыхают в игру жизнь. Старайтесь добавлять горящие факелы, колышущиеся на ветру флаги, льющуюся из труб воду, водопады, качающиеся лианы, стаи птиц над головой и так далее. Трудно описать словами — это надо прочувствовать, когда на статичный уровень добавляешь динамики, и он преображается на глазах.
Сюда же можно добавить интерактивные объекты, с которыми пользователь может взаимодействовать. Они становятся важной частью игрового опыта, а не просто статикой на фоне. Дверь можно открыть, рычаг — нажать, стену — проломить, бочку — взорвать, колонну — свалить. В “Diablo III” это использовали достаточно часто. Например, классический пример с рычагом, позволяющим обрушить на голову врагам массивную люстру. Или каменная стена, обрушающаяся, когда герой проходит рядом и случайно задевает её.
К динамичным объектам можно добавить и NPC. В “Белом Саду”, деревушке в самом начале “Ведьмака”, кипит жизнь — женщины стирают одежду, дети носятся по округе и играют друг с другом, старики раскуривают трубки на скамейке, мужики бьют морды в таверне. Это, разумеется, уже совершенно иной уровень динамичного окружения, требующий значительного вложения сил.
Туман как цветокоррекция
Очень интересный трюк: туман не просто оказывает существенное влияние на атмосферу и правдоподобность уровня, но также является отличным инструментом цветокоррекции. Более того, на мобильных устройствах это самый дешёвый метод цветокоррекции (”весит” порядка 3-5 fps).
В нашей игре мы реализовали простейший инструмент, плавно изменяющий туман, когда герой входит в триггер. Простейший пример: игрок бегает по уютному солнечному каньону с голубым туманом. Когда он входит в пещеру, где устроили логово головорезы, туман становится кроваво-красным, поддерживая некомфортную атмосферу опасности.
Чтобы окончательно убедить вас в силе этого инструмента, сравните скриншоты из инди игры, над которой я работаю. Из-за тумана первый выглядит как слегка пасмурный день, а второй похож на песчаную бурю.
На следующих двух скриншотах вы можете видеть очень лёгкий туман, едва заметный. Но даже при таком подходе разница в оттенке очевидна.
Есть подводный камень: надо правильно подобрать тип тумана (например, exponentional squared в Unity для этой задачи обычно подходит лучше всего) и плотность таким образом, чтобы туман не замыливал текстуры, и они не теряли контрастности.
Возвращаясь к атмосфере. Дальше идут скриншоты из Crysis 3. Как вы можете видеть, на верхнем пространство сжатое. Кажется, что дома стоят совсем недалеко от игрока. На нижней же картинке аккуратно подобранный туман визуально расширяет пространство, отодвигая дома в глубину.
Lighting is love, lighting is life
Освещение является одним из мощнейших инструментов в вашем распоряжении. Настоятельно рекомендую уделять этому достаточно сил и времени. Вместо тысячи слов:
Даже несложная геометрия с простейшими текстурами приобретает адекватный вид, когда в дело вступает освещение. Через свет мы передаем не просто техническую информацию типа времени суток и погоды, но и настроение. Аккуратная работа со светом позволяет тонко настраивать атмосферу. Вот представьте: яркий солнечный свет. На одном конце спектра у вас будет жесткое, беспощадное солнце мёртвой пустыни. На другом конце — счастливое мягкое летнее солнце, как в аниме про первую любовь токийских школьников.
Как добиться нужного эффекта от освещения? Искусство и опыт, конечно же. Готового рецепта у меня нет. Но это лирика, я же хочу поделиться ещё одним практическим трюком: критически важно иметь вариации в цвете освещения. Следуйте логике, но не забывайте о креативе. Если вы ставите источники света только там, где стоят лампы, то результат будет чёрствым и скучным. В то же время даже небольшое цветовое разнообразие от света делает уровень визуально более привлекательным.
Один из интересных приёмов: сначала ставится только логичное освещение (то есть там, где находится лампа, будет источник света), но несколько приглушённое, не финальная яркость. После этого добавляются ещё дополнительные цветные источники света. Они поднимают общую освещённость, одновременно расширяя цветовую палитру.
Есть исключения, конечно же. Например, уровень с ярким солнечным светом может преимущественно состоять только из него, и будет выглядеть отлично. В этом случае вам помогут выверенный ambient light, делающий цветными тени, а также различные постэффекты на камере, чтобы поддержать яркость солнца (пресловутый bloom, к примеру).
Блендинг света с окружением
Создавая освещение, изначально вы имеете только источник света и окружение, принимающее свет. Они находятся как бы в отрыве друг от друга. А ведь в реальности между ними был бы воздух, пыль, атмосфера.
Вот несколько методов, помогающих имитировать воздействие света на “пустое” пространство:
- Спецэффкты: летают пылинки или светлый туман клубится возле источника света.
- Light shafts, god rays, sun rays. Эффект видимых лучей света. Стилизация как правило не позволяет использовать это в реалистичных играх, разве что посредством очень тонкой настройки.
- Volumetric light. Достаточно дорогой в плане производительности эффект, но чертовски красивый и правдоподобный. На картинке ниже изображён volumetric light из “Fallout 4”.
- Постэффекты. Прежде всего bloom, конечно же. С ним засветы распространяются вокруг ярких элементов сцены.
- Фэйковый glow. В некоторой степени имитирует bloom вокруг яркого источника света. Делается простым квадом с текстурой, на которой изображён полупрозрачный круг с размытыми краями.
Постэффекты
У постэффектов сложилась дурная репутация из-за чрезмерного их использования. Из поколения в поколение передаются легенды о безвкусном применении эффекта Lens Flare. На самом же деле хорошо сбалансированные постэффекты едва заметны и не привлекают к себе внимание.
Постэффекты и освещение неразрывно связаны. На картинке ниже вы видите, как к тёмному освещению добавляется светлый туман (постэффект Global Fog из стандартного набора Unity), поверх которого накладывается Bloom.
Иными словами, работая над освещением, всегда помните про туман и постэффекты. Идея уровня, изображённого на картинке, в том, что вы находитесь в тёмной-тёмной пещере, и обнажаемые светлым туманом силуэты позволяют вам ориентироваться в пространстве.
Самым мощным постэффектом по праву считается цветокоррекция. С её помощью вы можете вносить правки в цветовую палитру с ювелирной точностью. Этот инструмент пришёл к нам из кино, и теперь ни одна ААА игра не обходится без этого. Кстати говоря, цветокоррекция используется в кино даже при работе с обычной плёнкой без применения компьютерной графики. Если посмотрите на кадры “Бойцовского Клуба” Дэвида Финчера, то сразу обратите внимание на характерный зелёный оттенок. Такого результата достигли посредством особенного состава химикатов, использованных при проявке плёнки.
Другие постэффекты, которые могут показаться вам полезными: tone mapping, bloom, antialiasing, vignette, chromatic aberration. Особо хочу отметить tone mapping, который имитирует HDR картинку на основе LDR (low dynamic range) данных. На следующей картинке меня полностью устраивала яркость света, но некоторые объекты получались чрезмерно пересвеченными.
Обратите внимание, какие изменения произошли на маленьком синем мониторе справа от прохода. Это и есть результат работы постэффекта tone mapping. Подытоживая, предостережение: старайтесь быть осторожными при работе с постэффектами. Легко обмануться, сделав бедноватый уровень с посредственным освещением, и едва посыпав его “сахаром”, решить, что у вас всё круто.
Заключение
Надеюсь эта подборка даст вам пару новых идей для ваших проектов. Я планирую написать ещё одну статью по этой же теме. В ней я расскажу про прототипирование, скейл героя и окружения, скорость бега персонажа, коллайдеры, плэйтестинг и многое другое. Она должна быть ещё более приземлённая, с меньшим количеством картинок, но хорошо упакованная моим опытом.
Между тем, если вы интересуетесь рендером освещения в Unity, у меня уже есть техническая статья на Хабрахабре. Откровенно говоря, накопив больше опыта, вижу, что в статье есть некоторые неточности, но в целом она близка к реальности. Поэтому если вы только изучаете тему освещения в Unity, материал должен быть вам полезен.
Автор: DiscoDeer