#38826·osu

旋转器将其音量控制点插入到不直观的时间点

作者: bdach创建于 2026年9月15日更新于 2026年9月15日
标签ruleset/osu!area:beatmap parsing

将其从https://GitHub.com/ppy/osu/discussion/38787中分出。

非骨头自旋的虱子没有样本,奖金自旋的虱子有:

https://GitHub.com/ppy/osu/blob/655733c06d626f17d808a7f11ab79ad627fbf/osu.Game. Rulests.Osu/Objects/Spinner.cs#L92-L94

值得注意的是,相对于整个自旋器的持续时间来说,这些自旋器被分配的起始时间也与其在嵌入物列表中的位置成正比.

在拉泽的样品控制点机械中,稳定型"绿线"不再是一种事;样品被分配到单个物体上. 为了向后兼容的目的,它们从对象样本导出时合成:

https://GitHub.com/ppy/osu/blob/82056109080329928c572db88851f4bcf8e04362b/osu.Game/Beatmaps/Formats/LegacyBeatmapEncoder.cs#L335-L361

这种逻辑贯穿了整个被击中物体的树, 下至最窝的一棵.

上述所有事实都结合了以下结论:在导出期间,一个与上个对象具有不同样本设置的自旋器,将导致在正时插入了"绿线"与按比例计算出的第一个奖金勾起时间(这是一个任意的时间值,用户很可能会提前或晚于此). 这是因为正常的虱子没有样本,因此不能产生"绿线".

-- -- . . .

怎么办是有点奇怪。 最直接的解决办法是放弃这样按比例分配起始时间:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? diff -- git a/osu.Game. Rulests. Osu/Objects/Spinner.cs b/osu.Game. Rulests.Osu/Objects/Spinner.cs 指数 6f6b848b38.37f2a44f26 100644

  • a/osu.Game.规则集.Osu/Objects/Spinner.cs b/osu.Game.Rulests.Osu/Objects/Spinner.cs. QQ -87, 11 + 87, 9 被保护的覆盖无效 CreatedHit Objects( CancellationToken relationTok) Name { 取消。 放弃取消请求( E) ;

  • 双起步时间=起步时间+(浮动)(一+1)/总起步时间*;

  • 说吧 已添加( i) < Spins Required for Bonus -? 新的 SpinnerTick { startTime = startTime, Spinner Duration = 持续时间 }

  • 新的SpinnerBonusTick {StartTime = startTime, Spinner Duration = 持续时间,样本=新 [] { Create HitSampleInfo ("spinnerbonus")}}; +? 新的 SpinnerTick { StartTime = StartTime, SpinnerDuration = 持续时间 } +: 新的 SpinnerBonusTick { StartTime = StartTime, Spinner Duration = 持续时间, samples = 新 [] { Create HitSampleInfo ("spinnerbonus")}}; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


我找不到任何可以给这个开始时间赋予意义的责任;它首先出现在05102bc1baf00b4508bf57dfe0e74956994b8ec,没有附加评论. 判断逻辑在可画取的Spinner中,似乎没有检查滴滴的起步时间。 我跑了欧素! 用上面的补丁在云雀上做规则测试 但仍然通过 - 这还是有点危险的变化
. . . . . . .