xuevertalex-web/RFMapToolMain

GitHub: xuevertalex-web/RFMapToolMain

一个用于提取RF Online地图几何数据并导出为GLB格式的C#控制台工具。

Stars: 0 | Forks: 0

# RFMapToolSharp工具 基于 C# (.NET 8) 的控制台工具,用于提取 RF Online 地图几何数据并导出为 `.glb` 格式。 ## 项目功能 - 查找 RF Online 客户端的 `Map/map` 文件夹。 - 批量处理地图: - 所有地图, - 按编号选择单张地图, - 按名称筛选地图。 - 从 `.bsp` 文件读取几何数据(BSP 解析器)。 - 读取 `.r3m` 文件中的材质信息(如果找到该文件)。 - 从 `.r3t` 读取纹理并进行内存中的 DDS → PNG 格式转换。 - 通过 SharpGLTF 将结果导出为 GLB。 - 将 `Spt` 文件夹复制到导出目录,并将 SPT 对象作为调试标记(立方体)添加。 - 输出结果保存在 `RF_Release//.glb`。 ## 当前可用功能 - 项目构建可通过(`dotnet build` 无错误)。 - 从 BSP 导出地图的基础几何数据。 - 对材质和纹理进行基础应用(在数据正确读取时)。 - 对部分材质进行透明度处理(基于名称和 alpha 类型的启发式算法)。 - 批量处理多张地图。 ## 限制与当前未完整实现的功能 - SPT 对象导出时并非使用真实模型,而是调试用立方体(位置、旋转、缩放得以保留)。 - 无法完整加载并关联 SPT 中的游戏对象模型(基于 `modelName`)到 GLB。 - 部分格式的当前支持仅为部分或处于预留状态: - `.ebp`, `.rvp`, `.r3x` 在代码中可读取,但未集成到最终场景导出中。 - 在复杂地图上,材质和 UV 质量可能与游戏效果存在差异。 - 项目目前针对 Windows 环境及 RF Online 客户端的文件夹结构。 ## 已知问题 - 在部分源代码和注释中存在文本乱码(显示异常、字符损坏)。 - 此问题源于旧文件中 UTF-8/Windows-1251 编码混合使用。 - 通常不影响导出功能,但会降低代码和日志的可读性。 ## 依赖项 - .NET 8 - SharpGLTF - Pfim - SixLabors.ImageSharp ## 已知技术要点 - 依赖项 `SixLabors.ImageSharp 3.1.7` 存在安全警告(NU1902,中等风险)。 - 代码中存在数个编译器警告(nullable、unused、unreachable),但无关键构建错误。 ## 运行方法 ``` dotnet build -c Debug dotnet run ``` 然后在控制台中选择导出模式(所有地图、单张地图、按筛选条件)。 ## 开发路线图 - 从 SPT 加载真实对象模型以替代调试立方体。 - 更精确地重建 RF 的材质和着色器参数。 - 将 `.ebp`, `.rvp`, `.r3x` 数据集成到 GLB 场景中。 - 清除警告、修复源文件编码并更新存在漏洞的包。 ## 搜索关键词 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.
标签:3D几何提取, 3D建模, BSP解析, DDS转PNG, GLB导出, .NET 8, R3M处理, R3T处理, RF Online, SharpGLTF, 地图导出, 地图提取, 批量处理, 控制台应用, 文件格式处理, 材料应用, 游戏开发工具, 游戏数据提取, 游戏模组制作, 游戏资源提取, 游戏逆向工程, 纹理处理, 纹理转换, 调试标记