forum

[confirmed] Mania sliders have strange skinning support

posted
Total Posts
6
Topic Starter
xelivous
Problem Details:
The base graphic for: mania-note1L, mania-note2L, or mania-noteSL; is stretched along the distance of slider start/end. This causes the appearance of the slider itself to be distorted depending on how long the slider is.

If you were to halve the size of these files in a custom skin, down to 128x41, the slider would appear to end prematurely (half of where it's supposed to end) and be shoved to the left side of the notes. Likewise, if you double the size of the texture (without using @2x), the slider would appear to be lasting for twice as long as it normally would.

I feel as if the intended behaviour should be a repeating texture along the length of the slider. So it would repeat vertically until the end of the slider, and if the slider ends before a full repeat, the end would get cut off.

I believe the current behaviour is a bug due to 82 being a extremely strange number for the base resolution, and if the goal was to just stretch it along the endpoints then a resolution of 256x1 would suffice. Although if the goal actually was to stretch the graphic along the two points, then allowing for a variable height for the graphic would be a better idea. You would still have the problem with different slider lengths being stretched different amounts, and thus look pretty bad overall, but it would also allow more flexibility when skinning.

On one hand, a repeating pattern would be desireable for most graphics that would be placed on a slider. but if you wanted something like a gradient or some other gradual change over the length of the slider, it would be impossible unless you stretched it along the entire length. So maybe the only way to fix it would be to not only allow a variable height to the slider graphic, but also a toggle in the skin.ini to choose stretching method for sliders??

I'm not sure if this will increase or decrease the amount of load on maps with excessive amount of sliders. I recall there being a recent fix that improved performance on mania maps with excessive amounts of sliders, and this change might very well make it worse again.

As a side note: The mania-noteH files, which are used as the endpoints of the sliders, appear to be locked to a height of 82 pixels as well. If you adjust their size away from 82, the slider will extend out past the "end" endpoint. I'm not sure what would need to happen to fix this, however, but it would allow you to safely change the height of the notes without the slider extending past the note itself.

Video or screenshot showing the problem:


Steps taken in video:
  1. Play map with slider graphic set to the default 256x82
  2. Edit slider graphic to have red bits near the top
  3. Ctrl+Shift+S to reload sprites
  4. Play map to showcase extreme variance of stretching
  5. Switch skins back and forth manually through skin selection
  6. Play map again to confirm this isn't a bug with Ctrl+Shift+S
  7. Edit graphic to be 256x30, remove red bits
  8. Ctrl+Shift+S to reload sprites
  9. Play through map to showcase sliders appear to prematurely end, but still keep the slider Heads in the correct position
  10. Edit graphic to be 128x41
  11. Ctrl+Shift+S to reload sprites
  12. Showcase the slider prematurely ending, as well as being shoved to the left side of the slider itself
basically something like this:
(although keeping the current functionality as an option as well would be desirable)


osu! version: 20140310.4 (latest)
peppy
Wow, I did not realise this was how it worked. I will change the behaviour in the next update.
Topic Starter
xelivous
thanks ppy you da best
RBRat3

peppy wrote:

Wow, I did not realise this was how it worked. I will change the behaviour in the next update.
Yeeup been that way forever... I never considered it a bug since it wasnt a bad way to go about it. Not many straight forward elegant ways to go about it being the other solutions would be to populate sprites to have it tiled which makes more onscreen objects or to scale the full height to the length which is what it currently does but not over the default resolution.

The "best" way would be to tile onto a single sprite but I do believe that has to go deeper to the d3d/GL side to add support since from what I saw and played with the current sprite framework cannot do.
Redon
VeilStar
Moving to low priority (seeing that it the behaviour is still the same).
Please sign in to reply.

New reply