How to correctly scale a skeletal mesh / physics actor along one axis

PFG_Icarus
Sat, 13 Jan 2018 05:11:30 +0000
Rendering

To cut a long story short since I have been working on this one thing for a very long time, I basically have a skeletal mesh that I have turned into a physics actor. I am happy with the physics actor and it works correctly as it is. I would, however, like to change the scale of the skeletal mesh / physics actor dynamically during runtime.

For some example context, I am working on making a modular character creation system and would like to have a set of different tails that players can add to their characters. As a part of the creation interface, there is a slider that will allow you to adjust the tail length, and as you move the slider, the length of the tail will update in the game. This needs to be a physics asset since I would like it to dynamically react to how the character moves and hit or knock over things in the environment. It is very important that the scaled mesh collides with things and moves correctly.

In attempting to simply apply scaling length to test tail through the character blueprint by pressing some debug keys, I am able to scale the mesh along the axis I specify. However, the mesh is the only thing that scales; the skeleton and physics do not scale with it. For example, the default tail length will sway and collide with the environment as it should, but a longer tail that was scaled will clip through the environment and only collide with things where the default tail length would be. In addition to this, the tail mesh becomes distorted.

How am I able to scale the skeleton and or physics actor along one axis so that it behaves as it should? I am using blender to create my models. Am I able to do something similar to using morph targets / shape keys to distort the skeleton? Can I keyframe bone size somehow? Am I able to lerp in between two target skeletons?

Thanks to anyone in advance who offers some help; it is greatly appreciated!

10 posts - 8 participants