I’ve really been enjoying my upgrade to the OSR2. If you don’t have one I recommend taking a look at @g90ak OSR2 Trade post
I currently have my MultiFunPlayer configured to interpolate the roll & pitch movements based upon the vertical axis. In my opinion It puts non-multiaxis scripts 70-80% on par with multi-axis scripts. However there is room for improvement and I don’t know if anyone else has dealt with this or had any input.
For most scenes there are short-lived and very specific movements that would work wonderfully with a specific multi-axis script written for them. While the majority of the scene would be fine with only utilizing the interpolated roll & pitch.
This leads me to my question: Is it possible to temporarily load a script for these parts of a scene that would be better off scripted and then drop the script and rely solely on interpolation when that part of the scene passed; This would allow for only those specific parts to be scripted and the rest of the scene would not have to be scripted.
I know there are hotkeys in MultiFunPlayer to Load/Reload/Clear a script. The issue with that is you would need to know the timestamps prior and be an active participant in taking those actions.
Of Course I don’t know any of the back-end work that would have to be done, but as a matter of spit-balling my solution from a pure user-interface perspective would be something along the lines of:
Getting MultiFunPlayer / OpenFunScripter to have “dead-zones” in the Roll/Pitch scripts. Currently when making a script it holds the position between two equal points, as intended. If there was such a way to add a pause/start, which would break this hold, and then rely on interpolation during that “dead-zone”
An Alternative Idea, Again not something I am familiar with being able to produce, but perhaps somebody would be willing if they were interested. Is writing a code which autoloads/clears scripts to MultiFunPlayer based on times given by the script creator.
If anyone else has dealt with this prior and has suggestions on how to remedy the issue I’ve laid out above I would appreciate your input.
You’re overthinking this a little bit.
There is no need to define dead-zones manually because a player can just use a threshold (e.g. time between two points is greater 3 seconds) to find the gaps and fill them with interpolated data. No need to do anything by hand.
I’m pretty sure ScriptPlayer pioneered this with it’s “fill the gaps” functionality except ScriptPlayer doesn’t do multi-axis.
From the OFS perspective the solution to this would be to pre-generate the interpolated scripts from the main axis and then go in and modify whatever you want. You would end up with 3 funscripts in the end.
The downside is that you loose the ability to change the parameters of the intepolation at runtime.
So I think what you’re asking is best implemented on the player side.
I don’t know if MFP can already do this or if this is something that would have to be added.
I also can’t say how much work or how difficult this would be to implemenent.
You could try your luck and write a feature request Issues · Yoooi0/MultiFunPlayer · GitHub
This would result in the same effect. Perhaps someone has already coded an add-on/lua for OFS to interpolate from the Vertical Script. I’ll check in if MFS can export the interpolated script and see if a program like FunExpander might be able to do the same
In my opinion it actually makes way more sense for the script/scripting software to handle this.
It is more precise to specify what is a gap and what is a purposely held position.
If you think multi axis then for example you can have a static stroke position with twist playing. If the player just assumes that this is a gap it will add stroke motion which will not be true to the video.
But I think since funscript doesnt allow gaps there is no point in adding that now because it will probably break a bunch of apps.
@GoonerScriptz I’ll try to add this to MultiFunPlayer if it does not require big changes.