[RELEASED] Ragdoll Animator 2 - Easy Body Physics

Construct physical rigs easily.
Unlock exciting new capabilities for your projects.
Set up your humanoid ragdoll instantly.
Use on animals and on any kind of creature models.

Check on the Asset Store

:zap: Bring physical behavior for your characters
Animate your models using physics, make them fall and get up seamlessly, apply physical hit reactions, and interact with environment in an easy, controlled way.

:star: Quick setup
Set up humanoid characters with just a few clicks. Set up other rigs with a lot of automatic assistance and scene gizmos. Tweak all settings with a clear preview of physical reactions.

:gear: Ease of use
A carefully designed GUI will help you quickly navigate between setup stages.
Check out tutorials for a quick dive into the Ragdoll Animator system.
Check additional documentation files for user helper methods and a list of extra features.

:comet: Use along with Unity physics components
Ragdoll Animator uses rigidbody and joint physics, so you can easily apply Unity’s components with ragdoll animator rig. Use spring joints to simulate a character attached to a rope. Use fixed joints to attach physical items to the ragdoll animator rig.

:writing_hand: Extra Features API
The plugin comes with an “Extra Features” API which allows you to apply custom scripts in Ragdoll Animator update loops without modifying the core code. This enables many cool behaviors, and you will find more than 25 extra features included in the release version.

:gear: Equipables API
Thanks to this API, you can attach helmeds / hand items to the ragdoll character, including their physics, and also apply custom heavyness of the items to influence the physical animation of the skeleton.

:gear: Helpful Utility Components
Ragdoll Animator 2 comes with additional components, like Magnet Points: for rigidbody manipulation, and a Joint Chains Generator / Single Animated Chain, which you can find really useful for designing custom physical interations.

:hourglass: Great Performance
Thanks to the plugin’s fidelity, you can switch On and Off features you don’t need to save performance. You can constantly preview cost of each Ragdoll Animator within the inspector window by hitting green debug icon. You can enable camera view and distance-based or level of detail optimization using Extra Features.

Tutorials Playlist

3 Likes

Hello,

thanks for your asset, it seems really helpful :slight_smile:

I have various human rigged creatures in my game. I tried on a troll, works pretty good and it was easy to set it up. So far so very good!

But I also have “Uma” in my project:

UMA 2 - Unity Multipurpose Avatar | 3D Characters | Unity Asset Store

[UMA - Unity Multipurpose Avatar on the Asset Store! | Page 256 - Unity Forum]( UMA - Unity Multipurpose Avatar on the Asset Store! (Part 1) page-256)

I am using prefabs with their component “DynamicCharacterAvatar” which creates the mesh and rig in runtime. Do I have any chance to use Ragdoll Animator 2 on those? Or is there a plugin or extra or something? That would be really great!

Thanks and have a nice weekend :slight_smile:

And a further simple question: How do I set RagdollAnimator.AnimatingMode in runtime by script? It only has a Get no Set and I see no void to set it?

Thanks again :slight_smile:

Hello, thank you!
You can access to the AnimatingMode by myRagdollAnimator.Settings.AnimatingMode or use myRagdollAnimator.**User_**SwitchFallState() method.
I will take look on the uma integration, but probably in next weeks, not this one.

2 Likes

cool

The Unity 6 bug appears to be fixed. My character is still jittering though, however this might have something to do with the kinematic character controller that I’m using. Could we please confirm that the issue is resolved and remove the warning if so?

Thanks for report, yes I saw it is solved, but there is not yet #if UNITY_6000_0_9_OR_NEWER preprocessor directive to disable message in the future versions as well. Warning will be hidden when next unity 6 version releases.

I checked plugin with kinematic character controller and it works, just remember about layer based collision to be set like in the tutorial 3:26
https://www.youtube.com/watch?v=qG6uD2B5_Kg

1 Like

hi. first, this is a very nice system.

there are some problems with the 1.02 version (haven’t noticed it in 1.01). the below2022 demo scenes don’t work in U2021, missing components in prefabs, materials. the good things is, the default demo scenes work in U2021 but the collider sizes in demo scenes are off.

and now my issue (I’ll describe the whole process, so you’ll see where I go wrong)

I tried it on my controller (Renegade), but didn’t build character from scratch w ragdollAnimator2, but used the already set colliders and it worked, mostly.

the limits preview work, shooting balls at it works.
two things that look off: 1. the feet are dragging, as if they collide w the floor 2. when decreasing muscle power, only the upper body goes ragdolled.

then I noticed there’s only one character object in scene and no ragdoll (pre-generated dummy), I hit the use pre-generated dummy button, it created the new character object. the foot issue goes away (though I see a bit of sliding when moving). decreasing muscle power same issue as before + no collision with hip and legs.

what am I doing wrong?
ragdAnim

Hello, thank you!

Demo scenes was made in unity 2022 and unity’s back compatibility is broken.
You will find “Ragdoll Animator 2 - Demos - Unity Versions Below 2022 fix” package in the Ragdoll Animator’s directory, to import after importing default demos.

