Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Bug / Crash  Obi cloth does not properly work for models stitched to an existing skeleton.
#22
(16-05-2018, 07:12 AM)cubrman Wrote: You can ignore all the rest of my triad but please answer these questions:

1. Is it true that setting high skin radius and zero backdrops (both) turns a skinned particle into an equivalent of a non-skinned particle? If not, how can I achieve this (I basically need my shirt to ignore all collisions and still be pinned to a skinned model in some places)?

2. I need a You Shall Not Pass collider. I plan to specify my character collision with colliders myself and I need a collider that I can be sure that even if the world ends, there is no way in hell that a particle can penetrate that collider. Not even an inch. Please tell me how to set up such a collider. Yeah and particles must never get stuck in that collider.

3. How is your cloth receiving the skinning information? Does it read the animation data or the actual final positions of the bones once the Update hits? I use Final IK to reposition my bones in LateUpdate and right now the cloth is not responding to that (the solver is set to LateUpdate). That is either because it only reads animation data or because it updates before the FinalIK updates. If the latter is true, there is a high likelyhood that I would need to Update the cloth manually, so please tell me the right way to do it (only Update the solver or both: the cloth and the solver).

Hi,

1. Zero skin radius and any backstop = fully animated particle. No simulation will be applied to it, as zero skin radius means it cannot separate from its animated position.
High skin radius and zero backstop (which is what you asked) = fully simulated particle, it will completely ignore the animation and will be able to penetrate the animated shape.

2. This is -and will forever be- essentially impossible in any computer simulation, in any engine. That's what skin constraints (and their equivalents in all other cloth simulators) were invented for.

Computers treat time as a discrete quantity: from a frame to the next a small but measurable amount of time passes (at 60 fps, 1/60th of a second). During this time the character animation has advanced and moved colliders around. Consider a very thin object (like a shirt sleeve) and a relatively thin collider, like an arm inside the sleeve. The arm has a "punch" animation, during which it moves from point A to point B (40 cm away from each other) in 1/30th of a second (2 frames). This means on frame 1 the arm will be inside the sleeve, and on frame 2 the arm will be 20 cm away from its starting point, and completely outside the sleeve. At no point in the animation has it collided with the sleeve, since it was teleported from A to B almost instantly, so the cloth hasn't even registered any collision.

This issue is called tunneling and is inherent to computer simulations. It can be alleviated using continuous collision detection (abbreviated as CCD) which Obi performs by default, but all moving objects involved in a collision need to have a velocity vector (and animated bones don't).

3. Simply change the order in which FinalIK updates, in Unity's script execution order window. It should update before Obi Solver and Obi Cloth, so that they grab the bones after FinalIK has modified their positions.
Reply


Messages In This Thread
RE: Obi cloth does not properly work for models stitched to an existing skeleton. - by josemendez - 16-05-2018, 11:47 AM