Изометрическая графика видеоигр — это графика, используемая в видеоиграх и пиксельной графике , которая использует параллельную проекцию , но которая наклоняет точку обзора, чтобы показать грани окружающей среды, которые в противном случае не были бы видны сверху вниз или сбоку , тем самым создавая трехмерный (3D) эффект . Несмотря на название, изометрическая компьютерная графика не обязательно является истинно изометрической — то есть оси x , y и z не обязательно ориентированы на 120° друг к другу. Вместо этого используются различные углы, при этом наиболее распространенными являются диметрическая проекция и соотношение пикселей 2:1. Термины «перспектива 3/4», «вид 3/4», « 2.5D » и «псевдо 3D» также иногда используются, хотя эти термины могут иметь немного иные значения в других контекстах.
Когда-то распространенная, изометрическая проекция стала менее популярной с появлением более мощных систем 3D-графики , и поскольку видеоигры стали больше фокусироваться на действии и отдельных персонажах. [1] Однако видеоигры, использующие изометрическую проекцию, особенно компьютерные ролевые игры , в последние годы переживают возрождение на сцене инди-игр . [1] [2]
Хорошо выполненная изометрическая система никогда не должна заставлять игрока думать о камере. Вы должны иметь возможность быстро и интуитивно перемещать вид на то, на что вам нужно смотреть, и никогда не думать о механике камеры. Попытка запустить полноценную 3D-камеру во время игры в тактический бой в реальном времени наверняка вызовет пожар в шлеме у новых игроков, поскольку они быстро будут подавлены механикой.
В области компьютерных и видеоигр , а также пиксельной графики эта техника стала популярной из-за легкости, с которой 2D - спрайты и плиточная графика могут быть сделаны для представления 3D- игровых сред. Поскольку параллельно проецируемые объекты не меняют размер при перемещении по области, компьютеру не нужно масштабировать спрайты или выполнять сложные вычисления, необходимые для имитации визуальной перспективы . Это позволило 8- и 16-битным игровым системам (а в последнее время и портативным и мобильным системам) быстро и легко отображать большие игровые области. И, хотя проблемы с глубиной путаницы параллельной проекции иногда могут быть проблемой, хороший дизайн игры и уровней может облегчить это.
Кроме того, хотя это не ограничивается строго изометрической графикой видеоигр, предварительно отрендеренная 2D-графика может обладать более высокой точностью и использовать более продвинутые графические методы, чем это возможно на общедоступном компьютерном оборудовании, даже с 3D-ускорением оборудования . [4] Подобно современной CGI, используемой в кинофильмах , графика может быть отрендерена один раз на мощном суперкомпьютере или ферме рендеринга , а затем отображена много раз на менее мощном потребительском оборудовании, таком как телевизоры , планшетные компьютеры и смартфоны . Это означает, что статическая предварительно отрендеренная изометрическая графика часто выглядит лучше по сравнению с ее современными аналогами, отрендеренными в реальном времени, и может со временем лучше стареть по сравнению со своими сверстниками. [2] Однако это преимущество может быть менее выраженным сегодня, чем это было в прошлом, поскольку разработки в области графических технологий уравнивают или производят убывающую отдачу , и текущие уровни графической точности становятся «достаточно хорошими» для многих людей. [ необходима цитата ]
Наконец, есть также игровые преимущества использования изометрической или почти изометрической перспективы в видеоиграх. Например, по сравнению с чисто игрой сверху вниз , они добавляют третье измерение, открывая новые возможности для прицеливания и платформинга . [1] Во-вторых, по сравнению с видеоигрой от первого или третьего лица , они позволяют вам легче выставлять и контролировать большое количество юнитов, например, полную группу персонажей в компьютерной ролевой игре или армию миньонов в стратегической игре в реальном времени . [1] Кроме того, они могут облегчить ситуации, когда игрок может отвлекаться от основной механики игры, постоянно управляя громоздкой 3D-камерой. [1] То есть, игрок может сосредоточиться на самой игре, а не на манипулировании камерой игры. [1]
В настоящее время возрождение изометрической проекции является не просто источником ностальгии, а результатом реальных, ощутимых преимуществ дизайна. [1]
Некоторые недостатки предварительно отрендеренной изометрической графики заключаются в том, что, поскольку разрешения дисплеев и соотношения сторон дисплея продолжают развиваться, статические 2D-изображения должны быть повторно отрендерены каждый раз, чтобы идти в ногу со временем, или потенциально страдать от эффектов пикселизации и требовать сглаживания . Однако повторный рендеринг игровой графики не всегда возможен; как это было в 2012 году, когда Beamdog переделал Baldur's Gate (1998) от BioWare . Beamdog не хватало креативных художественных активов оригинальных разработчиков (исходные данные были утеряны в результате наводнения [5] ) и они выбрали простое масштабирование 2D-графики со «сглаживанием», без повторного рендеринга спрайтов игры. Результатом стала определенная «размытость» или отсутствие «четкости» по сравнению с графикой оригинальной игры. [ необходима цитата ] Однако это не влияет на полигональные изометрические видеоигры, визуализируемые в реальном времени, поскольку изменение их разрешения экрана или соотношения сторон по сравнению с ними является тривиальным.
Проекция, обычно используемая в видеоиграх, немного отклоняется от «истинной» изометрии из-за ограничений растровой графики . Линии в направлениях x и y не будут следовать аккуратному пиксельному шаблону, если они будут нарисованы под требуемым углом 30° к горизонтали. Хотя современные компьютеры могут устранить эту проблему с помощью сглаживания , более ранняя компьютерная графика не поддерживала достаточно цветов или не обладала достаточной мощностью ЦП для достижения этого. Вместо этого для рисования линий осей x и y использовалось соотношение пиксельного шаблона 2:1 , в результате чего эти оси следовали под углом ≈26,565° ( arctan(1/2) ) к горизонтали. (Однако игровые системы, не использующие квадратные пиксели , могут выдавать различные углы, включая «истинную» изометрию.) Поэтому эту форму проекции точнее описать как разновидность диметрической проекции , поскольку только два из трех углов между осями равны друг другу, то есть (≈116,565°, ≈116,565°, ≈126,870°) .
Некоторые трехмерные игры были выпущены еще в 1970-х годах, но первыми видеоиграми, использовавшими особый визуальный стиль изометрической проекции в описанном выше смысле, были аркадные игры начала 1980-х годов.
Использование изометрической графики в видеоиграх началось с аркадной игры Treasure Island от Data East для кассетной системы DECO [6] , выпущенной в Японии в сентябре 1981 года [7] , но на международном уровне она была выпущена только в июне 1982 года [8]. Первой изометрической игрой, выпущенной на международном уровне, была Zaxxon от Sega , которая была значительно более популярной и влиятельной; [9] [10] она была выпущена в Японии в декабре 1981 года [11] , а на международном уровне — в апреле 1982 года [8]. Zaxxon — изометрический шутер , в котором игрок летает на космическом самолете по прокручивающимся уровням. Это также одна из первых видеоигр, в которой отображаются тени. [9]
Еще одна ранняя изометрическая игра — Q*bert . [12] Уоррен Дэвис и Джефф Ли начали программировать концепцию примерно в апреле 1982 года. Производство игры началось летом, а затем она была выпущена в октябре или ноябре 1982 года. [13] Q*bert показывает статическую пирамиду в изометрической перспективе, где игрок управляет персонажем, который может прыгать по пирамиде. [9]
В феврале 1983 года [8] была выпущена изометрическая платформенная аркадная игра Congo Bongo , работающая на том же оборудовании, что и Zaxxon . [14] Она позволяет персонажу игрока проходить нескроллинговые изометрические уровни, включая трехмерное восхождение и падение. То же самое возможно в аркадной игре Marble Madness , выпущенной в 1984 году.
В 1983 году изометрические игры перестали быть эксклюзивными для аркадного рынка и также вошли на домашние компьютеры с выпуском Blue Max для 8-битных компьютеров Atari и Ant Attack для ZX Spectrum . В Ant Attack игрок может двигаться вперед в любом направлении прокручиваемой игры, предлагая полностью свободное движение, а не фиксированное на одной оси, как в Zaxxon . Виды также можно менять вокруг оси на 90 градусов . [15] Журнал ZX Spectrum, Crash , впоследствии присудил ему 100% в графической категории за эту новую технику, известную как «Soft Solid 3-D». [16]
Год спустя была выпущена игра Knight Lore для ZX Spectrum . Она была в целом расценена как революционная игра [17] , определившая последующий жанр изометрических приключенческих игр. [18] После Knight Lore многие изометрические игры появились на домашних компьютерах — до такой степени, что однажды она считалась вторым по клонированию программным обеспечением после WordStar , по словам исследователя Яна Крикке. [19] Другими примерами из них были Highway Encounter (1985), Batman (1986), Head Over Heels (1987) [20] и La Abadía del Crimen (1987). Однако изометрическая перспектива не ограничивалась аркадными/приключенческими играми; например, стратегическая игра Populous 1989 года использовала изометрическую перспективу.
На протяжении 1990-х годов несколько успешных игр, таких как Syndicate (1993), SimCity 2000 (1994), Civilization II (1996), X-COM (1994) и Diablo (1996), использовали фиксированную изометрическую перспективу. Но с появлением 3D-ускорения на персональных компьютерах и игровых консолях игры, ранее использовавшие 2D-перспективу, как правило, начали переключаться на настоящее 3D (и перспективную проекцию ). Это можно увидеть в преемниках вышеупомянутых игр: например, SimCity (2013), Civilization VI (2016), XCOM: Enemy Unknown (2012) и Diablo III (2012) — все они используют 3D-полигональную графику; и хотя Diablo II (2000) использовала фиксированную перспективу 2D, как и ее предшественник, она опционально позволяла масштабировать перспективу спрайтов на расстоянии, чтобы придать им «псевдо-3D» вид. [22]
Также в 1990-х годах изометрическая графика начала использоваться для японских ролевых видеоигр (JRPG) на консольных системах , в частности, тактических ролевых игр , многие из которых до сих пор используют изометрическую графику. Примерами служат Front Mission (1995), Tactics Ogre (1995) и Final Fantasy Tactics (1997) — последняя из которых использовала 3D-графику для создания среды, в которой игрок мог свободно вращать камеру. Другие названия, такие как Vandal Hearts (1996) и Breath of Fire III (1997) тщательно имитировали изометрическую или параллельную проекцию, но на самом деле использовали перспективную проекцию.
Изометрические или подобные им перспективы стали популярными в ролевых видеоиграх , таких как Fallout и Baldur's Gate . В некоторых случаях эти ролевые игры стали определяться своей изометрической перспективой, которая позволяет проводить более масштабные сражения. [1]
Изометрическая проекция продолжает оставаться актуальной в новом тысячелетии с выпуском нескольких недавно профинансированных ролевых игр на Kickstarter . [1] К ним относятся серия Shadowrun Returns (2013-2015) от Harebrained Schemes ; серии Pillars of Eternity (2015-2018) и Tyranny (2016) от Obsidian Entertainment ; и Torment: Tides of Numenera (2017) от inXile Entertainment . [ требуется ссылка ] И Obsidian Entertainment, и inXile Entertainment нанимали или были основаны бывшими членами Black Isle Studios и Interplay Entertainment. Obsidian Entertainment, в частности, хотели «вернуть внешний вид и ощущение игр на движке Infinity Engine, таких как Baldur's Gate , Icewind Dale и Planescape: Torment ». [1] Наконец, несколько псевдоизометрических 3D RPG, таких как Divinity: Original Sin (2014), Wasteland 2 (2014) и Dead State (2014), были краудфандированы с помощью Kickstarter. Однако эти игры отличаются от вышеупомянутых игр тем, что они используют перспективную проекцию вместо параллельной . [ требуется ссылка ] . Есть и другие примеры современных изометрических игр, такие как Project Zomboid .
Термин «изометрическая перспектива» часто неправильно применяется к любой игре с — обычно фиксированным — угловым видом сверху, который на первый взгляд кажется «изометрическим». К ним относятся вышеупомянутые диметрически спроецированные видеоигры; игры, использующие триметрическую проекцию , такие как Fallout (1997) [23] и SimCity 4 (2003); [24] игры, использующие косую проекцию , такие как Ultima Online (1997) [25] и Divine Divinity (2002); [26] и игры, использующие комбинацию перспективной проекции и вида с высоты птичьего полета , такие как Silent Storm (2003), [27] Torchlight (2009) [28] и Divinity: Original Sin (2014). [29]
Кроме того, не все «изометрические» видеоигры полагаются исключительно на предварительно отрендеренные 2D-спрайты. Например, есть игры, которые полностью используют полигональную 3D-графику, но рендерят свою графику с помощью параллельной проекции вместо перспективной, такие как Syndicate Wars (1996), Dungeon Keeper (1997) и Depths of Peril (2007); игры, которые используют комбинацию предварительно отрендеренных 2D-фонов и отрендеренных в реальном времени 3D-моделей персонажей, такие как The Temple of Elemental Evil (2003) и Torment: Tides of Numenera (2017); и игры, которые сочетают отрендеренные в реальном времени 3D-фоны с нарисованными от руки 2D-спрайтами персонажей, такие как Final Fantasy Tactics (1997) и Disgaea: Hour of Darkness (2003).
Одним из преимуществ наклонной проекции сверху вниз по сравнению с другими почти изометрическими перспективами является то, что объекты более плотно вписываются в неперекрывающиеся квадратные графические плитки, тем самым потенциально устраняя необходимость в дополнительном Z-порядке в вычислениях и требуя меньшего количества пикселей.
Одной из наиболее распространенных проблем с программированием игр, использующих изометрические (или, скорее, диметрические) проекции, является возможность сопоставления между событиями, которые происходят на 2D-плоскости экрана, и фактическим местоположением в изометрическом пространстве, называемом мировым пространством. Типичным примером является выбор плитки, которая находится прямо под курсором, когда пользователь щелкает. Одним из таких методов является использование тех же матриц вращения , которые изначально создавали изометрический вид в обратном порядке, чтобы превратить точку в координатах экрана в точку, которая лежала бы на поверхности игрового поля до ее вращения. Затем мировые значения x и y можно вычислить путем деления на ширину и высоту плитки.
Другой способ, который требует меньше вычислительных ресурсов и может дать хорошие результаты, если метод вызывается в каждом кадре, основан на предположении, что квадратная доска была повернута на 45 градусов, а затем сжата до половины своей первоначальной высоты. Виртуальная сетка накладывается на проекцию, как показано на схеме, с осями virtual-x и virtual-y. Щелчок по любой плитке на центральной оси доски, где (x, y) = (tileMapWidth / 2, y), даст одинаковое значение плитки для world-x и world-y, которое в этом примере равно 3 (индексировано как 0). Выбор плитки, которая лежит на одну позицию правее на виртуальной сетке, фактически перемещает на одну плитку меньше на world-y и на одну плитку больше на world-x. Это формула, которая вычисляет world-x, беря virtual-y и добавляя virtual-x из центра доски. Аналогично world-y вычисляется, беря virtual-y и вычитая virtual-x. Эти вычисления измеряются от центральной оси, как показано, поэтому результаты должны быть переведены на половину доски. Например, на языке программирования C:
float virtualTileX = screenx / virtualTileWidth ; float virtualTileY = screeny / virtualTileHeight ; // некоторые системы отображения имеют начало координат в левом нижнем углу, а карта плиток — в левом верхнем углу, поэтому нам нужно изменить направление оси y на противоположное float inverseTileY = numberOfTilesInY - virtualTileY ; float isoTileX = inverseTileY + ( virtualTileX - numberOfTilesInX / 2 ); float isoTileY = inverseTileY - ( virtualTileX - numberOfTilesInY / 2 );
Этот метод может показаться нелогичным на первый взгляд, поскольку берутся координаты виртуальной сетки, а не исходного изометрического мира, и нет однозначного соответствия между виртуальными плитками и изометрическими плитками. Плитка на сетке будет содержать более одной изометрической плитки, и в зависимости от того, где на нее нажата, она должна отображаться в разных координатах. Ключевым моментом этого метода является то, что виртуальные координаты являются числами с плавающей точкой, а не целыми числами. Виртуальные значения x и y могут быть (3,5, 3,5), что означает центр третьей плитки. На диаграмме слева это попадает в 3-ю плитку на y в деталях. Когда виртуальные x и y должны давать в сумме 4, x мира также будет 4.
Это была большая проблема, потому что все оригинальные ресурсы Baldur's Gate, такие как 3D-модели, составляющие эти спрайты, 3D-модели для уровней в оригинальной игре, эти архивы были утеряны.