Cloth physics simulation with SpringBoneSimulator3D

Godot Version

4.4.1

Question

I’m trying to set up a cloth simulation for my character’s coat. I’ve created something that looks like it could work, but there’s one issue with the current method.

Right now, I have a character rig with bones on the lower part of the coat, where I’m using SpringBoneSimulator3D. During a simple walk animation, it works pretty well. However, when I start the game and begin moving or rotating the character, the character’s movement is also applied to the spring bones. As a result, the coat behaves more like a cape rather than a coat. :smiley:

So, my thought was: is there a way to exclude the character’s root movement from affecting the spring bones? Ideally, they should be influenced only by the animation and the movement of the Skeleton3D itself.

An even better solution might be to have control over how much the root movement affects the spring bones—so I could limit or completely disable the root movement’s influence, and perhaps partially allow root rotation to affect them for a more realistic result.

This image, for example, shows how the coat behaves when moving diagonally to the right.

Looks pretty cool to me TBH.

2 Likes

Okay, I already found a solution! I just had to take a look at the Godot source code to realize I was simply blind and there is actually a setting to switch from world space to local space directly in the SpringBoneSimulator3D node :man_facepalming:.

image

This is result:
https://imgur.com/a/IzDrj2M

As you can see, the spring bones now react only to the animation and still preserve collisions with SpringBoneCollisionCapsule3D. I’ll probably stick with this setup, but it would still be nice if there were an option to adjust the influence and retain a bit of world space movement when needed :slight_smile:.

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.