Консольный инструмент на C# (.NET 8) для извлечения геометрии карт RF Online и экспорта в .glb.
- Ищет папку
Map/mapклиента RF Online. - Обрабатывает карты пакетно:
- все карты,
- одну карту по номеру,
- карты по фильтру имени.
- Читает геометрию из
.bsp(BSP parser). - Читает материалы из
.r3m(если файл найден). - Читает текстуры из
.r3tи конвертирует DDS → PNG в памяти. - Экспортирует результат в GLB через SharpGLTF.
- Копирует папку
Sptв каталог экспорта и добавляет SPT-объекты как debug-маркеры (кубы). - Складывает результат в
RF_Release/<map_name>/<map_name>.glb.
- Сборка проекта проходит (
dotnet buildбез ошибок). - Экспорт базовой геометрии карты из BSP.
- Базовое применение материалов и текстур (где данные корректно читаются).
- Обработка прозрачности для части материалов (эвристики по имени и alpha type).
- Пакетная обработка нескольких карт.
- Для карты
Setteдобавлен экспорт BSP-анимации дляObjectId 1/2вglTF animations(TRS-каналы). - Для
Setteдобавлен расширенный диагностический пакет поmg89..92:build_trace_mg89_92.jsonmg_face_vertices_89_92.jsonmg_face_index_stream_89_92.jsonmg_triangles_emitted_89_92.jsonvertex_pool_ranges.jsonface_plane_metrics_89_92.jsontransform_usage_89_92.jsoncorner_order_signature_89_92.jsontriangle_quality_89_92.jsonuv_gradient_89_92.jsonface_neighbor_graph_89_92.json
- Временный donor-режим удален из рабочего пайплайна.
- Основной экспорт снова формирует
RF_Release/<map>/<map>.glbбез отдельногоSette_Donor. - Диагностика по
mg89..92оставлена только дляSette, чтобы не засорять остальные карты.
- SPT-объекты экспортируются не реальными моделями, а debug-кубами (позиция, поворот, масштаб сохраняются).
- Нет полноценной загрузки и привязки игровых моделей объектов из SPT (по
modelName) в GLB. - Поддержка некоторых форматов пока частичная или в виде задела:
.ebp,.rvp,.r3xчитаются в коде, но не интегрированы в финальный экспорт сцены.
- Качество материалов и UV может отличаться от игры на сложных картах.
- Проект сейчас ориентирован на Windows-окружение и структуру папок клиента RF Online.
- В части исходников и комментариев встречаются текстовые артефакты (кракозябры, mojibake, битая кодировка).
- Проблема связана со смешением кодировок (UTF-8/Windows-1251) в старых файлах.
- На работу экспорта это обычно не влияет, но ухудшает читаемость кода и логов.
- .NET 8
- SharpGLTF
- Pfim
- SixLabors.ImageSharp
- В зависимостях есть предупреждение безопасности для
SixLabors.ImageSharp 3.1.7(NU1902, medium). - В коде есть несколько компиляторных warning'ов (nullable, unused, unreachable), но критичных ошибок сборки нет.
dotnet build -c Debug
dotnet runДальше в консоли выбрать режим экспорта (все карты, одна карта, по фильтру).
- Подгрузка реальных моделей объектов из SPT вместо debug-кубов.
- Более точная реконструкция материалов и шейдерных параметров RF.
- Интеграция данных
.ebp,.rvp,.r3xв GLB-сцену. - Чистка warning'ов, исправление кодировок в исходниках и обновление уязвимых пакетов.
RF Online, RFOnline, Rising Force Online, RF map tool, RF Online map export, RF Online BSP, RF Online R3M, RF Online R3T, RF Online SPT, RF Online GLB, RF Online GLTF, RF Online modding, RF Online tools.