Would serve as a multiplier for movements within animations. When using animations for characters bigger or smaller than the one originally used the make said animation, all the movements are amplified, like in this case:
This player is roughly 5 times smaller than normal, yet the animation’s movements don’t match this change. If we had something like AnimationTrack:AdjustSize(), one could :AdjustSize(0.2) to fix this problem.
Are you referring to the way the arms and legs move away from the rest of the body in your example?
If you are, you can make animations that do not include translations and they will correctly scale from larger to smaller characters without any additional work.
But then you’re losing an important feature of animations. Scaling the translations would make it easy to make one animation and have it work across all scales.
I don’t think this would be as easy as you might think. Since each part could be scaled independently and some of the joint offsets are not on part boundaries, it would be difficult to do this correctly without additional information for each joint.
I don’t see what you mean, I don’t think there has to be any extra information.
If you mean storing the current size adjustment, it doesn’t have to be for each joint.
EDIT: Do you mean storing the original pose of each joint? That isn’t necessary. AdjustSize() shouldn’t overwrite animation data, it should make the engine multiply positions when rendering the animation.
Also, perhaps it should take a Vector3 so that we can have seperate movement sizes on each axis, so that it’s possible to adjust animations for a height slider without weakening the other 2 axes.
I can see this being very useful: AnimationTrack:AdjustSize(0.5)
Something like if the the Torso of my model was translated 6 studs up for maybe a backflip animation, I’d be able to use this animation for the same model that is half the size using this method, & have to the Torso move only 3 studs up instead of 6 to properly play the animation.
This is me assuming that the model itself is being scaled evenly. AnimationTrack:AdjustSize(scale)
Something like AnimationTrack:AdjustSize(xScale, yScale, zScale) would be more complicated.