Resizing Part of Character Model During Gameplay

I was thinking of a dynamic system where the player model can change according to their stats during gameplay such as getting fatter, muscular etc…

And these changes should not be very drastic, let’s say a muscular character would need adjustments on their shoulders and arms, while a fatter character would need a bigger size multiplication on their waist area.

I looked up this topic online for days but I couldn’t find a single topic about it. Is it possible to rescale only specific parts of a model using C++ or blueprints?

This would save me a lot of time when working on my game without me needing to remodel a lot of clothes and characters.

Thanks in advance for your time

There are several different ways to affect a character like this during runtime.

For scaling, you can change the transform of a particular bone in the animation blueprint. If you scale the bone (and its children) non-uniformly, you can affect vertices to get “fatter” without getting “longer,” or vice versa. You can also translate bones in parent-local space to make the limbs longer, although depending on how the meshes are weighted, this may stretch unevenly.

You can also model the assets to have a morph (blend) channel that changes the shape. If you want bulging muscles, you can make a “bulge” blend shape channel and animate that based on how muscular the character is supposed to be. Blend shapes are typically used on heads/faces to do facial expressions, but they’re not limited to this. (And in cinematics, they are often used for squash animations along armpits, elbows, and so on.)

Finally, you can animate the material. You could for example have a “muscle definition” normal map, which you blend into the regular normal map stronger the more defined the muscles are supposed to be. At 0.0, the character looks smooth like milquetoast, and at 1.0 it looks defined like early-career Arnold Schwarzenegger.

Note that most of these generally require the art to be created with this modification in mind to actually look “good,” but if you’re playing around and/or prototyping, just adding a bit of bone scale procedurally in the animation blueprint can illustrate the concept just fine.

1 Like

Thanks a lot for the detailed response.

The game is going to be a low poly one, however, the textures and models should always represent a semi-realistic feel rather than a comical feel.

I’ll check how bones scaling work. The morph channeling seems complicated for my goal but it seems very interesting and I’ll of course check it out too if it can be used with low poly assets.

And I didn’t think of normal maps at all, I’ll definitely look into that one too. Maybe 2 different blends where fully ripped characters could have a shredded look with no fat while a fat guy with lots of muscles can also have a different muscle definition blending between fat and muscle normal maps o.O