llllllllll / slider

Utilities for working with osu! files and data
https://llllllllll.github.io/slider/index.html
GNU Lesser General Public License v3.0
39 stars 17 forks source link

Slider FOLLOW_AREA #120

Closed Vergenter closed 7 months ago

Vergenter commented 7 months ago

In this line, the FOLLOW_AREA of the slider is assumed to be 3. Is there a specific reason for this? https://github.com/llllllllll/slider/blob/d70dc7d2a3a158edb3477b5b2f361131827e56eb/slider/replay.py#L165 In the osu!lazer repository, it is set to 2.4f: https://github.com/ppy/osu/blob/3793a552b8756ae19722382879af72156f039cec/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSliderBall.cs#L21

Other Player Analysis

7 years ago ~2.4x circle radius based on my tests.

Source: Drezi from https://osu.ppy.sh/community/forums/topics/604682?n=4

My In-Game Analysis

Furthest Successful Hit

hit1 hit2 The follow circle expanded on a slider tick, and the score was judged. Circle size: 72px ± 5px Distance from slider tick to cursor: 171px ± 2px 171 / 72= 2.375, which is less than 2.4

Nearest miss

miss1 miss2 The follow circle expanded on a slider tick, and the slider tick miss animation started (cross began to fade in). Circle size: 72px ± 5px Distance from slider tick to cursor: 175px ± 2px 175 / 72 = 2.43 , which is greater than 2.4

Therefore, the FOLLOW_AREA should be set to 2.4.

tybug commented 7 months ago

Thanks, I think you're right. Replay calculation has never been perfect in slider and this is probably one of several reasons why. I've fixed this in https://github.com/llllllllll/slider/commit/3b6659c0caff379f373373012599036bce5717ee.