PosingHelper

Plugins PosingHelper

Okay, I was testing on a person from a scene that had already old version of the plugin. Without deleting the person, but just loading another appearance preset, looks like symmetry bug was fixed! So it works. Looks like it is an issue with the appearance itself... not sure, maybe some morph is breaking it.

EDIT: found the culprit! If you use other person scale than 1.0, it will break symmetry and copying. If you scale down/up a person, only one side updates, with symmetry toggle on.
 
Hey, insane update! I briefly tested it and here are my observations:

When pressing 'add' in the plugin menu to add a person I am getting

in the console. But it adds correctly. EDIT: I think you need to press add twice. First time it does nothing, second time seems to work (tested with plugin in session plugins). Regarding bugs, I found one - when using copying left to right and using symmetry, looks like one side is always a bit higher in the Y axis (tested using default pose). So, by pressing copy left -> copy right, you'll gradually go into the sky with hands for example.

Now, regarding positioning.. world UI is definitely great idea, but we'll need something like rotation sensitivity like we had before (maybe in the plugin UI?). Also, when front facing your character it bothers me that going left with X axis moves your body part to the right (hopefully changeable with the code changes that's been mentioned, could also count as personal preference, but I strongly suggest making optional toggles for inverting as many axis as possible...). For quick posing, I think hotkeys + mouse will be the best, so space/ctrl/shift and mouse wherever in the world was much better for that. World UI for selecting body parts is awesome, but moving into the corner each time you want to position anything makes it more cumbersome. However, for fine tuning, separating each axis, as the new UI does, will be definitely very useful, so that's a great addition! I'd suggest remapping UI show key and add old controls on top of that.

Maybe try looking for Acidbubbles Keybindings integration in the future? I recall it's not that hard to achieve and it would be awesome. If you exposed your parameters to Keybindings, users could simply do their own key mappings for selecting body parts, changing modifiers, and maybe even swapping axis of mouse directions (I recall there are mouse mappings in keybindings). I believe all of that doesn't have to be keybinded at all for it to work, e. g. Timeline has lots of bindings that are unbound by default.
for the button bug i think it will occur whenever you press the add without opening the UI, at least that what happened with me ( i forgot to fix it).

glad you liked the new UI. so the thing about the old keybindings, i didn't add them because i kinda rewrote the whole thing and i was planning to exactly copy HSPE, little did i know the temporary way was better for some cases and i will bring it back with custom keybindings and the option to toggle inversing the X and Z in the next update , maybe in two days from now.

for the symmetry bug, i read your following comment , and i have no idea how to fix that maybe letting the user set a custom offset might do it?.
 
for the button bug i think it will occur whenever you press the add without opening the UI, at least that what happened with me ( i forgot to fix it).

glad you liked the new UI. so the thing about the old keybindings, i didn't add them because i kinda rewrote the whole thing and i was planning to exactly copy HSPE, little did i know the temporary way was better for some cases and i will bring it back with custom keybindings and the option to toggle inversing the X and Z in the next update , maybe in two days from now.

for the symmetry bug, i read your following comment , and i have no idea how to fix that maybe letting the user set a custom offset might do it?.

Hype! About offset.. well, might work. Worst case, might pose with scale 1 and just change it after posing. But if you're clueless, then so am I. https://hub.virtamate.com/resources/pose-l-r-mirror.13688/ - this plugin seemed to always work for triggering mirror, so maybe hint lies there?

About HSPE - I've been playing around with Koikatsu, think it's the thing I've been using. The system is nice, but there it's a little different, because all joints are set as they would be to 'locked' in VAM, but with the restriction that you can't move one part beyond its natural reach (so kinda like the link you're making, but not 100% replica, right? But I'll play around more with that). Let's be honest, it's pretty limited for content creation comparing to VAM, but as you say, keeping it as a base is nice indeed! Bringing old system back on top of it, sensitivity sliders, and axis inversion will make it very very good. I am smelling another absolutely essential plugin in the making :)
 
