MakeCurve for OFS

This plugin is ment to convert linear motion to a smooth one by adding addional nodes

As this is the first version only 1 method of smoothing is currently supported. While its generaly a good method, its not the only method that can work. Im planning on adding more options here.

:file_folder: Plugin

Install this in the folder:
<user>\AppData\Roaming\OFS\OFS3_data\extensions
or for OFS2 (untested, but should work):
<user>\AppData\Roaming\OFS\OFS2_data\extensions

(the zip contains the plugin folder so you dont have to make that yourself).

:memo: To use:

Select the nodes where between you want to smooth the movement.

The number of nodes added does what it says. The current method applies the nodes equaly spread over time, while verticaly uses a sine wave. The middle node is skipped as it would otherwise be the both on each sides.

The plugin is aware of skipped nodes and will not apply the curves there!

:memo: Planned features

  • Nodes added based on stroke duration
  • More smoothing methods

:framed_picture: Example

Before:


After:

16 Likes

Thanks, this is very useful.

Just wanted to link to another extension which accomplishes similar task, but in a more mechanical way.

1 Like

That one just adds 1 node to the start and end of each node with a fixed offset. Which would appear very similar to setting just 2 added nodes in my tool. My tool adjust for the node positions and distance while that one doesnt. Both have their own function, and its up to the scripter which he prefers.

Good you mention it, as it could in some cases be a bit cleaner than my script. Especialy if the top section itself must be consistent. My script adjusts for many things, and can face rounding issues.


One thing i forgot to place in the images my tool achieves is that it can handle midpoints as if its a sudden stop:


If not intended, the scripter would have to work around it. But it might be a neat feature

3 Likes

This is great! Thanks so much for the work on this. Messing around with it a bit today and seems incredibly useful, especially for tuning some of the Auto Generators based on music/beats.

1 Like

This neat. I want to see what level of smoothness this might add to song scripts and such. My handy was at a capped speed so I was never getting the benefits of detailed scripts before (they were basically causing the machine to skip, but I think it’s a good bit better now).

Actually, one suggestion I have if you want, is to maybe have it exclude points that starts at the beginning of the video, because it throws an error and the extension has to be reloaded.

This is already fixed in the version im making, it tries to load in a previous node that doesnt exist, while it isnt even needed to load it anyway.

2 Likes

Does this extension still work with the latest version of OFS?

It should still work. The code of this plugin isnt very complex so its unlikely to break.

(and after checking, still works)

Curious how this works in relation to interpolation that players utilize. From my (basic) understanding, even if a script looks linear, players/toys are applying smoothing to those movements to avoid jerky playback. I know in MFP there are several different interpolation types available including Makima and pchip.

@Yoooi - is this duplicative, or would it further enhance interpolation/smoothing in MFP?

1 Like

Only players that do interpolation are MFP and JFP. I dont know of any device that does interpolation itself.
Interpolating an already interpolated script in MFP wont do/add anything. Maybe it would be marginally smoother but you wouldnt be able to tell.

1 Like

Thanks for the confirmation, I was dumb and had the extension in a file inside another file so it wouldn’t run. I kinda assumed I had made a mistake on my part being a scripting beginner and I was right. Thanks regardless

Just wanted to drop by and thank you for this script.

This is one of my favorite tools, I use it all the time! Thank you!