Изометрическая графика видеоигр — это графика, используемая в видеоиграх и пиксельной графике , в которой используется параллельная проекция , но которая наклоняет точку обзора , чтобы раскрыть грани окружающей среды, которые в противном случае не были бы видны с точки зрения сверху вниз или вида сбоку , создавая тем самым трехмерное изображение. -мерный (3D) эффект . Несмотря на название, изометрическая компьютерная графика не обязательно является истинно изометрической — т. е. оси x , y и z не обязательно ориентированы под углом 120° друг к другу. Вместо этого используются различные углы, наиболее распространенными из которых являются диметрическая проекция и соотношение пикселей 2:1. Термины «перспектива 3/4», «вид 3/4», « 2,5D » и «псевдо3D» также иногда используются, хотя в других контекстах эти термины могут иметь несколько иное значение.
Когда-то изометрическая проекция стала менее распространенной с появлением более мощных систем трехмерной графики , а также по мере того, как видеоигры стали больше фокусироваться на действиях и отдельных персонажах. [1] Однако видеоигры, использующие изометрическую проекцию, особенно компьютерные ролевые игры , в последние годы пережили возрождение на инди-игровой сцене. [1] [2]
Хорошо реализованная изометрическая система никогда не должна заставлять игрока думать о камере. Вы должны иметь возможность быстро и интуитивно перемещать вид на то, на что вам нужно смотреть, и никогда не учитывать механику камеры. Попытка использовать полноценную 3D-камеру во время тактического сражения в реальном времени наверняка вызовет возгорание шлема у новых игроков, поскольку они быстро перегружены механикой.
В области компьютерных, видеоигр и пиксельной графики этот метод стал популярным из-за простоты, с которой можно создать 2D - спрайтовую и тайловую графику для представления 3D- игровой среды. Поскольку параллельно проецируемые объекты не изменяются в размере при перемещении по области, компьютеру не требуется масштабировать спрайты или выполнять сложные вычисления, необходимые для имитации визуальной перспективы . Это позволило 8-битным и 16-битным игровым системам (а в последнее время и портативным и мобильным системам) быстро и легко отображать большие игровые области. И хотя проблемы с путаницей глубины при параллельном проецировании иногда могут быть проблемой, хорошая игра и дизайн уровней могут облегчить эту проблему.
Кроме того, хотя и не ограничиваясь строго изометрической графикой видеоигр, предварительно визуализированная 2D-графика может обладать более высокой точностью и использовать более совершенные графические методы, чем это возможно на общедоступном компьютерном оборудовании, даже с аппаратным 3D-ускорением . [4] Подобно современной компьютерной графике , используемой в кино , графика может быть визуализирована один раз на мощном суперкомпьютере или ферме рендеринга , а затем многократно отображена на менее мощном потребительском оборудовании, например, на телевизорах , планшетных компьютерах и смартфонах . Это означает, что статическая предварительно отрисованная изометрическая графика часто выглядит лучше по сравнению с ее современными аналогами, визуализированными в реальном времени, и может со временем стареть лучше по сравнению с аналогами. [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 Cassette System , [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] Другими примерами из них были «Встреча на шоссе» (1985), «Бэтмен» (1986), «По уши» (1987) [20] и «Абадия дель Кримен » (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) — все они используют трехмерную полигональную графику; и хотя в 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-ролевых игр, таких как Divinity: Original Sin (2014), Wasteland 2 (2014) и Dead State (2014), были профинансированы с помощью Kickstarter. Однако эти игры отличаются от вышеупомянутых игр тем, что в них используется перспективная проекция вместо параллельной проекции . [ нужна цитата ]
Термин «изометрическая перспектива» часто неправильно применяется к любой игре с обычно фиксированным углом обзора сверху, который на первый взгляд кажется «изометрическим». К ним относятся вышеупомянутые видеоигры с диметрической проекцией ; игры, использующие триметрическую проекцию , такие как 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); и игры, в которых трехмерный фон, визуализируемый в реальном времени, сочетается с нарисованными от руки двухмерными спрайтами персонажей, такие как 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). . Выбор плитки, лежащей на одну позицию справа в виртуальной сетке, фактически перемещает на одну плитку меньше в мире-y и на одну плитку больше в мире-x. Это формула, которая вычисляет мир-x, беря виртуальный-y и добавляя виртуальный-x из центра доски. Аналогично, world-y рассчитывается путем взятия виртуального-y и вычитания виртуального-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), что означает центр третьей плитки. На диаграмме слева это подробно показано на третьей плитке по оси y. Когда виртуальные x и y должны в сумме составлять 4, мир x также будет равен 4.
Это была большая проблема, потому что все оригинальные ресурсы Baldur’s Gate, такие как 3D-модели, из которых состоят эти спрайты, 3D-модели уровней оригинальной игры и эти архивы, были утеряны.