How do you do fractional crouching with VR?

Let’s say that I have a player which can walk forward, backward, side to side, etc. Standard stuff, blah, blah.

The player can also crouch or bend over. Crouching is no longer a binary yes/no boolean value because someone can be just slightly ducking their head to get under an overhanging obstacle. Instead, I now have a normalized float value which represents the standing ratio, where 1.0 is standinging perfectly straight, and 0.3 is the minimum, and this would be a full crouch. So, the standing ratio has a range between 0.3 to 1.0.

It seems that currently, blend spaces are in 2D where there is only an X/Y axis. This is no problem if the height of the animation is a binary crouching / not crouching value, but doesn’t support half crouching.

I’m tentatively thinking that maybe the “right” solution is to completely get rid of blend spaces and most movement animations and use IK for everything. For the case of crouching, it seems that the hip position is what determines most of the character height, though there may be some leaning of the back and lowering of the head.

Or maybe it should all be determined by the head height? Maybe there could be a full body IK solver to figure out the bone rotations from the base of the neck all the way down to the ankles? Does anyone have any experience with this?

Okay, I figured it out. It’s a bit rough, but it works.

I had to go into the animation blueprint and manually rotate the leg bones into a crouching position, proportionate to the ratio of the players standing height. It’ll need a little bit of refinement and polish, but it looks alright.