osu icon indicating copy to clipboard operation
osu copied to clipboard

Add view menu toggle for sample points

Open OliBomby opened this issue 1 year ago • 16 comments

This toggle reduces visual clutter for mappers who prefer to not see hitsound samples while mapping.

OliBomby avatar Sep 17 '24 09:09 OliBomby

I guess I don't have a particularly strong objection to this in isolation, although I do have a few doubts:

  • This is the only place in the entirety of editor where it is possible to set hitsounds without hotkeys, so hiding it is a bit painful. That said, given it defaults to off, I'd think anyone who did disable it for themselves should be able to show it again.
  • Why do sample pieces specifically get this treatment but slider velocity pieces don't?

Probably need to gather more opinions on this, I'm not super sure I'd be fine with merging without a consult.

bdach avatar Sep 18 '24 07:09 bdach

Dunno, next are we adding velocity toggles? Then hitobject toggles?

I feel this is misdirected UX. Where's the request coming from? I'd sooner focus on making the sample editor and then considering making the display here less obtrusive to the point people aren't asking(?) for toggles.

peppy avatar Sep 18 '24 09:09 peppy

Where's the request coming from?

I got the idea from a small discord discussion. I also heard other people wish to turn off the sample points. Clearly here the sample points add the most visual clutter, having the most objects in the timeline and easily overlapping neighbouring sample points. I think it then makes sense to have a toggle to turn them off because a lot of people map without doing hitsounds. For them it only adds noise. Discord_KztYdKyZ7z

I'm also PR'ing this assuming there will be a sample editor in the future where you can better view the hitsounds in a separate tab. In that case it still makes sense to have this toggle, because there are two kinds of mappers:

  • Mappers who map first, then hitsound: Map in compose with sample points toggled off, then once the map is done hitsound in the sample editor or toggle on the sample points to do simple hitsounds in compose.
  • Mappers who map and hitsound at the same time: They map with sample points toggled on all the time.

Dunno, next are we adding velocity toggles? Then hitobject toggles?

Please dont extrapolate this to the extreme. I can see velocity toggles maybe being added, but its really not necessary because velocity points are not nearly as common as sample points so they dont add much visual clutter. Hitobject toggle? not at all.

OliBomby avatar Sep 18 '24 09:09 OliBomby

Discord_KztYdKyZ7z

This looks like a rather extreme example? Looks like the timeline is zoomed out to the maximum and not even the hitobject displays are all that useful at this density? Also I dunno what the "so many colors" comment is supposed to be given that 6 of the 8 unique colours shown are combo colours? Are we going to add a toggle for those too?

Like I have no idea how to interpret that, but to put that screenshot down as "not beginner friendly" with zero elaboration and then move to add a toggle sample pieces just seems like a giant non-sequitur to me. Maybe if the person on that screenshot elaborated on what was "not beginner friendly" about it?

bdach avatar Sep 18 '24 09:09 bdach

I think a better initial approach may be to hide them when they begin to overlay? ie. require the user zoom in before it starts to display.

peppy avatar Sep 18 '24 10:09 peppy

This looks like a rather extreme example? Looks like the timeline is zoomed out to the maximum and not even the hitobject displays are all that useful at this density? Also I dunno what the "so many colors" comment is supposed to be given that 6 of the 8 unique colours shown are combo colours? Are we going to add a toggle for those too?

Maybe not a great example, but my point is that people want to toggle off the sample points. The visual clutter is there at normal zoom levels too. osu Game Rulesets Osu Tests_wWMOb7SuIF ^ Information overload osu Game Rulesets Osu Tests_UlLfVPMAFG ^ Mindful and demure

I think a better initial approach may be to hide them when they begin to overlay? ie. require the user zoom in before it starts to display.

This is an even weirder suggestion to me. The visibility should not be affected by the zoom level, that will get annoying very quick.

The problem is the information density of the sample points being much higher than the other elements in the timeline while some mappers dont even need this information, regardless of zoom level.

