forum

Need help in osu! object drawing (formulas)

posted
Total Posts
3
Topic Starter
OKoLenMi
I'm trying to create my own pp rework from scratch (I don't expect much from my attempt) but I can't start without all information about object positions in screen.

Info I need:
- Stack Leniency drawing formula (how much osuPixels betwen two objects that placed at the same position)
- SliderTick and sliderEnd detection formula (difficulty calculation)
- MissHit formula - how much earlier you need to click on the circle for it to be counted as a miss for classic and lazer cases (it's for future full replay&beatmap analysis)
- FL alghorithm + approach circles & HD formulas for detailed calculations of FL plays.
- Maybe something else. I don't know what can be useful in future.

Where can I find this information?
abraker

Stacking Leniency formula:


Where N is the Nth stacked note
(source)

SliderTick and sliderEnd

Needs slider spline processing. Best look at the code here

MissHit formula

Classic: See this
Lazer: ¯\_(ツ)_/¯

FL algorithm

This might be wrong, but this is based on kert's notes for osu!skills:
0 -> 99 combo: 160 osu!px
100 -> 199 combo: 120 osu!px
200+ combo: 100 osu!px

I have no idea if these are radius or diameter.

HD formula (stable)

Fade in: Objects first appear at the same time regardless of HD, but with HD enabled, objects are fully faded in after 40% of the AR window (so on ar10 with 450ms, it's faded in after 180ms). Without HD enabled, fade-in time is a static 400ms.

Fade out: With HD enabled, objects start fading out at 40% of the AR window (so as soon as they're finished fading in) and finish fading out at 70% of the AR window. Sliderbodies start fading at the start of the AR window and finish when the slider is over.

Do keep in mind that humans only need an average of probably 15-30% opacity to properly react to an appearing note, so fade-in time barely makes any difference at all except maybe on flashlight.

Topic Starter
OKoLenMi
Amazing. Thank you!
It remains only to draw the sliders according to the new standard, where each point can be of a different type(Linear, Beziere, PerfectCurve, Catmull - new type). And then I can experiment with mathematics when I know the location of all sliderpoints, sliderends and objects in the stack.
It will be pain in ass, but I want to try to calculate properly even 2B maps.
Please sign in to reply.

New reply