Hype! About offset.. well, might work. Worst case, might pose with scale 1 and just change it after posing. But if you're clueless, then so am I. https://hub.virtamate.com/resources/pose-l-r-mirror.13688/ - this plugin seemed to always work for triggering mirror, so maybe hint lies there?

About HSPE - I've been playing around with Koikatsu, think it's the thing I've been using. The system is nice, but there it's a little different, because all joints are set as they would be to 'locked' in VAM, but with the restriction that you can't move one part beyond its natural reach (so kinda like the link you're making, but not 100% replica, right? But I'll play around more with that). Let's be honest, it's pretty limited for content creation comparing to VAM, but as you say, keeping it as a base is nice indeed! Bringing old system back on top of it, sensitivity sliders, and axis inversion will make it very very good. I am smelling another absolutely essential plugin in the making :)
i was using HS and AI for years so the idea of having this structure seems so natural to me. i tried to replicate it, but i realized you can do a lot better with vam and with a few comments you guys came up with an even better linking structure than i first came up with.

thank you so much for saying that, that really fuels me to make this plugin better , i might even add a separate fingers poser(but lets not get crazy).

also if things keep going this way, i always thought vam missed an undo and redo function , yeah that would be nice to have , maybe if this plugin matures enough and im done with my exams.
 
Good luck with your exams! No point in hurrying. But yea, playing around in Koikatsu I noticed how posing is just done better by default there, even if you don't have physics and stuff. Having that in VAM with improvements will be so good. Cheers :)
 
What a massive update! I love the new UI, and the symmetry works perfectly!!! Well done.

The only very minor issue I've had was with the hand's rotation strength when using the UI, maybe adding an option to increase or decrease the force power might be needed in some cases.

Overall huge improvements to an already great tool, good job! & good luck with your exams.
 
Ruvik updated PosingHelper with a new update entry:

brought back old controls , sensitivity sliders and , added custom keybindings and more

Bugs fixed
. bones don't directly line up in symmetry mode when the scale isn't zero (credit user babul saved me hours of debugging by giving me the answer)
. pressing the Add button before opening the UI caused an error

New things.
. the old controls.
. sensitivity sliders for both rotation and translation.
. the ability to customize keybindings.
. the ability to invert the X and Z axis (credit user babul )

Read the rest of this update entry...
 
Well, that was quick... Now everything works! Now it's so much joy to use this.. great job! As usual, I have some feedback :)

One thing only, but this is minor improvement for the future perhaps (and not *really* that essential). I love invert X and Z options, and I'm using them, this is awesome. I think that it would be nice, so that for total control, user could invert rotations as well, along with Y axis (for rotations). So it would be "position - invert X, invert Y, invert Z' and "rotation - invert X, invert Y, invert Z", 6 checkboxes total. I mean, if that's not too much trouble, but it's not a big problem. Once e. g. hand is positioned where I want, using those UI sliders is now working nicely (with sensitivity slider).

Great stuff! And I even see you changed it, so copying over sides registers in Timeline too! Animating will be so much better now!
 
Hey, just got around to testing your newest version. Have few issues unfortunately:

1. When hitting symmetry from default pose, right leg suddenly snaps to some weird position;
2. Symmetry mode doesn't seem to mirror rotations, no matter if I have invert axis enabled or not.
 
Hey, just got around to testing your newest version. Have few issues unfortunately:

1. When hitting symmetry from default pose, right leg suddenly snaps to some weird position;
2. Symmetry mode doesn't seem to mirror rotations, no matter if I have invert axis enabled or not.
damn, i should really test every feature after every small change, i tested everything before doing a small fix to the mirroring algorithm.
i will be fixing it as soon as i get the chance to.
 
