ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.14k stars 2.25k forks source link

LN head persists when notes are released late but not missed #23186

Closed longnguyen2004 closed 1 year ago

longnguyen2004 commented 1 year ago

Type

Game behaviour

Bug description

If LNs are released late, the LN heads persist, even though it's not counted as a miss. This is very obvious in LN heavy maps, where people usually release late, which causes a lot of visual clutter.

Screenshots or videos

Both video contains 3 cases: released "in time", released early, released late. The first 2 cases are correct, while the last one is wrong

stable https://user-images.githubusercontent.com/15729831/231247537-02ba5867-daea-405c-b167-d4747fe348b3.mp4

lazer https://user-images.githubusercontent.com/15729831/231248170-d45ba6f0-591f-4349-bd0c-460c80675532.mp4

Version

2023.403.1

Logs

database.log input.log network.log performance.log runtime.log updater.log

bdach commented 1 year ago

I see the difference but am not sure which way is necessarily "correct". Probably need mania player opinions as to whether this is more of a "classic mod setting" situation or something to fix globally without a setting.

longnguyen2004 commented 1 year ago

I'd vote for a global change, since no other VSRGs behave like that (to my knowledge anyway)

Eve-ning commented 1 year ago

stable looks fine, I'd say that lazer's implementation is off

I'd recommend to fix globally

peppy commented 1 year ago

So it's not about "persisting" or not. This is only a side-effect of your skin having a texture where you can't see the full length of the hold note.

The issue is that it resumes the scroll animation as soon as the end time of the hold is reached. This is due to the method we're using to keep the head object aligned (adjusting the size of the container which is being used to draw the full hold note):

https://github.com/ppy/osu/blob/d97daee96be2c10f90709cc30beceb1f369ae225/osu.Game.Rulesets.Mania/Objects/Drawables/DrawableHoldNote.cs#L243-L251

Not sure how easy this is going to be to resolve. May have to change the strategy used to align the head so it can remain stationary until judgement is completed.