PosingHelper

Plugins PosingHelper

I have a problem with the rotation of the knee along the X axis. It is not clear in relation to what it rotates.
 
Last edited:
Ruvik updated PosingHelper with a new update entry:

fixed a rotation issue, added a toggle to keep the UI open.

.rotation issue(credit:SinFear)
- now,when the axis is set to local the node rotates around it's own axis instead of the atoms axis ( like it should have been from the beginning).

.Keep the UI Open
- now you can choose to keep using the UI,even when toggling F1 or U ( to help you take different screenshots without leaving the screenshot view).

Read the rest of this update entry...
 
Hello,
Starting from version .40 i don't see anymore the option to "swap" arms and legs, was it removed?
thanks
 
Hello,
Starting from version .40 i don't see anymore the option to "swap" arms and legs, was it removed?
thanks
shift + middle click any node to swap it with it's mirrored node.
it's all in the help menu.
 
Tiny bug: when you select 2 nodes with shift, IK Link doesn't work.
sorry for taking so long to respond.
i fixed but i feel like something as minor as this isn't worth making everyone re-download, so im putting it will be patched with the VR UI release.
 
Apologies if this was already mentioned somewhere else but, the shoulder nodes seem to be absent in the most recent version - 2.01. Was this intentional? I noticed screenshots of previous versions still have them.
 
Apologies if this was already mentioned somewhere else but, the shoulder nodes seem to be absent in the most recent version - 2.01. Was this intentional? I noticed screenshots of previous versions still have them.
i didn't mention this, but in the previous versions the shoulder buttons actually controlled the Arm controls, so it was actually lying.
i didn't add the shoulder controls because they aren't necessary. also they clutter up the UI.
 
i didn't mention this, but in the previous versions the shoulder buttons actually controlled the Arm controls, so it was actually lying.
i didn't add the shoulder controls because they aren't necessary. also they clutter up the UI.
Oh, thanks for the quick reply! Yeah I'm only needing it for preset poses that keep the shoulders set to On/Comply instead of Off, which is easily remedied by setting them to Off myself.

For a quick and lazy "I have to parent everything to one node immediately," it does mean I have to make sure the shoulders are red before linking.
 
Oh, thanks for the quick reply! Yeah I'm only needing it for preset poses that keep the shoulders set to On/Comply instead of Off, which is easily remedied by setting them to Off myself.

For a quick and lazy "I have to parent everything to one node immediately," it does mean I have to make sure the shoulders are red before linking.
wow , this oversight has been in the plugin since the very beginning. thanks for pointing it out. i'll patch it in next update.
 
Ruvik updated PosingHelper with a new update entry:

added keep,retrieve,clear switch selection mode, bug fixes.

