Skip to content

aleko2144/WDB-Viewer

Repository files navigation

WDB-Viewer

Virtual World Inventor engine (Rig'n'Roll game) *.wdb viewer powered by Godot 4.3 engine. Утилита для просмотра wdb-файлов на движке Godot 4.3. В основе проекта лежит SDK к Д-3 от shao.

vk.com/rnr_mods

Запуск собранного приложения:

  1. Распаковать приложение в корень директории установленной игры "Дальнобойщики 3".
  2. В файле "scenes_d3.lst" убрать комментарий (";") перед списком, из которого будут загружены модели.
  3. В файле выбранного списка (например, "load_vehicles_cars.lst") убрать комменатрий перед именем объекта, который будет импортирован.
  4. Сохранить файлы и запустить программу: "viewer.exe" - релизная сборка, "viewer_debug.exe" - сборка для отладки. Вторую версию запускать через файл "viewer_debug.console.exe". Релизная сборка работает быстрее.

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

Параметры lst-файла:

Данные файлы представляют собой списки сцен, которые требуется загрузить программе. Строки комментируются при помощи символа ";".

Параметры: include-> путь Подключение ещё одного списка загружаемых сцен.

scene-> путь Указывает программе путь к wdb-файлу, который нужно загрузить.

dir-> путь Загружает все wdb-файлы из указанной директории. Использовать с осторожностью!

Флаги: Используются для установки параметров сцен. Все сцены, расположенные между <флаг>: true и <флаг>: false, будут иметь указанный параметр. Допускается ставить несколько флагов на сцены. Примеры использования см. в файлах "load_vehicles_lorries.lst" и "load_common.lst".

disableAutoSpace Отключает авторасстановку геометрии (DrawContainer) и групп (NodeGroup, NodeCall). Без данного флага модели персонажей импортуются некорректно.

removeAfterInit Удаление сцен сразу после инициализации всех импортированных wdb-файлов.

hideAfterInit Отключение отображения сцен сразу после инициализации всех импортированных wdb-файлов.

Меню обозревателя объектов

Позволяет просматривать структуру импортированных wdb-файлов, а также переключать видимость объектов. Двойной клик на выбранном объекте переключает его видимость. Поддерживается групповое выделение объектов. Для этого нужно выбрать объект выше поиерархии, выделить его, затем зажать и выбрать объект, расположенный ниже по иерархии. Для группового переключения отображения объектов нужно удерживая дважды нажать на самый последний выделенный объект.

3D-модели расположены в объектах класса NodeObject. Группы объектов расположены внутри корневого объекта UnitGroup. Тягачи обычно состоят из трёх объектов PumpUnit: 1)car_PumpUnit, содержащий облик тягача и упрощённую модель салона, 2)car_InPumpUnit, содежащий детализированную 3D-модель салона, отображаемую при виде из кабины, и 3)car_WindowPumpUnit.

Внутри car_PumpUnit->NodeModel обычно в первом NodeRoot хранится 3D-модель автомобиля, включая его колёса. Однако, колёса также могут быть продублированы и во втором NodeRoot. Улучшения грузовиков обычно хранятся внутри NodeCaseRefSwitch. Для переключения отображаемого дополнения следует выключить видимость первого дочернего объекта NodeCaseRefSwitch и включить видимость второго и т.п. Внутри NodeCaseRefSwitch должен быть видимым только один объект. Впрочем, количество видимых объектов никак не влияет на работоспобность программы.

Экспорт в GLTF

В окне экспортера следует выбрать директорию, в которую будут сохранены все видимые сцены. Каждая сцена будет экспортирована в свою собственную папку. Процесс экспорта может быть продолжительным. Для экспорта локаций может потребоваться несколько гигабайт места на жёстком диске.

Важно! Экспортируются только видимые объекты (видимые в плане того, что не отключена их отрисовка в меню обозревателя объектов). Сцены, не имеющие 3D-объектов, экспортированы не будут.

Управление:

Разное:

  1. F1 - спрятать/отобразить GUI
  2. F6 - снимок экрана
  3. Ctrl+O - открыть меню обозревателя объектов
  4. Ctrl+X - открыть меню выбора папки для сохранения всех импортированных сцен в формате gltf

Переключение режимов отрисовки:

  1. 1 - wireframe / normal (режим сетки)
  2. 2 - unshaded / normal (равносторонее освещение)

Переключение фона:

  1. 3 - небо / серый цвет

Переключение освещения:

  1. 4 - вкл./выкл. фоновый источника света
  2. L - вкл./выкл. фонарик

Перемещение:

  1. W/S - вперёд / назад
  2. D/A - вправо / влево
  3. E/Q - вверх / вниз
  4. Правая кнопка мыши + движение мыши - обзор
  5. Колёсико мыши вверх - увеличить скорость движения
  6. Колёсико мыши вниз - снизить скорость движения

Известные недоработки

  1. Заполнение консоли движка Godot после импорта wdb сообщениями типа "condition 'p_elem->_root != this'" и т.п. Иногда помогает перезапуск запущенного проекта (не самого движка).
  2. (Только в версии 0.3) - отсутствие поддержки WDB-файлов версии 1000. Поддерживается только 1001.
  3. Проблемы с авторасстановкой объектов и углами их поворота. Особенно заметно на спортивных грузовиках из Rig'n'Roll Gold Edition. Впрочем, в последнем случае углы поворота можно исправить, импортировав модель из GLTF в Blender и перевернув знаки поворота объектов NodeGroup (нужно менять угол поворота именно родительского объекта, а не самой 3D-модели).
  4. Не всегда присваивается текстура материалам, из-за чего некоторые 3D-модели выглядят просто белыми. Особенно часто это происходит при импорте wdb-файлов игрового мира.
  5. Используется встроенный в движок StandardMaterial3D, а не специально написанный шейдер, совместимый с WDB. Описаны лишь основные параметры материалов, из-за чего некоторые объекты могут не иметь прозрачность, например, деревья.
  6. (Только в версии 0.3) - не описаны классы NodeLight и NodeLightData, а также все производные от них.
  7. Могут быть утечки памяти в процессе использования программы. Кроме того, приложение "крайне тяжело" закрывается.

Дополнительная информация

Автор программы - aleko2144

Благодарности:

  1. 1C и SoftLab-NSK за игру и интерсные форматы файлов:)
  2. shao за публикацию некоторых инструментов к игре много лет назад
  3. Виктор Царёв

About

Rig'n'Roll *.wdb viewer powered by Godot Engine.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors