ToySerialController+VAMLaunch

Plugins ToySerialController+VAMLaunch

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%?
I’d also welcome this feature!
 
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%?

I always wondered why we are "predicting" anything, when the anchor points that are tracked are mapped into a known 3D environment with known coordinates that should be extractable. If I'm waving something around manually, in a recorded 3D environment, I should be able to easily grab those data and use it to move the hardware. Not sure why prediction is necessary. It's most likely just the limitation of the API.
 
I have no idea what happened, but suddenly VaMLaunchGUI.exe doesn't run anymore. I did nothing new. Nothing was updated. I tried uninstalling and reinstalling, and it just doesn't run. I see the exe come up in task manager and then immediately close. Any ideas?
 
I have no idea what happened, but suddenly VaMLaunchGUI.exe doesn't run anymore. I did nothing new. Nothing was updated. I tried uninstalling and reinstalling, and it just doesn't run. I see the exe come up in task manager and then immediately close. Any ideas?
When that happens to me I just start the VAMLaunchGUI again - it rarely crashes. But it seem to crash more often if I start it without waiting a few seconds after turning on the Launch. Maybe windows + Launch is doing some initial communication that just makes VAMLaunchGUI crash (or not) during startup.

I always wondered why we are "predicting" anything, when the anchor points that are tracked are mapped into a known 3D environment with known coordinates that should be extractable. If I'm waving something around manually, in a recorded 3D environment, I should be able to easily grab those data and use it to move the hardware. Not sure why prediction is necessary. It's most likely just the limitation of the API.

This plugin merges 2 different plugins.
ToySerialController and the VamLaunchPlugin.
The ToySerialController sends it's tracking coordinates (input) to the -> VamLaunch plugin. The VamLaunch plugin has always used predictive movement due to limitations in the Launch API. You must tell the device (the Launch) to move to a certain position with a certain speed (from it's current position). Then the device will move to that position and stop before accepting new inputs.
I have tried to continuously send smaller incremental steps but then the device will basically move a bit. Pause a brief moment. Move a bit. Pause. Move. Pause. Move. Pause. Which doesn't only feel wrong but also increases the wear and tear of the device, especially when it should move fast. Perhaps this wouldn't be a problem on other devices but I do not own any other devices.

To be able to go from predictive behavior to actually sync with the animation this would require either:
A: Peek in the future of the animation information (if possible), run the physics and whatnot to predict where the input from the ToySerialController actually will stop. This would be (if even possible) computational heavy as it would basically run a copy of VAM to just peek into the future in the animation. Let's not do that and tank anyone's FPS by half.

B: Someway be able to record the input motion by playing a scene once and then be able to create a timeline with information when the Launch device should start moving to a certain point and how fast in order to sync up with the animation. Recording a scene would then only be required to do once after which information can be extracted for when a launch should start moving, how fast and to which point to match the motion of the animation.

Now, record the input from a scene is troublesome because what should be supported? VAM's native timeline is probably doable but a lot of work. Integrate with AcidBubbles Timeline plugin perhaps if the correct API exist but again a lot of work. All other ways of producing animations, such as AnimationPatterns or CycleForces, I would ignore due to it being too unpredictable variables.

The amount of work that recording would entail just makes me not do it, I have given it some real thought how it would be solved but I will leave it as that, a thought exercise. This plugin works well enough for me even if I for some scenes would have it more accurate when it comes to the speed which it just can't predict well.

C: In supported scenes, allow the scene creator to create a well-known point with known coordinates and limitations to be able to extract data to this plugin that drives the Launch providing information about how the launch should move. But how should that technically actually work as we need when to start move, where to move to and with what speed (or another way of putting it, at what position should the launch be at at a specific time in the future)? Getting tired thinking about this again :)

Hopefully someone wants to continue to work on this plugin and fix and improve and tweak things and maybe make it easier to use. Or write a completely new one from scratch to overcome this plugin's all limitations :) As I have written in earlier posts, the goal was to merge 2 existing plugins together which I consider completed.

Bottom line: Go from predictive movement to a fixed movement is not trivial due to limitations in the Launch API, I have some ideas how one could theoretically overcome it but not without a lot of work that I don't feel like spending into this project anymore in my spare time.
 
