Modular Character clipping through floor when Crouched

Hello everyone!

I’ve got a peculiar issue that I can’t seem to find an answer to from my normal channels. I recently just added a Modular Character to my project, and uses Set Leader Pose Component to tie all the meshes to the animations. Everything’s been working great so far, all of the locomotion has been flowing with no problem - until I got to the Crouch function.

Without getting into too many details, let’s just say the Modular Character’s base skeletal mesh is just the Torso, with separate components for the Head, Legs, Arms, and Feet. From there, any other accessories are tied to those components (Torso accessories, head accessories, etc).

But, for whatever reason, when using the Crouch function in the BP, everything except for the torso is then teleported to the half-height of the collision component, and the animations play from there. So the torso is in the right place physically within the world, and all of the other components are now out of place.

I can “fix” this by simply changing the Crouched Half Height to the full height of the original character, however this negates being able to crouch under objects.

All other animations play out just fine - I’ve tinkered with everything, and it seems that for whatever reason, only the Torso is acting correctly.

Any thoughts?

1 Like

Your mesh elements are probably not parented correctly.

1 Like

Any further input? I feel like I’m staring the answer in the face, I just can’t find the solution.

The Leader Parent is Mesh, which is the torso. Everything else is parented to it - yet the torso is the only thing that’s maintaining the correct position, while everything else is shifting down.

If I unplug the Construction script, then crouch works just fine - with the exception of now everything is disconnected, and body parts will begin to desync with each other during animations.

Everything I’ve checked seems to be correct. The modular components all have the same root bone locations, all of the settings are exactly the same within all of the meshes, as well as the locations of all of the components within the blueprint.

I did manage to find a workaround until I figure this out by simply adding a local transform to the objects and tweaking the numbers until they lined up - and when uncrouched, the transform is reversed, and they’re back in the same location.

One thing to note, is that the modular components do parent to each other. The feet, for example, are parented to the legs, which are parented to the torso. When I had set all of the modular components to transform on crouch, the pants would be in the correct place, however the boots would now be too high - they’re parented to the pants. So when the pants were transformed, the boots took on that new location - they were already in the right space in relation the pants, however they’ve now taken on a new transform beyond that.

In addition to all of this, I even tried some more fun stuff - the modular character set has premade, non-modular skeletons included. When I tried adding that to the mesh, parenting everything to that mesh, and hiding the premade skeleton in-game, it produced the same results - the torso is in the correct position, however everything else moved down - unless I applied the same transform function that I mentioned before.

The transform function is only a workaround until I find the root cause of the issue. It works perfectly on the server side, however clients will see the modular components snap to a new location for a single frame when the crouch or uncrouch command is triggered.

First, it’s set Master Pose component, unless they changed the name of the node.
If changing to the correct node is not possible (the name was changed) or doesn’t fix it, then…

Try a classic
~ ShowDebug Animation
Tab into the character.
See if the result is something to do with the bone position.

Follow the same parenting hierarchy of the skeleton, at least for extremities.
Mesh > Chest > Pants > boots.