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
- Распаковать приложение в корень директории установленной игры "Дальнобойщики 3".
- В файле "scenes_d3.lst" убрать комментарий (";") перед списком, из которого будут загружены модели.
- В файле выбранного списка (например, "load_vehicles_cars.lst") убрать комменатрий перед именем объекта, который будет импортирован.
- Сохранить файлы и запустить программу: "viewer.exe" - релизная сборка, "viewer_debug.exe" - сборка для отладки. Вторую версию запускать через файл "viewer_debug.console.exe". Релизная сборка работает быстрее.
Важно! Рекомендуется держать на фоне запущенный диспетчер задач, чтобы следить за расходом оперативной памяти и иметь возможность своевременно закрыть приложение, чтобы не допустить перерасхода памяти.
Данные файлы представляют собой списки сцен, которые требуется загрузить программе. Строки комментируются при помощи символа ";".
Параметры: 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 должен быть видимым только один объект. Впрочем, количество видимых объектов никак не влияет на работоспобность программы.
В окне экспортера следует выбрать директорию, в которую будут сохранены все видимые сцены. Каждая сцена будет экспортирована в свою собственную папку. Процесс экспорта может быть продолжительным. Для экспорта локаций может потребоваться несколько гигабайт места на жёстком диске.
Важно! Экспортируются только видимые объекты (видимые в плане того, что не отключена их отрисовка в меню обозревателя объектов). Сцены, не имеющие 3D-объектов, экспортированы не будут.
- F1 - спрятать/отобразить GUI
- F6 - снимок экрана
- Ctrl+O - открыть меню обозревателя объектов
- Ctrl+X - открыть меню выбора папки для сохранения всех импортированных сцен в формате gltf
- 1 - wireframe / normal (режим сетки)
- 2 - unshaded / normal (равносторонее освещение)
- 3 - небо / серый цвет
- 4 - вкл./выкл. фоновый источника света
- L - вкл./выкл. фонарик
- W/S - вперёд / назад
- D/A - вправо / влево
- E/Q - вверх / вниз
- Правая кнопка мыши + движение мыши - обзор
- Колёсико мыши вверх - увеличить скорость движения
- Колёсико мыши вниз - снизить скорость движения
- Заполнение консоли движка Godot после импорта wdb сообщениями типа "condition 'p_elem->_root != this'" и т.п. Иногда помогает перезапуск запущенного проекта (не самого движка).
- (Только в версии 0.3) - отсутствие поддержки WDB-файлов версии 1000. Поддерживается только 1001.
- Проблемы с авторасстановкой объектов и углами их поворота. Особенно заметно на спортивных грузовиках из Rig'n'Roll Gold Edition. Впрочем, в последнем случае углы поворота можно исправить, импортировав модель из GLTF в Blender и перевернув знаки поворота объектов NodeGroup (нужно менять угол поворота именно родительского объекта, а не самой 3D-модели).
- Не всегда присваивается текстура материалам, из-за чего некоторые 3D-модели выглядят просто белыми. Особенно часто это происходит при импорте wdb-файлов игрового мира.
- Используется встроенный в движок StandardMaterial3D, а не специально написанный шейдер, совместимый с WDB. Описаны лишь основные параметры материалов, из-за чего некоторые объекты могут не иметь прозрачность, например, деревья.
- (Только в версии 0.3) - не описаны классы NodeLight и NodeLightData, а также все производные от них.
- Могут быть утечки памяти в процессе использования программы. Кроме того, приложение "крайне тяжело" закрывается.
Автор программы - aleko2144
Благодарности:
- 1C и SoftLab-NSK за игру и интерсные форматы файлов:)
- shao за публикацию некоторых инструментов к игре много лет назад
- Виктор Царёв