This is not issue, it works as it should.
Legs are being drag because it is natural behavior for the default setup. You can use kinematic feet Extra Feature to keep legs on the ground (like in the tutorial: 8:15 https://youtu.be/_fVuGlojaXk?si=BwGkkAwELWTFxqqP&t=495)
Character is not falling because it is in Standing animating mode, and anchor attach parameter is set to high value.

1 Like

yeah I noticed then the kinematic feet helper. works nice.

the anchor bone attach value at 0 will make the character fall to ground, so all good.

many examples, but an API reference would be helpful to script/extend things. all around great plugin.

Hi,

I am working with UMA (see links above) which are generated by runtime.

I tryto add RagdollAnimator2 during play via script when the UMA was generated and want to have the default setup:

            RagdollAnimator = gameObject.AddComponent<RagdollAnimator2>();
            //RagdollAnimator.Settings.PreCalibrate();
            RagdollAnimator.TryFindBonesAndDoFullSetup();
            CrashRagDoll(RagdollAnimator);

CrashRagDoll sets my parameters when it crashed the ground, still working on that.

But I get an exception in TryFindBonesAndDoFullSetup, how can I do it via script?

Thanks a lot! The error log:

NullReferenceException: Object reference not set to an instance of an object
FIMSpace.FProceduralAnimation.RagdollBonesChain.AutoAdjustColliders_Core (System.Boolean isHumanoid) (at Assets/FImpossible Creations/Plugins - Animating/Ragdoll Animator 2/Core/Ragdoll Handler Partials/RagdollBonesChain.Colliders.cs:63)
FIMSpace.FProceduralAnimation.RagdollBonesChain.AutoAdjustColliders (System.Boolean isHumanoid) (at Assets/FImpossible Creations/Plugins - Animating/Ragdoll Animator 2/Core/Ragdoll Handler Partials/RagdollBonesChain.Colliders.cs:14)
FIMSpace.FProceduralAnimation.RagdollAnimator2.TryFindBonesAndDoFullSetup () (at Assets/FImpossible Creations/Plugins - Animating/Ragdoll Animator 2/RagdollAnimator2.cs:202)
PlayerController.Crash (System.Boolean addVelocity) (at Assets/Scripts/PlayerController.cs:628)
PlayerController.OnCollisionStay (UnityEngine.Collision collision) (at Assets/Scripts/PlayerController.cs:552)
UnityEngine.Physics:OnSceneContact(PhysicsScene, IntPtr, Int32)

Hello, sorry for the late reply.
Before doing RagdollAnimator.TryFindBonesAndDoFullSetup();
you need to assign BaseTransform (which is automatically assigned through GUI when adding component in the traditional way)
like: RagdollAnimator.Settings.BaseTransform = gameObject.transform;

1 Like

Thanks for the hint, that helped. :slight_smile:

I still have one problem left now (for both the uma where I use TryFindBonesAndDoFullSetup and alle other cretures where I manually added a sceleton and set colliders like in the tutorial) : when my player falls, my code:

    if (RagdollAnimator != null)
    {
        RagdollAnimator.enabled = true;
        RagdollAnimator.RagdollBlend = 0.42f; // 0.3 too less 0.66 too much
        RagdollAnimator.Settings.AnimatingMode = RagdollHandler.EAnimatingMode.Falling;
    }

gets me an exception here, what do I have to set in addition, or is there a better way to switch from animation to ragdoll?

Thanks and have a nice weekend. This is a great asset by the way. Got it now working with uma too and also other creatures… :slight_smile:

Not 100% sure if it will solve the rest, but it seems it needs initialization before changing AnimatingMode value. So after enabled = true you can call something like: myRagdoll.Settings.Initialize(myRagdoll, myRagdoll.gameObject);

1 Like

Hi,

Another great asset, so much better than what else is available.

One question - I may have missed this, but how can we copy the setup from one character to another? Is that even possible? I have a number of different but very similar characters and this would speed things up a lot.

Thanks.

Thank you!

If both characters are using the same skeleton, you can copy construct settings from one to another by clicking on the icon on the left to the “Use Pre-Generated Dummy” button under Setup/References bookmark and selecting “Copy Chains Setup Settings From Other Ragdoll Animator”.

But to copy all settings except construct settings, there will be preset system added in the next update (this week)

1 Like

Hey there, I’ve been using Ragdoll Animator 2 with relative success but I’ve encountered a small issue and I’m not sure what I can do to solve it.

Following the directions for Ragdoll Actions in the docs, I’m able to make my character fall by changing its state. If I wait until the character is finished falling and then reposition my character controller to the ground hit point, then everything works as expected.

However, if I reposition my character controller as the ragdoll is moving, I get strange behavior which causes the character to teleport the next time I update its state.
I recorded this video to showcase what I mean: https://youtu.be/6Md5rLhdxsw
Do I need to avoid moving my character while the ragdoll is active?

Hello.

So you’re switching from Standing to Falling mode when rock hits?
Ragdoll dummy should follow character position during Standing mode.
Can you check scene view (with selected RagdollAnimator object) if character position is followed?
Maybe you set Anchor Bone Attach to zero which causes character to fall even in standing mode?

It also feels like character movement script needs to reset its target rotation on get up.

Have you seen this tutorial?

It is focusing on the get -up related stuff.

I’m switching from Off to Falling mode when the rock hits. Does it need to go OffStandingFalling?

In the scene view, the ragdoll doesn’t appear to be following the character, and when it transitions to falling it jumps back to where the ragdoll is. Is there a way to force the ragdoll to position itself at the character position?

I’ve watched the video and looked through the Demo_Ragd_AutoGetup demo, they were really helpful getting me as far as I did!

Hm I wasn’t testing too much Off → to Falling/Standing, in most cases I am using Standing instead of Off (Standing for body parts collision + move physics dummy colliders along with character all the time)

I thought that off to fall transition is causing your issue, but I tested it and it works properly on my side.

Maybe you call some event for your movement controller in extra features and it’s moving character?
Are you using Repose Base Transform extra feature? Maybe it is conflicting with one of your scripts?