Добавить в корзинуПозвонить
Найти в Дзене

№3. Ресурсы. Часть 1 — Программы, Звуки и Видео.

Чтобы добиться качественного портирования, я понял для себя, что придется много ручной работы, в принципе, как и у любого модмейкера. Но лишь разница в том, что мне приходится абстрагироваться от оригинального движка X-Ray почти во всём. Можно было бы прикрутить ядро X-Ray на C++ к Godot, благо поддержка этого языка программирования идеально встраиваемая. Пример есть даже на другие движки, показывающий, как подобное делают. Unreal Engine с его STALKER on UE — прямо почти идеальный порт, но автор забросил его и дальше беты не ушёл. Unity проект с его многочисленными попытками портировать игру, примечательно на мобильные устройства. Там всё вразнобой: кто-то так же городит ресурсы под систему Unity, кто использует отдельный самописный инструментарий для загрузки моделей .ogf и т.д., а кто-то — полноценное ядро X-ray как с Unreal. Есть одно огромное "но": я не шарю за C++. Я знаю его базово и плоско, нежели C#. Поэтому идея лезть туда — фиговая. Да и свою кодовую базу можно выработать, на
Оглавление

Программы

Чтобы добиться качественного портирования, я понял для себя, что придется много ручной работы, в принципе, как и у любого модмейкера. Но лишь разница в том, что мне приходится абстрагироваться от оригинального движка X-Ray почти во всём.

Можно было бы прикрутить ядро X-Ray на C++ к Godot, благо поддержка этого языка программирования идеально встраиваемая. Пример есть даже на другие движки, показывающий, как подобное делают.

Unreal Engine с его STALKER on UE — прямо почти идеальный порт, но автор забросил его и дальше беты не ушёл.

Unity проект с его многочисленными попытками портировать игру, примечательно на мобильные устройства. Там всё вразнобой: кто-то так же городит ресурсы под систему Unity, кто использует отдельный самописный инструментарий для загрузки моделей .ogf и т.д., а кто-то — полноценное ядро X-ray как с Unreal.

Есть одно огромное "но": я не шарю за C++. Я знаю его базово и плоско, нежели C#. Поэтому идея лезть туда — фиговая. Да и свою кодовую базу можно выработать, написав код без чужой лицензии или нарушая её.


Поэтому у меня есть
программы, с которыми я начал тесно работать, а именно:

  1. Blender и плагин blender-xray — для работы с 3D-моделями/данными (.ogf), материалами (лишь куски данных), камерой, скелетом / анимацией (.omf) и уровнями (.level). Через него я, кстати, работаю с текстурами ещё.
  2. Paint.net — для основной работы с текстурами, формата .dds. В нём быстрее, чем в Krita / Photoshop, хотя я и работать в них не брезгую.
  3. Само собой, Godot Engine — C++ и Lua, меняем на C# и GDScript.
  4. Visual Studio Code / Notepad++ — для простых текстовых документов.
  5. X-Ray SDK — для справки, на глаз я не буду стараться что-то делать.
  6. Исходный код X-Ray Engine — как и с пунктом 5, чисто для справки.
  7. Далее — разного рода софт для ресурсов.

Звуки

Оригинальные .ogg файлы содержат не только сам звук, но и данные для самой игры, а именно комментарии (это всё проходит через X-Ray SDK). Пример комментария .ogg файла: 1\300\0,7\10\5 (где 1 — минимальное расстояние, 300 — максимальное расстояние, 0,7 — громкость, 10 — слышимость НПС, 5 — тип звука).

В данном случае Godot не нуждается в комментариях, так как он не способен работать с ними. Это можно в будущем вынести в отдельный файл со звуком (подобное, кстати, сделано бывшими разработчиками "Сталкера" в серии игр Metro 2033 и движке 4A Engine), но для начала проще переконвертировать из .ogg в .ogg. На это способен любой онлайн-конвертер. Зачем? Чтобы избежать предупреждений, которые могут плохо сказаться на дальнейшей отладке. Количество .ogg файлов равнозначно количеству ошибок из-за комментариев.

Видео

Изначально видео прошлых частей хранится в формате .ogm.

OGM — это общий контейнер для файлов .ogv (видео) и .ogg (аудио). Вы можете транслировать аудио, видео и субтитры в компактном файловом пакете, не нарушая целостность файлов. Примечательно, что в самих файлах игры есть только видео, больше ничего там нет.

Godot Engine не переваривает OGM-контейнер, но хорошо работает с .ogv (видео) и .ogg (аудио). Самое простое решение — просто переименовать расширение .ogm в .ogv, и видео будет полностью работать.

В переиздании Enhanced Edition сами видео имеют улучшение, а именно ИИ-апскейл до 4K разрешения, хотя, кстати, это сомнительное улучшение. Плюсом ещё также есть старые в ресурсах видео в формате .ogv (и не только). А вот тут я не понимаю, почему они так сделали: они буквально раздувают сами себе ресурсы игры, которые ещё и не используются. Но это не важно.

Для игры уже используется не только другой внутренний кодек для воспроизведения, но и формат .mp4, видимо в целях кроссплатформы, ведь EE версия вышла на консолях ещё.

Godot в принципе такое не переваривает, и тут опять на помощь, как со звуком, приходит любой онлайн-конвертер из .mp4 в .ogv. Самое главное забыл: выбрать качественное сжатие без потерь и прочие очевидные настройки для конвертации, чтобы не убить видео/аудио.

Заключение

Здесь указаны не все ресурсы, которые используются в игре; некоторые из них не общедоступны и работают исключительно из X-Ray Engine и самой игры. В дальнейшем я разберу их в отдельных темах. На этом, пожалуй, всё. Увидимся в следующей статье.