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

Oh great, two weeks after I spent hours working on a ragdoll system and Roblox does it themselves and the update breaks my system. Fun. :D…

Nah, I’m joking, nice update Roblox. It really helps with the Ragdoll problems I used to have…

(nvm, i tested it and some of the problems that i used to have are actually defaults for the update, its buggy. but with future bug fixes it would probably work well :] but for now I’d only recommend it for a simple ragdoll effect and nothing for games that depend on ragdolls like mine.)

yoooo no way lets go
me try this out soon

Would we be able to use this with IK Controllers as well? (Example: character’s head uses IKControl to LookAt certain cframe, but the animationcontroller limits torque applied, creating a ragdoll effect)

(Tried testing this out, and it kind of gives off an effect)

This is awesome!!! Is there a way to enable it for live experiences? it doesn’t seem to work on my place when I published it, only in studio

image

1 Like

I’m at a loss here, been trying to see if this new feature works, and for some weird reason it doesn’t.
I have enabled the beta feature, hell even dragged some scripts from the demo they’ve provided but still nothing, not sure if I’m missing anything. I really do enjoy messing with it on the
demo place.

IT was working, apparently, check F9 and noticed it was all running well, I should have checked that first lol. But it’s not acting in the similar fashion as the demo place’s, while ragdoll at high speeds work fine and dandy, something feels off.

Ok, figured out everything. We good now :slight_smile:

1 Like

The fact that it’s enabled in live mode for the demo place got me confused, so I thought there was a way to enable it on my side as well

I guess I will be waiting for phase 1 then, when the feature exits studio beta

Likely Coordinate, like in CFrame.

RAGDOLL ENGINE? thank you roblox

I know it isn’t full on Root-Motion yet, but is there anyway to circumvent the players flying into the atmosphere when playing animations that take the LowerTorso away from the HumanoidRootPart?

This is the behavior from turning off IsKinematic for the LowerTorso.Root AnimationConstraint.

Original Animations


Behavior


Which joints are set to non-kinematic here? In my experience, the wobbling can happen when running with the Root or Waist set to non-kinematic. I recommend keeping Root and Waist set to IsKinematic = true.

This is because the HumanoidRootPart is the main thing that moves roblox characters. The rest of the body just “gets dragged along”. The UpperTorso is a relatively heavy mass, so if the HRP is whipping it around rapidly the character body will flop around more. Conversely, if you keep the Root and Waist kinematic, the only parts flopping around will be the head, arms, and legs.

In the demo place, I made only the arm joints non-kinematic when walking around, which ends up being much more stable. Also, using the ControllerManager gives even more stability.

Those steps of opting in only add the new joints to your avatar. To see an effect, you’d change the IsKinematic property of the joints with a script. You can take some demo scripts from the example place.

1 Like

Ah, so that’s what I was missing, thanks man!

This is a really cool update! I have a couple of questions though.

When it comes to this new system, is it meant to be used primarily on the new physics based controllers? I feel like it would be better there since its all physics forces and such. In addition to this, is there any plan on having root motion as can sort of “mimic” it with certain settings but its not predictable?

Will we also get smoother interpretation of the physics? When I tested it using the local server, with two clients, it appears really choppy.

It’s actually something I once dealt with before but in this case I do not know of a solution. Before I would have to weld the RootPart to the Torso and disable the Motor6D that connected them to make it interpret smoothly. Probably due to humanoids having some weird hardcoded networking or something… Either way, I would love to see a fix or at least a work around.

AnimationConstraint are meant to be a generic physics Constraint. They work with the old and new Humanoid controllers, and on non-Humanoid parts! Not specifically related to the Joint Upgrade, we do want to migrate all characters to the new controller over time because it’s generally more stable.

Yes! We’ve explored a few ways to fix this and hope to ship something early next year.

3 Likes

do IKConstraints work with this

Of course. That’s shown in the announcement post too.

This is also the case with R6 models, the RootJoint’s CFrame is not zeroed out, I had to remake it with proper CFrame values in order to dynamically animate the RootJoint using code.