switch selection mode:
.
keep -> the selected nodes stay selected when switching characters.
. retrieve -> remember selected nodes per atom and retrieve them ( basically if you selected the hand ,switched characters ,selected something else ,went back , you'll find that the hand is pre-selected for you).
. clear -> clears selection every time you switch characters (the old default behavior)

bug fixes:
.
shift-selecting fix (...

Read the rest of this update entry...
 
A couple small issues (were happening before current update too):

If I select mirrored (greyed out) node, and then select a different one, it doesn't return to grey, but to white color.

Also, I keep getting this error every time I start VaM:

Code:
!> Exception during RestoreFromLast of plugin#7_Ruvik.PH: System.NullReferenceException: Object reference not set to an instance of an object
  at Ruvik.PH.<Init>m__15 (Single val) [0x00000] in <filename unknown>:0
  at (wrapper delegate-invoke) UnityEngine.Events.UnityAction`1<single>:invoke_void__this___single (single)
  at UnityEngine.Events.InvokableCall`1[System.Single].Invoke (Single args0) [0x00000] in <filename unknown>:0
  at UnityEngine.Events.UnityEvent`1[System.Single].Invoke (Single arg0) [0x00000] in <filename unknown>:0
  at UnityEngine.UI.Slider.Set (Single input, Boolean sendCallback) [0x00000] in <filename unknown>:0
  at UnityEngine.UI.Slider.Set (Single input) [0x00000] in <filename unknown>:0
  at UnityEngine.UI.Slider.set_value (Single value) [0x00000] in <filename unknown>:0
  at JSONStorableFloat.InternalSetVal (Single f, Boolean doCallback) [0x00000] in <filename unknown>:0
  at JSONStorableFloat.set_val (Single value) [0x00000] in <filename unknown>:0
  at JSONStorableFloat.RestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
  at JSONStorable.RestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, SimpleJSON.JSONArray presetAtoms, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
  at Atom.RestoreFromLast (.JSONStorable js) [0x00000] in <filename unknown>:0

Everything still works so it's not a big deal, but would be nice to not see it :) Is it something on my end?
 
A couple small issues (were happening before current update too):

If I select mirrored (greyed out) node, and then select a different one, it doesn't return to grey, but to white color.

Also, I keep getting this error every time I start VaM:

Code:
!> Exception during RestoreFromLast of plugin#7_Ruvik.PH: System.NullReferenceException: Object reference not set to an instance of an object
  at Ruvik.PH.<Init>m__15 (Single val) [0x00000] in <filename unknown>:0
  at (wrapper delegate-invoke) UnityEngine.Events.UnityAction`1<single>:invoke_void__this___single (single)
  at UnityEngine.Events.InvokableCall`1[System.Single].Invoke (Single args0) [0x00000] in <filename unknown>:0
  at UnityEngine.Events.UnityEvent`1[System.Single].Invoke (Single arg0) [0x00000] in <filename unknown>:0
  at UnityEngine.UI.Slider.Set (Single input, Boolean sendCallback) [0x00000] in <filename unknown>:0
  at UnityEngine.UI.Slider.Set (Single input) [0x00000] in <filename unknown>:0
  at UnityEngine.UI.Slider.set_value (Single value) [0x00000] in <filename unknown>:0
  at JSONStorableFloat.InternalSetVal (Single f, Boolean doCallback) [0x00000] in <filename unknown>:0
  at JSONStorableFloat.set_val (Single value) [0x00000] in <filename unknown>:0
  at JSONStorableFloat.RestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
  at JSONStorable.RestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, SimpleJSON.JSONArray presetAtoms, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
  at Atom.RestoreFromLast (.JSONStorable js) [0x00000] in <filename unknown>:0

Everything still works so it's not a big deal, but would be nice to not see it :) Is it something on my end?
i have no idea what that error is but it will be fixed ASAP.
 
This looks awesome. I have yet to test it myself, but I know it from HS2. I'm sure this is going to be a must-have plugin for me going forward.
 
Hey,

I'm just gonna throw out there a suggestion for maybe future feature, which is - finger posing.

Right now in VAM there are few ways to do it. First one is morph based, which means morph like each finger bending (native VAM morphs), or every finger (except thumb), or whole hand (with the thumb). It is pretty limited though. Outside of that, morph based option is using HandPose plugin - https://hub.virtamate.com/resources/handpose.8171/ , which allows for nice customization. Some morphs, like joint 2/3 Y position are little of use normally, but overall it gives the most flexibility.

Other option, JSON based (gotta set your hand to JSON based instead of morph in VAM UI), is used in Timeline - you can simply add "fingers" target preset which is there by default in Timeline. It has similar bending options, although you don't have as much control.. but for most use cases it's pretty good.

Another option is Tongue and Finger Controllers - https://hub.virtamate.com/resources/experimental-tongue-and-finger-controllers.26808/ - but for Timeline usage it's way more clunky, depending on your use case. Sometimes you want to use only 3rd joint, someone only 2nd etc.. but since these are controllers, you'd need to always keep track of what's enabled, or else it will mess up the animation. So physics/morph based ones, like the two mentioned above, are way better.

Considering essential movements, based on HandPose plugin, would be: each joint Z rotation (so 3 per finger, it's simply bending), and for each finger I believe it was X rotation (so sideways, only first joint needs that). That alone satisfies most use cases. For the thumb it's more like Y instead of Z from what I tested. Plus is, if you want to rotate the whole finger, you can just use first joint rotation, and the rest should adjust.

If you ever consider this or want to play around with this, hit me up and I can help with listing the necessary sliders and what they do. I imagine it would need a dependency of e. g. HandPose plugin, so potential UI would simply serve as a shortcut for changing sliders inside of the plugin (just as Posing Helper is simply a shortcut for manually moving things).

Right now using plugin is kinda pain because you need to sift through unnecessary morphs etc, but if you could click the visual in the ui and choose "1/2/3 bend" + "left/right" bend, for each finger, that would be epic.
 
Hey,

I'm just gonna throw out there a suggestion for maybe future feature, which is - finger posing.

Right now in VAM there are few ways to do it. First one is morph based, which means morph like each finger bending (native VAM morphs), or every finger (except thumb), or whole hand (with the thumb). It is pretty limited though. Outside of that, morph based option is using HandPose plugin - https://hub.virtamate.com/resources/handpose.8171/ , which allows for nice customization. Some morphs, like joint 2/3 Y position are little of use normally, but overall it gives the most flexibility.

Other option, JSON based (gotta set your hand to JSON based instead of morph in VAM UI), is used in Timeline - you can simply add "fingers" target preset which is there by default in Timeline. It has similar bending options, although you don't have as much control.. but for most use cases it's pretty good.

Another option is Tongue and Finger Controllers - https://hub.virtamate.com/resources/experimental-tongue-and-finger-controllers.26808/ - but for Timeline usage it's way more clunky, depending on your use case. Sometimes you want to use only 3rd joint, someone only 2nd etc.. but since these are controllers, you'd need to always keep track of what's enabled, or else it will mess up the animation. So physics/morph based ones, like the two mentioned above, are way better.

Considering essential movements, based on HandPose plugin, would be: each joint Z rotation (so 3 per finger, it's simply bending), and for each finger I believe it was X rotation (so sideways, only first joint needs that). That alone satisfies most use cases. For the thumb it's more like Y instead of Z from what I tested. Plus is, if you want to rotate the whole finger, you can just use first joint rotation, and the rest should adjust.

If you ever consider this or want to play around with this, hit me up and I can help with listing the necessary sliders and what they do. I imagine it would need a dependency of e. g. HandPose plugin, so potential UI would simply serve as a shortcut for changing sliders inside of the plugin (just as Posing Helper is simply a shortcut for manually moving things).

Right now using plugin is kinda pain because you need to sift through unnecessary morphs etc, but if you could click the visual in the ui and choose "1/2/3 bend" + "left/right" bend, for each finger, that would be epic.
hi

i've always wanted to include a hand poser but never really figured it out. i thought i'll end up just using their rigid bodies directly, but that wouldn't work with timeline.

thanks to you all the research is done ,and i can directly implement the specs ( which sounds perfect on paper, but you never know what works best until you try), and maybe i'll hit you up to test when i have a version ready for testing.

about the dependency i think i'll just create the morphs my self in blender , A: i'll only create what i need so less bloat, B: i want to get into morphing in general and that sounds like a great exercise.
 
Glad you're interested to do this eventually! I checked HandPose and it has something like this:

hand[0].finger[0].segment[0].bone = containingAtom.transform.Find("rescale2/PhysicsModel/Genesis2" + gender + "/hip/abdomen/abdomen2/chest/rCollar/rShldr/rForeArm/rHand/rThumb1").GetComponent<DAZBone>();

Probably best way would be to move bones, but also apply some helper morphs perhaps. Like, with bones normally it's not feasible to make a realistic looking fist, because there are always gaps between fingers and palm of the hand.. Maybe simply doing morphs that would expand skin on bent finger as it happens in real life would do it.

Anyway, glad that the plugin came so far, it's really nice to use!
 
A couple more bugs I found:

- values like Collision, on/off, node states, etc... don't update when changed outside PH
- PH hard bounds the space key so I can't un/re-bind it to something else, and it also triggers when I'm writing in input fields, which sometimes shifts my stuff when working in timeline

I think the space function should be boundable only through Keybinds, like all other plugins (there are key down/up events iirc). It's a bad practice for a plugin to hog a key all to itself. Especially something as valuable as a space bar. And if I'm not mistaken, Keybinds already filters keys pressed while writing in input fields, so the input collision would fix itself.
 
Ruvik updated PosingHelper with a new update entry:

hand posing mode , a better load pose button , a save pose button and bug fixes.

hand posing mode (Credit : @babul )
. hands down the easiest way to pose fingers on desktop , yet.
. very handy for posing fingers.
. a includes a handful of selection choices.
. buns very much intended.

Load Pose Button
. works exactly like vam pose presets , "Select Existing ..." button.
. sorry for the previous pose loading button ( i implemented it...

Read the rest of this update entry...
 
I have to say, I thought the hand posing would be just a quick access to most common Pose/Hands/* morphs (finger bends, hand straighten/grasp/... etc) that allow to morph hands into poses needed in 99% of situations. This would be way simpler system that doesn't require additional plugins and much easier to setup, animate, and work with in timeline. I understand the current system gives us that additional 1%, I just struggle to think of a case I'd need it and choose it over just using existing morphs.

Would it be possible to have 2 hand posing tabs/systems, the current one for advanced needs, and than a simpler alternative that just controls common hand morphs? You could decide which one to display depending on whether the atom has your PHFingerSliders loaded or not. Here's how it might look like:

hand_posing.png

Finger sliders control the "Finger bend *" morphs. Green means the morphs is non-zero. Right click to zero. If you can't rotate sliders, or intercept right clicks on them, just make it dots and rectangles with maybe a value in the middle of a dot and a side of a rectangle.

Also, found another bug recently:
Undo keybind triggers changed event on every control node instead of only the changed ones, which makes Timeline add keyframes for all nodes on the body. So I pretty much can't use it, or I'd have to be cleaning keyframes every time I press it.
 
I understand the current system gives us that additional 1%, I just struggle to think of a case I'd need it and choose it over just using existing morphs.

It's way more than 1%... HandPose system has significant advantage of being able to rotate finger joints - that is very useful with thumb posing for example. Using stock morphs like fingers grasp is not that good IMO. For realistic poses you often want to bend second or third joint more than the first, which is not possible with stock morphs. Other solution is to use JSON based morphs (you'll get them in Timeline if you add fingers preset in target tab), but again - they're limited in comparison to HandPose bending, and I think they're mostly useful for motion capture etc, since it disables actual VAM morphs. Again, this mostly applies to the thumb, where having better control over individual joints is important.

On the other hand, having stock VAM morph option would indeed make it simpler to integrate with Timeline and make it maybe more intuitive at a glance than x/y/z? Still, after some practice, current system is pretty simple and powerful I think. If you want to have thing like "mid finger bend" VAM morph, you can select all joints of the finger with a single click and then move Z axis and it's the same effect. Or use Y axis on first joint, which moves fingers sideways (I don't recall VAM morphs allow that for individual fingers except for thumb, and it's an important thing to have). I am not sure if in Timeline keyframing that would require hitting "keyframe float params" with VAM morphs, but I believe it would register keyframe immediately on value change, which is a nice thing too. Still, current system is only 1/2 clicks more to set up a keyframe than theoretical stock morph system. With current one you only need to hit button to keyframe float params. So I wouldn't say it would be much easier with the method you propose, just slightly faster. It's pretty easy already with the template that's in the plugin.

Eventually it wouldn't hurt to have alternative bending method I guess, but what this plugin needed is to have good control over fingers, and HandPose method was perfect for that.
 
Back
Top Bottom