Лара Крофт приобрела робота

...и теперь он расхищает гробницы за неё :) Пока основной проект находится в разработке, делюсь его ранним прототипом, построенным целиком на ассетах с Анреал Маркетплейса.

Время расхищать чьи-нибудь гробницы!

А пока ещё никто не приступил к чтению, предупреждаю — это самый что ни на есть лонг с кучей картинок. Ну, удачной охоты, сталкер.

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

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

И я понял, что это — любовь. Наскоро расписавшись в Вордовском ЗАГСе, я принялся обдумывать концепт игры. С тех пор уже утекло много воды, идея несколько раз претерпевала серьёзные изменения, меняла перспективу (1-е лицо / 3-е лицо и обратно), обрастала геймплейными механиками, не присущими рЕаЛиСТиЧнОмУ и чрезвычайно сУрьёзному экшену с элементами хоррора... но да об этом — в самом конце статьи :)

<i>Помогите анреаловскому манекену найти и расхитить гробницу.</i>
Помогите анреаловскому манекену найти и расхитить гробницу.

Когда первая итерация концепта меня наконец устроила, я решил не бросаться в дело с головой, а поразмять немного руки. К тому моменту у меня уже был опыт работы с уровнями в Анреале 3 (в его бытность UDK) и немного в Анреале 4, однако то было давно (и неправда) и уровни были мелкими, тут же предстояло дело серьёзное: сюжетноориентированное, хоррорное, да ещё и в реалистичной обёртке. А это вам не то, а то — не это, так что следовало хорошенько так себя пощупать в самых разных местах за самые деликатные части левел-дизайна и левел-арта.

План был прост и надёжен, как швейцарские часы:

  1. Создать парочку линейных секций и в целом оценить свои умения левел-дизайнера/-артиста.
  2. Выработать технику работы с ПОЛНОСТЬЮ динамичным освещением (запекание света нам точно не подходило).
  3. Поработать со звуком, чтобы каждое помещение "жило" и не ощущалось мёртвым.
  4. Воссоздать хотя бы "на костылях" геймплей классических Томб Райдеров с прыжками по платформам, открытием дверей и поиском секретов.
<i>Если ты дочитал до этого места, сидя на белом керамическом коне, срочно вставай, пока не занемели ноги!</i>
Если ты дочитал до этого места, сидя на белом керамическом коне, срочно вставай, пока не занемели ноги!

В качестве контроллера персонажа был выбран ALSv4, поскольку он позволял мне начать играться с вертикальностью уровней прямо со старта. Без необходимости трясти программиста, чтоб он запилил мне пАркУр и кОрованы, которые я уже дЖва года жду.

Итак, суть экшона такова.

Локации

Изначально планировалось просто скопировать уже готовые фрагменты уровней из других игр. Но, как оно часто бывает, стоит только начать что-то копировать, как подключаются уже свои идеи, садятся на шею и свешивают ноги. Так начальный кусочек первого уровня из "Индианы Джонса и Гробницы Императора" обзавёлся небольшой пещерой под боком и крошечной секцией руин чуть дальше.

Следующая крупная зона (которой в первоначальных планах вообще-то и не было) тоже была вдохновлена стариной Индианой Джонсом. И сильнее всего отличается от прототипа, на котором была основана. Мне не понравилось, что в Индиане огромная часть зала оставалась пустой и никак не участвовала в геймплее. И потому на моём варианте уровня большие башни равномерно заполнили ВСЮ территорию.

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

Следующая зона тоже пришла на ум в ходе работы. Нужно было как-то соединить последнюю ЗАПЛАНИРОВАННУЮ локацию (а запланировано их было, на минуточку, всего ДВЕ) с предыдущей. Так и родился этот соединительный коридор.

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

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

И кому теперь кричать? Монстрам ли?

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

<i>Кто подставил кролика Роджера? (Ну там типа нож в спине торчит, поняли, да? Поняли? Ха-ха.)</i><br />
Кто подставил кролика Роджера? (Ну там типа нож в спине торчит, поняли, да? Поняли? Ха-ха.)

