Control of Dynamics for Curtains by Events in Maya

Published on January 08, 2026 | Translated from Spanish
Maya setup showing nCloth curtain with force field control via expressions that deactivate when window closes

When the Wind Decides to Be Eternal

The problem of controlling dynamics based on events in Maya is one of those challenges that separates basic simulations from professional cinematic effects. The frustration is understandable when you have a beautiful curtain moving with the wind, but you can't make it calm down when the window closes. This scenario requires a multi-layered approach where you combine dynamics, expressions, and traditional animation.

You've identified a perfect use case for procedural simulation control. The key is understanding that nCloth doesn't automatically respond to animation events - you need to create specific bridges between the keyframed animation and the dynamics system.

Control Using Animated Force Fields

The most direct solution is to use a Wind force field controlled by the window's animation. Create a Wind Field that affects the nCloth curtain, and then animate its Magnitude from 1.0 (full wind) to 0.0 (no wind) at the exact frame where the window closes.

For more precise control, connect the wind field Magnitude to the window's transformation using a Set Driven Key. Set the window as the driver and the wind magnitude as the driven, creating a direct relationship where the wind gradually reduces as the window closes.

A perfect wind is like a good actor: it knows when to enter the scene and when to make its exit

Setup with Dynamic Expressions

For more advanced control, use expressions that monitor the window's state. Create an expression that reads the window's position or rotation and adjusts the nCloth's Dampness accordingly. When the window is closed, increase the Dampness to quickly dampen the movement.

The expression might look like this: curtainShape.damp = (window.ty > 0) ? 0.01 : 0.5; This would set a low damp when the window is open (ty > 0) and high when closed, quickly stopping the movement.

Method with nCloth Attribute Keyframes

Another approach is to directly keyframe nCloth attributes. At the frame where the window closes, set keyframes on Dynamic Properties > Stretch Resistance and Bend Resistance to very high values (500-1000), effectively "freezing" the fabric in its current position.

Combine this with keyframes on Input Motion Drag and Input Gravity Drag increased to 1.0. This makes the curtain maintain its current shape and resist any additional movement, simulating that there's no longer wind affecting it.

Solution with Utility Nodes

For visual control, use the Node Editor to create a network that connects the window's transformation to the nCloth attributes. Use Condition, Multiply Divide, and Reverse nodes to map the window's movement range to the curtain's dynamic parameters.

A common setup would be: window.translateY > Condition > Multiply Divide > nCloth.damp. This gives you visual control over the relationship and allows fine adjustments without writing code.

Cache and Blends Technique

For maximum control, simulate two versions: one with wind and one without, then blend between caches. Create a cache of the curtain with full wind up to the frame where the window closes, then another cache without wind from that point, and use Geometry Cache > Create Blend to smoothly transition between them.

This technique is resource-intensive but offers absolute control. You can adjust the timing and transition intensity in post-process, and even animate the blend weight to create effects of wind gradually dying out.

Mastering these techniques will allow you to create dynamic effects that respond to your animation's narrative. Because in Maya, even the most persistent wind can learn to obey when you know the right control methods 😏

Recommended Method to Start

Simple and effective setup:

1. Wind Field affecting nCloth curtain
2. Set Driven Key: window.translateY → wind.magnitude
3. Expression: curtain.damp based on window state
4. Resistance keyframes at closing frame