Глитч в играх что это

Глитч-эффекты своими руками

Очень простыми средствами добавляем в игру немного сумасшествия

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

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

Эффекты чрезвычайно простые, поэтому буду брать вас количеством, а не качеством. Я буду использовать шейдеры для Unity, но вся описанная ниже информация актуальна для любых движков, использующих шейдеры, а так же для ПО, имеющим прямой доступ к данным изображения.

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

Давайте на примере сделаем самый простейший глитч-арт: скачаем изображение в сети, откроем его в блокноте, удалим любое количество текста посередине и сохраним.

Как видно, изображение сдвинулось влево, потому что изображение читается построчно, слева направо. Возьмём 2 строки в 4 пикселя. Каждый пиксель у нас будет характеризоваться тремя цветовыми компонентами: красным (R), зелёным (G) и синим (B). Вырежем из первой строки 4 байта посередине и мы получим такое преобразование:

Но так это работает только с несжатыми данными изображений. Если мы возьмём какой-нибудь другой формат, который сжимает информацию, особенно проприетарный, то никто не знает, как поведёт себя алгоритм.

Помимо этого, в глитч-арте любят использовать и аналоговые искажения, которые можно было увидеть например во время прокрутки потрёпанной видеоплёнки или на экране старого телевизора. Тем не менее, все эти эффекты так или иначе основаны на сдвиге или пропуске информации.

Ну а теперь, когда мы разобрались в теории, пора приступать к конкретике

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

Создаём в Unity новый файл типа Shader/Image Effect Shader. Если у вас нет такой функции, то можете взять исходник отсюда.

Создаём в Unity новый скрипт, назовём его CameraEffect. Исходный код для скрипта можно взять отсюда.

Создадим новый материал. Укажем для него новосозданный шейдер. Поменяем цвет например на жёлтый.

На камере создаём новый компонент типа CameraEffect. Указываем новосозданный материал в качестве параметра поля Material.

Если всё получилось правильно, то должно получиться что-то подобное (мы взяли изображение с камеры и наложили на него жёлтый оттенок):

Теперь, добавим в наш шейдер несколько новых опций (помним, что опции нужно объявлять дважды: в разделе Properties и в теле самого шейдера между CGPROGRAM и ENDCG):

Давайте начнём с простого: возьмём одну текстуру искажений и согласно цветовым данным, указанным на ней, начнём сдвигать исходное изображение с камеры. Красный канал изображения будет указывать на степень сдвига влево, зелёный на степень сдвига вверх, то есть чем ярче пиксель, тем больше сдвиг.

Тогда попробуем подставить простую текстуру, например одну красную полосу (не забываем для всех текстур, импортируемых в Unity в качестве эффекта, отключать сжатие и использовать Point Filter Mode, чтобы искажающая текстура не искажалась сама).

Ой, слишком сильный сдвиг. Давайте будем редактировать степень сдвига с помощью переменной _Force.

Сделаем эффект волны с помощью красного градиента (в том числе и с помощью ступенчатого):

Попробуем добавить несколько полос разной ширины и контрастности:

В принципе, можете использовать любое изображение в качестве исходника для искажений, могут получиться интересные результаты (как будто бы с другой стороны экрана на вас кто-то смотрит):

Теперь осталось добавить временное смещение к текстуре искажения (ну и изменение её размера для удобства), чтобы глитч наконец ожил.

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

На старых видеопроигрывателях можно было найти такой эффект, когда изображение крутилось целиком, а не по частям. Это тоже сделать очень просто, для этого нужно двигать не части изображения, а всё целиком. Сдвигать мы его будем с учётом времени, для этого в шейдерах Unity есть векторная переменная _Time, указывающая текущее время компьютера. Нам в принципе неважно, какую компоненту этого вектора использовать, все они представляют одно и то же время, но перемноженное на разные числа.

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

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

Обычного сдвига мало, он слишком непримечательный. Чаще всего вместе обычным сдвигом изображения добавляют цветовой. Попробуем добавить его и мы. Я воспользуюсь классическим подходом смены цветовых компонент, но это можно делать любым способом. Здесь я меняю красный канал на зелёный, зелёный на синий, а синий на красный.

Взглянем теперь на сцену, но с применением цветового сдвига (я сделал сцену немного ярче, потому что она была преимущественно серая, а серый при сдвиге снова даёт серый):

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

