I have attempted to hook the corners of a square piece of cloth at the 4 corners so that they can be moved. Below, the images show the vertex groups. "v1" to "v4" corresponds to each of the corners (proportionally weight painted) which are hooked to 4 empties. "pin" corresponds to the 4 corner vertices alone which are pinned as a group. When sim is played, the 4 corner vertices deform disproportionately as in figure. What am I doing wrong? Also if I attempt to move one of the hooks while actually running the sim, then when the next loop plays the sim repeats itself irrespective of any hook motion.
Ok I think Nathan has solved the problem. Here are 2 other methods:
First an alternative with empties:
- Select each corner vertex and hook it to an empty (CtrlH > Hook To New Object).
- Select the 4 corner vertices and create a group that will be the pin group of the cloth simulation:
- Don' forget to put the Cloth modifier on the bottom of the modifiers stack, under the 4 Hook. Keyframe the empties, play the animation, bake if necessary:
Or you can use bones:
- Create an armature made of 4 bones, parent the cloth object With Empty Groups, select the armature, shift select the cloth object, switch to Weight Paint mode, paint a small surface on each corner for each bone:
- Create a new vertex group for the cloth pin, assign it the 4 corners:
- Keyframe the bones in Pose mode, play the animation, bake it if necessary:
I had no problem making cloth physics work properly with 4 hooks on a plane in 2.90. Here are the steps I took:
- Create a plane, subdivide it 3-fold in edit mode.
- For each corner vert, ctrl-h -> hook to new object.
- Create a vertex group named "pin", select all four corner verts, assign them to that group.
- Change the falloff of all hooks to "no falloff" in modifiers tab. Create cloth physics. Set the pinning group to "pin". Make sure that the cloth modifier is the last (bottom) modifier on the modifier stack.
Using vertex groups instead, assigning all vertices to all hooks and creating vertex groups to limit their influence, I again have no problems, although in this case, the ctrl-h interface is the easiest way to make your hooks and there's nothing to gain from vertex groups.
The reason that the mesh fails to react to the hooks on the second loop, or reacts incorrectly, is because of the physics cache. Blender isn't smart enough to realize that moving the hooks invalidates the cache. You can reset the cache at any time by starting and cancelling a grab operation on the cloth object.
File below contains the version created with vertex groups.