forum

So I've found a new way to display numbers on circles...

posted
Total Posts
2
Topic Starter
LnR
Don't waste your time reading this. It's not possible.
So I've thought of a way to display numbers on circles. I mean like... a new way.

This is an example of a format. But the sample doesn't matter, because you can use the technique i will discuss later to make any format.

How

The secret to do this is the HitCircleOverlap setting in skin.ini. It sets how much the hit circle digits overlap.

This is primarily used for correcting the centering of "1" in normal skins. But, it is also used for instant-fade skins, by overlapping the images of the digits that include the hit circle overlay itself.


Now back to the topic. How is it used for this number format?

We will have these as our samples:

default-1


default-2


default-3


NO IM NOT DELUSIONAL JUST KEEP READING

Now imagine that our HitCircleOverlap is set that when displaying 2 digits, for example "12", the first "circle" of default-2 digit would be directly over the middle "circle" of default-1.
Like this:


After seeing that, you must have already gotten an idea how this works. If not, you must be stupid just keep reading.

To see how numbers are displayed,
we are going centered mode.


"2" would look like this (the white circle is the hitcircle)



"21" would look like this



"213" would look like this


And with that we can see how the images are needed to be made.




YES THIS IS AMAZING

Here's a list of reasons why:
  1. It looks good.
  2. It can be used to display numbers that are easier to read than just numbers, and so, improve playability.
  3. It can add multiple digit numbers to instant fade skins.
    SPOILER
    Because skins that work with instant fading hit circles use the default-x files for containing the hitcircle itself, they cannot display multiple digits.
_

BUT

There's a problem.
The unused circles are visible.




If so, we can just increase the space between the circles enough for it to not display.




So how much space do we need?

This depends on the target screen ratio of the skin itself. The most common is 16:9 so we will compute with that in mind.




It might look like we only need a small amount of space but that changes if we want to support all circle sizes.




At Circle Size 10, the circle in 1366x768 resolution should be 19.2 pixels in diameter (includes the space in the png).


We also have a number of ways to cover duplication.
For ranked maps, all hitobjects should be visible in a 4:3 screen, so in 16:9, we only need to cover the 4:3 width and the extra border in 16:9. (and maybe add some extra just to be safe)




If we want to cover all hitobjects that might appear on 16:9 screens, we will use the whole screen width.




If we want to cover any hitcircle that may be offscreen, we can just double the space. (But, that's gonna make it more impossible to make, I will tell why later)

For the sake of safety we will go for whole screen width space (the second one).

Normally if the hit circle is included in the default-x files, its image size should be 160x160.

Now, if we need to cover 1366px while the circle size is 10, the space in the image files themselves should be 11,384 pixels.

160*1366/19.2 = 11,383.3333
But, that is just one space. In the image we have 4 spaces and 5 circles which total to 46,336 pixels.
And for HD resolution support @2x files will have double that.


And that is why it is impossible.

Problem #1

The first problem is just a minor one. Adobe photoshop does not export png files with width or height greater than 30,000 pixels.

What if we can lessen the space just to export it?
With 30,000px the space will be around 876px at CS 10 which isn't enough even for ranked maps. But... at CS 9 it would cover 1285px. CS 10 is scarce anyway, so that would technically work if you're desperate.
Although, @2x files will be 60,000 pixels wide, so HD resolutions will not be supported.

PNG files themselves are not limited to that however, but Adobe Photoshop is what I use for skinning.

To solve this, you can save the file as a TIF file and then convert to PNG with a converter.
I've tried it with this. And it works.

BUT NOT INGAME... here comes the major problem...

Problem #2

I tested how hitcircleoverlay files with large widths are displayed in osu!.

Here is the hitcircleoverlay at 16384x128 pixels:

Here is the hitcircleoverlay at 16386x128 pixels:

In case you didn't notice it, here's the hitcircleoverlay at 17000x128 pixels:


osu! crops the image at 16,384 pixels.


And so, yes, it is impossible to do this. lol u wasted ur time

But hey, how much space can 16,384 pixels cover?

At CS 10, it covers 464 pixels...
At CS 9, it covers 681 pixels...
At CS 8, it covers 897 pixels! nice

BUT IM JUST KIDDING!

With default-n.png files osu! does not display it if it exceeds 512 pixels in width.

So once again:
LOL U WASTED UR TIME
but really...
i wasted my time ;-;
sold
Interesting concept!
Please sign in to reply.

New reply