ToySerialController+VAMLaunch

Plugins ToySerialController+VAMLaunch

The ability to change the range and specified target atom via triggers would make switching positions or between sex and foreplay much better and cleaner.
I have no plans to continue development with new features for this plugin as I mainly merged two existing plugins and tweaked the prediction algorithms to better suit "my launch style". Perhaps you will find someone that can take you up on that and continue developing this plugin.
 
Just want to start of by saying thanks for this amazing plugin.
It's the best I've tried but I'm experiencing some things I need some input on.
1. Is there any way to make the Device Simulator match the Current Axis Input better?
The Current Axis Input is always Spot on... But the Device simulator can be 30-60 values away from the actual Current Axis Input.
This makes it not very immersive as the movement in the game is matching with the Current Axis Input but not with the Device Simulator.
2. I'm missing ALOT of strokes, it seems to be mostly when movements are medium to fast.
3. I'm experiencing issues with the prediction. Sometimes the Current Axis input stops in the middle of a movement in game but the Device Simulator goes all the way to zero and doesn't stop.
I'm guessing this is because it's predicting that it will go all the way, when it in some cases doesn't and should stop in a movement.

Anyone have any input or fixes for some of my questions? :)

Take care!
I did experiments with code to move the device to where the current input is all the time. For a Launch it turns out that it must pause for just a moment before starting to move again so it just gets very strange. Moving the device just in increments of 5-10 units causes a lot of starts and stops and probably wears down the device much faster. This might not be the case for other devices, dunno, but I scrapped it as there were other problems too. :(
1: In it's current implementation, no - there is no way to match it better other than changing the min/max range yourself to limit the movement.

2: There are some settings you can look into to make the prediciton more agressive which may help, or not, or make things worse. There are limitations as the device can't report back it's real position so it's based on the simulator position (if I remember correctly). The following are the main settings to trigger next prediction to happen.
  • Min/Max Adjust Time Threshold: Set to very low, 0.04 - 0.07 to force the timings to be low
  • Select Max Input Prediction Mode: Set to "A: Max Input Value:"
  • A: Max Axis Input (From Apex): Set to 10-25
  • Minimum Axis Input Before Predicting Movement: Set to 1-5.
3: The prediction just assumes the whole range will be used as it can't predict where the animation will stop and there is no "handbreak" feature when the simulator overshoots the current input. I have been thinking about trying out something that stops the simulator if it overshoots but I haven't found the inspiration or time.

You could also try the presets I bundled with the plugin which are set to be a little more agressive than the default settings, you can find and download them in the plugin Overview, Show Installation spoiler section, step 7.
 
Having issues loading.

!> Exception caught: System.Exception: Attempted to get files at non-existent path Custom\Scripts\ToySerialController_VAMLaunch
at MVR.FileManagement.FileManager.GetFiles (System.String dir, System.String pattern, Boolean restrictPath) [0x00000] in <filename unknown>:0
at SuperController.GetFilesAtPath (System.String path, System.String pattern) [0x00000] in <filename unknown>:0
at ToySerialController.Plugin.LoadDefaultConfig () [0x00000] in <filename unknown>:0
 
Having issues loading.

!> Exception caught: System.Exception: Attempted to get files at non-existent path Custom\Scripts\ToySerialController_VAMLaunch
at MVR.FileManagement.FileManager.GetFiles (System.String dir, System.String pattern, Boolean restrictPath) [0x00000] in <filename unknown>:0
at SuperController.GetFilesAtPath (System.String path, System.String pattern) [0x00000] in <filename unknown>:0
at ToySerialController.Plugin.LoadDefaultConfig () [0x00000] in <filename unknown>:0


I can try to help trouble shoot it with you. So, did you have VAM Sync started on your computer as well (it's a separate program from VAM itself) before running it?
 
I can try to help trouble shoot it with you. So, did you have VAM Sync started on your computer as well (it's a separate program from VAM itself) before running it?
Yep its running and connected. I did a fresh install of Vam Sync and VaM and same issue.
 
Yep its running and connected. I did a fresh install of Vam Sync and VaM and same issue.
Ok so I'll try to get a few other probably more obvious things out of the way too. So, toy is on, VAM sync connected, etc. Make sure that Select Output Target is set to VAMLaunch if that's what you are using (VAMSync). There is an option in the Plugin that says "Start Udp/Launch", you'll need to click that in order for it to start. Finally,make sure that further down at Curve Axis Input the selection is "L0" because as far as I can tell it's more reliable

Another problem that I would suggest next if all of that is not an issue, is to check the settings in general so: Make sure you go all the way down to "Motion Source" and have the proper mode selected so that depending on what is doing the movement/action, it will detect it. So, if it's a male and female then select that option and make sure to have the other tabs properly selected to. Generally speaking, you should keep "Select Target Point" to "Auto" as well because it will ensure that whatever movement is taking place will be properly tracked by the plugin.
 
Is there any way to access options for Session Plugins from trigger events? I want to create a button that switches Motion Source, for example. Is there a way?
 
I just can't understand this. I've got it completely set up with my Onyx+, it's all connected and working, but I just can't figure out how to get it to work in a scene. I have an asset that repeatedly squats, which I thought would be a good way to test. I click the asset, go to root, go plugins, add the plugin. Then I can unpause Launch and it'll work, but not really synced at all. I take it out of "Oscillate" to either "pattern" or "zone" and I've got no idea how to to tell the system "look at this part of the asset, and figure out when it goes up and down."

Any advice?
 
I just can't understand this. I've got it completely set up with my Onyx+, it's all connected and working, but I just can't figure out how to get it to work in a scene. I have an asset that repeatedly squats, which I thought would be a good way to test. I click the asset, go to root, go plugins, add the plugin. Then I can unpause Launch and it'll work, but not really synced at all. I take it out of "Oscillate" to either "pattern" or "zone" and I've got no idea how to to tell the system "look at this part of the asset, and figure out when it goes up and down."

Any advice?

The key is you need to have both a person atom (female) and either person atom (male) OR a dildo OR an object.

The motion tracking works by comparing the position of the male/item relative to the female.
 
Blazedust updated ToySerialController+VAMLaunch with a new update entry:

ToySerialController+VAMLaunch (update) v.10

* When target point swaps (from hand to mouth or vaginal to anal for example) the input axis now does a smooth transition instead of an instant transition. This removes fast jerky movements when using launch devices or similar.
* New Curve Axis Input called "C0". It's a combination of curves L0, R1 and R2 with some built-in transition curves.
This considers up/down motions as well as horizontal/rotational hip movements.
When the up/down motion stops in an animation the...

Read the rest of this update entry...
 
Having issues loading.

!> Exception caught: System.Exception: Attempted to get files at non-existent path Custom\Scripts\ToySerialController_VAMLaunch
at MVR.FileManagement.FileManager.GetFiles (System.String dir, System.String pattern, Boolean restrictPath) [0x00000] in <filename unknown>:0
at SuperController.GetFilesAtPath (System.String path, System.String pattern) [0x00000] in <filename unknown>:0
at ToySerialController.Plugin.LoadDefaultConfig () [0x00000] in <filename unknown>:0
Don't worry about it, it's always shown when there is no default config to load - so it will always show up the first time loading the plugin. Just save a default config and you won't see this next time plugin loads.

Is there any way to access options for Session Plugins from trigger events? I want to create a button that switches Motion Source, for example. Is there a way?
I have no plans to add such a feature as I mainly merged two existing plugins together.

I just can't understand this. I've got it completely set up with my Onyx+, it's all connected and working, but I just can't figure out how to get it to work in a scene. I have an asset that repeatedly squats, which I thought would be a good way to test. I click the asset, go to root, go plugins, add the plugin. Then I can unpause Launch and it'll work, but not really synced at all. I take it out of "Oscillate" to either "pattern" or "zone" and I've got no idea how to to tell the system "look at this part of the asset, and figure out when it goes up and down."

Any advice?
Scroll down to the bottom of the plugin interace and select the kind of motion source you want to use. Default is male + female. You might want to select female + dildo or male + CUA. To visualize how the object is aligned you can enable debug to get a visualization how the CUA is aligned and if you need to change some parameters for the tracking.
 
I have no plans to add such a feature as I mainly merged two existing plugins together.

Hey no worries, man! This plugin is amazing and I appreciate the time you put into it to make it great.

I was asking this as more of a general feature of VAM's features, and thought I might be missing something, but I guess not.

Thank you again.
 
Feature request: Would it be possible to select a static receiver/female actor, and use "Auto" for the giver/male model? I usually use this plugin while possessing a female actor with Passenger, so in e.g. gangbang scenes it would be awesome to have an automatic switch between which male actor is being used for detection. At present I need to open the menu to change that whenever the action changes.

Best case would be a priority ordering of which part on the female actor is being used (e.g. vagina > ass > mouth > chest etc.), but even just being able to select one would be great if the giver was switched automatically :)
 
Feature request: Would it be possible to select a static receiver/female actor, and use "Auto" for the giver/male model? I usually use this plugin while possessing a female actor with Passenger, so in e.g. gangbang scenes it would be awesome to have an automatic switch between which male actor is being used for detection. At present I need to open the menu to change that whenever the action changes.

Best case would be a priority ordering of which part on the female actor is being used (e.g. vagina > ass > mouth > chest etc.), but even just being able to select one would be great if the giver was switched automatically :)
I might look into this feature next time I work on this plugin (whenever it may be, no plans right now). But I don't think I have a good test scene. Do you have any good demo scenes for this use case?
 
I might look into this feature next time I work on this plugin (whenever it may be, no plans right now). But I don't think I have a good test scene. Do you have any good demo scenes for this use case?
My top one would be https://hub.virtamate.com/resources/gangbang-girl-vr-version.14572/, there's a free version of it too that only has one of the poses but I think has the moving between guys: https://hub.virtamate.com/resources/gangbang-girl-–-intro-scene-act-1-–-vr-version.19960/

Any MMF threesome scene should also be appropriate :)
 
