So, I’ve been playing around with Ragdoll for a few months now and (think) I have a fairly firm grasp of the fundamentals. However, I’m still yet to find the ‘magic formula’ for what I think will be one of its most simple and potentially most useful cases: adding keep-alive to a character on a moving platform. I’m thinking specifically about something like standing in the middle of the deck of a ship. Not holding onto anything, just swaying with the motion of the vessel, but not veering too far from its initial pose.
I’ve tried numerous combinations for this but I wondered what you pro’s would recommend. I’ve tried tinkering with weld constraints, maya constraints, setting certain markers to kinematic, adjusting stiffness and damping all over the shop… but I still haven’t found a truly pleasing solution. I’d love to hear what solutions others have found for this.
I’m loving the pin constraint workflow, I try not to adjust individual markers, and keep limbs in groups for Pose Stiffness
A Pin Constraint only effecting the rotation will try keep that marker in that world rotation - great for stabilizing a character . I use the pose Stiffness to keep the character more intact and less floppy- the Combination of a strong Pin and Pose Stiffness keep this character upright , there are no other constraints or spaces in this video .
The new attach constraint is going to as its like pinning a marker to another one maintaining its relative position and rotation animated or not.
Animating a person patting their head and rubbing their tummy while being shaking around will preserve those hand positions relative to the head and tummy using the Attach Constraint
Namely, if you left your character in T-pose, on a moving platform, with high-enough stiffness on his group such that he’s able to hold that T-pose, and give him a Pin Constraint on his hip that only bothers with rotations, then he’ll fall with gravity but won’t fall over. If he’s animated, he’ll keep moving with animation, but retain whatever orientation your Pin has.
It’s this technique here, and I think it’s what you’re after.
You’re such a pair of legends, honestly. Out-doing each other with your speedy responses!
This is great, thanks guys. I do have the added complication of requiring this to work on a platform that’s travelling quite quickly through the scene, so I think I need to keep my pin constraint’s translation active too (EDIT: and parent constrain the rPrin to the platform) I’ll try a few things and report back.
Could always extract the rotation and a get a fraction of the translation onto a locator sim on that then bake and constrain to the moving thing, in theory you should have all the nice wobble on the character and not have to worry about the translation .
Try turning Pose Damping all the way to 0. For anything worldspace, including pin constraints, damping will try and stop things from moving about in the world. And I would probably not use Translation Motion here, doesn’t look like it’s up to the task.
The Ragdoll hip has Pose Stiffness = 0, this leaves the hip following the ground by translation only
The Ragdoll hip and head has a Pin Constraint each, unparented, with Translate Stiffness = 0, this makes the hip up-right as the ground spins about
And that’s pretty much it. The speed at which the ground + rig is moving won’t matter here, since their connection is a reparenting. That’s subtly different from having him following the ground with a Pin Constraint.
I’ve uploaded the scene above for you to play with and look at the settings. The two distance constraints are made the the ground, rather than those spheres. I added the spheres to visualise where they were attached. In retrospect, actually assigning and constraining to the spheres would enable you to move the sphere around which would move the constraint pivot around, which would have been a little easier than fiddling with the parent and child offset.
Get rid of any Translate Motion = Soft from groups and individual limbs, you’ll only need it between the hip and ground
Get rid of fingers
For fingers, you can either set their Enabled = Off or their LOD = 1. Both of these will non-destructively exclude fingers from the simulation, which with both speed things up and make things a lot more robust.