Animation Scaling

There needs to be some method to overwrite the default scale of an animation, perhaps when its Loaded into the Humanoid or AnimationController.

As it is, any animation that is not pure Rotated poses, but includes any Shift, needs to be re-created (or manually scaled and published) for each scale of the target.

For instance, I have a game where you can Morph into a Dragon.
I allow for 4 different scales of the dragon, from large to small.

I can manually scale the mesh and bones in script within the game, allowing me to use a single Mesh for all 4 sizes.

However, because the Animations for the dragon (over 20 of them) include Shifts, I have to, in Studio, do a Batch Scale in Script of all the Animations in the Animation Studio’s Saved folder. Then load each one of these (well over 100) into the editor and Publish each one.

So instead of Dragon_Idle1…
I end up with Dragon_Large_Idle1, Dragon_Default_Idle1, Dragon_Medium_Idle1, Dragon_Small_Idle1, etc…

Then take into account that I have about 10 morphs that I have purchased the Meshes, so the Animations that came with it have shifts, this is well over 1000 Animations I would have to publish.

The Shift is just a CFrame position applied to the bones or motors when animating, so a Scale I would think would be easy to implement, such as … local AnimTrack = Humanoid:LoadAnimation(myAnim, .5) the .5 being a scale value.

I feel that with the recent replication of Animation Priorities, this would make a great new feature as well, and I feel this would allow for more creativity in that we can in game scale for mesh sizes along with animations.

Thanks for this consideration.

16 Likes

Are you using Humanoids? It seems like the behavior you want could be achieved by using the R15 scale instances (i.e. BodyHeightScale and co).

But the mechanics that drive the related adjustments behind the scenes would be nice to have direct access to if you’re not using humanoids. If you’re not using humanoids, it’s practically impossible to do what you’re doing without access for sure.

1 Like

Correct, I am not using Humanoids.
However, when using a translation on the Y axis for my mermaid morph (which does use the Humanoid) If the player is scaled (using the BodyHeightScale) I have to manually adjust the C0 Cframe on the motor connection the tail to the lower torso, to adjust for the animation still keeping the original Y translation.
So not sure if it will scale even with a Humanoid.

1 Like

I second this, I explained my own issue in this thread, but to summarize:

My project requires R15 characters and rigs that have to be scaled to different sizes. But as explained here, any shifting / XYZ position offsets do not scale up with the rig’s size.

I can try implementing an automated solution in-game, but this would be expensive. Exporting different versions of the same animation for different sizes is not ideal as explained in this feature request either due to how much you have to publish.

1 Like