While we're on the wishlist, reacting to face/tongue movement on the crotch or fingering would also be amazing! But even without that, using the current dick-penetrating-whatever method but anchoring off the female actor would be my #1 request.
 
im having problems getting this to work. I've following the installation instructions to my best ability with the small knowledge i have for VAM for both and it got me this far. Is there a file i've incorrectly placed somewhere or am I missing something? I've got everything up and running to the point where i've added the plugins to the right place and the device (the Handy) works but im assuming its not able to follow an atoms animation because im not seeing any source selectable in "Target animation pattern" drop menu?
2022-08-04 11_05_49-Scripts.png
 
im having problems getting this to work. I've following the installation instructions to my best ability with the small knowledge i have for VAM for both and it got me this far. Is there a file i've incorrectly placed somewhere or am I missing something? I've got everything up and running to the point where i've added the plugins to the right place and the device (the Handy) works but im assuming its not able to follow an atoms animation because im not seeing any source selectable in "Target animation pattern" drop menu?
View attachment 145031
I updated the installation section in the description to be more descriptive.

From what I can tell you're using another plugin.

Please see the updated installation instructions:
  1. VAMServer required to connect to your Launch, see installation instructions https://github.com/ZengineerVAM/VAMLaunch(you might have to pair your Launch with your PC too!).
    • You might want to use the updated version. A newer version (renamed VaMSync) is available at https://github.com/intiface/VaMSync , maintened by the developper of buttplug.io, and it can connect to Intiface Desktop (from what I read from the revision note, I did not try it yet).
  2. Place the .var file in the AddonPackages folder
  3. Extract the contents of the 'default preset.zip' in your VAM root installation folder. If you don't do this you will get a startup error message telling you that there is no config to load - as one is not yet created. This message is OK.
  4. Start VAM.
  5. Add this plugin as a session plugin.
    • 1659694048590.png
    • 1659694087348.png
    • 1659693658886.png
    • 1659693685882.png
    • 1659693640301.png
  6. In the plugin interface: Make sure to select VamLaunch as Output Target.
    • 1659693720072.png
    • 1659693833683.png
  7. Load a scene with Male+Female.
  8. Press "Start Udp/Launch" to start sending signals to VAMServer and your connected Launch when there is action in the scene.
    • 1659693826822.png
 

