Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How did they do with with Obi Cloth?
#1
I'd like to put together something similar, can you give me a high level explanation on how they achieved this please:
https://www.youtube.com/watch?v=mpKB8z-lT8k

Thanks.
Reply
#2
(05-03-2026, 03:26 PM)AdamZ101 Wrote: I'd like to put together something similar, can you give me a high level explanation on how they achieved this please:
https://www.youtube.com/watch?v=mpKB8z-lT8k

Thanks.

Hi!

The important part is to set up the character with a single collider per joint, similar to how you would setup a ragdoll: capsules or sdfs work well. This ensures the character can generate collisions while its individual joints move and deform the body. Using a single collider for the entire body won't work for obvious reasons - the only collider that would conform to the shape of the body is a MeshCollider, but MeshColliders cannot deform.

Once that's done it's just a basic cloth simulation. Note you'll need to use ObiCloth and not ObiSkinnedCloth components, since skinned cloth constrains the cloth to follow mesh animation which isn't what you want here.

To attach the skirt to the waist in a detachable way, use dynamic particle attachments with a non-infinite break threshold.

To attach cloth particles to other particles (as is the case for the shirt buttons) use stitches.

Note that this method has a big limitation: only relatively slow animations work well with it, since it relies purely on collision detection to keep the cloth on the body. Fast, energetic animations (kicks, somersaults, etc) will cause tunneling.

kind regards
Reply
#3
Thanks for the suggestions. So I created proxy meshes for each bone, but I'm having trouble with the skirt clipping through the thigh.

Changing the Thickness on the Obi Collider works, but it "pillows" it out so there's a bulge. I've tried to double the skirt mesh's resolution, but that didn't help either.

Here are some additional settings.


Attached Files Thumbnail(s)
                                   
Reply
#4
(11-03-2026, 02:48 PM)AdamZ101 Wrote: Thanks for the suggestions. So I created proxy meshes for each bone, but I'm having trouble with the skirt clipping through the thigh.

Changing the Thickness on the Obi Collider works, but it "pillows" it out so there's a bulge. I've tried to double the skirt mesh's resolution, but that didn't help either.

Here are some additional settings.

The screenshots (proxy-mesh-for-sdf) clearly show the collider is smaller than the body near the hip area, so the cloth will naturally clip trough it. Make sure it follows the surface of the mesh as closely as possible.

In addition to this, the solver's synchronization mode is set to "asynchronous". This introduces a 1-frame delay with respect to physics and animation. It would be better to use "synchronous fixed" mode and set the Animator's update mode to update physics as well. See:
https://obi.virtualmethodstudio.com/manu...olver.html
https://obi.virtualmethodstudio.com/manu...eloop.html

kind regards,
Reply
#5
(11-03-2026, 05:59 PM)josemendez Wrote: The screenshots (proxy-mesh-for-sdf) clearly show the collider is smaller than the body near the hip area, so the cloth will naturally clip trough it. Make sure it follows the surface of the mesh as closely as possible.

In addition to this, the solver's synchronization mode is set to "asynchronous". This introduces a 1-frame delay with respect to physics and animation. It would be better to use "synchronous fixed" mode and set the Animator's update mode to update physics as well. See:
https://obi.virtualmethodstudio.com/manu...olver.html
https://obi.virtualmethodstudio.com/manu...eloop.html

kind regards,

Thanks, those settings helped.

My next question is I would like to be able to move the skirt by clicking on it with my mouse and dragging it around. I'm assuming I should use the Obi Particle Picker and Obi Particle Dragger. How do I use those?
Reply
#6
(13-03-2026, 07:38 PM)AdamZ101 Wrote: Thanks, those settings helped.

My next question is I would like to be able to move the skirt by clicking on it with my mouse and dragging it around. I'm assuming I should use the Obi Particle Picker and Obi Particle Dragger. How do I use those?

Hi!

Simply add the ObiParticleDragger component (the picker component will be automatically added and set up), then drag the ObiSolver to the corresponding attribute in the picker.

Then clicking and dragging the cloth should work (assuming you’re using Unity’s built-in input, and not the input system package or a custom solution)

ObiParticlePicker iterates over all particles in a solver when you click on the screen, and "picks" the closest one to the mouse cursor. It will fire picked/held/drag/release  events that you can subscribe to in order to perform custom logic. ObiParticleDragger subscribes to the picker's events, and implements a simple spring to drag the picked particle around.

Let me know if you need further help,

Kind regards
Reply