3 个版本
0.9.2 | 2023 年 9 月 14 日 |
---|---|
0.9.1 | 2023 年 9 月 10 日 |
0.9.0 | 2023 年 9 月 7 日 |
#2504 在 命令行工具
57KB
913 行
-
已知问题 - 地图最后模式的平均跳跃距离和平均跳跃速度计算不正确 - 将在 v0.9.2 中修复
Simple Beatmap Analyzer 是什么?
这是我写的第一个 Rust 程序
Simple Beatmap Analyzer 是一个控制台应用程序,仅针对 Standard 游戏模式分析 ".osu" 文件。完成后,它将在与.exe 文件相同的目录中输出结果到 "CSV" (逗号分隔值) 文件
目录
如何工作
它假设每个地图都在 1/4 比例下,并计算流/跳跃以及其他模式,以及基于它们的某些比率(跳跃假设每两拍一次,并将引用为 1/2)。以下 1/4 和 1/2 部分的值是地图的 % 音符,而不是时间。
- 对于 1/4 模式,我们假设圆圈重叠或边缘到边缘最多 16 像素。
- 对于 1/2 模式,我们假设边缘到边缘的空间大于 110 像素
- 1/4 模式
- 双击/三击/四击/爆发/流/死亡流
- 爆发: 3-12 包括三击和四击
- 流: 13-32
- 死亡流: 33+
- 1/2 模式
- 短跳/中跳/长跳
- 短跳: 3-12
- 中跳: 13-32
- 长跳: 33+
- SI -> 流指数 (地图的流畅程度减去跳跃)
- JI -> 跳跃指数 (地图的跳跃程度减去流)
- FCDBI -> 指尖控制双爆发指数 (实验性)
- 其他统计数据,如 NM/DT/HR 的 99% 准确度 PP 以及相应模组的星级以及其他... 不一一列举
如何安装
- 点击版本并下载最新版本。
- 解压缩到您选择的文件夹。
如何使用它
- 打开 SimpleBeatmapAnalyzer.exe
- 粘贴 Osu 歌曲路径 (例如:D:\osu\Songs) 并按 Enter
- 等待完成并将数据保存到 results.csv
- 在 Excel 或其他 CSV 阅读器/分析器中打开 results.csv
- 找到您喜欢的地图后,只需复制 MapID 并在游戏中的 Osu 搜索中粘贴即可
如何在 Excel 中加载 results.csv
方法 1
- 打开一个新的 Excel 文档。
- 选择菜单 数据,然后点击 从文本/CSV
- 选择 results.csv 并点击 打开
- 然后在第一个下拉菜单中,如果未自动选择,选择 65001: Unicode (UTF-8)
- 确保分隔符是 逗号 并按 加载
方法 2
- 如果在 Windows 中,您的默认分隔符是 "," 而不是 ".",请使用 Excel 打开 csv 文件
- 选择菜单 插入,然后点击 表格
- 它应该自动检测表格范围,如果不是,请手动选择
- 启用 我的表格有标题 复选框,然后按 确定
如何在 Excel 中分析数据
示例 1:210 到 220 BPM 且超过 20% 爆发率的最多 7* Beatmaps
- 选择菜单 数据,如果未启用,请启用 过滤器
- 在您将要看到的列中有一个下拉箭头
- 点击 BPM 上的箭头 -> 数字过滤器 -> 介于...
- 在第一个输入 210,在第二个输入 220
- 点击 星星 上的箭头 -> 数字过滤器 -> 介于...
- 在第一个输入 7,在第二个输入 8
- 点击 爆发 上的箭头 -> 数字过滤器 -> 大于...
- 在第一个输入 20
- 点击 SI 上的箭头 -> 从大到小排序
示例 2:没有 Streams 和 Deathstreams 且 AR 为 10.33 的最多 6* DT Beatmaps
- 选择菜单 数据,如果未启用,请启用 过滤器
- 在您将要看到的列中有一个下拉箭头
- 点击 DT_Stars 上的箭头 -> 数字过滤器 -> 介于...
- 在第一个输入 6,在第二个输入 7
- 点击 Streams 上的箭头 -> 数字过滤器 -> 等于...
- 在第一个输入 0
- 点击 DeathStreams 上的箭头 -> 数字过滤器 -> 等于...
- 在第一个输入 0
- 点击 DT_AR 上的箭头 -> 数字过滤器 -> 等于...
- 在第一个输入 10.33
- 点击 JI 上的箭头 -> 从大到小排序
待办事项
-
创建一个列配置文件。v0.9.1 - 创建一个选项配置文件。
- 添加截断 Streams 的计数器
-
计算 AVG 跳跃间距和 AVG 跳跃距离v0.9.1 - 选项以生成 Osu 链接和 Osu Direct 链接
- 将变量作为流距离和跳跃距离暴露出来,以便在配置中进行编辑
- 可能添加对 1/3 或 1/6 等其他不常见 Snap 除数的可选支持 (可能不会)
- 找出一种方法来有一个指示器,以确定地图是否排名/被喜爱/已合格/废弃
- 这不需要每个人都使用他们的 APIv1 密钥。
-
让它只在运行程序时计算一次地图,而不是每次运行程序时都计算v0.9.1 - ~~包括 100+ 个音符流计数器 ~~ v0.9.1
-
创建最长的流计数器v0.9.1 - [] 长期想法 - 创建一个更快的 osu 标准 Beatmap 解析器。
常见问题解答 (F.A.Q.)
- 为什么它运行得慢?
- 程序需要搜索所有您的 ".osu" 文件,然后解析所有这些文件以计算大量指标。大部分时间被 ROSU-PP 用于计算地图的难度和 pp 值,以及从磁盘读取和解析。此程序与快速的 SSD 存储和多核 (在我的 r5 3600x 和 860Evo SSD 上,每秒 2500 张地图) 扩缩性非常好
- 当我将数据加载到 Excel 中时,像星星这样的数字列为什么是文本?
- 这可能是由于许多原因造成的,其中之一是 Windows 中的错误默认分隔符。浮点数字期望 "," 而不是 "."。为了解决这个问题,我知道两种方法
- 语言设置 -> 区域 -> 区域格式 (欧洲英语有效)。然后重置 Excel。
- 或者,在Excel中,您可以标记列,点击中间的 主页,那里有一个下拉菜单,通常写为 常规。切换到: 数字,然后转到 数据 并点击 文本分列 (通常在右侧某处)
- 这可能是由于许多原因造成的,其中之一是 Windows 中的错误默认分隔符。浮点数字期望 "," 而不是 "."。为了解决这个问题,我知道两种方法
致谢
ROSU-PP - Beatmap解析和难度/PP计算
许可
修复的bug
- 地图的最后一个模式没有被计算 => 在V0.9.1中修复
依赖关系
~5–13MB
~145K SLoC