Attachments

  • 1659693950223.png
    1659693950223.png
    129.7 KB · Views: 0
I updated the installation section in the description to be more descriptive.

From what I can tell you're using another plugin.

Please see the updated installation instructions:
I figured out what i was doing wrong. While i had your plugin loaded correctly in the Session plugins menu i was thinking i had to run it side-by-side with the VaMSync plugin which is set to load in a person atoms plugin menu. That's the one with issue of the dropdown menu not displaying and i guess it was somehow overriding your plugin preventing things from working. Sorry for the bother, yours does what it needs to do alone.(y)
 
hey man. Im currently at step 6 In the plugin interface: Make sure to select VamLaunch as Output Target.
Well for me there is no VamLaunch listed under Output Target. Can you help me ?

Also i couldnt figure out what to do with the VAMLaunch repack. Is it even needed?

PS: I did get my toy ( kiiroo keon ) connected via VamSync. And im using the newest version which are ToySerialController.17 + VamSync v3.0 ( the older ones from your thread are weirdly converted into iss files and i dont know what to do with them ).

Edit: I got help from Discord and we figured it out. The problem was the ToySerialController. I just didnt see the download button at the top right that has the Blazedust one. So basically i just needed that one instead... Im still trying to figure out how i can get it properly synced though. I can see that every stroke is pretty much the same in the scene but on the kiiroo every stroke is very different, not sure why that is happening..
 
Last edited:
Hi, I got your plugin to work and it's great. But I have a feature request: could it be possible to have as a motion source a slider? That way people with complex animations (which are hard to predict) in Timeline, can send values to the slider, and the slider would just be a number between 0 and 1 controlling the height.

So you would have a scene, and in this scene there is a UISlider. As a motion source in your plugin, you would choose that UISlider. Whenever that UISlider changes value, the toy would move to that position, with 0 being down and 1 being fully up.

If that would be available, people could make all kinds of motions with this using TImeLine and triggers to change the UISlider values at keypoints.
 
Is there a way to make the device simulator just follow the Current Axis input? Like turn the prediction speed and timings off? When you are doing a control the head yourself scene, the prediction is weird. The current axis input using the handy would be exactly what the simulator should follow.

When turning on debug, the rings around the penis are basically perfect, and the mouth movement exactly matches the C0 axis, but the prediction stuff just goes crazy sometimes and doesn't follow the current axis like it should.

Example slowly moving head from 90% C0 axis to 50% will work for a second then the prediction kicks in and the device simulator goes to 0% by itself.

In less words, can you turn prediction off and just follow the C0 axis exactly from 0% to 100%?
 
Back
Top Bottom