I have something I’m working on with Voxta and toy controls, and essentially I’m looking for a way to take an existing script, and for example modify the speed of it so its 10% faster. Or to change all the top points to be 10% lower. Maybe make it increase in speed until its halfway done, and then instead decrease in speed. And stuff like that. Is there anything out there that can do this already? And if not, would this be very complex to code?
Check out Funscript.io - Create, Modify, Enjoy Funscripts it has some of this, like change all the top points to be 10% lower.
You can also easily accomplish this and more in OpenFunscripter.
Would not be complex to code, a funscript file is just basically a JSON array you can loop through.
You can probably do some of your modifications with Fun Expander as well.
Thank you I will look into both and report back!
This looks great to get started with, thanks for sharing
While changing the top points value or using FunExpander, I always found it a bit weird to change the value the same way without taking into account the original distance. Removing 10 from an action that moved 90 points is not the same thing as removing 10 from an action that moved only 30 points (i.e. reduction of 11% vs 33%).
I did some research in my tool for that (FunscriptToolbox) but I didn’t take the time yet to create commands that could be used from the outside.
Right now, what it does is increase or decrease the intensity of a script by a specific percentage, while trying to keep near the original position. You can see an example below (top: original, 2nd line: 50% intensity, 3rd line: 80% intensity, 4th line: 150%). Source: 1, 2
In short, it works by setting a new distance for actions and then ‘nudging’ points up and down until it minimizes a computed error value (position and distance). You can see in the 50% line that this makes some actions migrate slowly to the desired position.
But re-reading your example, I’m not sure it could be used as is. In the long term, I would want it to be rule-based transformations. For example, a rule could be “decrease speed by 10% everywhere”, or “If the speed is > 300, never go above position 85” (because with the way I’ve setup my OSR2 I might hurt myself when it goes fast, and goes to the very top).