when we link R0 to L0, the twist turns left when it goes down and right when it shows, is it possible to reverse this movement when the R0 axis passes into its neutral position (50%)? I know that we can reverse the direction of the axis randomly with the motion provider option, but I find that it makes the twist a little soft at times.
I hope my explanation is better x)
You can open the āadvanced settingsā section in random motion provider and play with the values, you can tweak it so the movement is more aggressive, or just adjust the speed.
So like this?:
Its possible but it will make it so twist only turns left.
without the motion provider it is impossible to invert the axis automatically on a given value
Love the work youāve done with this! I have a few requests to consider or perhaps questions on how to do things I may have overlooked.
As Iām getting into scripting, I really like seeing the detailed waveform of the script playing in Script Player. Iāve noticed you can see this in MultiFunPlayer when you hover your mouse over the heatmap, but is there anyway to pin this up to always show and track along with whatās playing?
I suppose I could just play the media in OpenFunScripter(OFS) with MultiFunPlayer, but then thereās no playlist support.
While Iāve seen people mention use of VirtualDesktop, everything Iāve found is just using this as a bridge for a Quest to then get to HereSphere or other player. I really like the video player in Virtual Desktop itself. I find it really useful to play in VirtualDesktop and then manage and search for files in the Windows desktop w/o needing to take off the headset. I can imagine it would be really useful when testing and adjusting scripts to do it all in VirtualDesktop so I could have both OFS up on my display with the video in the background.
Is it possible to connect MultiFunPlayer to VirtualDesktopās video player? Is Virtual Desktop piggybacking on something else I need to hook MultiFunPlayer into? Does Virtual Desktopās video player not support any remote connections for MultiFunPlayer to hook into? Iām not sure what the situation is here.
No way to pin it, if I would add a way to pin it it would be the height of the heatmap itself, so pretty useless. This could be made as an easy plugin in the next version tho.
I have no idea as I never used it, if there is an api that you can connect to then I can add it as video player to MFP. But looking at it there most likely is no api. You would have to make a feature request. The api has to send video path, duration, current position, play/pause state, playback rate (optional).
But since this is a virtual desktop you can also probably use mpv, vlc or mpc-hc.
Thanks, I got it working with stash-vr. The filename still displays as āstreamā but itās picking up the funscripts now.
Hi, Iāve finally decided to look into this side of things, and Iām just a little confused. In order to get the valve to open on the way down and close on the way up, do I need both A0 and A1 activated for an SR6? And what would my settings be? Thanks
You only use either A0 or A1, cant use both at the same time. In your case I think you can just enable a custom curve motion provider on A1 and set it to a flat line at 100%. And that should fully close the valve on the way up and fully open on the way down. Iām not sure if you need to constantly send A1 commands, if it stops working then you can disable āsend dirty axes onlyā option on the output.
It also can depend on the firmware you have.
Thanks for the help, Iāll give it a go!
Hi @Yoooi, is it possible to set the range for the L0 output of a serial device using a custom plugin? Iāve made a plugin but I cant figure out how to write the range to the device. Thanks for the help!
Yes, call:
InvokeAction<DeviceAxis, double>("Serial/0::Axis::Range::Minimum::Set", DeviceAxis.Parse("L0"), value);
there is also ::Maximum::Set
, ::Middle::Set
and ::Size::Set
.
The actions are the same as for the shortcuts.
Much appreciated!
Not sure if itās just me but on the Patreon and public release Iām experiencing a bug.
When random motion is turned on for R1 and R2 AND invert is also on for R1 and R2, Roll and Pitch axis values from scripts do not get read (and therefore sent to the device).
Anyone else?
Final question :). Is it possible to listen for deovr haptic button events? It would be great if I could register an event listener or something
This will be fixed in the next release, tho the invert option will only invert the script, it will not invert motion providers because thats the source of the bug.
You canāt directly listen for input events, but you can register a shortcut action:
RegisterAction("Plugin::Test", () => {
// handle action
});
And then you just create a normal shortcut with your plugin action.
Note that there is an issue with current version where the plugin action will be removed from the shortcut on restart because the plugin is not yet loaded when launching MFP, this is fixed in next version.
It would be nice to allow plugins to just listen for input gestures but it currently would require exposing like half of the classes from the input system to the plugins. Iāll see if it can be added in some reasonable way.
Cool, thanks! Should be fine for now, but will be looking forward to the next version then
Got it, good to know itās in the works! I
yeah itās just a QoL thing where one would have to toggle the random motion on and off when switching between media that has and doesnāt have roll and pitch scripted.
Not looking to invert the random motion as itāll just be as random haha
@Yoooi recently started using your free player, and i use osr2 connected via serial, and quest3 connected wirelessly, with deovr option as i use slr site on it. All works good but problem im having is lets say i take my quest3 off my head for a minute or 2, multifunplayer will disconnect from deovr. than i have to put my quest3 on my head and than click connect on multifunplayer for it to reconnect, which is annoying. Any way to have the player stay connected to deovr, even if i take my headset off?
There is auto-connect button next to the connect button, toggle it on and MFP will try to connect automatically every few seconds.
That disconnect is probably some quest3 behavior I cant control.
MultiFunPlayer v1.32.0:
Download: timed patreon only exclusive
Patreon build: https://www.patreon.com/posts/118304718
Additional patreon only changelog:
- Support SLR login using login code
- Allow connecting DeoVR even when SLR login fails or credentials are empty
- Donāt use cached session if username is different
- Fix āwrong passwordā error when logging in to SLR
- Fix SLR api sending local scripts causing double sync
Changelog:
- Rework and simplify plugin system
- Allow placing plugins in subfolders
- Expose available actions and properties to plugins
- Allow plugins to create their own UI
- Improve performance of creating assembly references for plugins
- Register missing properties for plugins where possible to match registered actions
- Sample plugins: MultiFunPlayer Sample Plugins Ā· GitHub
- Update to .net 9 (performance improvements)
- Allow assigned actions to be in disabled state instead of getting removed from shortcuts if plugin or output target action is unregistered (#88)
- Add support for auto-home and speed limit when using PolledUpdate (#180)
- Fix unable to place breakpoints in plugins due to plugin assembly embedded source not including BOM
- Fix nested dialogs getting stuck invisible in certain situations
- Fix custom curve motion provider tiling when using makima interpolation
- Fix manual axis transitions loosing steps with shortcuts in relative mode
- Fix axis value flipping repeatedly with invert option enabled by reverting it to invert script only
- Fix auto-home taking shorter time to complete than configured
- Fix SyncOnMediaResourceChanged not having any effect when set to false
- Fix MotionProvider::Custom Curve::Points::Set actions not updating display name
- Fix MotionProvider::Custom Curve::Points::Set actions adding additional point on each launch
If you like what Iām doing, please consider supporting me on Patreon
https://www.patreon.com/yoooi