HeelAdjust2

Plugins HeelAdjust2

CheesyFX

Invaluable member
Featured Contributor
Messages
1,085
Reactions
3,928
Points
143
CheesyFX submitted a new resource:

HeelAdjust2 - Adds configurable colliders to shoes

This is a remake of @prestigitis original HeelAdjust plugin. Credits go to him aswell as @ICannotDie and @JayJayWon, who had also contributed to the project.

Originally I only had two goals for this: fix the issue of not being able to load up a scene with HeelAdjust being active without having toes flying all over the place. Furthermore, I wanted to make the heel collisions play nicely with the latest additions of...

Read more about this resource...
 
What still bothers me:
I want this to be a plug and play solution to convert any flat-footed dancing animation to a heeled one. For this I need to rotate the feet into position without changing the rotation of the controllers, which are typically driven by key frames and get reset every frame. Right now I'm rotating the DAZBone (like the original), but this still fights with the rotation of the controller, so you won't see the full effect unless the rotation of the foot controller is set to 'off'.
I tried everything imaginable... (bone) morphing the foot, jointDriveTargets, and even hacking into the bone hierarchy by inserting aditional transforms to offset the rotation - with no success. Either the controllers rotate with it, the foot gets distorted, or the colliders stay behind. On top of that, most edits get randomly reverted if VAM is in the background for some time (I use FrameRateControl by @MacGruber).
If you could help me with that, I'd owe you a cookie :)

VAM has an internal system for managing foot rotation for heels. It seems to do what you want; rotate the foot without moving the foot controller. I believe it's only used for Harli Heels, but you can turn it on for any other clothing

It's how the Shoe Helper works if you need a reference:

 
VAM has an internal system for managing foot rotation for heels. It seems to do what you want; rotate the foot without moving the foot controller. I believe it's only used for Harli Heels, but you can turn it on for any other clothing
Thanks, but I know about the jointRotationDriveXTarget(Additional). Sadly, it does not do what I want. See our private discussion, I just replied explaining things.
 
Thanks, but I know about the jointRotationDriveXTarget(Additional). Sadly, it does not do what I want. See our private discussion, I just replied explaining things.

Ah, ok. Something like this then...

 
@CheesyFX @JayJayWon is there any chance UIAssist could work with or be updated to work with HeelAdjust2? (It already supports the original HeelAdjust plugin natively).

Also @CheesyFX see this related post and this resource about retrospectively forcing heels in mocaps, might give you some other options to get that working.
Probably not something I'm going to implement natively inside UIAssist (even if @CheesyFX was happy for me to). Its a lot of work and the incremental benefits over having it embeded vs just being able to launch it from UIAssist dont justify the work.
 
1691060124960.png


So everyone's aware, the ZHFX paid MMD plugin already has an extremely good option for this built-in (in the version I have, at least), which allows for both heel and toe adjusts to a pretty large degree. It's not going to help you unless you have a VMD file loaded up, which locks the model out of any other pose control options, but if that's the plan then it's probably the best solution available.

All the same, having a completely-overhauled HeelAdjust plugin for non-dancey times is still pretty awesome. The old plugin was great but as you mentioned, big broken upon scene reload, among other instances.
 
If the physics driven rotation target doesn't work well enough because the freecontroller fights it, wouldn't it work to edit the freecontroller rigidbody -> body rigidbody connection? From my playing around with configurableJoints you should be able to change some parts of this, but I'm less sure about rotations than positions.

Yeah, now that I'm trying out Stopper's ControllerAdjust plugin this looks like it might do just what you want. Timeline is keeping the controllers at the position before the adjustment, but the actual body part follows the offset. Probably want to add in the physics offset as well just to keep the physics from adding strain to things and making stuff explode.

Edit: Goddammit, Stopper, how come every time I open my mouth you've gone and done what I'm talking about earlier in the day?
 
Last edited:
If the physics driven rotation target doesn't work well enough because the freecontroller fights it, wouldn't it work to edit the freecontroller rigidbody -> body rigidbody connection? From my playing around with configurableJoints you should be able to change some parts of this, but I'm less sure about rotations than positions.

Yeah, now that I'm trying out Stopper's ControllerAdjust plugin this looks like it might do just what you want. Timeline is keeping the controllers at the position before the adjustment, but the actual body part follows the offset. Probably want to add in the physics offset as well just to keep the physics from adding strain to things and making stuff explode.
Thanks for the tip! I've already solved it with the help of @Stopper and it works flawlessly :)
But you were definitely on the right track. That is exactly what I am doing now. I didn't know there was a ConfigurableJoint between the controllers and the rb on the model they are supposed to move. I always wondered how they are linked... but now it's obvious.

Expect a new version soon :)
 
This adds a lot of the things I really missed in the original plugin, since I often found that the heel collider was just a little bit out of place or angled wierd, and the extra toe collider was often a bit too small so it ended up more like those horrible gifs of some poor catwalk model repeatedly spraining her ankles.

