Портальная магия: как воссоздать механику порталов из Portal
Поэтапный разбор основной механики игры.
Автор YouTube-канала DigiDigger под ником Digit в 2017 году выпустил видео, в котором воссоздал порталы из серии Portal. Он показал принцип их работы и описал все тонкости, которые нужно знать, чтобы воссоздать их самостоятельно. Но помните, что автор ролика — не работник Valve, поэтому все его решения — это предположения о том, как разработчики Portal реализовали эту механику. Мы выбрали из видео главное.
Особенность порталов заключается в том, что через них можно не только перемещать объекты, но и смотреть, что происходит по ту сторону портала. Создать такой визуальный эффект не так уж просто. Первое, что нужно сделать — поставить камеры на каждый из них и транслировать изображение с камеры на втором портале.
Следующий шаг — сделать так, чтобы изображение менялось в зависимости от угла, под которым игрок смотрит на портал. Самый простой способ добиться этого — менять угол камеры на противоположном портале в соответствии с углом зрения игрока.
Но результат всё ещё выглядит неправильно, потому что изображение в камере учитывает только ракурс игрока, а не его удалённость от портала.
И это частично правильный подход, но он не решает проблему поля зрения. Её суть в том, что камера работает как широкоугольный объектив, который захватывает почти всё пространство комнаты. А это не соответствует тому, что видит игрок.
Чтобы решить эту проблему, автор ролика изменил масштаб картинки, которую передавала камера из второго портала.
Но всё это касалось только визуального аспекта порталов. Не менее важно правильно воссоздать их свойства с точки зрения механик и геймплея.
Чтобы телепортация происходила незаметно, нужно подобрать правильный момент для перехода. Если он будет слишком рано или поздно, то это сотрёт иллюзию плавной телепортации.
Так как игрок телепортируется не сразу же после того, как касается портала, а немного пройдя вперёд, возникает проблема с коллизией — герой просто не может пройти, так как стена, находящаяся за порталом, сдерживает его. Автор ролика не знает наверняка, как разработчики из Valve решили эту проблему, но он нашёл свой подход.
Когда игрок соприкасается с порталом, всё остальное окружение для него становится неосязаемым. Это привело к новой проблеме — игрок просто проваливался вниз.
Но порталы в Portal воспринимаются как осязаемый проход, например, игрок может упереться в их границу или стоять прямо в портале. Автор ролика добавил осязаемую границу в портале — когда игрок касался его, всё, кроме этой границы, становилось неосязаемым. Поэтому не возникало проблем с переходом через стену.
Всё это работает и с остальными игровыми объектами. Единственная сложность связана с моментом, когда предмет находится посередине между двумя порталами. На этом этапе создания механики предмет просто «перепрыгивает» через портал, что выглядит неестественно.
Завершающий штрих для создания корректно работающей механики порталов — сохранение скорости движения. По словам автора, это довольно простая задача: нужно лишь сохранить информацию о скорости при входе в портал и задать её при выходе.
Конечно, это не итоговые порталы из Portal, но автору удалось воссоздать базовые принципы, на основе которых работает механика:
- порталы выглядят реалистично и похожи на физический переход из одной точки в другую;
- игрок может перемещаться между порталами;
- объекты могут перемещаться между порталами;
- при перемещении сохраняется скорость.
Этих базовых принципов достаточно, чтобы понять принцип того, как устроены порталы в оригинальной игре.
автор ролика — не работник Valve, поэтому все его решения — это предположения о том, как разработчики Portal реализовали эту механикуЗвучит правдоподобно, особенно с учетом того, что в халф-лайф 2 Вальв игрались с тем, что изображения на телевизорах - это не предварительно записанные видео, а трансляции объектов и действий, совершаемых в других комнатах
Конечно правдоподобно звучит, особенно с учетом того, что сами Valve это рассказывали еще 12 лет назад
Сейчас так все делают
Почти лонгрид (Почти, т.к. тут особо и не почитаешь, так как текста тут меньше, чем в указанном документе Российской Федерации котором говорится о длине Лонгрида, и это, очевидно, мало (Принят данный документ в 11 областях, 4 регионах, 1 городе фед. назначения)) - достойный фаната Portal. Говорю от лица (т.е. от себя), фаната Portal. То, что я фанат Portal подтверждено лично компанией Valve и Aperture Science, подтверждён факт сего также тремя референтами, которые лично заверили меня фанатом Portal. Если вам что-то не нравится в этом, то вы можете послать одному из референтов сообщение и через 20~ лет вы дождётесь своего ответа, с уважением Фанат серии Portal
Не все выкупили анноунсера, эх....
В нулевых зеркала работающие через Render to Texture и Stencil buffer были обычным делом в играх и входили в любой туториал для начинающих. Потом, видимо с засилием готовых движков, у всех отвалились руки и вместо зеркал стали вставлять серые мыльные текстуры хорошо если хотя бы c рефлекшн мепингом заранее отрендереного окружения. И теперь нормально работающее зеркало или портал без RTX вызывает удивление "о боже магия".
Тоже удивляюсь тому, как раньше спокойно делали работающие зеркала (не важно каким способом, но они работали), а сейчас это уже непосильная задача. Словно древние утерянные технологии.