[Studio Beta] Avatar Joint Upgrade: Enabling Physically-Simulated Characters

I’m having some issues with…
I have the beta feature & property enabled.

When playing with a StarterCharacter my motor6d’s don’t change to a AnimationConstraint.

But if I remove the StarterCharacter,
My normal roblox character does spawn in with the new behaviour?!

1 Like

I was just searching for info about this, have emissive textures been confirmed as on the way?

3 Likes

i cant find option tho my beta is enabled and studio reloaded

Is all of this compatible with ControllerManager

Hi Folks, you can use the new UIDragDetectors (currently in Beta) to implement a slider that lowers the MaxTorque like the one in @Homeomorph’s video.

Here’s an example world, feel free to steal it. There was some trickiness in there other than just setting the MaxTorque. (See comments in the MaxTorqueScript) Thanks to @Homeomorph for sharing the secrets; and now we share them with you!

Here’s the world:
MaxTorqueSliderDemo.rbxl (63.8 KB)

And here’s a video:

2 Likes

Yes, and in fact ControllerManager significantly improves the behavior.

For example simulated characters holding things may spin or slide with the legacy physics controller in Humanoid. With a ControllerManager, the spinning stops because we now properly compute friction with the ground.

2 Likes

When using the heavy run animation, it is too wobbly, and when i jump with the mage animation, i end up flopping over on to the ground. Is there any way to fix this?

3 Likes

To clarify what I said earlier:

If you want e.g. a ragdoll with muscles (i.e. AnimationConstraints) to stand up without any help, you need to accept a certain amount of jitter, depending on character proportions, overall number of links, and gravity. It seems like AnimationConstraints sort of greedily act on their own, rather than collectively figuring out the torques to apply such that all connected links together achieve the target pose.

If methods to “properly” fix this bring a large performance penalty, it may be reasonable to make the constraints incorporate a torque that just opposes gravity, since it’s generally mainly gravity that causes this instability.

Here’s a place containing some examples to demonstrate. See how that arm is jittering? (Note that you don’t see the jitter when you’re in the client view, since physics replication is at a low frequency.)

example_of_instability.rbxl (82.6 KB)

2 Likes

I still wait for physics step to be enabled for standard scripts

1 Like

What about when holding a tool and you try to turn in 1st person? Does it still lag behind?

Question, would setting attachment1 to nil achieve same results as part1 to nil? (I have a ragdoll system to migrate)

Yes, though AnimationConstraints have an Enabled property that you could use instead.

I think C stands for CFrame. As for 6D - I have no clue. My best guess would be 6 directions??? Idk

This has always been my dream lol

1 Like

this is SO AWESOME :sob:

Amazing update 11/10

I can’t get this to work with ‘Players.CharacterAutoLoads=false’.

I’m not sure if this means only ‘player:LoadCharacter()’ is supported or not.

Does someone know a way to make this work for ‘player.Character = …’ calls?

Excited for this! But setting AvatarJointUpgrade to Enabled makes my bike IKControls wobbly and the Head is in the wrong position (IsKinematic is left at false):

Expected behavior (old character joint system)

Current behavior

This only happens when the character “tucks in” at high speeds. I’m guessing this is because there are two IKControls with their EndAffector set to the Head:

  • HeadControl - ChainRoot = LowerTorso and Priority = 0, this is used to put the head in its intended position.
  • TuckInControl - ChainRoot = UpperTorso and Priority = 1, its Weight is blended from 0 to 1 to make the character smoothly tuck in. In the above video the ‘animation’ was already complete and TuckInControl’s weight was at 1.

Looks like a feature not a bug :sob::sob:

Wonderful.
Thank you roblox, for providing us with this amazing, very optional feature (kinematics can be set to true)
And improving on motor6d (kind of not, because it replaces it)
This is an amazing physics update, that I’ll be using.

This is some source engine ragdoll stuff