• Hi Guest!

    We are extremely excited to announce the release of our first Beta1.1 and the first release of our Public AddonKit!
    To participate in the Beta, a subscription to the Entertainer or Creator Tier is required. For access to the Public AddonKit you must be a Creator tier member. Once subscribed, download instructions can be found here.

    Click here for information and guides regarding the VaM2 beta. Join our Discord server for more announcements and community discussion about VaM2.
  • Hi Guest!

    VaM2 Resource Categories have now been added to the Hub! For information on posting VaM2 resources and details about VaM2 related changes to our Community Forums, please see our official announcement here.
Puppeteer (Advanced Bone Control)

Plugins + Scripts Puppeteer (Advanced Bone Control)

Download [<1 MB]

Skynet

Well-known member
Featured Contributor
Joined
Jan 28, 2023
Messages
556
Reactions
3,603
Skynet submitted a new resource:

Puppeteer For CUAs - Bone Control Variant Optimized for animation, more controllers per atom

- A fork from Bone Control Plugin that is optimized for more control & animation, rather than versatility. this version only works on CUAs

-- how to use?
- load on a CUA atom control that you want to pose & have controllers for

-- What does this plugin do?
- gives you the ability to create as much controllers as you want for rigged CUA bones, with the ability to save them as poses for timeline animations

-- example uses:
- control rope with physics, tentacles...

Read more about this resource...
 
Thank you, great plugin!
Is it possible to get that rope cua, because it does not work like that with tentacle cua I have :cry:
 
Thank you, great plugin!
Is it possible to get that rope cua, because it does not work like that with tentacle cua I have :cry:
i think i'll release that asset very soon, maybe after making some other variants
 
I want to do this swing-like move, but I don't have a good rope
 
Thank you so much! Finally, an amazing plugin for working with bones. While there were predecessors, this one is by far the most satisfying.
 
Skynet updated Puppeteer (Advanced Bone Control) with a new update entry:

update v2

** this version is not backwards compatible with v1 **

-- new features:
- new ability to rename poses or save with custom names (credits to @MacGruber Utils)
- context menu system to easily add / remove controllers for bones from player view directly (watch demo video & read info in main page on how to use)
- new controller type "follower controller", which sticks to the bone to parent other CUAs...

Read the rest of this update entry...
 
Given how I used it before, this plugin basically renders the Super Mode plugin obsolete. Also less risky to use(using Super Mode, you can disable vital functions in VAM and mess things up)
 
I want to do this swing-like move, but I don't have a good rope
the rope with physics used to showcase the plugin is probably not the best for your use case, but i'll release it soon anyways 👍🏼
 
Skynet updated Puppeteer (Advanced Bone Control) with a new update entry:

update v3

-- New Features:
- Added full support for CUA presets, previously if you loaded same CUA preset in another CUA atom it will used the same controllers for the old one in the scene which is no longer a problem.
- New link controllers, can act as medium to parent bones to person limbs or to other atoms without frame lag (useful for ropes, grabbing or handheld objects.. etc)
- Removed hard controller and replaced it with physics controller...

Read the rest of this update entry...
 
may i suggest you to add :
C#:
hubCommandJSON = new JSONStorableString("hubCommand", "");
hubCommandJSON.setCallbackFunction = ProcessHubCommand;
RegisterString(hubCommandJSON);
in the init(), so we can call poses by triggers :) i've been in troubles when reseting scenes

Edit : not sure about it, it worked in the first place with "APPLY_SELECTED_POSE", but then it didn't, i'm so confused o_O
 
Last edited:
may i suggest you to add :
C#:
hubCommandJSON = new JSONStorableString("hubCommand", "");
hubCommandJSON.setCallbackFunction = ProcessHubCommand;
RegisterString(hubCommandJSON);
in the init(), so we can call poses by triggers :) i've been in troubles when reseting scenes

Edit : not sure about it, it worked in the first place with "APPLY_SELECTED_POSE", but then it didn't, i'm so confused o_O
damn i completely forgot about fixing the button triggers, thanks for the reminder! i'll see what i can do to fix it
 
