[Experimental] CUA/XPS Controllers

Plugins [Experimental] CUA/XPS Controllers

I hope he comes back soon, I just made my own tentacles, made a scene and now I find out it doesnt work with timeline anymore after all my animating :/
hmm. just tried with the recent version of timeline and cuacontrollers, and it works just fine. Did use assetname(Clone)/Armature to spawn in the controllers,
and loaded the timeline instance on CustomUnityAsset#Controllers/control/Plugins.
I guess this makes sure that timeline is is created/initialized in the scene after the cuacontrollers, since it's part of it's setup.
 
hmm. just tried with the recent version of timeline and cuacontrollers, and it works just fine. Did use assetname(Clone)/Armature to spawn in the controllers,
and loaded the timeline instance on CustomUnityAsset#Controllers/control/Plugins.
I guess this makes sure that timeline is is created/initialized in the scene after the cuacontrollers, since it's part of it's setup.

I'm having the same problem so it's not just him. A lot of times scenes just perma break because even with the preset the asset doesn't have the correct node position/rotations after loading the scene again and playing the timeline animation. It seems to be random because some assets are fine. But most of them break...
 
I'm having the same problem so it's not just him. A lot of times scenes just perma break because even with the preset the asset doesn't have the correct node position/rotations after loading the scene again and playing the timeline animation. It seems to be random because some assets are fine. But most of them break...
Did you try to enable "Freeze Motion/Sound" before loading the scene, and disabling it again after the scene loaded ? Maybe some physics need their time to shake out. Think I had similar problems with just animating penetration with molmark's wobbly cocks CUA, did delay the timeline animation start and enabling the penetrated Person atom's collision.
Also, how are the control nodes set in relation to the CUA part they control ? I prefer to pose them in "comply" mode, so they won't be placed far away from the body/bone they control. It is fiddlier to set up the intial pose this way, but maybe safer. You will off course want to set the nodes you animate to on after you got the initial pose down.
Another thing, since the plugin adds physics to the CUA, the physics quality settings in VAM might also make a difference, did not test that though.
 
Did you try to enable "Freeze Motion/Sound" before loading the scene, and disabling it again after the scene loaded ? Maybe some physics need their time to shake out. Think I had similar problems with just animating penetration with molmark's wobbly cocks CUA, did delay the timeline animation start and enabling the penetrated Person atom's collision.
Also, how are the control nodes set in relation to the CUA part they control ? I prefer to pose them in "comply" mode, so they won't be placed far away from the body/bone they control. It is fiddlier to set up the intial pose this way, but maybe safer. You will off course want to set the nodes you animate to on after you got the initial pose down.
Another thing, since the plugin adds physics to the CUA, the physics quality settings in VAM might also make a difference, did not test that though.
"Freeze Motion/Sound" makes no difference because it's not physics related. Timeline does not save the correct rotation/position of nodes after loading the scene a second time and beyond. Even with the preset. It's some interaction between timeline and this plugin. And if you can't save anything with timeline that makes this plugin kind of pointless until it's working.
 
hmm. just tried with the recent version of timeline and cuacontrollers, and it works just fine. Did use assetname(Clone)/Armature to spawn in the controllers,
and loaded the timeline instance on CustomUnityAsset#Controllers/control/Plugins.
I guess this makes sure that timeline is is created/initialized in the scene after the cuacontrollers, since it's part of it's setup.
Yeah I've tried a few different things, it seems to be ultimately a load-order problem. As for where the armature is nested in the object it shouldn't matter as much. That naming convention is blender based. I did rig my object in there, but other cua's that aren't rigged that way in other engines won't reload either :/
I know stopper will fix it eventually it just means I can't make tentacle scenes for a while v.v
 
I didn't know how much I needed XPS models until this came out. It's so close to perfection but the joint spring slider falls just short. It does indeed affect the spring on all joints but increasing the scale doesn't reflect on the joints; it seems they can't move past the default spring range set on all the joints.
 
