Gamedev
Artyom Kaleev
5297

Как Zelda: A Link Between Worlds устроена за кадром Материал редакции

Проблемы перспективы.

В закладки

A Link Between Worlds, вышедшая на 3DS, в плане геймплея больше похожа на классические части серии — к примеру, та же камера расположена сверху. Однако сама игра выполнена в полноценном 3D, так что, если взглянуть на неё под другим углом, то можно обнаружить интересные находки.

Shesez, автор рубрики Boundary Break на YouTube, опубликовал видео про «закулисье» A Link Between Worlds — а мы выбрали из ролика самое интересное.

Ещё в 2013 году разработчики на Comic Con в Нью-Йорке показали фанатам одну интересную вещь — трюк, который задействован в игре при оформлении трёхмерной графики. Чтобы сохранить перспективу, все объёмные объекты в игровом мире, включая NPC и самого Линка, стоят не прямо, а под углом.

С помощью программ Shesez воссоздал этот трюк самостоятельно и продемонстрировал, как он выглядит в разных локациях.

Выходит, что все объекты — модели NPC и Линка, объёмные предметы — изначально создавались разработчиками с учётом перспективы. Причём угол наклона должен был совпадать с углом камеры, чтобы иллюзия поддерживалась.

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

Так как вся игра сделана «в перспективе», то при таком ракурсе становится видно, что локация отклоняется под углом

Если начать отдалять камеру в разных локациях, то выясняется, что «пустота» за пределами стен уровня не бесконечна. Вслед за ней почему-то расположили растянутое изображение со второго экрана 3DS.

На многих уровнях поверх картинки наложены различные эффекты — например, тумана или ветра. Если повернуть камеру, то становится видно, что всё это — лишь плоская анимированная текстура.

На некоторых локациях если отдалить ракурс, то становятся видны текстуры неба и прочего окружения снаружи стен. Иногда они есть, даже если игрок никогда их не может увидеть — как в тронном зале Зельды, где у неба сразу две плоскости.

А на выходе из подземелий в замках заметно, что окружение вообще трёхмерное, с морем и скалами — хоть и игрок может увидеть лишь малую долю этого.

К слову, даже при всём этом A Link Between Worlds работает на 3DS при 60 кадрах в секунду.

Если же отдалить камеру снаружи Замка Хайрула, то видно, что в качестве текстуры поверхности разработчики использовали изображение с мини-карты — причём, всему окружению они придали объём.

У некоторых подземелий за стенами есть... ещё одни стены.

Вражеский Зора, находясь в воде, может нырнуть и на время зарыться в песок — с точки зрения игрока он исчезает. Однако, при смене ракурса становится понятно, что он никуда не пропадает — его модель на несколько секунд помещается за пределы уровня.

В моменте, когда колдун Юга призывает Ганона, можно увидеть то же самое. В катсцене, где Линк вбегает в комнату, при масштабировании камеры видно самого Ганона, который стоит в Т-позе.

Когда Юга обращает людей в картины, всё происходит так же: персонаж «влетает» в картину и исчезает. За стеной же его можно увидеть во всё той же Т-позе.

Однако самое интересное то, что шары, которые катятся вдоль одного из коридоров и преграждают путь Линку, никуда не исчезают — а на самом деле падают вниз уровня, описывают круг и возвращаются на прежнее место, чтобы вновь скатиться. В играх так почти не делают.

Королева Зора всё время находится бассейне с водой. Стоит увести камеру под уровень, и становится видно, что её модель там никак не продолжается.

Зато в «девичьем» состоянии у неё проработаны ноги, хоть игрок, опять же, их никогда не может увидеть.

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

У ведьмы под шляпой на самом деле нет глаз — их область затемнена.

Зато у проповедника (Priest) под очками они наоборот есть.

Интро у игры на самом деле трёхмерное, причём все анимированные изображения как бы скруглены.

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

Зато у самого Линка карта, которую он держит в руках, пустая.

Маска Маджоры, которая висит на стене, проработана внутри — хоть и не совсем чётко.

Во время одной из катсцен Юга призывает Ганона. Его модель видно лишь доли секунды, однако с помощью смены ракурса Shesez разглядел её поближе.

{ "author_name": "Artyom Kaleev", "author_type": "editor", "tags": ["\u0440\u0430\u0437\u0431\u043e\u0440","\u043e\u043f\u044b\u0442","\u0437\u0430\u043a\u0430\u0434\u0440\u043e\u043c","zelda"], "comments": 13, "likes": 89, "favorites": 60, "is_advertisement": false, "subsite_label": "gamedev", "id": 51571, "is_wide": true, "is_ugc": false, "date": "Fri, 24 May 2019 16:35:39 +0300", "is_special": false }
0
{ "id": 51571, "author_id": 17412, "diff_limit": 1000, "urls": {"diff":"\/comments\/51571\/get","add":"\/comments\/51571\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/51571"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }
13 комментариев
Популярные
По порядку
Написать комментарий...
9

Помню в свое время в штыки принял механику с 2D Линком и передвижению по стенам, но поиграв в игру понял, что это отличное подспорье для загадок, да и вообще, это одна из самых ламповых Зельд .

Ответить
4

шары, которые катятся вдоль одного из коридоров и преграждают путь Линку, никуда не исчезают — а на самом деле падают вниз уровня, описывают круг и возвращаются на прежнее место, чтобы вновь скатиться. В играх так почти не делают.

Ошибаетесь, строго наоборот.
https://gameprogrammingpatterns.com/object-pool.html

Ответить
0

Я бы после
С помощью программ Shesez воссоздал этот трюк самостоятельно и продемонстрировал, как он выглядит в разных локациях

не удивлялся знаниям и перлам переводчика.

Ответить
0

Тоже хотел написать) Это вообще одна из первейших заповедей программистов - делать пулы часто используемых обьектов.

Ответить
3

Не разрушайте магию этой чудесной игры!)
Ну а если без шуток, то статья очень занимательная!

Ответить
2

Хорошая игра, хороший разбор.
Жаль, правда, быстро и легко проходится.

Ответить
0

Часов 15 проходится. По моему норм.

Ответить
0

Видимо после БОТВы решили в 2д Зельду поиграть .

Ответить
0

По моему ботв это единственная длинная зельда.

Ответить
1

Ну как там Водный Храм в окарине и маджоре?

Ответить
2

Да понятно же все, ну.
Моделлили с костылями, потому что на тот момент еще не знали точно, в каком виде модель попадет в окончательную игру, и что по факту будет видно. Отсюда и "ненужные" ноги у персонажей (а вдруг в конце переиграют и надо сделать - пусть лучше будут изначально), и глаза под очками, и небо в окне.
А в конце, когда сводили все вместе и уже стало ясно, какие куски моделей не попадут в камеру ни при каких обстоятельствах - резать их и упрощать было уже себе дороже.
Никакой загадки.

Ответить
1

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

Шарики по кругу - это кстати легче, наверно, чем спавнить и уничтожать их в нужных местах.

Ответить
0

А что с буквами на скриншоте случилось? Не пережили магию камеры? :-)

Ответить

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "chvjx", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbl", "p2": "gnwc" } } } ]