Hello again. I'm currently updating my scene to use Puppeteer as the main tail handler instead of BoneControl. It's just that much easier to use for multiple controllers. I have some things I'd like to suggest, without any idea how troublesome they'd be to implement:
  • When adding new controllers while already having a bunch of poses saved. The newly added controller won't have any position/rotation state saved in the old poses, so it will be left on if not manually turned off. And then you have to go through every pose replacing/updating them with this state. If every saved pose handled controllers with no saved info by setting to off, you wouldn't need to go back and update every pose.
  • Button(s) in the UI to select the individual controller atoms.
    • I use the UIResize plugin so the Puppeteer plugin is always open and available. Would be nicer than cycling atom stacks or picking out names in the atom list.
  • A configurable delay that applies when loading a saved pose, that you can set via the UI or trigger.
    • This is the same use scenario as I had with BoneControl. When the CUA is parented to the person, and you're trying to do a synchronized pose change, the person needs about half a second to rest. Or the CUA gets pulled around/gets applied while the parent body is not yet in the intended position/rotation. I can think of ways to fix this myself, but they're labor intensive:
puppeteerdelay.gif
With the delay the tail is no longer flung around her from the movement, and falls down behind her as intended. The method used here would be a lot of work and complexity to set up for 40+ poses however.
 
Hello again. I'm currently updating my scene to use Puppeteer as the main tail handler instead of BoneControl. It's just that much easier to use for multiple controllers. I have some things I'd like to suggest, without any idea how troublesome they'd be to implement:
  • When adding new controllers while already having a bunch of poses saved. The newly added controller won't have any position/rotation state saved in the old poses, so it will be left on if not manually turned off. And then you have to go through every pose replacing/updating them with this state. If every saved pose handled controllers with no saved info by setting to off, you wouldn't need to go back and update every pose.
  • Button(s) in the UI to select the individual controller atoms.
    • I use the UIResize plugin so the Puppeteer plugin is always open and available. Would be nicer than cycling atom stacks or picking out names in the atom list.
  • A configurable delay that applies when loading a saved pose, that you can set via the UI or trigger.
    • This is the same use scenario as I had with BoneControl. When the CUA is parented to the person, and you're trying to do a synchronized pose change, the person needs about half a second to rest. Or the CUA gets pulled around/gets applied while the parent body is not yet in the intended position/rotation. I can think of ways to fix this myself, but they're labor intensive:
With the delay the tail is no longer flung around her from the movement, and falls down behind her as intended. The method used here would be a lot of work and complexity to set up for 40+ poses however.
I think the CUA pose doesnt snap correctly because you have physics toggle enabled in the CUA perhaps? it should be snapping perfectly when it is disabled.

The rest of the features you asked for are quite complex, maybe once i have some spare time i'll continue working on this plugin some more 👍🏼
 
I think the CUA pose doesnt snap correctly because you have physics toggle enabled in the CUA perhaps? it should be snapping perfectly when it is disabled.

The rest of the features you asked for are quite complex, maybe once i have some spare time i'll continue working on this plugin some more 👍🏼

Yeah the physics are enabled. If they're disabled the tail no longer inherits momentum from character movement, like it's the local "object space" that moves. I haven't tried momentarily switching them off on pose switch though. Might work.

I noticed another thing today. I was trying out your tentacles with the plugin, and I noticed if Timeline takes over control of one of the spawned nodes, you can no longer apply poses with puppeteer. I had to reload the asset to make poses apply again. I don't know if this is a bug or limitation. It'd be really strong if they could work in unison, since one of the pains with CUAs has always been consistency when animating with rigidbody armatures. The pose recall insures nullification of forces and the same starting point for the bones every time.
A sidenote is I noticed from doing the above, is this also restores the custom atom icons for controllers. Which is nice because they're always lost on a scene reload.
 
Yeah the physics are enabled. If they're disabled the tail no longer inherits momentum from character movement, like it's the local "object space" that moves. I haven't tried momentarily switching them off on pose switch though. Might work.

I noticed another thing today. I was trying out your tentacles with the plugin, and I noticed if Timeline takes over control of one of the spawned nodes, you can no longer apply poses with puppeteer. I had to reload the asset to make poses apply again. I don't know if this is a bug or limitation. It'd be really strong if they could work in unison, since one of the pains with CUAs has always been consistency when animating with rigidbody armatures. The pose recall insures nullification of forces and the same starting point for the bones every time.
A sidenote is I noticed from doing the above, is this also restores the custom atom icons for controllers. Which is nice because they're always lost on a scene reload.
hmm all these issues you mentioned never happened to me at least with tentacles V2 assets, it'll be helpful if you can show me some examples or send scene .json files so i can have a closer look at what's going on
 
