Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  How to low the particles on skinned cloth
#1
Hi. I used this tutorial (https://www.youtube.com/watch?v=usXaFr6N630) to make a shirt with skinned cloth, which works perfectly, but I need to lower the particles. How can I do that? 

I tried to use the proxy setup, but it didn't work.

I tried to:

1. Using my low poly mesh with obi skinned cloth and the same mesh as a skinned cloth blueprint and using the high poly t-shirt as a render mesh with the proxy cloth; but that equal to error :

Code:
IndexOutOfRangeException: Index was outside the bounds of the array.
Obi.ObiClothProxy.UpdateSkinning (Obi.ObiActor actor) (at Assets/Obi/Scripts/Cloth/Rendering/ObiClothProxy.cs:128)
Obi.ObiClothRendererBase.UpdateRenderer (Obi.ObiActor actor) (at Assets/Obi/Scripts/Cloth/Rendering/ObiClothRendererBase.cs:204)
Obi.ObiSkinnedClothRenderer.UpdateRenderer (Obi.ObiActor actor) (at Assets/Obi/Scripts/Cloth/Rendering/ObiSkinnedClothRenderer.cs:64)
Obi.ObiActor.Interpolate () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:1221)
Obi.ObiSolver.Interpolate (System.Single stepTime, System.Single unsimulatedTime) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1670)
Obi.ObiUpdater.Interpolate (System.Single stepDeltaTime, System.Single accumulatedTime) (at Assets/Obi/Scripts/Common/Updaters/ObiUpdater.cs:132)
Obi.ObiLateFixedUpdater.Update () (at Assets/Obi/Scripts/Common/Updaters/ObiLateFixedUpdater.cs:80)

2. Using both the proxy and the high with skinned however nothing happens, in this thread, Jose explains why (http://obi.virtualmethodstudio.com/forum...ight=proxy)
   

3. Using the low poly version to render a mesh with obi cloth, like this tutorial (https://www.youtube.com/watch?v=IWXSJJAu0dM) but the mesh collider don't support deformations, Jose explains why in this thread (http://obi.virtualmethodstudio.com/forum...-3869.html)
   

also in this thread, Jose mentioned that it's possible to achieve using distance fields, I tried this way:

decomposing my character's body into independent parts and creating and distance field collider for each one, then creating my obi cloth with the low poly mesh like the tutorial, but just like the mesh collider, the distance field doesn't move with the skeleton.

4. I also tried using the softbody to generate a low particle blueprint using the high-skinned mesh, but the particles are generated randomly over the surface area and it doesn't work properly.


Also reading some random threads and not looking for errors I found this (http://obi.virtualmethodstudio.com/forum...-3843.html) where Jose claims that not only is Obi incapable of creating character clothing without skinning, but so are all the graphics engines.
   

Any Ideas of what can I do?
Reply
#2
(15-09-2023, 01:03 AM)betoxproduction Wrote: Hi. I used this tutorial (https://www.youtube.com/watch?v=usXaFr6N630) to make a shirt with skinned cloth, which works perfectly, but I need to lower the particles. How can I do that? 

You can just reduce the amount of vertices in your mesh. One particle will be created per vertex.

(15-09-2023, 01:03 AM)betoxproduction Wrote: 3. Using the low poly version to render a mesh with obi cloth, like this tutorial (https://www.youtube.com/watch?v=IWXSJJAu0dM) but the mesh collider don't support deformations, Jose explains why in this thread (http://obi.virtualmethodstudio.com/forum...-3869.html)
also in this thread, Jose mentioned that it's possible to achieve using distance fields, I tried this way:

decomposing my character's body into independent parts and creating and distance field collider for each one, then creating my obi cloth with the low poly mesh like the tutorial, but just like the mesh collider, the distance field doesn't move with the skeleton.

You need to parent the distance field colliders to each individual bone in the skeleton, otherwise there's no way it can move with it. This is how colliders for moving characters are usually done in games: by parenting simple colliders to each bone, instead of using a single deformable mesh collider (which would be extremely costly, so typically not supported in game engines).


(15-09-2023, 01:03 AM)betoxproduction Wrote: Also reading some random threads and not looking for errors I found this (http://obi.virtualmethodstudio.com/forum...-3843.html) where Jose claims that not only is Obi incapable of creating character clothing without skinning, but so are all the graphics engines.

Indeed, this is due to the extremely high cost of accurate collision detection between two deformable shapes: the character body, and the cloth. It's a lot simpler and considerably faster to just skin the cloth to the same skeleton used by the character body, and then limit the cloth to move within a radius of the skinned positions. This is what all game engines do when it comes to character cloth simulation. In Obi this is done using ObiSkinnedCloth/ObiSkinnedClothRenderer.

kind regards,
Reply
#3
(18-09-2023, 06:14 AM)josemendez Wrote: You need to parent the distance field colliders to each individual bone in the skeleton, otherwise there's no way it can move with it. This is how colliders for moving characters are usually done in games: by parenting simple colliders to each bone, instead of using a single deformable mesh collider (which would be extremely costly, so typically not supported in game engines).

Many Tks Jose,

I'm struggling with the distance fields,

I'm aware that the Obi collider only works if the mesh, or in this case, the joint has and native collider, right? So I use capsule colliders in each joint and create an Obi collider:
   

With this setup the dynamics works and the mesh collides with movement, but, as the manual says, the capsule colliders have low resolution, so I create a distance field in this way:

1.  Right-click in the assets folder, and create the Obi Distance Field.
2. In the input field, I put the forearm mesh and generated.
   

Then I go to the forearm joint, in the Obi Collider and add the distance field.

That was when my setup fails and the mesh passes through the arm.
Reply