Scaling XYZ positions on animations for rigs that are scaled

So here’s the deal.

My project is going to contain rigs and characters that need to be scaled to large heights. While this is easy to accomplish with R15, there is one major road block that is incredibly disruptive.

You see, animations that offset the XYZ position of the joints do not scale based on character size. No matter how big or small the character is, the exact offset will always remain the same.

This means that while an animation made for a normal sized character would look like this…

It would instead look like this for a character that is scaled by 10.

This is pretty detrimental as it makes animations that are played for larger characters look worse, and gets in the way of designing combat animations which I require for my game.

My current solution to this is to run a RunService.Stepped connection that goes through every Motor6D in a CollectionService tag, and then changes the Transform property of the Motor6D by scaling the XYZ values based on character size.

This is not ideal at all and is bad for performance, updating the Transform of every Motor6D for each character that has to be scaled is costly, especially when it also has to be done on the server for accurate hitboxes.

So yeah, I’m looking for other solutions to this problem that would perform way better than my own, and don’t require reuploading tons of animations for different character sizes.

2 Likes