И вот он, последний зал с головоломкой. Величественный и устрашающий. Каждый зал хочет быть таким, но не каждый того заслуживает. Знакомьтесь: зал Двух Мостов!

Коленки от волнения уже трясутся? Вот и у меня тоже. Не трясутся в смысле.<br />
Коленки от волнения уже трясутся? Вот и у меня тоже. Не трясутся в смысле.

Прототипом для этой локации послужил зал с двумя мостами из первого Томб Райдера (или скорее из Anniversary версии). Однако в ходе его создания я впервые поленился и решил не расставлять анреаловских манекенов для контроля масштабов. И почти сразу пожалел. Минут через 20, когда границы помещения были уже обозначены мешами скал. Оно (помещение то бишь) оказалось просто ОГРОМНЫМ!

На первом скрине чуть ниже, может, оно и не так заметно, но высота этого моста — 16 манекенов. 16, Карл! Хотя в планах было не превышать отметку в 3—4 манекена. А высота всей пещеры в целом должна была составлять от силы 10 манекенов.

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

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

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

Динамическое освещение

Локации планировались большими и просторными + с подгрузкой секций в ходе игры, так что запечённое освещение первым делом отправилось на свалку истории. Да и видеть итоговый результат игры света и тени В ПРОЦЕССЕ работы, а не ПОСЛЕ долгого и мучительного запечения (даже GPU Lightmass не спасает ситуацию, ведь это всё равно — время) дорогого стоит.

Но возник справедливый вопрос: а как быть с интерьерами и непрямым освещением? Так как работа тогда велась на UE4, то никакие Люмены ещё даже не рассматривались. Однако уже на четвёрке были необходимые инструменты (спасибо Fortnite и его динамичному разрушению построек, да-да, не удивляйтесь).

Так называемые Distance Fields для мешей спасли мой день, а заодно и всю идею ИСКЛЮЧИТЕЛЬНО динамического освещения в проекте. Именно благодаря этим бравым ребятушкам в помещениях стало темно, а на улице под солнцем — светло, как и должно быть. Да, это всё ещё не Люмен, но всё что угодно — не Люмен, кроме самого Люмена. Особенно, если у тебя идёт работа на четвёрке, а не на пятёрке.

Совсем уж в дебри разъяснений лезть не буду — у нас тут не урок, как ни как, хотя кое о чём НЕ рассказать я не в силах. Вдруг кому пригодится?

Фэйковые источники света. Ах, мои спасители. Но до тех пор, пока я не научился с ними работать методом "научного тыка", пользы от них было мало, а производительность они жрали как не в себя.

Вот пример на картинке ниже. За стенами базы ясный солнечный день, в коридоре несколько окон, через которые внутрь попадает свет. Но почему так темно? (За это и спасибо Distance Fields-ам для мешей, кстати, тут без шуток)

<i>Мне кажется или там что-то есть... за углом? Да не, точно кажется.</i><br />
Мне кажется или там что-то есть... за углом? Да не, точно кажется.

Но вот на помощь приходят ОНИ — герои солнечного дня, палочки-выручалочки динамического освещения — фэйковые источники света!

Да будет свет!<br />
Да будет свет!

Но чтобы эти герои берегли ваши ресурсы (и ресурсы других игроков), необходимо немного повозиться с их настройками. Конечно, начать стоит с пункта Mobility, который мы установим на Movable во славу бога динамичности.