I didn't know how much I needed XPS models until this came out. It's so close to perfection but the joint spring slider falls just short. It does indeed affect the spring on all joints but increasing the scale doesn't reflect on the joints; it seems they can't move past the default spring range set on all the joints.
Not sure if it helps, but there is a XPS/XNA import/export for Blender available at https://github.com/johnzero7/XNALaraMesh/releases .
Note that it does not work with Blender v4.x, you need to have the 3.6 LTS (I grabbed the portable version: https://download.blender.org/release/Blender3.6/blender-3.6.7-windows-x64.zip).
1702485383440.png

I'm not sure if this format (or this version of it) supports springs, or joint constraints, or if that's part of XNA (which looks to me like more or less pure code ?)
 
Hi ! I don't know why but with my own XPS model or the one from ZRSX they keep exploding...
 
I tried some dog (the golden retriever from the ZRSX animals var), and with the default settings it explodes when loading the XPS and then the CUA controllers. But leaving the "add auto collider" and "convex colliders" off in the XPS loader
1702661288884.png

and loading the CUAcontrollers on the XPS/armature seems to work (explosion-free :) ).
 
I tried some dog (the golden retriever from the ZRSX animals var), and with the default settings it explodes when loading the XPS and then the CUA controllers. But leaving the "add auto collider" and "convex colliders" off in the XPS loader View attachment 315333
and loading the CUAcontrollers on the XPS/armature seems to work (explosion-free :) ).
Thanks ! I'll try it asap
 
I'm having an issue where I parent a CUA to another object, or parent a node to a node in the CUA, and on reloading the scene the parenting is broken - the Link To Atom and Link To are reset to "None". Am I doing something wrong, or is this a limitation of the plugin? And Thaaaaaanks for all your amazing work!!

 
I'm having an issue where I parent a CUA to another object, or parent a node to a node in the CUA, and on reloading the scene the parenting is broken - the Link To Atom and Link To are reset to "None". Am I doing something wrong, or is this a limitation of the plugin? And Thaaaaaanks for all your amazing work!!

My non-coder/scripter take on this problem is: it is set to "none" after reload because the node it should be connected to has not been spawned yet at that time. Maybe reworking the plugin into a scene or session plugin could fix that problem (if those plugin types actually allways load first).
A workaround might be to have some "delayed action" in the scene, by using the scene animation with auto play to fire up some triggers some seconds into the scene. Not 100% sure, but I think you can trigger/change parenting, to try to parent to the (hopefully) by then spawned in CUA control node.
Correction: It seems you can't actually change/set the parent via trigger (or for the life of me I could not find how, other then saving/loading a preset (Poser for person atom, CUA preset for CUA).
A more elegant way to solve the problem would be: load the timeline plugin onto CUA_CrocTail#Controllers/Control (this makes sure it's spawned in after the extra CUA control nodes created by the CUAcontroller plugin), make sure it's set to auto start and non-loop, add Person/lhandcontrol and CUA_croctail/control as targets, and then create a trigger for them , using the "Parenting & more" option to set their parenting. (This parenting will not be displayed on the actual nodes control settings, but will be active). :)
 
Last edited:
I'm having an issue where I parent a CUA to another object, or parent a node to a node in the CUA, and on reloading the scene the parenting is broken - the Link To Atom and Link To are reset to "None". Am I doing something wrong, or is this a limitation of the plugin? And Thaaaaaanks for all your amazing work!!


Its broken sadly dude, only chance is for stopper to come back and update it but he may be gone. Zoidberg knows the work arounds but honestly the actual plugin needs to be fixed desperately. A lot of people have had cool ideas but we're kinda stuck
 
Hi all. Still alive, just a little busy with work and house remodeling.

I think I'll need to completely redo how I manage the lifecycle of the CUA controllers objects to make parenting work right. Like some have already noted, it's a matter of load order. In order for linking to work, all objects involved need to exist.

Right now the plugin will re-create the Controllers object when it loads, even if one's already there. I think I'll need to figure out how to re-use it, and let VAM handle how it's saved/loaded. If that doesn't work, I'll try to see if I can create it synchronously during the Restore phase. VAM adds controller in the LateRestore phase, so if everything is created by then it should work.
 
Hi all. Still alive, just a little busy with work and house remodeling.

I think I'll need to completely redo how I manage the lifecycle of the CUA controllers objects to make parenting work right. Like some have already noted, it's a matter of load order. In order for linking to work, all objects involved need to exist.

