I’m making a Sims-style character creation system with morphs. One of the morphs I want to include is an child slider which will turn the adult-sized character into a child-looking character with proportions of a child. There’s a counterpart slider for an elderly person, but that’s pretty simple adding some sagging skin and wrinkles - the model’s skeletal structure won’t change. For a child though, that of course means a much shorter body. The skeleton remains sized to the adult model and any animations applied to it really bork the model. This is also true to a lesser extent of morphs like shoulder width and torso height. I can probably live without that level of depth but I’d really like to allow for child characters without having to create lots of different models with their own skeletons for each ‘age.’ Doing so would also severely complicate the clothing process. I also don’t want to just scale the skeletal mesh component/actor because then it just looks like an adult scaled down.
Now this is pretty much expected because it happens in Max too - in Max to correct this I would turn off ‘Always Deform’ on the model’s skin modifier and one-by-one fit the bones to the new model (or automate it using vertex positions) then re-enable ‘Always Deform’ and voila, but obviously I can’t fix the model in Max when the player is making a character in-game. I’ve found the ‘Always Deform’ equivalent in Skeletal Mesh Component’s ‘No Skeleton Update’, but I’m a little lost on the rest. So here are my questions, one-by-one:
-
Is there a way to set bone positions pre-animation? I see there are skeletal control transform (modify) nodes in the anim instance but they appear to take in a pose then add transforms on top of it. Granted I am very new to animation blueprints so this is likely a noob question. If so, my apologies.
-
Is there an easier, or more automatable way to modify bone transforms besides the aforementioned node? I would have to set new locations for every single bone and that would not only make mean dozens of this node filling up the anim graph, but it would be rather laborious clicking each one and setting the bone. Perhaps something that takes in a bone name as a parameter? Or can this be done in C++?
I hope what I want to do here is possible. Thanks in advance for your input!