Gamedev Artyom Kaleev
9 881

Как устроена Zelda: Spirit Tracks за кадром

Когда вместо поезда едут рельсы.

В закладки
Аудио

The Legend of Zelda: Spirit Tracks — это одна из игр серии, выпущенная для Nintendo DS. Ввиду своей портативности эта консоль не настолько производительная, как хотелось бы, поэтому разработчикам пришлось пойти на некоторые ухищрения.

Пользователь YouTube под ником Shesez с помощью читов выяснил, как Spirit Tracks выглядит за пределами камеры. Нашлось место как любопытным визуальным приёмам, так и разным странностям.

Интересные вещи начинаются ещё со стартового экрана, где едет поезд, которым управляет Линк. Он выезжает из тоннеля, после которого игроку открывается вид на Хайрул.

С точки зрения дизайна локации весь тоннель — это просто комната, которая «отъезжает» назад. А после она вообще пропадает с уровня.

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

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

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

Создание таких локаций, в которых ракурс камеры всегда закреплён с одной стороны — распространённый способ сэкономить ресурсы. Углы, которые игрок никогда не должен увидеть, попросту не прорабатываются.

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

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

Во время путешествия по миру Линк может встретить персонажа по имени Феррис. Чтобы поговорить с ним, герой вылезает из поезда.

В тот момент, когда это случается, камера переключается, а локация (с технической точки зрения) полностью меняется на «личную» для Ферриса. Кроме него в ней больше ничего нет.

Как это выглядит с точки зрения игрока
При отдалении камеры

Более того, выясняется, что каждый раз, когда игрок начинает диалог с Феррисом, он попадает в один и тот же уровень — просто там заготовлены отдельные варианты для каждого из биомов.

А ещё позади почему-то стоят три модельки Ферриса, которые в игре больше никак не используются

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

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

Это Альфонзо, Нико и сам Линк

Довольно часто в Spirit Tracks у персонажей игры прорисованы такие детали, которые в обычных условиях никогда не видны. Например, у антагониста Бёрна под маской всё же есть лицо.

В случае с подзагрузкой окружения во время передвижения по миру Spirit Tracks работает немного иначе, чем другие игры. Так, из памяти игры пропадают не целые «чанки» с ландшафтом, а лишь мелкие объекты.

А сам дизайн локаций при отдалении камеры ассоциируется с играми серии Pokemon.

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

Оригинальный ракурс
Если отвести камеру назад

Или другой момент, когда Линк встречает Бёрна.

Особенно любопытно следующее: в одной из кат-сцен, когда Линк ловит руками Зельду, их обоих «утягивает» под землю. И через некоторое время герой внезапно меняет выражение лица.

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

Во время путешествия на поезде по Путям духов некоторые объекты ведут себя странно. Например, паук, который просто свисает с неба: как только он пропадает из вида, его почему-то утягивает вверх.

Оригинальный ракурс

А спрайтовые деревья поворачиваются «лицом» к игроку.

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

#zelda #разбор #опыт

{ "author_name": "Artyom Kaleev", "author_type": "editor", "tags": ["\u0440\u0430\u0437\u0431\u043e\u0440","zelda","\u043e\u043f\u044b\u0442"], "comments": 36, "likes": 223, "favorites": 77, "is_advertisement": false, "subsite_label": "gamedev", "id": 31253, "is_wide": true, "is_ugc": false, "date": "Mon, 12 Nov 2018 18:35:23 +0300" }
{ "id": 31253, "author_id": 17412, "diff_limit": 1000, "urls": {"diff":"\/comments\/31253\/get","add":"\/comments\/31253\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/31253"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "possessions": [] }

36 комментариев 36 комм.

Популярные

По порядку

Написать комментарий...
129

Обожаю эти статьи. Побольше бы их, а не кранчей-хуянчей и скандалов и сжв.

Ответить
6

Тож крутая, но мне особенно нравятся те разборы, где разрабы борются с лютыми ограничениями, как на NDS.

Ответить
3

Приятно, когда твои материалы шарят на DTF)

Ответить
3

Эта статья того стоит всё-таки )
Интересная ведь реализация!

Ответить
12

А ты знаешь сколько кранчей и скандалов было, пока разрабы это делали?1!!1 Эту фишку с туннелем вообще придумала женщина, а хуемрази-коллеги скрыли это общественности!

Ответить
1

Да ну, стандартные трики, стандартные модельки и их поведение в катсценах.

Ответить
32

В общем все по стандарту. Особенно с деревьями

Ответить
25

