Yup, you can do that no problem. You can even use all four at the same time if you want. SLR scripts work no different than normal scripts so you can test the setup with normal scripts.
Please note that some users reported problems with DeoVR on oculus quest crashing after its latest update when trying to connect MultiFunPlayer. The fix for now seems to be to disable “Android Overlay (BETA)” in DeoVR settings.
How do I get the user configurable smart limit to have multiple nodes like you show in the example? I clicked around and could only get one value node so it behaves like a global limit instead of having different limits at different L0 values.
Also, could you make it so that the Motion Provider movements provide values that these limits respond to, and that can be linked to. I tried this and when using the Motion Provider on L0, I could not get the R2 axis to respond via linking. Let me know if I’m missing something.
I want to be able to have the L0 axis movements that are randomly generated link to the R2 pitch axis so that at the top of the stroke, the R2 can pitch forward in a “twerk” move, but the bottom, it won’t twerk quite as hard and bend my anatomy. If this could work with linking, but also with randomly generated moves, that’d be great!
The idea is that the moves can gyrate around more at the top of the L0 axis, but are more constrained at the bottom, so having the same kind of linking/limiting ability on the R1 roll axis would be great, too.
I play in VAM and use this to create movements of the characters in a scene. Is there a way to get VAM to trigger Motion Provider parameter changes so that from within a VR CGI scene, one could request faster strokes, or a change of looping scripts, and the command would increase the speed/change the script of the L0 axis?
Double click on empty space to add new nodes, double click on node to remove it.
Smart limit input value is the final calculated value that combines script, motion provider and other features. You dont have to link axes for smart limit to work, linking is for script only, basically when you link axes the script is copied to the other one.
You have to set “Input axis” in the smart limit for R1/R2 to L0.
Not really what it was designed for but this should work:
Random motion provider on L0
On R1/R2:
Set motion provider to “pattern”
Set motion provider range to 99%-100% or 0%-1% depending on what you want (both handles max right or max left), this will limit it to constant 0% or 100% value. Or set it to some specific value you want like 59%-60%.
Set smart limit input axis to L0
Configure smart limit curve to your liking
Its simpler to create “grinding” behavior with scripts:
Link R2 to L0
Add slight script offset, for example 0.5s
Optionally invert R2 script
Yea that was more or less the idea behind smart limit, just inverted: less movement at the top, more at the bottom.
Only via keyboard/mouse/gamepad keybinds, there is no vam → mfp communication.
Slowly getting there ! Your software is awesome I wonder why it took me so long to try it properly _
Last problem to solve : I have OSR2 (serial output) and lovense toy (buttplug) all configured properly as you just suggested. Everything work except that the Lovense still vibrates at its lowest setting when (V0) shows zero.
Is there a way to make it really zero (no vibes at all) ?
Is there any know issue with Windows 11?
I can open MultiFunPlayer-1.20.2 without any issues. MultiFunPlayer-1.21.0 doesn’t open. No dialog appears, no log folder.
Any ideas?
Try installing latest .net x64 desktop runtime: Download .NET 6.0 Runtime
As usual it seems microsoft broke update popups because it should tell you that you need to update and auto download/install it.
On github there are also “self contained” releases that you can download which dont require .net installation.
Just move the MultiFunPlayer.config.json to the new install location, or just overwrite all old version files with the new ones. Unless you are updating from a very old version then its possible they will be reset.
Great work! I don’t know if it’s an illusion, but in the case of high update frequency, the device moves more smoothly than the previous version, which feels good.
Once you get this dialed in with script linking from L0 to R2, and randomized roll and twist, along with keybindings to control the stroke length and midpoint with a game controller…fuuuuuuuuuck! It’s the best!
I’m getting a error when trying to connect with a device with Intiface + when MultiFunPlayer tries to connect to it.
Error when connecting to server:
Buttplug.ButtplugConnectorException: Specific error for connector type: Tungstenite specific error: IO error: No connection could be made because the target machine actively refused it. (os error 10061).
at Buttplug.ButtplugClient.ConnectAsync(ButtplugWebsocketConnectorOptions aConnector)
at MultiFunPlayer.Common.TaskExtensions.g__DoWaitAsync|0_0(Task task, CancellationToken cancellationToken)
at MultiFunPlayer.OutputTarget.ViewModels.ButtplugOutputTargetViewModel.RunAsync(CancellationToken token)