Мне не терпится вам рассказать о находке, вызвавшей бурю приятных чувств и забытого, почти юношеского энтузиазма. Всем, кто любит игры с платформы PS1, будет особенно интересно.

Модель Лары Крофт из первой части Tomb raider в программе blender
Модель Лары Крофт из первой части Tomb raider в программе blender

Недавно наткнулся на информацию о том, что существует форк известного эмулятора Sony Playstation 1 — Duckstation, в котором энтузиасты сделали возможность «выдёргивать» трёхмерную геометрическую информацию и текстуры в виде obj файла, пригодного для импортирования в большое количество трёхмерных редакторов.

Краткий обзор эмулятора

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

Во-первых, это хорошо сделанная программа. Быстрая, удобная, с продуманным интерфейсом и широченными возможностями для настройки эмуляции: изображения, звука, постобработки и прочего.

Если вы использовали эмулятор EPSXE и его последователей, знаете, что их архитектура построена на базе ядра и плагинов. У дакстейшн иначе, это комбайн, в котором уже всё готово к работе. Для игры потребуется физический CD или образ диска и дамп BIOS приставки. По юридическим причинам эмуляторы не поставляют эти дампы, но они без затруднений находятся в Сети. Их нужно скопировать в директорию в общей директории файлов программы.

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

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

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

В динамике разница намного очевиднее
В динамике разница намного очевиднее
Обратите внимание на текстуру на деревянном полу.
Обратите внимание на текстуру на деревянном полу.

Тут нужно сделать маленькую ремарку. Мне нравится играть в нативном разрешении 320х240 без фильтрации и сглаживания. Чтобы вершины тряслись, и тексель с кулак. Затем густо обмазано шейдерами постобработки. NTSC добавляет ту неуловимую мыльность изображения и краевые эффекты, а наложенная сверху сетка люминофора делает погружение в счастливые воспоминания из детства.

Ещё примеры

Дакстейшн хорош тем, что позволяет настроить качество графики так, что некоторые игры вполне достигают по качеству графики компьютерные игры той поры. Всё на ваш вкус.

Free camera

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

Игра Tomb raider 2, мне очень хотелось узнать, что там повыше стеклянного потолка в уровне «Логово Бартолли» и спустя много лет оказалось, что там нет ничего особого. Но сама возможность многого стоила. Также можно посмотреть, что в шкафу в доме Лары Крофт, в который никаким образом нельзя зайти в тренировочном режиме. Оказалось, что там нет ничего, только темнота. Даже нет объёма, который появляется в последнем уровне игры, происходящем в той же локации.

В Ace Combat 2 выяснилось, что звёзды в ночных уровнях по своей сути — небольшого размера «коробка», привязанная к камере.

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

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

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

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

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

Отражения в мечах стражей динамические — проекция текстуры буфера кадра
Отражения в мечах стражей динамические — проекция текстуры буфера кадра

3D screenshot

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

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

Запустите форк, найдите в главном меню программы 3D Screenshot ‣ Show 3D Screenshotter. Откроется окно с настройками.

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

Texture mode указывает, как программа запишет текстуры на диск. Я пробовал все три опции, и если честно не понял особой разницы, так как в любом случае на выходе будут странновато выглядящие текстуры 256х256 пикселей.

Текстура в режиме Packed. Выглядит достаточно круто как самостоятельный арт.
Текстура в режиме Packed. Выглядит достаточно круто как самостоятельный арт.

Опция disable culling рекомендована для большинства игр подсказкой в самой программе (которая показывается при наведении на знак вопроса прямо в меню).

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

2D Mode позволяет захватывать плоские интерфейсные элементы, но при этом сильно портится геометрия объектов. Интересная настройка, стоит изучить.

3D screenshot можно использовать вместе с Freecam.

3D скриншоты программа складывает в директорию ~/.local/share/duckstation/screenshots_3d в виде .obj. .mtl файлов и набора текстур в *.png. При импорте в blender рекомендую ставить масштаб 0.01

Все изображения в этом разделе — скриншоты из программы blender. Опытным путём удалось выяснить, что через obj файлы передаётся информация единым мешем, разделённым на отдельные несвязанные треугольники. Если вы захотите напечатать модели, вам придётся их доработать. Слить вершины, отделить объекты друг от друга. Материалы, как я понял, назначаются в зависимости от используемой текстуры. Одна модель может содержать множество материалов, которые ссылаются на текстуры. Карты прозрачности в некоторых играх передаются корректно, в других нет.