Поскольку шейдер не умеет выдавать случайные величины, можно использовать текстуру с шумом или же генерировать псевдослучайные величины с помощью функций sin и cos с передачей времени в качестве аргумента.

Часто для сохранения общей читаемости изображения используют, назовём это так, частичный цветовой сдвиг. Это когда изображение сдвигают только по одной цветовой компоненте, а не по всем сразу. Частным случаем такого сдвига является эффект хроматической абберации.

Попробуем повторить эффект выше с помощью сдвига изображения только по красной компоненте:

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

Как и в прошлом случае, в качестве текстуры искажений используем обычные полосы. Результат:

На DTF я так же веду блог о разработке игр, в который попадает всё, что не заслуживает отдельной статьи. Например, там же я опубликовал статью о том, как я не очень удачно пытался сделать ещё один глитч-эффект под названием datamosh. Подписывайтесь, если вам интересен подобный контент.

Источник

ТОП-10 трюков при скоростном прохождении игр

Глитч в играх что это. top 10 tryukov pri skorostnom prohozhdenii igr 38331. Глитч в играх что это фото. Глитч в играх что это-top 10 tryukov pri skorostnom prohozhdenii igr 38331. картинка Глитч в играх что это. картинка top 10 tryukov pri skorostnom prohozhdenii igr 38331.

Спидраннеры годами выискивают в играх различные лазейки, ошибки и просто короткие пути к решению своей главной задачи — пройти их как можно быстрее. Постепенно современные проекты избавляются от условностей, становятся все более вылизанными, но одно остается неизменным. Это процесс сбора информации, а с недавнего времени — ее демонстрация на практике в прямом эфире. Благодаря этому можно саму лицезреть лучшие прохождения и самые интересные трюки спидраннеров.

10. Portal — Portal Glitch

В 2010 году Майкл Янни (Michael Yanni) показал, что из Portal выжали еще не все соки и продемонстрировал просто феерическое прохождение менее чем за 10 минут. Помимо того, что Майкл профессионально использовал инерцию, он также мастерски ставил порталы в места, размером чуть ли не пиксель на пиксель, и выбирался с помощью них в не предназначенные для нормальной игры локации. Он также использовал каждый глюк Source Engine, прохождение сквозь стены с предметов в руках и отталкивание с его помощью из текстур с фантастическим ускорением. В общем, лучше не моргайте.

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

9. Silent Hill 2 — Quick Save Glitch

Портированная на персональные компьютеры версия Silent Hill 2 подарила игрокам полезную функцию быстрого сохранения. Но, как оказалось, послужить она может не только для сохранения в любом месте. По какой-то причине во время нажатия F5 игра сильно «задумывается» и позволяет пропустить несколько сцен, некоторые сюжетные условия и даже битвы с боссами. В качестве бонуса — постоянно восполняемая невидимая шкала выносливости. Если нажимать клавишу быстрого сохранения, то главный герой сможет бежать неограниченное время и не будет уставать.

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

8. TES 4: Oblivion — Door Glitch

Skyrim трещала по швам от багов как и любая другая игра Bethesda. Но Oblivion в своей релизной версии была просто чудовищно сломанной. Одной из главных ошибок была возможность проходить сквозь стены. Если сохраниться во время бега в стену, то в после быстрой загрузки велик шанс оказаться за ней или за закрытой дверью. Таким образом и получается прохождение за семь минут — зайти в финальную локацию и выйти назад. Игра подумает, что вы в конце сюжетного квеста и все сделает за вас. Остается только наблюдать за героизмом правителя.

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

7. Two Worlds — Final Boss Glitch

Само собой, не только Bethesda надеялась на новые патчи после релиза. Reality Pump Studios с первой частью Two Worlds вообще оставила финального босса разгуливающим мимо ближайшего от начальной точки поселения. Вы просто приходите к нему, бесите его, встаете рядом с селянами и ждете, когда их тоже заденет огненным шаром. После загрузки вы будете живы, а все мирное население начнет мутузить злодея. Общими усилиями 40 000 очков здоровья через некоторое время иссякнут. Финальная сцена, браво, и пяти минут не прошло.

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

6. Fallout New Vegas — Gun Reload Boost

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

5. Dark Messiah of Might and Magic — Pause Launch

