Changing skeleton & character mesh height to dynamic heights between 5'5 and 6'4

You have your skeleton and your character mesh in UE4. How do you change the height of the character to 5’5 or to 6’4? Do you change the length of the bones in the skeleton? Won’t that hurt the animation? Anyone have some clever ideas on how to achieve this?

I’m researching various ways to change a characters height. Imagine a character customization menu in an RPG game. Now imagine a slider that changes the height of the character without resorting to re-scaling the entire figure. I’m talking about a natural height change. You drag the slider from a height of 5’5 to say 6’4.

The only solution I can think of right now is to create 12 different skeleton rigs and 12 different humanoid meshes for each height, but there has to be a better way.

mesh_skeletalRig_male_human_5'5.fbx
mesh_skeletalRig_male_human_5'6.fbx
mesh_skeletalRig_male_human_5'7.fbx
mesh_skeletalRig_male_human_5'8.fbx
mesh_skeletalRig_male_human_5'9.fbx
mesh_skeletalRig_male_human_5'10.fbx
mesh_skeletalRig_male_human_5'11.fbx
mesh_skeletalRig_male_human_6.fbx
mesh_skeletalRig_male_human_6'1.fbx
mesh_skeletalRig_male_human_6'2.fbx
mesh_skeletalRig_male_human_6'3.fbx
mesh_skeletalRig_male_human_6'4.fbx

Sorry to necro, and this may not be very helpful, but here goes… (was looking on here to try to find a better method than the one I’ve been chasing)… Apologize if this sounds longwinded or know-it-all. I’ve been banging my head against this one myself and got very frustrated by it (and wrote a novel before I came back up here to write this part). TL;DR, reduce your sets down to increments of 4" intervals. 5’4"-5’8"-6’-6’4" Best bet. The user won’t notice if they don’t know they didn’t have some other choice, they’ll just be happy they had a choice in the first place.

Or you can try the stupid way I went… You’ve been warned… Dumb! DUMB! DUUUUMMMBBB!!!

I tried using multiple animation sets instead of multiple skeletons- intending to pass a range through a pose blend (sorry if my lingo’s wrong, been away from UE for awhile) in my anim blueprint to achieve same results. This caused another problem however as I’d also need that range to control my character’s speed over different movement types/stances (longer legs = longer stride- more distance covered per step) and a host of other possible issues. Clothing would have to have same weights to scale with the body (provided they can be switched out)- easier in some 3d packages than others (was able to pull it off in Blender pretty easily, but had issues out the wazoo trying to do that back in my Maya days).

That’s not even getting to the idea of how to generate all those animations consistently across the board. The best I could come up with was:

  1. Using a separate ‘control’ skeleton in Blender to do my base animations (rotations only except on hips/center of mass) which my export skeleton was constrained to. 2) Baking these down to my animation skeleton, then 3) baking these back to my (now reverse-constrained) control rig after applying height and proportion changes to my control rig as location scale keyframes over an adjusted T-Pose (first processed because Blender’s curves will carry over action to action if not zeroed out properly), only to 4) bake them BACK to my export rig! The whole thing was so convoluted I ended up having to learn python just to automate it (just processing one animation set, toggling countless constraints, blender’s archaic action baking back and forth, made me want to kick a bag of doe-eyed puppies), and even then I only got so far as making a chincy addon (I can barely remember how to use) to batch bake one way (control → export rig) by the end of it…

Even that has method has serious drawbacks in that it undoubtedly carries a ***-ton of overhead both on the anim blueprint and animation memory and processing side of things- though I was working to mitigate that by trying to eventually reduce my anims down to basic poses ala ‘Overgrowth.’ I managed a crappy version of that in Unity way back when, but the differences in Unreal’s animation system, plus different way of handling FBX import (single frame actions got ignored so had to be padded, no multi-animation fbx’s- hence the batch baking and exporting individual files to reduce the pain) and stripping keyframes in Unreal only to have to rebuild them in a vague pose system I haven’t had time to delve into and fully understand yet just made the whole ordeal even feel more insurmountable.

Again, sorry for the necro, especially with…er not very happy news. Point is there are other options, but it’ll most likely be a PITA for anyone trying to tackle it no matter what you do, but especially for someone trying to go it alone.

I wouldn’t get your hopes too invested in using blendshapes as end-all beat-all for character customization just yet, either. Know UE4 is more high-end user base, but even so, apparently older GPU’s only support up to 4 blendshape/vertex deformations per vert- and might cull anything above that (or below, depending on what abritrary method it uses to handle them). And cutting those out will reduce your player base dramatically. Not everyone can afford eye bleeding machines, afterall. Check out this GDC talk from the guy who designed SIMS4’s character creator for why they went another way: https://www.youtube.com/watch?v=s7R_HHxCokU#t=23m25s

Good luck, godspeed, words of encouragement?

*To any UE staff or evangelists, all I can say on this point is that it worked into Unity with same Blender fbx exporter (fbx files only, no drag and dropping .blend files or auto importing them via file hierarchy). Not trying to disparage, just stating experience…

Good question.

Why not create, sculpt, model all characters using a standardized height, say 180cm, including males and females (provided you use a single skeleton for them too, otherwise you may differentiate among those two). Then import in the game engine and just (uniformly) scale the capsule. Given a set (uniform) scale you can calculate the resultant height of the character; since 180cm is the standard height a scale of 99% would be 180 - .99 * 180 = 178.2, in other words 1.8 cm change per 1% of scaling. This way all animations and settings are preserved.

In my humble opinion I don’t see any disadvantages with this method; if somebody working on games industry can confirm about whether my theory is flexible enough and followed by video game companies that would provide an additional boost to confidence.