OpenFunscripter - a scripting tool - 3.2.0 release

Yeah im not sure i understand the exact reasoning, if something like script player can play a video and show a script with the chart and even a heatmap and OFS can edit a script. then whats the issue with marrying that functionality. even something like a load button to send the script to handy when you want it to test the part of the script. Maybe the communication between those two appplications is the weak point? Which I would think the solution there is implement it without the other application. I’m just thinking out loud here though, not sure about any of it.

TBH, just using OFS and script player side by side isnt that much of a problem, refreshing the script is fast enough (unless you have 40+min videos) to not be any hassle in most cases. And provides enough information to identify issues (accurate timestamps).

Since the handy doesnt have a direct protocol outside of bluetooth (which is horrible), having instant responses isnt going to happen. Yet it would be nice if the handy devs manage to make a mode which relies on script streaming instead of a single upload. If it just streams each 10s of script, and stores like 5 portions, the experience will be smooth enough. Only upon changing timestamp it then needs to wait for the first 10s to be uploaded again, but most online video already works like that, and almost nobody complains about it either.

It would be a very nice feature to have as it also gets around most filesize restrictions (would generaly only benefit 2h videos, or heavy vibration scripts). But other than that, it barely has a usecase. As even if you regularly change scripts, the waiting time is rarely more than 10s anyway (or you are loading very long videos repeatedly).

That scripting isnt the most optimal method is often not considered that much of an important factor. As in the end, its the playback that realy matters.

1 Like

This is a feature suggestion…

Would it possible to select points by drawing a box around them, rather than having this vertical line stuff?

example:


Step 1 - drawing the box with your mouse (I used Windows paint here)

Step 2 - let go of your mouse click, and the points you drew the box around will be highlighted:


Here you can see how I selected all the “bottom” points, as in they’re supposed to be the bottoming out parts of a stroke, anything below a vertical of like 35 or so.

I think this would be a pretty useful feature for scaling and fixing up points that you’ve mapped with some complexity added.

Not sure if this is in here.

1 Like

OFS 3.x doesn’t open .mov
It can read them though. Ie by changing it to .mp4

There is a command to select only the bottom points within a selection, can’t recall if it’s bound to anything by default but you can select all of the points in the range you want and then use that select only bottom points action and get the selection you want. Same thing for top only points, it’s very useful.

I agree that such an implementation would be rather handy.

As for now you can use My tools, which offers such a feature that selects a vertical range. It is however a bit of a hassle to perform though.
image

If you just wanted to select bottom points like what @YellowBanana said there’s a select bottom point feature which lets you do that. But it will not select all desired points nicely in your example.
image

Let me demonstrate what happens when you use this feature with points with “bottoming out” or “topping out” for smoothness:

Points:

Select Top:

If I now shift all of these Top points up, I’m going to get a few sharp increases:

It’d be the same if I selected the Bottom.

Aaaah I had a feeling that this tool had it, thank you for explaining how to use this. Works pretty well.

Is it possible for the user to configure a project in OFS3x to not use relative paths?

Also, is it possible to store the “Mode: frame / tempo / tempo measures” setting in the project file once they are set and a project saved?

In OFS2x I was using a flow that allowed me to keep the various files in separate useful locations, now it doesn’t seem to work.

My original full videos (and final funscripts) were in:
g:\interactive

My project files and funscripts were written/saved in a backed up location so your work would never be lost:
e:\funscript-work

My reduced size videos for using in OFS were in a non-backed up directory:
d:\no backup required\Video-OUT-from ffmpeg.mp4

I do have an idea how this can be done plugin wise though. As there is still a pattern:

For this example i only assume we want the top points as it describes it easier, but the inverse also works:
The points are above the middle when comparing the 2 other opposite points (it doesnt matter if there are 4 or 10 points, there lowest point can be found).
So for each top point, we just need the surrounding bottom points as reference point. Once taking these, we can calculate a diffirence. For example when the top was at 80 and bottom at 0, the middle is going to be 40.
All points below 40 can be safely deselected and ignored from now on

The next part is finding the curve. Especialy when the stroke has a few bumps, those bumps should not be considered part of the top. For this we loop through all the top points again, and now consider the speeds of the neighbors. As long as the speed is increasing, the point was part of a slowdown/speedup of that top point. So when the speed isnt increasing, all points beyond that can be deselected again.

And this probably can even be made in a single check (because checking the speed can also consider the distance at the same time).

I could make this as a plugin at some point, unless someone else wants to.

1 Like

I have finished a mockup of the plugin, it can be buggy, but hopefully it does what you want.

On small bumps it might incorrectly detect peaks, but thats because i havent realy excluded many of those things. Sometimes crude versions are already quite good at what they do. @Falafel Does this work better than the mytools version?

2 Likes

Thank you for making this!

The Mytools feature works differently, it selects over an absolute range and doesn’t take relative position into account, so any anomalies won’t be included. Yours should overcome this issue.

I did some testing over random shapes, it gets its job done pretty nicely!


Only issue I’ve found so far is that it tends to crash if the selection is close to the first (last) action in a script. Is this because it’s trying to get an adjacent action which doesn’t exist?

1
3

I see no problem with that! Bumps are peaks after all. I’d rather not have actual peaks ignored bc smol.

1 Like

This is pretty slick, I like it!
Another useful for tool for scripts :sunglasses:

1 Like

I try to open the new version and it doesn’t open the application, I can only work in the previous version… :confused:

Most likely, it searches 10 actions ahead/behind

Ill fix this soon :slight_smile:

EDIT: fixed the issue. it now does consider the first and last node a peak in case it cant find any further ones (yet it is still aware of bottom and top in this, and in case of a flat line might not select it at all)

Ill probably make a seperate thread for this plugin later, so its easier to find it back and link to it.

1 Like

And here is the plugin page :slight_smile: with some extra examples that i used for testing.

1 Like

I just upgraded and noticed that the Simplify and Range extender special functions are no longer there compared to 1.4.4.

I just to rely heavily on these for motion generated scripts, are they no more or do they work/look differently somehow?

They are still there and works for me.

View > Special functions

Ah so they just moved. Thanks!

Hello, I just start making script these days

I clicked Enable waveform and Update waveform, but the waveforms dosen’t show up.

Did I do something wrong?