Разработчики для DS в принципе достигли совершенства оптимизации. Начинка в консоли - говно, благо что не натуральное. И тем не менее: Kingdom Hearts, The World Ends With You, Infinite Space...

Ответить
58

Классика:

lead: Леша, прицепи к самолетам по две белые полоски.
junior : Готово.
qa : Истребители перестали сбивать. Не могут стрелять.
senior : Полоски закрывают пулеметы. А на них материал, в котором прописана коллизия для пуль. Пули не проходят.
lead: Как полоски могут закрывать пулеметы, если полоски нанесены в задней части фюзеляжа?
senior : А у нас у истребителей настоящие пулеметы как раз в задней части фюзеляжа. А в крыльях - фейковые, для вида только, пыщ-пыщ делать. Так исторически сложилось, уже не помню, почему. Теперь долго переделывать, на это вся их баллистика завязана.
lead: Зачем полоски коллизят пули? Сними с них коллизию.
3d artist: Я не могу, у нас коллизии захардкожены в текстурах, а других текстур нет. Эту вырезал с Флетчера, самая белая текстура, какую нашел. А у него там броня четыре сантиметра.
lead: Подвинь полоски, чтобы не закрывали пулеметы.
historical consultant: Я щас кому-то подвигаю! До миллиметра по историческим фотографиям вымеряли...
lead: Боря, придумай какой-нибудь хак. Ситуация безвыходная.
senior : Пропишите пулеметам дамаг 231 вместо 2. Из него ровно 229 уйдет на пробитие полосок, дальше полетят пули с остаточным дамагом 2, как и должно быть.
designer: Прописал пулеметам дамаг 231
senior : Теперь все должно быть в порядке.

Ответить
1

Вопрос только один. Ну где эти деятели на корпусе эсминца Флетчер (а по байке, вырезали оттуда), нашли броню 4 см??? Там самое большое, противоторпедный пояс был 18 мм, а бронепалуба 12. Не линкор, чай.

Ответить
2

Я не программист, но именно таким подходом зачастую занимаюсь на работе!!!

Ответить
0

Самолеты проектируешь?)

Ответить
4

Подводную технику :)

Ответить
0

Ужас-то какой…

Ответить
0

Инженерный подход (с)

Ответить
0

вы ещё историю про гранату и ящики вспомните

Ответить
12

А мне вспомнилась история из редактора 4-ых Героев. Там нет скрипта, проверяющего сложность, которую выбрал игрок для карты. И если надо было сделать такую проверку, то в горы ставился нейтральный рыцарь с 10 гномами. Скрипт в начале игры спрашивал: сколько гномов у рыцаря? А т.к. от сложности игры зависел модификатор армии врагов, то ответ "10 гномов" значил обычную сложность, 15 - сложный уровень, 20 - хардкорный, 5 - лёгкий.

Ответить
1

Ого, вот это да! Немного занимался созданием карт для HoMM IV и Disciples II, но про такую штуку не знал.

Ответить
11

спрайтовые деревья поворачиваются «лицом» к игроку.

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

Ответить
0

В The Saboteur и последнем NFS этот метод вызвал у меня диссонанс

Ответить
7

Оп-оп, новую серию сериала "по ту сторону геймплея" завезли. Пасиба мил человек.

Ответить
5

А спрайтовые деревья поворачиваются «лицом» к игроку.

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

Ответить
6

в сознательном возрасте впервые заметил в Dear Esther. сильно смеялся.
сразу как-то самомнение вырастает, когда видишь, что трава и деревья
вращаются только для тебя (прямо как рассветы и туманы, как моря и океаны)

Ответить
2

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

Ответить
5

Особенно любопытно следующее: в одной из кат-сцен, когда Линк ловит руками Зельду, их обоих «утягивает» под землю. И через некоторое время герой внезапно меняет выражение лица.

Гусары, молчать!

Ответить
4

Разработчики просто анимировали поверхность, по которой он едет.

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

Ответить
3

Твоё выражение, когда не поймал Зельду, потому провалился в эти грёбаные текстуры.

Ответить
0

Просто чертова баба постоянно пытается утянуть тебя в ад! ТНН.

Ответить
0

Так вот где черпали вдохновение разработчики Outlast

Ответить
0

Великолепная статья, с удовольсвтием сам попробую поиграть!

Ответить
0

Чёрная текстура в конце, скорее всего, не появляется, а становится непрозрачной.

Ответить
0

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

Ответить
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": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "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, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "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": 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" } } } ]
EA анонсировала DLC для DLC
для аддона для спин-оффа
Подписаться на push-уведомления