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:
R15 rig with AnimationController instead of Humanoid
R15 rig with AnimationController scaled to 50%*
R15 rig with Humanoid.AutomaticScalingEnabled set to false
Default pet rig
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:
Select any rig under workspace.Horse, workspace.Pet and workspace.R15 and upload the animations under AnimSaves
Replace the AnimationIds under StarterPlayer.StarterCharacterScripts.LocalScript
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.
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.
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.
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).
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.