Параллакс-скроллинг

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Параллакс-скроллинг (также Параллаксная прокрутка) — техника в компьютерной графике, когда фоновые изображения перемещаются относительно виртуальной камеры медленнее, чем изображения переднего плана, что создает иллюзию глубины двумерной сцены и ощущение погружения в виртуальный мир[1]. Эта техника стала развитием техники многоплоскостной камеры, использовавшейся в традиционной анимации с 1930-х годов[2]. Параллакс-скроллинг получил популярность в двумерной компьютерной графике и, в частности, в компьютерных играх Moon Patrol[3][4] и Jungle Hunt[5], выпущенных в 1982 году. Частично параллакс-скроллинг использовался в аркадной игре Jump Bug 1981 года[6].

Способы реализации[править | править код]

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

Послойный метод[править | править код]

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

Метод спрайтов[править | править код]

Этот метод предполагает создание псевдослоёв спрайтов (т.е. отдельно управляемых движущихся объектов, аппаратно отображаемых поверх или под слоями), если такая возможность доступна в системе отображения. Например в игре Star Force, вертикальном шутере для NES, этот метод был использован для отображения звездного поля, а в игре Final Fight для Super NES этот метод использовался для создания слоя непосредственно перед основным игровым полем.

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

Игра Risky Woods на Amiga также использует спрайты, мультиплексированные аппаратно, для создания полноэкранного параллакса фонового слоя[7] вместо обычного для системы режима двойного игрового поля.

Повторяющийся шаблон (метод анимации)[править | править код]

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

Растровый метод[править | править код]

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

Некоторые системы отображения имеют только один слой. К ним относятся большинство классических 8-битных систем (таких как Commodore 64, NES, Sega Master System, PC Engine и оригинальный Game Boy). В более сложных играх на подобных системах обычно слой делится на горизонтальные полосы, каждая из которых имеет разные положение и скорость прокрутки. Как правило, полосы, расположенные на экране вверху, будут отображать предметы, удаленные от виртуальной камеры, также одна полоса может оставаться неподвижной для отображения информации о состоянии. Затем программа будет ожидать горизонтального интервала гашения для вычисления нового положения слоя, обусловленного прокруткой, перед тем, как система отображения начнет рисовать строки развертки. Это называется «растровым эффектом», он также может быть использован для изменения системной палитры для отображения градиентного фона.

Некоторые платформы (например, Commodore 64, Amiga, Sega Master System,[8] PC Engine,[9] Sega Mega Drive, SNES, Game Boy, Game Boy Advance и Nintendo DS) обладают возможностью автоматической установки регистров независимо от остальной части программы в течение горизонтального интервала гашения. Другие платформы, такие как NES, требуют использования кода с тактовой синхронизацией, который специально написан так, чтобы выполнять его ровно столько же времени, сколько требуется микросхеме видеовывода для рисования одной строки развертки, либо же требуется использование таймеров внутри игровых картриджей, которые генерируют прерывания после заданного количества отображенных строк. Многие игры для NES используют эту технику для рисования своих статус-баров, а в играх Teenage Mutant Ninja Turtles и Vice: Project Doom для NES она также используется для прокрутки фоновых слоев с разной скоростью.

Более сложные растровые методы могут давать интересные эффекты. Система может очень эффективно достичь глубины резкости, если объединить слои с растрами, как это было использовано в Sonic the Hedgehog, Sonic The Hedgehog 2, ActRaiser, Lionheart и Street Fighter II. Если каждая строка развертки имеет свой собственный слой, создается «эффект Pole Position», при помощи которого создается псевдотрехмерная дорога (или псевдотрехмерная игровая площадка в NBA Jam) в двумерной графике.

Если система отображения поддерживает вращение и масштабирование в дополнение к прокрутке (эффект, широко известный как «Режим 7») то, изменяя коэффициенты вращения и масштабирования, можно создать проекцию плоскости (как в F-Zero и Super Mario Kart) или деформировать игровое поле, создав препятствие для игрока как часть геймплея.

Другим методом является прокрутка строк/столбцов, при которой строки/столбцы тайлов на экране можно прокручивать по отдельности[10]. Этот метод реализован в графических процессорах различных системных плат аркадных систем Sega, начиная с Sega Space Harrier и System 16[11], игровых приставках Sega Mega Drive[12], а также в системах Capcom CP System[13], Irem M-92[14] и Taito F3 System[15].

Пример[править | править код]

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

Параллакс-скроллинг в веб-дизайне[править | править код]

Веб-дизайнеры начали внедрение параллакс-скроллинга в 2011 году, используя HTML5 и CSS3. Его используют как инструмент для лучшего вовлечения пользователей и улучшения общего взаимодействия, предоставляемого веб-сайтом. Тем не менее, исследование Университета Пердью, опубликованное в 2013 году, выявило следующие выводы: «… хотя параллакс-скроллинг улучшает некоторые аспекты взаимодействия с пользователем, он не обязательно улучшает общий опыт взаимодействия пользователя».[16]

См. также[править | править код]

Примечание[править | править код]

  1. "Cap. O'Rourke to the rescue". New Straits Times Malaysia. 1988-09-01. Архивировано из оригинала 1 июля 2019. Дата обращения: 6 июля 2009.
  2. Paul. The Art of Parallax Scrolling (август 2007). Дата обращения: 6 июля 2009. Архивировано 7 октября 2009 года.
  3. Stahl. Chronology of the History of Video Games: Golden Age (26 июля 2006). Дата обращения: 6 июля 2009. Архивировано 16 июля 2009 года.
  4. Gaming's Most Important Evolutions. GamesRadar (8 октября 2010). Дата обращения: 27 апреля 2011. Архивировано 8 апреля 2021 года.
  5. Jungle Hunt Was a Terrible Waste of Quarters. Дата обращения: 27 марта 2015. Архивировано 2 апреля 2015 года.
  6. Purcaru. Games vs. Hardware. The History of PC video games: The 80's. Purcaru Ion Bogdan (13 марта 2014). Дата обращения: 28 марта 2019. Архивировано 30 апреля 2021 года.
  7. Risky Woods. codetapper.com. Дата обращения: 23 апреля 2015. Архивировано 19 февраля 2015 года.
  8. Archived copy. Дата обращения: 4 сентября 2018. Архивировано 9 ноября 2017 года.
  9. Archived copy. Дата обращения: 18 марта 2014. Архивировано 18 марта 2014 года.
  10. Using MAME's tilemap system - DevWiki. archive.org (2 января 2014). Дата обращения: 28 марта 2019. Архивировано 2 января 2014 года.
  11. Archived copy. Дата обращения: 8 августа 2016. Архивировано 4 марта 2016 года.
  12. Sega Genesis vs Super Nintendo. gamepilgrimage.com (11 августа 2009). Дата обращения: 26 сентября 2014. Архивировано 24 сентября 2015 года.
  13. Leaman. New Forgotten World Clone – CP System Code. Дата обращения: 28 марта 2019. Архивировано из оригинала 5 ноября 2015 года.
  14. System 16 - Irem M92 Hardware (Irem). www.system16.com. Дата обращения: 26 сентября 2014. Архивировано 24 декабря 2014 года.
  15. System 16 - Taito F3 System Hardware (Taito). www.system16.com. Дата обращения: 26 сентября 2014. Архивировано 21 апреля 2014 года.
  16. Dede M. Frederick. The Effects Of Parallax Scrolling On User Experience And Preference In Web Design. Purdue University. Purdue University (18 апреля 2013). Дата обращения: 17 апреля 2014. Архивировано 16 апреля 2014 года.