OliBomby avatar Sep 18 '24 10:09 OliBomby

The visibility should not be affected by the zoom level, that will get annoying very quick.

Then have them reduce to a small pink dot, rather than overlapping pink-huge-blobs-with-text-that's-not-legible-anyway. The idea is to keep definition as much as possible.

peppy avatar Sep 19 '24 05:09 peppy

agree with peppy for both sample and velocity honestly. the clutter is caused by the size of each button + number of buttons, so minimizing to a circle (perhaps with a generous clickable area) to provide a clickable to toggle settings when there is no change in the visible statistics (i.e. sv for green labels, sampleset OR hitsound volume for pink labels) from the previous object seems like a massive improvement imo.

kadambishreyas avatar Sep 19 '24 06:09 kadambishreyas

The size reduction seems to work ok, but why is the toggle still there?

https://github.com/user-attachments/assets/32c89d2b-cd48-4497-9eb8-5de96fecb360

I thought the goal was to have the dots shrink instead of the toggle, rather than in addition to? @peppy did I misunderstand?

bdach avatar Sep 20 '24 07:09 bdach

I'd prefer not having the toggle at all.

peppy avatar Sep 27 '24 08:09 peppy

Seems to contract way too early depending on BPM/SV (tested using this map)?

osu! 2024-09-27 at 08 14 04

peppy avatar Sep 27 '24 08:09 peppy

Seems to contract way too early depending on BPM/SV

The best point to contract depends on the density of the beatmap which various wildly between different BPMs and star ratings. I think we need a more sophisticated criterion to determine when to contract the sample points which looks at the hitobjects in the timeline.

OliBomby avatar Sep 27 '24 08:09 OliBomby

I think something could be done in TimelineBlueprintContainer to that efffect. Basically constantly watching for the lowest/highest SV of visible objects and adjusting a BindableBool governing the contracted state.

peppy avatar Sep 27 '24 09:09 peppy

I made it contract the sample point pieces based on the sample point pieces which are closest together on the visible timeline, so basically it tried to prevent any overlap from happening and it will not contract if there is no overlap.

It's a lot better but ideally I'd want to mix contracted and non-contracted sample point pieces on the same timeline, so you don't have all the sample points contracting together when only one is overlapping. However I don't know how to get a list of just the sample point drawables on the timeline because of the way they exist as children of TimelineHitObjectBlueprint. It might require a refactor to put all the sample pieces on a seperate timeline part.

OliBomby avatar Oct 05 '24 19:10 OliBomby

I made it contract the sample point pieces based on the sample point pieces which are closest together on the visible timeline, so basically it tried to prevent any overlap from happening and it will not contract if there is no overlap.

Doesn't work properly when seeking:

https://github.com/user-attachments/assets/e0cddb5e-5ff4-4b92-b84a-338c7f2a59ce

bdach avatar Oct 14 '24 07:10 bdach

To fix the contraction not updating I followed the example of updateStacking() and made it update every frame. There doesn't seem to be an easy way to detect for changes in the SelectionBlueprints.

OliBomby avatar Oct 19 '24 22:10 OliBomby

I'm not sure why neither https://github.com/ppy/osu/pull/29896#issuecomment-2363054820 nor https://github.com/ppy/osu/pull/29896#issuecomment-2378676851 were ever responded to, but to move this forward I removed the toggle in https://github.com/ppy/osu/pull/29896/commits/8f48682d0a8a8385d2ade6db7ce0f03eac1668b4. We can revisit if the collapse change is deemed insufficient. (A pesky merge conflict gave it away.)

Otherwise seems fine, but I will wait for the @peppy UX sign-off.

bdach avatar Nov 01 '24 17:11 bdach

Sorry for not responding to the comments. I'm fine with going the current direction and revisiting the toggle if this is deemed insufficient.

OliBomby avatar Nov 01 '24 22:11 OliBomby