From Fracture FX
Jump to: navigation, search



Some examples of how to use the spring modifier in v2.

Creating springs

The first modifier in the image below makes springs between fragments that were inside a volume in their initial position (at the start frame).

The second modifier finds the fragments within a different volume, then makes the existing springs between them stronger (the red ones). This does NOT create new springs, it just edits the existing ones. The unchanged weaker springs are left in yellow.

Spring mod1.png

Destroying springs

The event has a volume filter to isolate the green fragments. The modifier destroys springs that connect fragments inside the volume to fragments outside the volume, i.e. between fragments which are modified by the event and those which are NOT modified.

This causes a chunk (green) to fall out, but keeps the springs between fragments within the chunk, only removing the ones connecting the chunk to the rest of the fragments (blue).

Spring mod2.png

Detach velocity

The pink springs connect the fragments to a passive input object.

The yellow springs connect the fragments to each other, as soon as they’re created (when the cube is broken).

The last modifier finds fragments in the volume (the lower half) and edits the detach velocity of the springs connecting them to anything outside the volume. This weakens the link between fragments inside and outside the volume. The lower half is more likely to detach when it’s hit by the ball. (All the blue springs have detached and so don’t appear in the image.)

Spring mod3.png

Destroy springs after N frames

This example creates springs when an object is broken then destroys them after a few frames.

Break an object using the bomb anim event as a starting point, then reconfigure it as below to create springs.

Ds anim0.png

Ds initial.png

On the modifier list of the event, add an assign modifier, choose a name for the custom attribute, e.g. "detachtime", then right click on the field and enter the expression: modify_operand1_float = frame;

Ds expr.png

This will store the frame number at which the fragment was created on the fragment as data called "detachtime". Then add a randomize modifier to add (+=) a random offset to it.

Ds randomize.png

Add a second event from animated->push fragments, then reconfigure it as below. Note the test for frame >= detachtime, which will make the event run at different times for different fragments.

Ds detach.png

Now the springs detach at a random time between 3 and 10 frames after creation/breaking.

Ds result.png

Personal tools