hmm all these issues you mentioned never happened to me at least with tentacles V2 assets, it'll be helpful if you can show me some examples or send scene .json files so i can have a closer look at what's going on
Cleaned it up and tested it thorougly. Maybe you have a better way of handling it. My goal is to have snap-to poses of the character and tentacles with accompanying short progressive animations.

Steps to reproduce the error:
  1. Switch to pose 2 with the HUD thumbnails.
    1. Snaps to pose, activates a Timeline animation that triggers the correct poses for all 5 tentacles. The controllers are not yet controlled by Timeline.
  2. Click the pose 2 thumbnail again
    1. changes camera (but not visually atm) and triggering the next animation where Timeline takes control of the tips of tentacle B and FR.
  3. Switch back to pose 1.
    1. Switches pose of the person and tentacles with the same animation trigger method. But one or both of the tentacles that were being animated gets stuck and can't change pose till the asset is reloaded. It's spotty so it feels like a timing thing in the passing of control.
dependencies since I can't upload a .var file on the forums:
AcidBubbles.Timeline.287 By: AcidBubbles License: CC BY-SA Link: https://github.com/acidbubbles/vam-timeline
CheesyFX.BodyLanguage.71 By: CheesyFX License: CC BY-SA
CheesyFX.BodyLanguage_Resources.1 By: CheesyFX License: CC BY-SA
CheesyFX.BodyLanguage_Resources.latest By: CheesyFX License: CC BY-SA
CheesyFX.FocusOnMe!.14 By: CheesyFX License: CC BY-SA
MacGruber.LogicBricks.14 By: MacGruber License: PC EA Link: https://hub.virtamate.com/resources/logicbricks.1975/
Skynet.BoneControl.3 By: Skynet License: CC BY
Skynet.Puppeteer.3 By: Skynet License: CC BY
Skynet.Tentacle_Bundle_Demo_Scene_Final.3 By: Skynet License: CC BY
 

Attachments

  • TentacleTestScene.json
    1.7 MB · Views: 0
Steps to reproduce the error:
  1. Switch to pose 2 with the HUD thumbnails.
    1. Snaps to pose, activates a Timeline animation that triggers the correct poses for all 5 tentacles. The controllers are not yet controlled by Timeline.
  2. Click the pose 2 thumbnail again
    1. changes camera (but not visually atm) and triggering the next animation where Timeline takes control of the tips of tentacle B and FR.
  3. Switch back to pose 1.
    1. Switches pose of the person and tentacles with the same animation trigger method. But one or both of the tentacles that were being animated gets stuck and can't change pose till the asset is reloaded. It's spotty so it feels like a timing thing in the passing of control.
try now with the v6 update, should fix your problem. 👍🏼 the other things might take a while to integrate so i'll leave those for future updates

by the way, for snapping CUAs with physics enabled you shouldn't use the native vam controller as a base controller but instead add a Link Controller to the root armature and use it as an anchor to move the base. this will allow snappy pose application while keeping the overall physics movement of the asset
 
try now with the v6 update, should fix your problem. 👍🏼 the other things might take a while to integrate so i'll leave those for future updates

Beautiful, it worked immediately! I'll continue and see if I can't make a shareable scene out of it eventually.

by the way, for snapping CUAs with physics enabled you shouldn't use the native vam controller as a base controller but instead add a Link Controller to the root armature and use it as an anchor to move the base. this will allow snappy pose application while keeping the overall physics movement of the asset
Yeah I suppose so. The asset didn't work with that but with some brute forcing I've managed to make it. Super appreciate how your plugin doesn't break/reset on asset reloads (y) It's very forgiving compared to all the old CUA control plugins. I'll try and see if the link method fixes the issue. Rather redo the tail poses than setup on/off triggers for every pose change.
 
Yeah I suppose so. The asset didn't work with that but with some brute forcing I've managed to make it. Super appreciate how your plugin doesn't break/reset on asset reloads (y) It's very forgiving compared to all the old CUA control plugins. I'll try and see if the link method fixes the issue. Rather redo the tail poses than setup on/off triggers for every pose change.
it'll work just make sure you add Link type controller not physics, it will move the base as if the CUA had physics enabled. tho you should still disable the physics toggle from the CUA physics tab for the plugin to work correctly
 
Back
Top Bottom