Custom Character Rig Scaling [Crucial]

I cannot find any information about this on the developer forums, but I need urgent help with my rig. I figured I’d put this in #help-and-feedback:scripting-support due to the other topics not truly fitting this issue, and that scripting can be a potential fix to this issue.

I am creating a big cat roleplay game that uses custom rigs as player models. We want users to have the ability to scale their rigs up or down (to allow for bigger or smaller characters). However, the smaller characters are scaled, the worse translations (especially y axis ones) are in regards to animation.

1.) Default size
image
2.) Size after scaling (don’t mind the eyes, this is an issue that can easily be solved, but look at the translation error)
image

Note: Picture 2 isn’t a hip height problem. The hip height is fine, nor will a change-of-hip height temporary fix work in this case as the hind legs actually become pretty deformed after scaling.

I’m not sure what causes this issue, but it is an extremely game-breaking bug.

Does anyone know the cause of this occurrence and how I could fix it (in terms of scripting)? I’m not a programmer, but the person programming this game would love to know the root of the issue or any ideas for a temporary fix.

Thank you!

1 Like

It becomes worse the more a character is translated:

normal image
image

the results when scaled down
(hipheight off the ground, demonstration of hind legs getting messed up)
image
https://gyazo.com/1556599d1ffe41b7f5d797fb7b4477d4)

what method are you scaling down you’re rig model?

As of right now, just basic Roblox scaling + changing the hipheight manually for a demonstration as this is basically how our scaling system works.

You are using script for this right? How are you scaling down the rig, are you doing it for every part, Or the whole model. Maybe a little code of the scaling couldn’t hurt, as of me trying to help

Was it rigged in Blender or in Studio? (does it use bones?)

A suggestion might be to try re-scaling the rig in Blender if you used it, and then re-import.

I’ve had my own issues with scaling as well. It screwed up the animations I had for a rig using armature. (bones.) Had to make entirely new animations…

It was rigged entirely in Roblox, but animated in Blender.

Definitely some issues there. I scale up and down with custom avatars without issue.

I suspect it has to do with rigging it in roblox. All my custom rigs have all parts sharing a common origin. I don’t think that is maintained without an attached rig.

Which importer do you use?

This isn’t a scripting oriented issue, this is likely out of your programmer’s scope.

I don’t rig in Blender (I have no experience with this). Instead, I use the RigEdit plugin along with the Blender importer/exporter animation plugin.

This has been an issue that I’ve dealt with for years. Are you sure that exporting a rig directly from Blender doesn’t have an impact on animations? I’m not referring to rotation animations (they look fine), but rather animations that contain translations on the y axis (ex. a “sleeping” animation that allows the character to lie down).

I heard it’s due to the Motor6Ds not scaling correctly, but I’m not sure.

1 Like

I should also specify that animations work fine on the basic R6 / R15 rigs, just not on custom characters (if you were to scale them up/down).

I’ve heard that there are ways to script around this, but frankly, the people that know how never give me a clear answer on how they did so. There also isn’t an answer for this on the forums.

Quote from unnamed developer 1: “I can’t get into too much detail with our solution but essentially we have an automated scaling solution for the rigs and animations”

Quote from unnamed developer 2:

Myself: “for lifestages is there a workaround to prevent sits and stuff from going into the ground w scaling or do u just gotta do it manually”

Developer: “Yes I know how but I don’t ___ made it for me I dont understand how…”

I should specify that these are both large developers that use such system in their games.

Scaled my custom avatar larger than a house, just using the resize tool in game. There are no visible defects in animations or mesh. I did have to fix hipheight and my torch flame is in a bad place (script only).

All of my motor6ds use HumanoidRootPart for P0. My rig is in my HRP. You could check that. If you have a resize script, I could check that.

It is a problem that others have reported. I have not seen any fix or workaround.

image

I see, it’s because you’re using mesh deformation.

This post is on regular rigs with the parts separated. There’s more support for scaling with mesh deformation rigs (I’ve played around with them before).

That could be, though people with skinned mesh avatars are having similar issues. /shrug

The only example I have without mesh deformation is an old r15 skeleton, also built with RigEdit. That model breaks when resized, which is weird because I thought they fixed that.

It is because in your animation the position of the bones are offset from their original position roblox does not change animations based on the characters orignal size these xyz offsets are respected. So when you are making animations you should either not use position or use it very liberally. Especially in this use case. since the model is changing size.