Движок Source — штука загадочная, и Dark Messiah of Might and Magic от Arkane это лишний раз подтвердила. Самый главный секрет скоростного прохождения состоит в том, что игра ведет себя неадекватно в момент паузы. Спидраннер запрыгивает за уступ, балку или что-то похожее, дожидается момента, когда он начинает падать, но все еще жмет кнопку движения вперед, а затем сразу же кнопку паузы. Source в это время почему-то думает, что игрок по-прежнему набирает скорость, и делает это в течение всего времени паузы. По ее окончанию герой вылетает, словно из пушки, с максимально возможной скорость. Игроки выяснили, что максимальная скорость на паузе набирается за 12 секунд, и именно поэтому в прохождении ниже энтузиаст с ником razgrillz каждый раз отсчитывает это время.

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

4. Doom (2016) — Rail Jump FPS Boost

Похожий трюк есть в Doom прошлого года выпуска, но тут все несколько экзотичнее. Схема примерно такая же — залезть на перила и попытаться «сломать» движок. То есть начать движение вперед сразу после того, как вы начинаете с этого перила падать. Doom не понимает, что происходит, и также дает игроку максимальную скорость. Происходит это практически мгновенно. Но не совсем. За очень короткий промежуток времени игра даст вам скорость за каждый свой кадр. Иными словами, чем больше у вас FPS, тем быстрее в полетите. 160 кадров достаточно, чтобы пропустить большинство мест, но спидраннеры гонятся за каждой секундой.

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

3. Salt and Sanctuary — Unicorn Glitch

Про скоростные прохождение Dark Souls все уже наслышаны, и давно всем известны основные трюки. Но двумерный идейный наследник «темных душ», Salt and Sanctuary, тоже может дать несколько интересных моментов. Основной трюк состоит в использовании предмета Bell of Return в самых неожиданных местах. Колокольчик спасает вас от всяких бед и даже позволяет пройти игру менее чем за 10 минут, а при должном везении — за 5 минут. Нужно только найти первого попавшегося единорога и заставить его воткнуть вас в землю на подъеме. На несколько кадров вы окажетесь под землей, а это основной триггер финальной сцены. Достаточно только позвонить в колокольчик за секунду до смерти.

Но единороги — существа своенравные, а вокруг полно опасностей. Вы только посмотрите, как мучался Grimelios. Но зал оценил его усилия.

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

2. Deus Ex — Hidden NPC

Deus Ex — одна из тех старых игр, которую невозможно пройти за 10 минут, используя чудовищные глюки. Вместо этого спидраннеры нашли несколько веселых трюков, которые делают процесс одновременно веселым и достаточно быстрым. Один из них состоит в том, чтобы найти «спрятанного» NPC. И вот тут следует сделать несколько пояснений.

По задумке разработчиков, в Deus Ex все, что находится за пределами уровня, мгновенно самоуничтожается для экономии оперативной памяти, а значит NPC нужно хранить где-то в другом месте. В Ion Storm не нашли ничего лучше, как поставить персонажа на крышу самого высокого здания. Мол, до него никто не доберется. Как бы не так. В Deus Ex тоже есть способ набирать скорость, делается это во время прыжка при помощи частого выхода в меню. Набираем скорость, прыгаем и находим все, что плохо скрыто от глаз. В общем, дорогие разработчики, храните NPC в сберегательной кассе.

Игра вообще по швам трещит, так что рекомендуем посмотреть это прохождение.

Глитч в играх что это. . Глитч в играх что это фото. Глитч в играх что это-. картинка Глитч в играх что это. картинка .

1. The Legend of Zelda: Ocarina of Time — Ocarina Item и Wrong Warp

Как только вы вошли в портал, игра устанавливает несколько значений — куда вы попадете, днем или ночью, взрослым линком или молодым, и будет ли кат-сцена. Игра затем все это складывает и получает нужную переменную для загрузки. Портал установил все значения, но мы можем двигаться! Идем к ближайшей двери, и в определенный момент, когда портал наконец-то будет что-то делать, входим в нее. Это перезаписывает базовое значение портала — «куда вы попадете», а все остальные переменные остаются неизменными. Так уж получилось, что одна из них устанавливает номер неинтерактивной сцены, и она есть после портала, но ее нет за той дверью, куда мы вышли. Иными словами, портал загружает номер состояния для перемещения куда-то непонятно куда из-за получившегося неверного значения. Магия — вы появляетесь практически в самом конце игры. Небывалая удача!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *