Attaching a zipper to animating cloth
-
I have a cloth animation of a pillow case that has the inner pillow being removed from the case. I'm trying to add a zipper, made up of a cloner and spline, to the seam where the pillow emerges. When I merge the zipper geometry to the pillow case, the zipper becomes distorted by the cloth physics.
Is there a way to attach the zipper so that it retains its geometry, while its spline follows the animating edge of the cloth?
-
Hi kariomart,
Why is that kind of problematic? You have the source of the stiffness in the Zipper or the Pillowcase. Not in both.
You don't want to have the Zipper changed by the fabric, but you want it to follow the fabric simultaneously? Do you see the feedback loop that could happen?
Next, the Zipper should open and close, while not ignoring any Simulation.
This introduces new bi-directional "forces", and the simulation loop starts again. At one point, one needs to lead.
.Brainstorming here:
I would sketch out what I want to happen animate the Zipper accordingly (meaning manually, perhaps with a simulated pillowcase as a reference, I'm not in the mindset that everything can be solved by just tossing it into the Simulation, as Artidirection gets tricky at one point), and then use the Pillowcase with a Softbody and a Connector.
Since I know that those suggestions are often not wanted, and animation is wanted to be replaced with Simulation, I have found one way to get it done. /brainstorming..
Here is a suggestion.
First, based on the Zipper, the Pillowcase needs a vertex map to define where the fabric is stiffer.
The Simulation is cached.
This is then brought into a setup with a Correction Deformer to define the Zipper changes; I do this exaggerated in the example.
The Connect object is active, while an Alembic is calculated
This resulting Alembic is the main object now, the original can switched off (visible, and Enable is unchecked in the Softbody.The Alembic with a Selection (taken from the Original via Selection Tag) now defines the Zipper; since the area is stiffer, the teeth will not "crumble'.
This setup is a rough example.
https://projectfiles.maxon.net/Cineversity_Forum_Support/2025_PROJECTS_DRS/20250422_CV4_2025_drs_25_SIpz_01.zipMy best wishes for your project
-
Hi Dr. Sassi,
Thanks so much for the suggestions and project. I'm picking it apart, trying to understand everything and have a couple questions.- Why is the Plane inside a Connect object? I see that the Linear Fields don't work when it's turned off, but what is the Connect object's purpose?
- I see the function of both the Linear Fields, but I'm trying to understand the setup. The Vertex Map only has the Linear Field_Vertex (the gradient one) in its Fields and the Correction has the Linear FieldCorrection (the animated one) and Vertex Map in its Fields. Is the reason that the Vertex Map is defined only by the gradient of values, while the Correction Deformer is defined by both?
There's several new things I learned your response I'm trying to understand, but I also came up with a different solution that's way more time consuming but got me a decent result:
- Bake out the pillow case animation
- Use Edge to Spline on the opening of the pillow case (where the zipper will be) every 4 frames
- Use Pose Morph to animate between the Splines
- Use a Cloner Object for the zipper teeth and use the animating Spline as its path
Thanks again for the help!
-
Hi kariomart,
What pretty much every Gerator does is generate all new content newly, and so does the Connect Generator. With that all things get pulled into a new object here. Without the Correction Deformer, that setup wouldn't work as I wanted. Without the complete setup, most questions are more general, and harder to answer, as they need to work "in general", meaning including all possible variations, with a more or less complex interaction of several things that is difficult to estimate.
The Correction Deformer can work with just the one Field moving along the "cube-zipper", but to ensure that the influence will not reach too deep, the other Field protects the other "half" of the plane. It is optional.
That you found a solution is great.
My best wishes for your project.