Scaling Animation Translations For Rig Different R6 Rig Sizes

Just like this post here:

I have a game where players can have R6 Characters with different sizes. But unlike the linked post, my sizes are done manually because rig proportions differ from the default R6 Character. Because of this I am unable to use the ScaleTo() method to automatically scale animations associated with the rig models.

Are there any other ways to achieve the same result or does anyone know how the ScaleTo() method goes about scaling the translations for animations?

3 Likes

Hey there.

As far as I’m aware, there is no way to do this with the default Animation Track system. You could upload variants of animations that accommodate the size changes, but this generally is not an effective solution especially when the size change varies.

What you can do instead is to look into playing animations from KeyframeSequences. When you save an animation (not export), it is saved as a KeyframeSequence. You can make a script that reads these sequences and “plays” the animation on a rig.

Because each joint has translation data inside the KeyframeSequence, you can choose to multiply each joint translation separately inside the Script when the Script reads the sequence.

Unfortunately, most modules/resources I’ve found that claim to do this automatically in a manner similar to the default AnimationTracks tend to not work reliably.

The core method itself does work, but you may have to write your own logic in order to manage priority, pausing, speed, easing, and more.

Here is the basic function:

Here is a module that emulates the default Roblox mannerism of handling Animations. From my personal experience, it may have some issues with priority (I can’t really remember) and other inconsistencies, but it’s worth looking at to understand the method.

Important Note: Playing KeyframeSequences will not replicate as smoothly as animations. If it is played on the Client, other Clients will not be able to see it. Additionally, if played on the Server, it may look choppy or generally less smooth. You’d have to replicate it all yourself through RemoteEvents and such.

1 Like

I made it really bad
Im sorry i don’t write that terrible awful code anymore hopefully
One day i want to rescript it becouse some logic inside it is fully broken and makes no sense.

2 Likes

It is truly a fascinating resource, especially since you tried to make something that nobody else has made before. Good job on making it!

If it doesn’t work perfectly, no big deal. It still stands as a learning opportunity for yourself and others. :slightly_smiling_face:

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.