This is a tool that allows you to generate sliders or convert your painting to slider. The tool is WIP (I want to add more things and simplify process) but already can be used.
You can also import an image and draw on top of it if you want to "outline" it and then convert to slider.
It also has ability to calculate a proper SV for drawn / generated slider so it takes exact amount of gameplay time as you wish. And it also can scale up / down generated slider so it fits specified gameplay time.
Usage:
Hope there are no memory leaks!
Slider painter sometimes produces garbage result, just repaint or wait untill one day I will fix it.
Slider generator also does that sometime, just regenerate untill you find what you like.
Feel free to report any issues or ask questions
You can also import an image and draw on top of it if you want to "outline" it and then convert to slider.
It also has ability to calculate a proper SV for drawn / generated slider so it takes exact amount of gameplay time as you wish. And it also can scale up / down generated slider so it fits specified gameplay time.
Usage:
Drawing slider
- After you openned the tool you can start drawing at the respective area either by holding any mouse button and moving mouse or by clicking any mouse button in different places of the area
- Press/hold CTRL-Z to remove latest added point
- After youre done with drawing press "Create slider" (located in "General" tab)
- To export it to osu! editor go to "Export" tab
- To clear your drawing press "Clear painting" button in "General" tab
- To load/remove an image press respective buttons in "General" tab
- To control what and how is drawn go to "Display" tab
Generating slider
- Open "Generation" tab
- (optionally) Change params to whatever you want (see what does what in "Generation tab explained" spoiler somewhere below)
- Press "Generate slider"
- Go to "Export" tab and copy slider to clipboard, you can now insert it to your .osu file
Approximation tab explained
There are several settings that you can change and it will affect the result:
- Use RDP - removes unnecessary points before trying to convert drawn points to slider
- RDP Error - the higher value is the more aggressive the removal of drawn points will be, so it might not even resemble what you have drawn
- Bezier Error - the less value is the better output slider will fit what you have drawn. However if value is too low it will be rather ugly (better word - distorted) slider
- Max angle - By default program will attempt to create such slider in which white anchors before and after red anchors will land on the same line (G1 continuity) however its impossible to do so when there are "corners" in your drawing (for exmaple you painted a square which has 90 degrees angles). So this param specifies the maximum angle and program will not attempt to use G1 on such points. This, tho, is used in preprocessing and doesnt guarantee that angles below this value will use G1, this would depend on whether drawing can be approximated to fit Bezier Error or not.
Export tab explained
In order to export your slider to osu! editor after you painted it and pressed "Create slider" button, go to "Export" tab. There you will find several settings:
- Slider time position specifies at which time position slider needs to be in the map
- Base SV is the base slider velocity that you set in "Timing" section in osu! editor
- Bpm is bpm of the song at the point where you want to insert slider
- Desired beat length is the amount of beats you want your slider to take. For example, if you want it to take 1 beat and a half (1/1 + 1/2) then you set it to 1.5.
- Copy slider to clipboard - will copy slider to clipboard. You need then to open .osu file of the difficulty and paste the copied line to the end of the file, save the file and re enter osu editor.
- Copy timing point to clipboard - will copy timing point to clipboard. You need then to open .osu file of the difficulty and paste the copied line to any place after [TimingPoints] and before [Colours], save the file and re enter osu editor
- You dont need to set Base SV, BPM and desired beat length if you just want to copy and paste slider
- Time position of timing point is determined by the "Slider time position"
Generation tab explained
- "Segments amount" - the more segments slider will have the longer its shape will be, allowing more interesting shapes to appear
- "Seed" - if "Segments amount" and "Forward bias" are fixed then setting "Seed" to the same number will yield the same shape. "Seed" is signed 32bit integer [-2147483648 to 2147483647]
- "Random seed" - if this is on will always use random seed, even if you wrote some number to "Seed" field. If you want to use specific "Seed" make sure you disable this toggle. Also it is not really random, it just changes "Seed" every generation to some value depending on current time.
- "Forward bias" - the higher value is the higher chance to get slider that prefers to go forward rather than turn to some directions. While generating, especially with high segments count you will see a lot of clamped garbage that overlaps itself. Increasing this param will essentially decrease chance of getting such bad generations.
- "Fit desired beats amount" - after you check this, you need to go to "Export" tab and fill "Timing" values. There, "Current SV" stands for SV value (green line) at the timestamp of the map where your slider will be. After that, go back to "Generation" tab and generate slider. It will be automatically scaled up / down (preserving idea / shape) so it takes "Desired slider length (in beats)" of time. This is basically an opposite of what other mapping tools do - they find such SV so your slider can be completed at the desired time, while this instead scales the shape so it fits desired time, without any SV changes. This only works for generated slider and its not 100% accurate, you will still need to slightly adjust slider so it fits perfectly.
Hope there are no memory leaks!
Slider painter sometimes produces garbage result, just repaint or wait untill one day I will fix it.
Slider generator also does that sometime, just regenerate untill you find what you like.
Feel free to report any issues or ask questions