Right now the plugin will re-create the Controllers object when it loads, even if one's already there. I think I'll need to figure out how to re-use it, and let VAM handle how it's saved/loaded. If that doesn't work, I'll try to see if I can create it synchronously during the Restore phase. VAM adds controller in the LateRestore phase, so if everything is created by then it should work.
Awesome, thanks for the check-in! This plugin is getting ever more vital to my characters, at least, enabling CUAs that stick to them to do things nothing else in VAM can do. Thrilled that you're still thinking about it!
 
Hi all. Still alive, just a little busy with work and house remodeling.

I think I'll need to completely redo how I manage the lifecycle of the CUA controllers objects to make parenting work right. Like some have already noted, it's a matter of load order. In order for linking to work, all objects involved need to exist.

Right now the plugin will re-create the Controllers object when it loads, even if one's already there. I think I'll need to figure out how to re-use it, and let VAM handle how it's saved/loaded. If that doesn't work, I'll try to see if I can create it synchronously during the Restore phase. VAM adds controller in the LateRestore phase, so if everything is created by then it should work.
Take your time man, you've added a lot of higher functionality to vam and I love you for it. i would die without your light option plugin :)
 
Stopper updated [Experimental] CUA/XPS Controllers with a new update entry:

Improved Save/Load from Scene. Links should now persist correctly.

Separated out the creation of the Controller atom and controllers such that they are initialized earlier in the scene load and are independent of the CUA actually loading.

The end effect is that parenting between CUAs and other objects should work now. The link direction and subscene boundaries should not matter.

The mechanisms that allow this to work are really sketch. A lot of ways this can go wrong. I'll add more details in the thread.

🙏Please post bugs as you find them🙏

Read the rest of this update entry...
 
Links should now more or less work across saving and loading.

I had to juggle a couple of concerns to make this work:
  • I can't re-use the Controllers atom between scenes and have to delete/re-create.
    • Atoms bake-in their controller list when they initialize, which happens before plugins even load.
    • Controllers also have to be created by the plugin. There's no way to persist them through scene save/load.
  • VAM restores object links during the LateRestore phase, which is the same point as plugins are loaded.
  • CUAs load asynchronously
    • I'm assuming they can finish loading at any point, though I haven't done the research here and it might not be the case.
In other words, there's no way to have VAM 'naturally' link everything together. I needed to find a point after everything was ready and do it manually. To make life difficult for myself, I decided to force everything to be done by the end of LateRestore so I can use PostRestore phase for this.

This means I needed to delete the old Controllers atom during scene load. Seems like if you do this within the same function call, VAM doesn't seem to complain. Also, since the CUA atom will almost always be before the Controllers atom in the load order, VAM will happily continue iterating and run LateRestore on the new atom. The net effect of this is that plugins (including Timeline) added to the Controllers atom should also load fine even though the original object was deleted.
 
I hope this also fixed Timeline animations breaking. 🙏

Before, a lot of times it would reset or fuck up its rotation after a scene load. So the animation would work but the rotation resets the moment you play the timeline animation.
 
Hey Stopper, I have a bug to report and a full log + video for it.
I can confirm this fixes the timeline integration with a CUA + CUA controllers. If I export from unity with blender armature as I tried with a tentacle I made, it loads and reloads WITH timeline working great and normal. However if I use the XPS plugin (milns) to load a model as I did here, it fails to create the controllers in every single model no matter what I do. I made sure to reload the plugin and everything. Doesnt matter which root bone I load either. I cleared the message/error log before starting this so its only messages and errors from this moment. I hope it helps. You are so close dude!



Error log https://pastebin.com/zuLyEfR5
Message log https://pastebin.com/aQtTZ9K1
 
It still does not save poses correctly. I just tried it again. I posed it, saved the preset in the plugin, did a timeline animation and loaded the scene again and a bunch of nodes have the wrong position/rotation and therefore breaking the timeline animation.

I love this plugin and if this can be fixed we could finally save and load scenes using these XPS/CUAs.
 
It still does not save poses correctly. I just tried it again. I posed it, saved the preset in the plugin, did a timeline animation and loaded the scene again and a bunch of nodes have the wrong position/rotation and therefore breaking the timeline animation.

I love this plugin and if this can be fixed we could finally save and load scenes using these XPS/CUAs.
Thanks for flagging. I think I know what's happening. Controllers are getting created before the CUA is, and when I connect them later the orientation is no longer correct.

Let me know if the latest fix makes it better.
 
Back
Top Bottom