Собрал все примеры, как реалистично выглядит жидкость в сосудах в разных играх
От Half-Life: Alyx и Grand Theft Auto VI до Yakuza: Like a Dragon и Resident Evil Requiem — смотрим, как жидкость в бутылках трясётся.
В прошлый раз я старался собрать все примеры того, как выглядит режим для арахнофобов в разных играх и модах. В этот задался целью выяснить, а где есть симуляция поведения жидкости в сосудах: ну, знаете, чтобы можно было взять бутылочку, потрясти её и увидеть, как водичка (ну или алкоголь) плещется. И даже пузырится и пенится — если такое возможно, конечно.
И если остановиться и немного задуматься о такой мельчайшей детали, то окажется, что она не так уж и распространена — поэтому вот такой вот специфический запрос сегодня. Но прежде чем перейти к контенту, оговорюсь, что я мог что-то пропустить, так что не стесняйтесь дополнять меня в комментариях или даже поправлять.
Всякие бутылки по окраинам сети ходил и собирал Риверандер — всё ради того, чтобы посмотреть, как жидкость бултыхается в сосудах. Ну а FunPay ему звонкой монетой (и даже не одной) отплатил.
И да, небольшой спойлер — хоть несколько примеров в начале будет из VR, про обычные игры я тоже не забыл.
Half-Life: Alyx
В мае 2020 года игра получила обновление до версии 1.4, добавившее в игру наш сегодняшний объект изучения. Вот как это выглядит на статичных скриншотах…
…а вот как в движении. Ну круто же, правда? Как говорится, топ-100 деталей в видеоиграх.
Это обновление вызвало интерес у игроков, и они принялись его пристально изучать. Так, например, пользователь 2kliksphilip с гордостью признал, что «провёл весь день, сидя на корточках, сгорбившись, с открытым ртом и обезьяньим заворожением, разглядывая виртуальные бутылки».
Это такая крутая новинка, которая настолько крута, что тебе всё равно, насколько не круто ты из-за неё выглядишь.
Результаты своих исследований он рассказал в видео. Я использую фрагменты оттуда здесь. Итак, речь идёт не только правильном соблюдении физики, но и…
Один из самых популярных комментариев под видео содержит объяснение работы этого трюка.
Всё здесь реализовано исключительно на шейдерах. Здесь не используется ресурсоёмкая симуляция жидкости, нагружающая процессор и оперативную память, — всю вычислительную работу можно полностью переложить на GPU.
Именно то, что им удалось столь убедительно имитировать жидкость исключительно средствами шейдеров, делает эту функцию по-настоящему потрясающей.
Шейдер рассчитывает уровень жидкости с учётом ориентации бутылки в игре, поскольку доля жидкости, видимая по отношению к высоте бутылки, различается в зависимости от того, стоит ли она вертикально, лежит на боку или перевёрнута вверх дном. Для каждого положения используются свои значения, чтобы сохранить визуальное ощущение одинакового объёма жидкости внутри.
Затем поверхность жидкости смещается с помощью нескольких синусоидальных волн. Их интенсивность регулируется значением взбалтывания, благодаря чему создаётся эффект ряби и волнения на поверхности. Области, определённые как заполненные жидкостью, а не воздухом, получают цвет и показатель преломления, соответствующие конкретной жидкости.
Также добавляются пузырьки и пена, интенсивность которых зависит от значений взбалтывания и пенообразования. Все эти эффекты создаются процедурно, поэтому их параметры можно изменять и настраивать под различные типы поведения.
На самом деле там гораздо больше интересностей, но я выделил только главное. В любом случае, как я уже писал выше, труд Мэттью Уайлда задал тренд среди разработчиков.
Вот, например, пользователь под звучащим именем Lone Developer решил создать свою систему физики жидкости для VR в Unity именно под впечатлением от Alyx.
И это уже не говоря о других VR-играх. Кстати, о них… там реализация шейдера гораздо попроще, но давайте всё же взглянем на пару-тройку примеров.
Red Matter 2
В головоломке Red Matter 2 для VR тоже можно потрясти бутылки, но без пузырьков и пены.
VR Bartender
Логично, что такая фича должна была появиться в различного рода симуляторах бармена и алхимика…
Как вы уже заметили, реализация тоже простая. Однако тут у разработчика задача стояла совершенно иная, о чём он и рассказал у себя в блоге, так что понимаемо.
Бюджет производительности был очень жёстким, поскольку в сцене находилось много таких бутылок, а игра должна была работать при 70 FPS на Oculus Quest 1 (Android).
Potion Pals
Шейдер работает совместно со скриптом, который раскачивает уровень жидкости, когда бутылку двигают или встряхивают.
Цель — создать реалистично выглядящее зелье в реальном времени для использования в VR-игре.
И выглядит это красиво — ну вы сами посмотрите.
Вот так примерно дело обстоит с VR-играми. Есть больше примеров, но они все одинаковые в своей сути. А как дело обстоит с обычными играми? Давайте смотреть.
Grand Theft Auto VI
Неожиданный (или весьма ожидаемый, как посмотреть) гость в нашем списке — игра, которая ещё не успела выйти, но шуму создала.
И вы можете задать справедливый вопрос: раз она не вышла, то на что же тут тогда смотреть? Ответ прост: всё нужное показали во втором трейлере. Вот, присмотритесь к бутылкам, там во всех плескается жидкость.
Пузырьки — вот они, наконец-то! Состояние закрытой бутылки и её содержимого можно сравнить с открытой.
А вот тут даже из-за движений персонажа всё содержимое выплёскивается наружу.
Самое интересное, так это то, что трейлер был полностью записан непосредственно в самой игре, если верить Rockstar — и это реально круто, без спору, если они достигли такого уровня детализации. Кстати, в недавних сливах вроде бы тоже всё плескается.
Ну, и как в случае с Alyx, это вдохновило других разработчиков — в этом ролике, например, рассказывают, как воссоздать фичу в Unreal Engine 5.
Counter-Strike 2
Valve не могла так просто оставить свои наработки, а потому жидкость появилась и в коктейлях Молотова в Counter-Strike, перешедшей на новый уровень в 2023 году.
Вот тут показывают как было, и как стало.
Resident Evil Requiem
Вообще, физику жидкости в играх любят делать для коктейлей Молотова. Вот вам актуальный пример — последняя номерная часть Resident Evil.
Last of Us и Last of Us II
А вот ещё более ранний пример — Last of Us II.
Но на самом деле фича была ещё в первой части дилогии — причём без всяких ремастеров или ремейков, в оригинале 2013 года.
The Legend of Zelda: Twilight Princess HD
А ещё жидкость плескалась в склянках в HD-ремастере Twilight Princess.
И вроде бы это было даже в оригинале — а это 2006 год, что делает это самым ранним примером в списке.
Like a Dragon: Infinite Wealth
Помните, как многих удивила сцена с реалистичным поеданием хлеба из Yakuza: Like a Dragon?
Ну так вот, оказывается, что в продолжении, Infinite Weatlh, завезли вполне себе уга-буга физику… пива.
Вот он, настоящий конкурент Grand Theft Auto VI — японская GTA… ладно, пошутили и хватит.
Может, и не завезли, ведь это было ещё в первой части, правда, не с пивом, а с сакэ и тоже в катсцене.
Monster Hunter Wilds
Впрочем, внимание японцев к деталям, связанным с напитками и едой, удивления не вызывает — процесс готовки был круто показан ещё в серии Monster Hunter.
Вот вам пример из последней основной части серии — Wilds. Ну вот, теперь и самому захотелось чая…
Snowrunner
В симуляторе езды по бездорожью SnowRunner реализована правильная физика жидкостей в перевозимых игроком цистернах — всё бултыхается, как и должно. Обычно этого не видно, но в какие-то моменты цистерна может стать полупрозрачной.
И вроде бы она может настолько сильно переливаться там, что может опрокинуть цистерну при неаккуратной езде — по словам игроков, по крайней мере.
Cyberpunk 2077
В Cyberpunk 2077 ситуация с бутылками интересная: в основном они непрозрачные, ничего не разглядишь. Но в сценах, внимательно проработанных разработчиками, можно увидеть и прозрачные.
Ну, зато с жидкостью в стаканах и бокалах всё в порядке, ведь в игре часто приходится пить.
Кстати, об этом — вот целое видео, посвящённое эксперименту, в котором автор пытается проверить, какие напитки в игре можно допить до конца.
Red Dead Redemption 2
Тут дела обстоят ровно таким же образом, как и с «Киберпанком» — в основном бутылки непрозрачные, но в стаканах жидкость видно.
Но Red Dead Redemption 2 может удивить другим — вот.
То есть игра правильно симулирует жидкость внутри этого сосуда для молока, и жидкость вытекает правильно из дырок в зависимости от обстоятельств…
…так, звучит двусмысленно, но давайте без всяких намёков.
А на этом у меня всё — это самое интересное, что я смог найти. Дальше дело за вами и вашей памятью.