One more thing you could look into is changing the heel collider type. I know some of the capsule colliders have an additional collider attached for the GPU collider that adds cloth collision, which might be nice to have for longer heels, even though I don't know enough about the GPU colliders to know if they are easy to add or if they are limited to being added to the same shaped collider. Probably worth doing just to give the poor overworked physics engine an easier collider to work with.
 
One more thing you could look into is changing the heel collider type. I know some of the capsule colliders have an additional collider attached for the GPU collider that adds cloth collision, which might be nice to have for longer heels, even though I don't know enough about the GPU colliders to know if they are easy to add or if they are limited to being added to the same shaped collider. Probably worth doing just to give the poor overworked physics engine an easier collider to work with.
Very good idea, although I have no clue about GPU colliders right now. I'll research...
 
CheesyFX updated HeelAdjust2 with a new update entry:

v2 Reworked foot pose adjustments :)

A huge thank you goes to @Stopper, who put me on the right track to get this working.

  • The foot pose now is independent of the controllers x-rotation and will be exactly as it should, without affecting the knees or anything else. You should keep the toe controllers position and rotation states 'off' though. But that shouldn't be a problem if you lock them via the toggles.
    This should play very well with flat-footed animations.
  • The option to rotate the...

Read the rest of this update entry...
 
Very good idea, although I have no clue about GPU colliders right now. I'll research...
I've been trying to figure that one out for quite a while now, but my lack of coding skills isn't really helping me figure out where you can get at it all. There's a namespace full of stuff under GPUTools that I think contain it all.
Now that I think about it, it's probably just easier to attach a capsule atom without collision or physics to the heel collider, since the GPU collision stays turned on even without those two.
 
This adds a lot of the things I really missed in the original plugin, since I often found that the heel collider was just a little bit out of place or angled wierd, and the extra toe collider was often a bit too small so it ended up more like those horrible gifs of some poor catwalk model repeatedly spraining her ankles.

One more thing you could look into is changing the heel collider type. I know some of the capsule colliders have an additional collider attached for the GPU collider that adds cloth collision, which might be nice to have for longer heels, even though I don't know enough about the GPU colliders to know if they are easy to add or if they are limited to being added to the same shaped collider. Probably worth doing just to give the poor overworked physics engine an easier collider to work with.

Gpu colliders aren't too hard to do. I have an ancient version of ColliderEditor kicking around that adds them to all colliders. It boils down to

_gpu = collider.gameObject.AddComponent<CapsuleLineSphereCollider>();
GPUCollidersManager.RegisterLineSphereCollider(_gpu);


IIRC the dimensions and orientation line up naturally with a capsule collider.
 
CheesyFX updated HeelAdjust2 with a new update entry:

v3: Cloth and hair collision

  • The heel and toe colliders now interact with cloth (and hair, not tested) thanks to the GPU colliders I have added.
  • offset.y is gone, since it's redundant, use scale.y instead. Presets using it will still load propperly though.
  • Fixed the y-rotation of the heel collider. The order of rotations was wrong. You have to redo presets using it.
Thanks again @Stopper for the GPUColliders (and @Acid Bubbles, who was quoted by Stopper).

Read the rest of this update entry...
 
_gpu = collider.gameObject.AddComponent<CapsuleLineSphereCollider>();
GPUCollidersManager.RegisterLineSphereCollider(_gpu);
Thanks again! It worked out great. But I noticed: You can add a CapsuleLineSphereCollider to any arbitrary GameObject (which is what I did) and adjust the spheres local centers (Vector3)A and B aswell as the radii as needed. The GameObject doesn't have to have a CapsuleCollider attached to it. You don't get a visible feedback though, since even if you enable the renderer on the CapsuleLineSphereCollider, it always shows the huge capsule created initially.
 
Hi @CheesyFX .

Was just playing around with this plugin and it's awesome, thanks so much for making it.

One issue I noticed:
  • Option to offset just the feet or the main controller to respect the height gain that comes with your heels
This works great when applying it in a scene the first time via your plugin. But if I remove the heels clothing item via the VaM clothing UI (or via a script in a button or some other means) and then re-apply it again to the atom, this offset is not reapplied.

The other values for the heels are re-applied automatically, but not the height gain offset. Is this a bug?

Thanks!
 
The other values for the heels are re-applied automatically, but not the height gain offset. Is this a bug?
Thanks!
No, it's not a bug. The height offset only gets applied if you manually change the dropdown. You have to consider all circumstances:
  • model not standing => no offset wanted
  • if you set up the offset, then save and reload the scene, the plugin would apply the offset another time if it was automatic.
  • messing with scenes you downloaded
  • ...
So the offset can't be part of the preset because it's use highly depends on the scene. I could however make it toggle on/off or adjust with every preset during the current session (if the mode is not set to "None"). I'll think about it. Maybe it'll invoke some other problems I don't forsee right now. But for now you can always switch modes to reapply it.
The base heights are stored on load of the plugin. If you changed the controllers heights manually and this to be the new baseline, reload the plugin.
 
Back
Top Bottom