Animation Scaling is not working consistently

This is in regards to this relatively new update Introducing an Engine-Level Model Scale API [Beta].

According to the post, “The Animator Instance will key into the scale API to support scaled playback of animations!”. However, I am not getting this to work for all of my rigs:

From left to right:

  1. Default horse rig
  2. Horse rig scaled to 50%*
  3. Default R15 rig
  4. R15 rig scaled to 50%*
  5. R15 rig with AnimationController instead of Humanoid
  6. R15 rig with AnimationController scaled to 50%*
  7. R15 rig with Humanoid.AutomaticScalingEnabled set to false
  8. Default pet rig
  9. Pet rig scaled to 50%*

All the rigs are playing the same animation where LowerTorso/Body is lowered by ~2 studs in Y position. This offset should be scaled automatically, but for rig #2, #6 and #7 this is not happening. They are much lower into the ground relative to the default rig.

*I’ve tried scaling using the Scale tool, Scale property and :ScaleTo() API, same results

I have attached a reproduction file privately:

  1. Select any rig under workspace.Horse, workspace.Pet and workspace.R15 and upload the animations under AnimSaves
  2. Replace the AnimationIds under StarterPlayer.StarterCharacterScripts.LocalScript
  3. Press Play and notice how the animation offsets are not scaled for rig #2, #6 and #7

Expected behavior

The animation offsets should be scaled for rig #2, #6 and #7 as well. I’ve read Introducing an Engine-Level Model Scale API [Beta] and can’t find any caveats or notes for why these particular rigs should not be scaled.

In addition, the animations all play correctly in the Animation Editor. I’ve attached screenshots for rig #2 and rig #6. As you can see, the animations are played back correctly and scaled in the preview (they are lower into the ground in the previous screenshot). But when the same rig and same animation are played in the Studio or in-game, it looks different.


A private message is associated with this bug report

Hey, I got a fix in for this, it’ll ship in early January after the holiday break.

What’s misbehaving here is that a recent refactor unintentionally made the special case that exists for the root joint of humanoids with AutomaticScaling enabled apply to the root joint of all models all the time.

It works in the Animation Editor because the editor has its own code to apply animations in a more flexible way for editing, separate from the runtime animation code which is tailored for performance, and the Animation Editor was not broken in the refactor.

If you have humanoids under the models in question in your game you can set HipHeight = 2 * scale and AutomaticScalingEnabled = true on the humanoid to get the animations to scale like they should for a model with Scale = scale. Once the fix is out turning off AutomaticScalingEnabled would return return things to using the model scale directly.

3 Likes

Awesome! Will this fix rig #2 and rig #6 as well? They use AnimationController and do not have the AutomaticScalingEnabled property.

Yes those will be fixed too, and adding a humanoid with those settings to them temporarily would fix them. As another alternative you could add an additional joint between the root and body part since this only affects the root joint specifically but that’s probably not feasible given you would need a different set of animations.

1 Like

Any update on this? We’re waiting for this fix to release an update for our game.

The code has shipped in the current Studio release, I was just waiting for a mobile force update to enable it (possibly next Monday).

I can enable the fix tomorrow if you want but there’s still some mobile devices on a version that doesn’t have the fix so if you push a change now a small number of users will see it acting wrong until the force update (you could tell them to explicitly update).

1 Like

That’s okay! Would appreciate it very much if you could enable the fix. Thank you :pray:

I enabled the fix.

Though, the iOS / XBox releases including the fix have still not shipped due to some delays, so I would not recommend shipping any code depending on the fix for the time being unless your playerbase is primarily Desktop.

I’ll update you when it has shipped on iOS.

2 Likes