Теперь по пунктам (скриншоты приложены ниже):

  1. Source Lenght и Source Radius — они нам понадобятся для настройки охвата территории, которую следует осветить (НЕ путать с Attenuation Radius — с ним и так всё ясно). Плюс, если от таких источников важны блики на полу или воде — эти параметры позволят подогнать размеры бликов под необходимые.
  2. Отключаем тени Cast Shadows, потому как они нам не нужны. Плюс, если расположить рядом 3 источника с тенями, отрисовка теней начнёт конфликтовать. И кушать, ясное дело. Много кушать. А так можно хоть обфэйковиться источниками, но в меру.
  3. Убираем галочку с Use Inverse Squared Falloff, чтобы не возиться с запредельными числами Intencity (где БЕЗ галки "6" = "4000" С галкой). У этого пункта есть и другие нюансы, но для меня важнее этот.
  4. Light Falloff Exponent — важный элемент для фэйкового светильника. Чем ниже показатель, тем слабее падает интенсивность света с увеличением расстояния от его эпицентра до края Attenuation Radius. Это позволяет не растягивать радиус лампы до невообразимых размеров и тем самым ухудшать производительность, мешая другим источникам света. Можно просто указать "2" в соответствующем окошке. Как по мне, для имитации непрямого света "2" — лучший вариант. Хотя на скриншоте ниже больше подошла "5". Зависит от ситуации. Не советую ставить "0": тогда граница света и тени будет максимально острой, что вы рискуете о неё порезаться.
  5. И, наконец, Specular Scale. Если не хотите, чтобы фэйковый источник света "палился" в лужах или ещё где — смело ставьте "0". В моём же случае стоит "0.2", так как без этого метал на стенах становился полностью чёрным.

На десерт ещё есть Max Draw Distance и Max Distance Fade Range — но они для дополнительной оптимизации. Скрывают отрисовку света на определённой дистанции и сглаживают переход, чтобы светильник не гас внезапно.

Звук

Это самый крошечный пункт. Хотя сама выработка технологии "озвучки" уровня была непростой.

За гул пустых коридоров, капели во влажных пещерах отвечал Audio Volume в форме прямоугольника (для удобства охвата помещений) с назначенным амбиентом и эффектом Реверберации. Сами типы реверберации были заготовлены для больших залов, средних и совсем уж маленьких.

Звуки осыпающихся камней — это Sound Cue с параметрами рандома, задержки и зацикленности. Дёшево и сердито. Но эффективно. В планах было ещё и патиклы добавить, но от них я вовремя отказался — увлекаться ненужными детальками было не время.

Звуки без конкретного источника (падение камней вдалеке, скрип и тому подобное) были реализованы аналогично, но без эффектов 3D.

Просто, очень просто. Если б мы знали, что это такое. Но мы не знаем, что это такое.<br />
Просто, очень просто. Если б мы знали, что это такое. Но мы не знаем, что это такое.

Геймплей

А вот я вас и обманул. Этот пункт так-то поменьше предыдущего будет!

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

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

Полное прохождение прототипа с нахождением всех секретов. Приятного просмотра!

ОНО РАЗРАБАТЫВАЕТСЯ! БЕГИТЕ, ГЛУПЦЫ!

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

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

Слева направо: Гарри Поттер (ПК версия), Rayman 3 (и 2), Tomb Raider Anniversary, Kena.<br />
Слева направо: Гарри Поттер (ПК версия), Rayman 3 (и 2), Tomb Raider Anniversary, Kena.

А на этом всё. Вот и лонга конец, а кто выжил — молодец. Надеюсь, мой опыт для кого-то окажется полезен, а за сим я откланиваюсь.

С наступающим вас всех Новым Годом и не засните мордой в оливье :)

6868
17 комментариев

круть! только быстро начинает бесить один и тот же повторяющийся звук осыпающихся камушков

3
Ответить

Расширенный набор сыплющихся камешков ожидайте в будущих DLC

8
Ответить

Поставил + не читая
Шучу, за то что звук шагов поменял в АЛС, а то заебали одни и те же звуки

3
Ответить
2
Ответить

Ням-ням. Вкусный лонг, интересная история, хорошо описан процесс. Ставлю новогодний лосось!

2
Ответить

Новогодний лосось - это хорошо. Это мы одобряем

3
Ответить

А персонаж так и останется роботом, или его замените на нормального? Хотя бы на робо-тян.

2
Ответить