npiriou/mountainizer

GitHub: npiriou/mountainizer

Mountainizer 是一款适用于 Windows 的开源只读工具,用于导入、解析和交互式查看 SSX 3(PlayStation 2)的全部赛道世界数据。

Stars: 0 | Forks: 0

# Mountainizer Mountainizer icon Mountainizer 是一款开源、只读的 **SSX 3 (PlayStation 2) 世界查看器**,适用于 Windows 平台。它导入用户提供的 NTSC-U 光盘镜像,组装全部 17 个可玩赛道,并在交互式 OpenGL 视口中渲染其地形、道具、纹理、样条线、触发器和可见性数据。 Mountainizer 不包含任何 SSX 3 资产。它从不修改或重新打包源镜像;您必须提供自己合法获得的游戏副本。 ## 当前功能 - 从 ISO9660 镜像中导入并识别 PS2 NTSC-U 版本 (`SLUS_207.72`) - 按游戏内名称、山峰、项目类型和内部代码展示全部 17 个赛道 - 从赛道的活动、共享高山、连接器和天空流式传输区域组装每个赛道 - 渲染带纹理的地形以及解码的静态道具和模型 - 在赛道起点门附近打开,如比赛开始时一样面向下坡 - 提供基于地表锚定的环绕、自适应光标定向缩放、平移和飞行控制 - 浏览场景层级、属性、源偏移量、材质和解码后的纹理 - 将样条线、摄像机触发器和可见性幕布可视化为可选的调试几何体 - 将细分地形和解码的道具实例导出为 OBJ - 保留不受支持的资源并报告结构化的解析诊断信息 - 包含用于识别、提取、检查、纹理转储和导出的 CLI Mountainizer 目前的定位是检查和逆向工程。它不是关卡编辑器,无法将游戏数据写回 ISO。 ## 系统要求 - Windows 10 或 Windows 11,x64 - [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) 用于从源码构建 - 合法获取的 SSX 3 PS2 NTSC-U ISO,以进行经过全面测试的工作流 - 支持 OpenGL 3.3 的显卡驱动 其他光盘版本可以在尽力而为的只读模式下打开,但尚未经过全面验证。 ## 下载 从[最新的 GitHub 发布页面](https://github.com/npiriou/mountainizer/releases/latest)下载 `Mountainizer.App.exe`。这是一个自包含的 Windows x64 可执行文件:无需安装程序、ZIP 压缩包或单独安装 .NET。 ## 构建与运行 在仓库根目录下执行: ``` dotnet restore Mountainizer.sln dotnet build Mountainizer.sln -c Release dotnet run --project src/Mountainizer.App/Mountainizer.App.csproj -c Release ``` 构建完成后,可执行文件位于: ``` src\Mountainizer.App\bin\Release\net8.0-windows\Mountainizer.App.exe ``` 从该目录运行 EXE,并将其配套的 DLL 和 `runtimes` 目录保留在其旁边。无需 ZIP 或安装程序。开发构建需要 .NET 8 Desktop Runtime。 ## 首次运行 1. 启动 `Mountainizer.App.exe`。 2. 选择 **File → Import SSX 3 ISO**。 3. 选择您合法获取的 ISO。 4. 选择父目录和项目名称。 5. 导入完成后,从赛道菜单中选择一个赛道。 Mountainizer 会创建一个可重用的本地项目缓存。源 ISO 保持只读状态,重新打开项目时会重用先前提取的文件。 ## 视口控制 | 输入 | 操作 | | --- | --- | | 鼠标左键 | 选择可见的地形、道具或已启用的调试结构 | | 鼠标右键拖动 | 围绕光标下方的赛道表面环绕 | | 鼠标中键拖动 | 具备距离感知灵敏度的平移 | | 鼠标滚轮 | 朝向光标下方的表面进行自适应缩放 | | Ctrl + 滚轮 | 精确缩放 | | Shift + 滚轮 | 快速缩放 | | W/A/S/D | 向前、向左、向后和向右飞行 | | Q/E | 向下和向上飞行 | | Shift + 移动 | 加速飞行 | | F | 聚焦选定项,或从隔离的道具返回赛道 | | Escape | 清除选择 | | 双击道具 | 隔离并聚焦该道具 | 选择 **View → Frame scene** 以聚焦整个赛道。地形和道具默认处于启用状态;使用 **View** 菜单可调整调试叠加层、线框、背面剔除和网格。 ## 支持的赛道 | 山峰 1 | 山峰 2 | 山峰 3 | | --- | --- | --- | | Snow Jam — 竞速 (`ARA1`) | Ruthless Ridge — 竞速 (`CRA3`) | Gravitude — 竞速 (`ERA5`) | | Metro-City — 竞速 (`ASS1`) | Intimidator — 竞速 (`DRA4`) | Kick Doubt — 坡面障碍技巧 (`ESS3`) | | R&B — 坡面障碍技巧 (`BRA2`) | Style Mile — 坡面障碍技巧 (`DSS2`) | Much-2-Much — 大跳台 (`EBA3`) | | Crow's Nest — 大跳台 (`ABA1`) | Launch Time — 大跳台 (`CBA2`) | Perpendiculous — U 型池 (`EHP3`) | | Disfunktion — U型池 (`BHP1`) | Schizophrenia — U型池 (`CHP2`) | The Throne — 越野 (`EBC3`) | | Happiness — 越野 (`ABC1`) | Ruthless — 越野 (`DBC2`) | | 49 个原始 SDB 流式传输区域也可用于技术检查。 ## CLI 在开发期间使用以下命令运行 CLI: ``` dotnet run --project src/Mountainizer.Cli -- ``` 可用命令: ``` identify list-files extract-file extract import list-levels inspect [--json ] dump-textures export --format obj --output ``` 例如,要列出已导入项目中的赛道并检查 Snow Jam: ``` dotnet run --project src/Mountainizer.Cli -- list-levels "C:\Mountainizer\MyProject" dotnet run --project src/Mountainizer.Cli -- inspect "C:\Mountainizer\MyProject" ARA1 ``` 有关命令行为和退出代码,请参阅 [CLI 参考](docs/cli.md)。 ## 测试 ``` dotnet test Mountainizer.sln -c Release ``` 常规测试套件使用合成夹具,不需要受版权保护的游戏数据。要针对已导入的项目启用本地回归测试: ``` $env:MOUNTAINIZER_TEST_PROJECT = "C:\Mountainizer\MyProject\project.json" dotnet test src/Mountainizer.Tests/Mountainizer.Tests.csproj -c Release ``` 请勿提交已导入的项目、提取的资产或导出内容。已知的游戏数据扩展名会被忽略,但在发布前务必检查更改。 ## 仓库布局 | 路径 | 用途 | | --- | --- | | `src/Mountainizer.App` | WPF 桌面应用程序 | | `src/Mountainizer.Cli` | 命令行界面 | | `src/Mountainizer.Core` | 场景模型、诊断和源元数据 | | `src/Mountainizer.Formats` | BIG、RefPack、SDB、SSB、地形、模型和纹理解析 | | `src/Mountainizer.Iso` | 只读 ISO 索引、识别和项目缓存 | | `src/Mountainizer.Rendering` | OpenTK/OpenGL 渲染器和摄像机 | | `src/Mountainizer.Export` | OBJ 导出 | | `src/Mountainizer.Tests` | 合成及可选的本地回归测试 | | `docs` | 架构、格式状态、使用说明和研究笔记 | ## 文档 - [用户指南](docs/user-guide.md) - [CLI 参考](docs/cli.md) - [架构](docs/architecture.md) - [格式支持状态](docs/format-status.md) - [已知限制](KNOWN_LIMITATIONS.md) - [参考分析](docs/reference-analysis.md) - [贡献指南](CONTRIBUTING.md) ## 许可证 Mountainizer 采用 [MIT 许可证](LICENSE) 发布。SSX 3 及其资产归其各自权利所有者所有,不包含在本项目中。
标签:3D渲染, .NET 8, OpenGL, PS2, 云资产清单, 游戏工具, 资源提取, 逆向工程