#osu #stream #stars #pp #directory

应用 SimpleBeatmapAnalyzer

一个简单的程序,用于分析您的所有 osu 文件,并将所有计算出的指标保存到 csv 文件中

3 个版本

0.9.2 2023 年 9 月 14 日
0.9.1 2023 年 9 月 10 日
0.9.0 2023 年 9 月 7 日

#2504命令行工具

MIT 许可证

57KB
913

banner

  • 已知问题 - 地图最后模式的平均跳跃距离和平均跳跃速度计算不正确 - 将在 v0.9.2 中修复

Simple Beatmap Analyzer 是什么?

这是我写的第一个 Rust 程序

Simple Beatmap Analyzer 是一个控制台应用程序,仅针对 Standard 游戏模式分析 ".osu" 文件。完成后,它将在与.exe 文件相同的目录中输出结果到 "CSV" (逗号分隔值) 文件

目录

  1. 如何工作
  2. 如何安装
  3. 如何使用它
  4. 如何在 Excel 中加载 results.csv
  5. 如何在 Excel 中分析数据
  6. 待办事项
  7. 常见问题解答 (FAQ)

如何工作

它假设每个地图都在 1/4 比例下,并计算流/跳跃以及其他模式,以及基于它们的某些比率(跳跃假设每两拍一次,并将引用为 1/2)。以下 1/41/2 部分的值是地图的 % 音符,而不是时间。

  • 对于 1/4 模式,我们假设圆圈重叠或边缘到边缘最多 16 像素。
  • 对于 1/2 模式,我们假设边缘到边缘的空间大于 110 像素
  1. 1/4 模式
    • 双击/三击/四击/爆发/流/死亡流
    • 爆发: 3-12 包括三击和四击
    • 流: 13-32
    • 死亡流: 33+
  2. 1/2 模式
    • 短跳/中跳/长跳
    • 短跳: 3-12
    • 中跳: 13-32
    • 长跳: 33+
  3. SI -> 流指数 (地图的流畅程度减去跳跃)
  4. JI -> 跳跃指数 (地图的跳跃程度减去流)
  5. FCDBI -> 指尖控制双爆发指数 (实验性)
  6. 其他统计数据,如 NM/DT/HR 的 99% 准确度 PP 以及相应模组的星级以及其他... 不一一列举

如何安装

  1. 点击版本并下载最新版本。
  2. 解压缩到您选择的文件夹。

如何使用它

  1. 打开 SimpleBeatmapAnalyzer.exe
  2. 粘贴 Osu 歌曲路径 (例如:D:\osu\Songs) 并按 Enter
  3. 等待完成并将数据保存到 results.csv
  4. 在 Excel 或其他 CSV 阅读器/分析器中打开 results.csv
  5. 找到您喜欢的地图后,只需复制 MapID 并在游戏中的 Osu 搜索中粘贴即可

如何在 Excel 中加载 results.csv

方法 1

  1. 打开一个新的 Excel 文档。
  2. 选择菜单 数据,然后点击 从文本/CSV
  3. 选择 results.csv 并点击 打开
  4. 然后在第一个下拉菜单中,如果未自动选择,选择 65001: Unicode (UTF-8)
  5. 确保分隔符是 逗号 并按 加载

方法 2

  1. 如果在 Windows 中,您的默认分隔符是 "," 而不是 ".",请使用 Excel 打开 csv 文件
  2. 选择菜单 插入,然后点击 表格
  3. 它应该自动检测表格范围,如果不是,请手动选择
  4. 启用 我的表格有标题 复选框,然后按 确定

如何在 Excel 中分析数据

示例 1:210 到 220 BPM 且超过 20% 爆发率的最多 7* Beatmaps

  1. 选择菜单 数据,如果未启用,请启用 过滤器
    • 在您将要看到的列中有一个下拉箭头
  2. 点击 BPM 上的箭头 -> 数字过滤器 -> 介于...
    • 在第一个输入 210,在第二个输入 220
  3. 点击 星星 上的箭头 -> 数字过滤器 -> 介于...
    • 在第一个输入 7,在第二个输入 8
  4. 点击 爆发 上的箭头 -> 数字过滤器 -> 大于...
    • 在第一个输入 20
  5. 点击 SI 上的箭头 -> 从大到小排序

示例 2:没有 Streams 和 Deathstreams 且 AR 为 10.33 的最多 6* DT Beatmaps

  1. 选择菜单 数据,如果未启用,请启用 过滤器
    • 在您将要看到的列中有一个下拉箭头
  2. 点击 DT_Stars 上的箭头 -> 数字过滤器 -> 介于...
    • 在第一个输入 6,在第二个输入 7
  3. 点击 Streams 上的箭头 -> 数字过滤器 -> 等于...
    • 在第一个输入 0
  4. 点击 DeathStreams 上的箭头 -> 数字过滤器 -> 等于...
    • 在第一个输入 0
  5. 点击 DT_AR 上的箭头 -> 数字过滤器 -> 等于...
    • 在第一个输入 10.33
  6. 点击 JI 上的箭头 -> 从大到小排序

待办事项

  1. 创建一个列配置文件。 v0.9.1
  2. 创建一个选项配置文件。
  3. 添加截断 Streams 的计数器
  4. 计算 AVG 跳跃间距和 AVG 跳跃距离 v0.9.1
  5. 选项以生成 Osu 链接和 Osu Direct 链接
  6. 将变量作为流距离和跳跃距离暴露出来,以便在配置中进行编辑
  7. 可能添加对 1/3 或 1/6 等其他不常见 Snap 除数的可选支持 (可能不会)
  8. 找出一种方法来有一个指示器,以确定地图是否排名/被喜爱/已合格/废弃
    • 这不需要每个人都使用他们的 APIv1 密钥。
  9. 让它只在运行程序时计算一次地图,而不是每次运行程序时都计算 v0.9.1
  10. ~~包括 100+ 个音符流计数器 ~~ v0.9.1
  11. 创建最长的流计数器 v0.9.1
  12. [] 长期想法 - 创建一个更快的 osu 标准 Beatmap 解析器。

常见问题解答 (F.A.Q.)

  1. 为什么它运行得慢?
    • 程序需要搜索所有您的 ".osu" 文件,然后解析所有这些文件以计算大量指标。大部分时间被 ROSU-PP 用于计算地图的难度和 pp 值,以及从磁盘读取和解析。此程序与快速的 SSD 存储和多核 (在我的 r5 3600x 和 860Evo SSD 上,每秒 2500 张地图) 扩缩性非常好
  2. 当我将数据加载到 Excel 中时,像星星这样的数字列为什么是文本?
    • 这可能是由于许多原因造成的,其中之一是 Windows 中的错误默认分隔符。浮点数字期望 "," 而不是 "."。为了解决这个问题,我知道两种方法
      • 语言设置 -> 区域 -> 区域格式 (欧洲英语有效)。然后重置 Excel。
      • 或者,在Excel中,您可以标记列,点击中间的 主页,那里有一个下拉菜单,通常写为 常规。切换到: 数字,然后转到 数据 并点击 文本分列 (通常在右侧某处)

致谢

ROSU-PP - Beatmap解析和难度/PP计算

许可

MIT

修复的bug

  1. 地图的最后一个模式没有被计算 => 在V0.9.1中修复

返回顶部

依赖关系

~5–13MB
~145K SLoC