Animated array with cloth attached

Apologies if this isn’t in the right category. Sort of animation related I think?

I have an animated array of curtain hooks that I’d like to attach a cloth curtain to, and as the array grows/shrinks, it moves the cloth sim with it. I have the cloth pinned where the hooks go, and tried parenting it to the hooks, but no luck. I’m not much of an animator lol.

Ideally I’d have the freedom to move the array and the cloth would move with it realtime but assuming thats probably not possible so just a static curtain in the end will be fine. Any help would be much appreciated. Thanks!

Object parenting doesn’t deform a mesh-- it makes the mesh object follow the origin of the object to which it’s parented. You can’t get a mesh to change shape with parenting.

Are you using “hooks” in the technical Blender sense, or in the general, household item sense?

You want to use an armature or blender’s “hook” modifier to deform the pinned vertices in the cloth mesh, before the cloth modifier.

Make a curtain object and a bar object.

  1. Curtain in edit mode:
  • select faces that are attachments for the hooks (physical hooks not blender hooks)
  • make vertex group
  • make object constraint while still in edit mode with only the vertex group selected
    – child of constraint target (parent) is the bar
    – set inverse
  1. Curtain in object mode:
  • apply cloth physics
  • pin the vertex group in the cloth controls

In this example the curtain is folded by scaling the bar. You will have more control if you make each hook point on the curtain a separate vertex group constrained to its own cube.

curtainhooks.blend (1.5 MB)

1 Like

Hey, thanks for the explanation and the .blend, very helpful and exactly what I was hoping to achieve. However I’m having some trouble doing the last bit where each cube has it’s own constraints. For examples sake-

  1. I add 1 cube on each end of the cloth

  2. Select 2 faces on one side of the cloth and assign them to a vertex group and then with the faces still selected add constraints and use the proper cube as a target

  3. Repeat that for the other side of the cloth

  4. Select all vert groups and create a third group for pinning the cloth? This is where I’m stuck, as pinning all of them, moving one cube moves the whole cloth, and if I don’t pin all groups, the cloth just falls where it’s not pinned.

Oops. I thought the constraints could be applied to vertex groups. Looks like they only effect the entire object.

I experimented with other ways and got individual control with hooks. The cloth has a hook modifier and a vertex group for each block. Each hook modifier connects one cube to one vertex group on the cloth. Moving a cube moves only its “hooked” vertex group.

This is fussy though. Each time I run the simulation and move cubes I have to clear the cloth cache or it won’t recognize new block movements. Too fast movement of the cubes causes artifacts like displaced polygons.

Yes.

The shrinking curtain rod method will work for me most of the time but this hook method is more versatile.

curtainhooks2.blend (1.4 MB)

1 Like

All good, this method does indeed work! Did run into the same issues though, no biggie. Will probably use a mix of the two methods. All the help is much appreciated, thank you!