Tomb raider

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

Я старался каждый снимок проверять не только в текстурном режиме, но и в режиме отображения цветов вершин (vertex color), в те времена это был мощный инструмент для создания эффектов освещения и цвета материалов.

Голубой многогранник — кристалл сохранения
Голубой многогранник — кристалл сохранения

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

Не треугольные, а призматические.
Не треугольные, а призматические.

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

Вот как освещение получается из текстурных карт (albedo) и цвета вершин (vertex color).

Tomb raider II

Мне показалось занятным, что небо расположено весьма близко к модели персонажа. И ещё примечательно, что сзади в области затылка имеется дополнительный участок неба. Видимо, в этом был какой-то смысл.

Ещё удивила дальность прорисовки локаций.

Чем дальше, тем темнее
Чем дальше, тем темнее
Повысили детализацию модели
Повысили детализацию модели

Die Hard trilogy

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

Геометрия уровня снимается с некоторым искажением перекоса. При желании это исправляется модификатором Skew и поворотом.

Dino crisis

Благодаря умелому подходу разработчиков и камерности локаций в игре удалось сделать детализированные модели персонажей и проработанное окружение. В отличие от игр серии Resident evil тут честное 3Д.

Активно и умело используется цвет вершин.

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

Небо располагается на приличном отдалении от камеры и сцены.

Biohazard (Resident evil 1)

Как и ожидал, снимается только трёхмерная часть графики: персонажи, монстры, интерактивные объекты. Вот, на примере сцены в столовой. Обратите внимание на герб, который можно извлечь и забрать с собой.

Ставь лайк, если вспомнил кринжовые диалоги.
Ставь лайк, если вспомнил кринжовые диалоги.
— What is this? — Blood...
— What is this? — Blood...

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

— Посмотри на себя, до чего ты докатился.
— Посмотри на себя, до чего ты докатился.

Пример того, как работает 2D-режим. Меню снимается послойно, а трёхмерная модель рассыпается на треугольники.

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

Driver

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

При этом игра показывала неплохой FPS и дальность прорисовки при огромном городе.

Syphon filter

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

Расшакаленный результат
Расшакаленный результат

Хочу отметить умелое использование вертексного цвета для имитации освещения.

Twisted metal 2

Порадовала дальность прорисовки локаций и очень умелое использование LOD (моделей с изменяемой степенью детализации). Я никогда не задумывался, насколько эта игра технически продвинутая. Именно благодаря использованию LOD получилось добиться отличной производительности. У некоторых крупных моделей я насчитал около пяти вариантов детализации.

Вы только посмотрите, насколько гигантский уровень, и это всё находилось в памяти приставки, это не склейка! Башня чуть ли не в реальный размер нарисована.

Небо располагается на приличном отдалении от модели машины, видно, что градиент сделан вертексным цветом.

Модели пешеходов, радикальная оптимизация. 12 треугольников и текстурка, и готово :)
Модели пешеходов, радикальная оптимизация. 12 треугольников и текстурка, и готово :)

Silent hill

Тут всё хорошо, снимается без искажений.

На ночных сценах с фонариком видно, как распространяется освещение.

Многочисленные квадраты — это эффект расходящихся кругов воды от капель дождя.

Krazy Ivan

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

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

Радостно, что сегодня я могу это сделать в своём любимом 3D-редакторе, вдумчиво посмотреть с разных сторон.

Вертексный цвет также активно используется для эффектов освещения и раскраски. Psygnosis умели делать красиво. Правда, не всегда умели сделать интересно...

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

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

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

Один из нелепых способов разнообразить игру является двухминутный таймер, если он доходил до нуля, то почему-то прилетала копия самого протагониста, названная Darkknight. Это никак не объясняется, просто сражайся с самим собой :)

Няшный.
Няшный.

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

Заключение

Надеюсь, что вам понравилось. Возможно, кто-то проведёт отлично время, ковыряясь во всём этом великолепии так же, как и я. Пишите, если что-то найдётся интересное.

© 2026 ООО «МТ ФИНАНС»