I really need help with this. I have my Kiiroo Onyx+ connected to Initface, and Initface is capable of then connecting to EITHER ScriptPlayer, or VAMSync (VAM Hardware Sync). I know I've got this bit correct.

When I go into VAM, I load up a scene, go to "Session Plugins", go to Saves/VAMLaunch and add the "ADD ME" file. It adds the plugin. The issue is at this point. When open up the custom UI it doesn't give me any of the options in the screenshots above. The screenshot says it should display the plugin name as "ToySerialController_VAMLaunch", but I've got "VAMLaunchPlugin.VAMLaunch".

On top of this, the custom UI doesn't even have a "Select Target Output" option. Not that I don't know what to select here, there is *no* area on the screen that says this. I'm attaching a screenshot of my current view. Really don't know what's going on here.

1668385475418.png
 
Scratch that, I've got it *partly* working. I believe if I click the root of one of the characters (male or female, it doesn't matter), then go to Plugins, add the plugin, I'm greeted with the same screen as the one in my screenshot above. This means I don't add it as a session plugin.

When I open the custom UI I get the screenshot above, and the "Simulator" slider is going up and down in a steady motion. When I uncheck "Pause Launch" my Kiiroo Onyx+ does indeed react in time with the Simulator slider.

The issue is, I have no idea how to handle the Zone or Pattern choices. I don't know if I should load the plugin on the male or female. I don't know after that choice, where I should set the Target Atom (I don't know if this is the male or female, and if it changes depending on which atom I loaded the plugin onto. I then also don't know what I specifically I need to set the Target control to. All my combinations so far have resulted in the Simulator slider staying static at 10, so unpausing does nothing.

Also, the interfaces shown in the screenshots look NOTHING like any of the ones I'm seeing in application. Are they outdated? Am I using an outdated version?! For example, I've never seen this and the instructions don't say how to get to this screen either.

1668550005512.png
 
Also, the interfaces shown in the screenshots look NOTHING like any of the ones I'm seeing in application. Are they outdated? Am I using an outdated version?!
It can be confusing. You only need to install VaMSync server software (or older VAMLaunch) to connect to your device.

The plugin you need to use inside of VAM is this plugin called Blazedust.ToySerialController+VAMLaunch.10.var

Click the show installations blue button spoiler in the description page. Basically this is the ONLY plugin you need to add:
Blazedust.ToySerialController+VAMLaunch.10.var/Customer/Scripts/Blazedust/ToySerialController+VAMLaunch/ADD_ME.cslist

1668631245547.png


Other plugins bundled with the VAMLaunch or VaMSync is not needed. Adding those will show another GUI entirely.
Basically, don't follow the VAM *plugin* section of the https://github.com/intiface/VaMSync . I have hopefully clarified it a bit better in the installation step of this plugin for future users :)
 
Last edited:
Just a heads up that upcoming 1.21.2 release is going to require users to opt-in to allow plugins to use network features. If this preference is not set, this plugin won't work as it is using namespaces that are restricted by the new option.

1675206443236.png
 
It appears you've broken the ability to adjust the values of all the serial toy axis' via triggers.

When I try to trigger stuff on this plugin from the scene animation, there is no way for me to select any of the toy axis through those triggers like I am able to do with the standalone toyserialcontroller plugin.

So I'm not sure why you've done that but that is pretty annoying.
 
It appears you've broken the ability to adjust the values of all the serial toy axis' via triggers.

When I try to trigger stuff on this plugin from the scene animation, there is no way for me to select any of the toy axis through those triggers like I am able to do with the standalone toyserialcontroller plugin.

So I'm not sure why you've done that but that is pretty annoying.
No offense TdotONY but your tone is coming off as pretty accusatory here. MeshedVR is the very reason we're able to enjoy VAM in the first place and I can assure you if there is some issue, it wasn't intentional. Please just try to ask for assistance, man, we're all a community here. Are you on the VAM Discord? That might actually be the best place to troubleshoot your issues with the plugin. Meshed isn't the developer of this plugin either so the particulars would need to be addressed by the plugin creator themselves. I haven't experienced this issue myself though, you're saying that the Plugin since the VAM update will not recognize changes you make for any of the axis? Maybe a dumb question but did you enable Network access via the user settings like Meshed shows above? Otherwise, there is nothing MeshedVR's update would have done that should have affected how this Plugin functions to my knowledge. Let me know if you figure it out
 
No offense TdotONY but your tone is coming off as pretty accusatory here. MeshedVR is the very reason we're able to enjoy VAM in the first place and I can assure you if there is some issue, it wasn't intentional. Please just try to ask for assistance, man, we're all a community here. Are you on the VAM Discord? That might actually be the best place to troubleshoot your issues with the plugin. Meshed isn't the developer of this plugin either so the particulars would need to be addressed by the plugin creator themselves. I haven't experienced this issue myself though, you're saying that the Plugin since the VAM update will not recognize changes you make for any of the axis? Maybe a dumb question but did you enable Network access via the user settings like Meshed shows above? Otherwise, there is nothing MeshedVR's update would have done that should have affected how this Plugin functions to my knowledge. Let me know if you figure it out
My apologies, I've been spending hours trying to figure out how to use multiple plugins and basically getting nowhere, so I was getting very frustrated at the time that I wrote that comment.

When I use the ToySerialController plugin, which has been "merged" into the VAMLaunch plugin I'm referring to here, I am able to control the individual axis' range and output values etc. But not with this VAMLaunch modified one...so I've just been using the standalone ToySerialController from Yoooi.
 
Ok no worries. What sort of device are you using? Is it a Handy or other similar device or is it one of TempestVR's creations?
 
Ok no worries. What sort of device are you using? Is it a Handy or other similar device or is it one of TempestVR's creations?
tempest device

with toyserialcontroller or the tcodeserialcontroller plugins you can control all the things in the plugin via triggers. like button triggers, any triggers.

you can't do that with this plugin for some reason, unless im just incredibly stupid and it is required to be added to a scene in a certain way or something.

the toyserialcontroller plugin can be added as a session plugin or to a person atom or as a scene plugin, whatever, so assumed this one would work that way too.

since the one from yoooi works, ill just use that.

though while researching this I also saw there's another plugin, not on the hub, called vamsync but it has since been abandoned. so i don't know which one is the newest/best.
 
tempest device

with toyserialcontroller or the tcodeserialcontroller plugins you can control all the things in the plugin via triggers. like button triggers, any triggers.

you can't do that with this plugin for some reason, unless im just incredibly stupid and it is required to be added to a scene in a certain way or something.

the toyserialcontroller plugin can be added as a session plugin or to a person atom or as a scene plugin, whatever, so assumed this one would work that way too.

since the one from yoooi works, ill just use that.

though while researching this I also saw there's another plugin, not on the hub, called vamsync but it has since been abandoned. so i don't know which one is the newest/best.
If you want to control the ToySerialController you must use that plugin and add to an atom in the scene and design your triggers around that.

This plugin (ToySerialController+VAMLaunch) is its own thing (even if the name doesn't reflect it that well) intended to be run as a session plugin with no trigger input from the scene. Both plugins that this is based on are modified in various ways to just work in most scenes that doesn't integrate the VAMLaunch plugin. The only output from this plugin is designed for the VAMSync server.

If you need to control the VAMLaunch plugin directly then you should use that plugin instead with the AnimationPattern mode or a Zone.
 
Maybe someone can help me:
I already had my setup working, connected my Keon to VamSync via intiface and used the ToySerialController +VAMLaunch as Session Plugin and it worked pretty good on almost every scene.

But last time i wanted to try it, i runned in to a problem i couldnt solve. i will try to explain :
Normally when i apply this plugin and go to custom UI and selcet VamLaunch as output target, i immediatly see the curret Axis input and the Device Simulator bar (value) is moving. But now its always at value 0 nomather what i do and change in the setting. i also reinstalled the defaul configuration and loaded it. But to the Keon devise i am linked, because when i invert the input Axis the value jumps to 99 and the Keon moves.
On the ToySerialController side the Graph is moving correct.
So my problem is that somehow the VamLaunch side dont recognize the Current Axis input. Maybe i screwed something up i dont know, i recently added many scenes and looks in general. its gonna be a pain if i have to reinstall the game.

I would be glad if someone can help me. Oh and i use Vam V1.20.77.9 and it already worked on this Version.
Graph moving correct
inverted Axis
Axis Input always at 0
 
Maybe someone can help me:
OBS: This plugin is NOT compatible with existing VamLaunch plugin integrated scenes. If you encounter one of those the network connection might be disabled for that scene. Test with a scene you know works since before without loading any other scene first!

Alternative 1: You can completely reset the config by deleting all config .json files to this plugin and reload it. It will create a new default from scratch.

Alternative 2: Verify settings: It sounds like you have had it working before.
  • Verify you're using the correct motion source (Male + Female)
  • Verify "Main" options on the right side and that "Reference Length" is around 100%
  • Verify Up/Down L0
    • target point end is around 100%,
    • target point start is around 0%.
    • Output max is 100%,
    • (I think there's a bug disabling the operation of this plugin if you set these to some extreme values, changing back requires reloading the plugin).
  • Verify selected Launch Axis Input Prediction is set to C0 or L0
  • There are of course a lot of other settings but these I think could be responsible for "disabling" the entire function of the plugin in a normal use-case.
 
OBS: This plugin is NOT compatible with existing VamLaunch plugin integrated scenes. If you encounter one of those the network connection might be disabled for that scene. Test with a scene you know works since before without loading any other scene first!

Alternative 1: You can completely reset the config by deleting all config .json files to this plugin and reload it. It will create a new default from scratch.

Alternative 2: Verify settings: It sounds like you have had it working before.
  • Verify you're using the correct motion source (Male + Female)
  • Verify "Main" options on the right side and that "Reference Length" is around 100%
  • Verify Up/Down L0
    • target point end is around 100%,
    • target point start is around 0%.
    • Output max is 100%,
    • (I think there's a bug disabling the operation of this plugin if you set these to some extreme values, changing back requires reloading the plugin).
  • Verify selected Launch Axis Input Prediction is set to C0 or L0
  • There are of course a lot of other settings but these I think could be responsible for "disabling" the entire function of the plugin in a normal use-case.

Thank you for the Reply!
I double checked all your points and completely reseted the config and spend some more time to solve the problem but I still have the same problem there.
But i am linked to my device as i click invert axis the keon moves up or down.

Anyways i Downloaded the new Vam Version with a seperate Launcher (so i got Vam installed twice now both versions) got my key and tried finding out what is causing this problem. I first added al my addons tried a scene with toyserialcontroller-vamlaunch and there we go it functions normally. Then i added all the rest of the Stuff and it still works perfect. So i still dont know what is causing this problem on the older version file. I mean i didnt overwrite everything. The Base wich comes from the Launch installer i didnt overwrite with the old version. Maybe there is the bug anywhere.


Thank you again for the support!
And keep up your excellent work.
Have a great day.
 
Hi Blazedust,

Thank you for creating an awesome build on Yoooi's fantastic ToySerialController plugin.

I understand you're no longer developing your plugin, but I wondered if I could ask you to look at this for me.. or give me (a non-coder and new to VAM) some advice as to how I may alter your plugin. I understand that I may be able to do this using notepad++ by editing your plugin CS file directly...

Background/Context:

I use Yoooi's original ToySerialController plugin v.17 to generate Tcode from the scene.. and output via UDP. This isn't connected to a stroker or robot, but to an application written by Diglet on Milovana. He's written an application called 'Restim', which is able to create and send estim files from funscripts or from tcode in real-time.. its brilliant and works with Multifun player, Faptap and VAM, etc.

The problem I have is that Yoooi's version v.17 works fine.. however your version I think uses an earlier version of his plugin I think probably v.14 or v.15 before he added the ability to specify an IP address... (127.0.0.1). I love the added functionality of your plugin and the ability to select different actors in the scene and it automatically switches between them...(this is the problem with Yooo'is plugin you identified- its limited in its detection fo the the actors and action in the scene - Male+Female.. no male+asset, etc.)

However, your plugin just won't connect. I can see the Tcode is being generated.. using the debug.. and the action is being tracked.. but there is no ability to specify the IP address... just the port number.

Perhaps its as simple as you telling me the IP address that your plugin uses by default? Or adding in the ability to specify the IP address to your Plugin? Or perhaps I need to add your extra functionality to Yoooi's ToySerialController plugin?


Please could you let me know and thanks once agin for your hard work.

Niceguy.
 

Attachments

  • Screen-Shot-2023-04-23-at-12.25.jpg
    Screen-Shot-2023-04-23-at-12.25.jpg
    223 KB · Views: 0
  • IMG_7166.jpg
    IMG_7166.jpg
    523.4 KB · Views: 0
  • IMG_7165.jpg
    IMG_7165.jpg
    549.3 KB · Views: 0
Thank you for this plugin! This made my Keon purchase well worth it. Any advice on how to integrate voice control for start/stop or toggle? I've been trying to figure this out but have hit a dead end. If not, thanks anyways for your work on this!
 
Hi Blazedust,

Thank you for creating an awesome build on Yoooi's fantastic ToySerialController plugin.

I understand you're no longer developing your plugin, but I wondered if I could ask you to look at this for me.. or give me (a non-coder and new to VAM) some advice as to how I may alter your plugin. I understand that I may be able to do this using notepad++ by editing your plugin CS file directly...

Background/Context:

I use Yoooi's original ToySerialController plugin v.17 to generate Tcode from the scene.. and output via UDP. This isn't connected to a stroker or robot, but to an application written by Diglet on Milovana. He's written an application called 'Restim', which is able to create and send estim files from funscripts or from tcode in real-time.. its brilliant and works with Multifun player, Faptap and VAM, etc.

The problem I have is that Yoooi's version v.17 works fine.. however your version I think uses an earlier version of his plugin I think probably v.14 or v.15 before he added the ability to specify an IP address... (127.0.0.1). I love the added functionality of your plugin and the ability to select different actors in the scene and it automatically switches between them...(this is the problem with Yooo'is plugin you identified- its limited in its detection fo the the actors and action in the scene - Male+Female.. no male+asset, etc.)

However, your plugin just won't connect. I can see the Tcode is being generated.. using the debug.. and the action is being tracked.. but there is no ability to specify the IP address... just the port number.

Perhaps its as simple as you telling me the IP address that your plugin uses by default? Or adding in the ability to specify the IP address to your Plugin? Or perhaps I need to add your extra functionality to Yoooi's ToySerialController plugin?


Please could you let me know and thanks once agin for your hard work.

Niceguy.
Hey what device are you using? I'm pretty sure on mine I just selected Launch/VAM Launch under there to get it to work? Are you using one of those DIY multi axis toys?
 
If you look around in the code you will find the IP address somewhere.
Hi Blazedust,

Thank you for creating an awesome build on Yoooi's fantastic ToySerialController plugin.

I understand you're no longer developing your plugin, but I wondered if I could ask you to look at this for me.. or give me (a non-coder and new to VAM) some advice as to how I may alter your plugin. I understand that I may be able to do this using notepad++ by editing your plugin CS file directly...

Background/Context:

I use Yoooi's original ToySerialController plugin v.17 to generate Tcode from the scene.. and output via UDP. This isn't connected to a stroker or robot, but to an application written by Diglet on Milovana. He's written an application called 'Restim', which is able to create and send estim files from funscripts or from tcode in real-time.. its brilliant and works with Multifun player, Faptap and VAM, etc.

The problem I have is that Yoooi's version v.17 works fine.. however your version I think uses an earlier version of his plugin I think probably v.14 or v.15 before he added the ability to specify an IP address... (127.0.0.1). I love the added functionality of your plugin and the ability to select different actors in the scene and it automatically switches between them...(this is the problem with Yooo'is plugin you identified- its limited in its detection fo the the actors and action in the scene - Male+Female.. no male+asset, etc.)

However, your plugin just won't connect. I can see the Tcode is being generated.. using the debug.. and the action is being tracked.. but there is no ability to specify the IP address... just the port number.

Perhaps its as simple as you telling me the IP address that your plugin uses by default? Or adding in the ability to specify the IP address to your Plugin? Or perhaps I need to add your extra functionality to Yoooi's ToySerialController plugin?


Please could you let me know and thanks once agin for your hard work.

Niceguy.
This version contains a lot of modifications to suit it better for Keon devices so some Tcode may or may not work as you expect in THIS version!
Anyway: You can find the output target (which is localhost) for this in the VamLaunchOutputTarget.cs file. You can find the serial output in the SerialOutputTarget.cs and UdpOutputTarget.cs too depending on the output.
 
Back
Top Bottom