Anim Dynamics Bouncing

Hey guys

I try to use the Anim Dynamics Node on a leather stripe.
In the simulation and In-Game also, the leather stripe is always bouncing and jittery and if i move the character the stripe is attached to, the whole stripe gets absolutely messed up.
Ressources on this Topic are very rare and either not helpful or in the videos case everything works but not for me.
I also took a look at the Revenant Character from Epics Paragon, because he also has Anim Dynamics, i copied the settings and tried everything but couln’t make it work.
I got the same behavior by using only the physics with simulation → bouncy and stretching wildely.
The mesh has been done in Blender. Scaling settings are all ok, the physics shapes are created correctly with default settings.

Has anyone else also experienced this and could solve it?


Stripe02

Thanks in advance
Inmeining

Hey guys

i think i solved it. I currently work on a small documentation which i will upload in this thread so everyone else who has problems with this can check it out.

I just need some time to set it up.
I will post it, as soon as i finished it.

1 Like

ok, i finally found the time to make a guide / tutorial.

So here’s how i got it working
First you’ll see the final setup, then i will explain everything i did, step by step

Step #1 – Simulation Space
I choose the option «World» due to someone was saying it won’t work otherwise ingame.

Step #2 – Chain

I checked this option to be able to create a simulation on multiple, connected bones.

I’ve set the third bone as starting point fort he simulation, because i didnt want the other Bones to move and distort the mesh. As «chain end» i simply selected the last bone of my chain.
02

Step #3 – Box Extends

This is the most important one to control the simulation behavior. The shape of this boxes defines the «weight » of the bones which directly has influence on the flexibility.
A chain with 5kg per chain-link will behave differently than a small one with just a few gram per chain-link.
For this i can’t really give you advice. Its just try and error.

Step #4 – Local Joint Offset

This one works directly with the Box extends. It sets the center-position of your simulation volume. You HAVE TO give an offset, otherwise your chain will swing wildly in all directions because your center oft he volume is right at the Bone joint. I’ve set it in the local Y axis and moved it a little bit over the center of the corresponding bone.

Step #5 – Advanced: Linear-/ Angular Damping
I can’t really say anything about those. The behavior just felt a little bit better with those two set.
04

To be able to change those values, you have to check «Override Linear / Angular Damping» Options, which are just below the Values.

Steop #6 – Constraints

In here you can define some limits for Linear and angluar Movement per Bone.
i limited the angular movement for each bone from -30 up to +30 degrees. A single bone won’t be able to rotate past this value
Also i’ve set the Y-Axis as Twist axis.

Step #7 – Collision

Now to the collisions. The collision wont work with your physics asset or other blocking volumes you’ve set inside your skeletal mesh.
If you are following my steps, you also might have noticed, a bouncy/jittery movement, which goes wild sometimes while playing.
Well, i couldn’t get rid of it completely, but at least i could get rid of the massive stretching.

Step #7.1 – Collsition Type

As collision type i choose a custom sphere with a collision radius of 3.0, nothing to big, because my asset is very thin.
06

Step #7.2 – Spherical Limits

With the spherical Limits we can define either, if it is INSIDE a sphere and can’t get out of it or if it is outside a sphere and cant «penetrate» it.

I created 4 spheres, the first one set to «inner» with the root bone as center of the sphere (the big one). This prevents the asset from stretching, so i’ve set the radius to be just a little bit over the end of the last bone in the chain.

The other three Spheres are all set to «outer» and are all the same, and placed just below each other.
With those i fake the collision with the leg right next to my asset. This won’t adapt to the leg’s movement while running, but at least for me, this worked well enough. The radius of those spheres was try and error, until i had it more or less as desired.
07

Step #7.3 – Planar limits
Planar limits works like a blocking volume but just as plane. I used it to prevent my asset from swingig above a specific point, in my case above the hips.
08

Conclusion

As i said, i couldn’t get rid of the small bouncing and sometimes, mostly when i begin to run, the asset is for a short amount of time jittery, but mostly this vanishes.

There might be a better solution than mine, a better way to set it up, to get rid of the bouncing completely, but i wasn’t able to find out.

I still hope my solution helps other ones and saves you some time :blush:

4 Likes

For whatever forked reason, increasing the Inertia Tensor Scale worked in stabilizing skeletal meshes when simulating over physx.
You can try and see if there is a similar Chaos option of some sort.

Realistically, that’s never been what the Tensor Scale is supposed to be for, so keep it in mind.

It’s normal to have to fine-tune anymdynamics, Phat, or other things between engine versions. That’s why normally you don’t change engine version on an active project unless you really know what you are doing.

You may also be able or have to drive the animation via control rig if you need specific behavior when at the end of a limb.

Simulation Space should be what the values are calculated in. World or Local (mesh space) should both work.

Thanks for your answer

Sorry, english isn’t my native language.
Do i understand you correct: The anim dynamics aren’t made to be used for this kind of wiggle and hanging stuff?
I assumed it, because it is also used on the paragon characters.

Anyway, your reply kept me searching for another solution and finally i found it.
The reason i didnt just use the physics asset with simulation turned on was because after some time of doing nothing, the location of the kinematic bone froze / fell asleep and didnt wake back up, even after i changed the according setting to prevent it.

But in this thread:

i found the solution / someone else did it.
As described in the Thread, create a “custom physics material with sleep linear/angular velocity set to 0”.

This worked perfectly for me, so this thread can be closed.

1 Like