damn, i should really test every feature after every small change, i tested everything before doing a small fix to the mirroring algorithm.
i will be fixing it as soon as i get the chance to.
Hey, found a potential solution: line 350 in PHUtils.cs
Code:
return new Quaternion(rot.x, -rot.y, -rot.z, rot.w);
This seems to solve the problem, and I confirmed that -rot.x in that line directly caused somehow right foot to be broken during mirroring. With rotations inverted as shown above, everything seems to be working (rotations are also mirrored correctly). Looks like I didn't break anything, so it shall be my temporary workaround.
 
Hm there seems to be a weird bug as well. If I move person atom while symmetry is enabled, legs will start to cross over (that's latest version without any changes), so gotta use it only when not moving the whole atom... overall symmetry seems to be behaving weirdly. After I disable it and move the person forward, and re-enable it, it would tilt the person.

Looks like atom position X is not 0, symmetry will be broken (forward/backward and up/down works regardless of atom position). When symmetry is enabled, moving the person will cause left side to move correctly, but right side seems to be moving in the opposite direction. If I find workaround, will edit this post.

EDIT: Okay, fortunately I had version 9 of the plugin on my drive. I just pasted the part above the line I mentioned in the above post... seems to work.
 
Last edited:
Hm there seems to be a weird bug as well. If I move person atom while symmetry is enabled, legs will start to cross over (that's latest version without any changes), so gotta use it only when not moving the whole atom... overall symmetry seems to be behaving weirdly. After I disable it and move the person forward, and re-enable it, it would tilt the person.

Looks like atom position X is not 0, symmetry will be broken (forward/backward and up/down works regardless of atom position). When symmetry is enabled, moving the person will cause left side to move correctly, but right side seems to be moving in the opposite direction. If I find workaround, will edit this post.

EDIT: Okay, fortunately I had version 9 of the plugin on my drive. I just pasted the part above the line I mentioned in the above post... seems to work.
so just to clarify does your work around working as intended?, i have been pulling my hair out trying things to fix this, i even tried this solution but, my testing proved it to break if the any rotation isn't zero.
i have a solution for the position thing (but it also inverts the Z axis), but the rotation thing is really hard to fix with the current setup , the best thing i can do is rewrite the entire mirroring section to support all rotations and positions ,R-L mirror plugin is perfect at mirroring but timeline can't read the changes , so i will look into it's source to maybe find out how they did it and try to make it timeline-compatible.

here's the fix for the position thing if you're wondering.
C#:
// in some cases making the rotation angle (0,90.0f,0) solves the z axis but it's not consistant
static Vector3 GetInversePosition(Transform trans)
{
  return RotatePointAroundPivot(trans.position, pelvis.transform.position, new Vector3(0,180.0f,0));
} 
static Vector3 RotatePointAroundPivot(Vector3 point, Vector3 pivot, Vector3 angles)
{
  Vector3 dir = point - pivot;
  dir = Quaternion.Euler(angles) * dir;
  point = dir + pivot;
  return point;
}
 
Last edited:
I just noticed it breaks with different rotation of person atom.. welp. Code you pasted doesn't like something in the code before, so I'll just stop messing with that. Hope it's not too hard to fix in the end.
 
I just noticed it breaks with different rotation of person atom.. welp. Code you pasted doesn't like something in the code before, so I'll just stop messing with that. Hope it's not too hard to fix in the end.
UPDATE: i finally figured out the position thing, and it's actually simple i just didn't read the unity docs for the vector3.Reflect method
here is the code (not broken this time):

C#:
static Vector3 GetInversePosition(Transform trans)
{
      Vector3 inversePos =  Vector3.Reflect(trans.position-activeAtom.freeControllers[0].transform.position , activeAtom.freeControllers[0].transform.right);
     return activeAtom.freeControllers[0].transform.position + inversePos;
}

i tried it with both rotations and transformations and it works perfectly, but i would like you to try it whenever you get the time.
also i won't be patching it in just yet , i still want to fix the rotation thing and generally make this plugin more stable and easer to read incase anyone wants to modify it.
 
UPDATE: i finally figured out the position thing, and it's actually simple i just didn't read the unity docs for the vector3.Reflect method
here is the code (not broken this time):

C#:
static Vector3 GetInversePosition(Transform trans)
{
      Vector3 inversePos =  Vector3.Reflect(trans.position-activeAtom.freeControllers[0].transform.position , activeAtom.freeControllers[0].transform.right);
     return activeAtom.freeControllers[0].transform.position + inversePos;
}

i tried it with both rotations and transformations and it works perfectly, but i would like you to try it whenever you get the time.
also i won't be patching it in just yet , i still want to fix the rotation thing and generally make this plugin more stable and easer to read incase anyone wants to modify it.
Very nice, it works for me! Now only rotation of the right side changes with person atom rotation, but positions seem to stay perfectly mirrored no matter what. Pretty nice, hope rotation thing is also easy to fix.

Once it works, I'm pretty sure plugin should be more or less complete. We have keyboard shortcuts and axis inversion.. can't imagine it needs anything more for what it's supposed to do. I noticed some plugins that are huge in scope and add more and more features, have sometimes broken some pretty basic functionality for a long time and for some people it makes it almost unusable. Once mirroring is reliable, it's gonna be great, since you've already completed small "cherry on top" things.
 
Ruvik updated PosingHelper with a new update entry:

bug fixes , new button and a different linking structure.

bug Fixes
. mirroring now supports different positions and rotations.
. symmetry mode now works.

New Button
. the name button now acts as the atoms main controller so you can move and rotate the atom by activating this button.

different linking
. you can no longer rotate and move the whole atom by changing using the pelvis button , instead it acts as a separate bone between the hip and the waist.

Read the rest of this update entry...
 
Awesome job, Ruvik. I had lots of fun with your plugin's latest version. Ability to instantly register mirrored positions with just the plugin when using Timeline is great, scene creation has improved a lot for me. Any rotation just works, and ability to move the whole atom is also really nice as well. I even noticed that I used your UI more than just mouse movements because it can be more precise when trying to align stuff closer. Before your plugin existed, aligning male atom and doing symmetry was bothersome, now it's easy and fast. Much thanks.
 
Last edited:
Awesome job, Ruvik. I had lots of fun with your plugin's latest version. Ability to instantly register mirrored positions with just the plugin when using Timeline is great, scene creation has improved a lot for me. Any rotation just works, and ability to move the whole atom is also really nice as well. I even noticed that I used your UI more than just mouse movements because it can be more precise when trying to align stuff closer. Before your plugin existed, aligning male atom and doing symmetry was bothersome, now it's easy and fast. Much thanks.
this plugin would have never been what it is without all the feedback it got. especially you ,this discussion shows how you stuck with me and helped make this plugin better. thank you
also if you can make a better plugin icon , i would appreciate it if you post it here . i tried but i just suck at photoshoots.
 
Hey, I noticed a small inconvenience, nothing too major, but wastes a bit of time. When loading a scene, looks like all plugin settings are reset to default, so keybindings, axis, and also you need to manually re-add Person atom. Otherwise, everything is perfect :)
 
Ruvik updated PosingHelper with a new update entry:

Undo, set links , clear links and change states

sorry this took so long I was just sick

Undo :credit(saf31)
. set the undo keybind from the plugin menu
. press it to undo the last changes made to the position and rotation of all main bones

Set and Clear Links:
. select all the bones you want to link and select the desired bone you want them to be linked to last.
. select all the bones you want to link to nothing and click clear link to clear them.

Change States:
. select all the...

Read the rest of this update entry...
 
Hey, I noticed a small inconvenience, nothing too major, but wastes a bit of time. When loading a scene, looks like all plugin settings are reset to default, so keybindings, axis, and also you need to manually re-add Person atom. Otherwise, everything is perfect :)
so i looked into it. and I couldn't quite figure it out , so I will be implementing that in the next update hopefully.
 
Back
Top Bottom