I'm currently playing around with getting an animated character to manipulate a piece of cloth, e.g. throwing a table cloth over a table: At the beginning the character is gripping the cloth. The vertices being gripped should obviously not be subject to cloth simulation (a.k.a. be "pinned" to the character's hands). However, once the character lets go of the cloth those vertices should again be free to move wherever the cloth sim takes them.
I already found out that cloth collision detection alone does not appear to be good enough to simulate the character's grip on the cloth: It either ends up slipping off of or sticking to the character.
I then played around with rigging the cloth with armature bones. I have one bone per pinned vertex and assigned appropriate weights in addition to the pinning group. This generally works a treat. I can fully animate each pinned vertex individually and the rest of the cloth gets simulated correctly. This way, my character can already wave the cloth around.
However, this does not solve the picking up or letting go part of the problem. I had hoped that there might be some way to animate the influence of the pinning vertex group but so far haven't found a way to do so. Is there anything I've missed?
How would you go about this?
I haven't actually tried yet but I would assume that simply switching to a duplicate of the cloth object (one without pinning) at the moment of letting go would not give the desired result as the second sim cannot be primed with the vertex velocities at the end of the first sim - or can it?