I attached two vertex pins and then two hooks for a cloth simulation on a plane. When I move the hooks, the cloth stretches the vertex's connected edges to the location of the hook, making the cloth look stretched. How can I stop the hook from stretching the edges?

This a screenshot of the first couple frames of the cloth simulation. The left hook is unmoved and correct. The right hook has been translated left.

enter image description here


1 Answer 1


This is likely related to https://blender.stackexchange.com/a/83096/29586 - ie, the sequence of the modifiers in the modifier stack. Ensure the Hook modifiers are above the cloth sim modifier - otherwise the cloth will apply first (to the unmoved vertices) and then the hook modifiers will move those vertices after the sim - rather than the sim taking account of the new location of those vertices.

EDIT I've put together a test and this is working as I would expect - ie, with the hook modifiers 'above' the cloth simulation. Here's the setup :

cloth - pinned

The 'cloth' consists of a subdivided plane. I have added a Vertex Group named 'pin' and assigned two vertices on the top edge to it. I selected each of these same vertices in turn and used Ctrl+H to 'Hook to New Object' to create two new empties hooked to those vertices. Note : It's important to use the exact same vertices for the vertex group as is assigned to the hook.

Using keyframes I animated the right-hand empty.

moved vertex

This produced the following animation :


This only works with the hooks above the cloth simulation in the modifier stack.


Blend file included

  • $\begingroup$ Unfortunately, this is not the case. The cloth sim is at the bottom of the modifiers stack. If moved to the top, the hook will move the vertex but not affect the rest of the simulation. When at the bottom, the cloth sim performs the behavior above. What's frustrating is the hooks will move perfectly while the sim is running and affect the cloth sim as expected. But once the sim resets, the stretched edge effect above occurs. $\endgroup$ Commented Feb 15, 2018 at 13:27
  • $\begingroup$ Hi @xcelspreadsheet - I have performed a test and find this to work. This appears to be working correctly with the Hook modifiers above the Cloth sim in the modifier stack. I've updated the answer with the specific steps taken and have included a Blend file. I'm not sure what you mean by 'once the sim resets'... are you perhaps moving the vertex manually while the simulation is running rather than keyframing the animation - that would certainly cause problems as the animation would effectively 'bake' as it ran through the first time and would ignore changes as it looped back around. $\endgroup$ Commented Feb 15, 2018 at 22:43
  • $\begingroup$ I was moving the vertex manually using the hook attached to the empty, yes. That explains it! Thank you for taking the time—it helped a lot. $\endgroup$ Commented Feb 17, 2018 at 3:29
  • $\begingroup$ How did you connect the vertex to the Empty object, even though you did not assign the vertex group to the hook modifier? $\endgroup$
    – bakuiseok
    Commented Feb 11, 2020 at 14:03
  • $\begingroup$ @bakuiseok In Edit mode you simply select the vertex you want to hook and trigger the ‘Hook to New Object’ modifier as described. This automatically creates the hook on that vertex and creates the empty for you. You do not need to manually create a vertex group. $\endgroup$ Commented Feb 11, 2020 at 21:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .