Flying Balloon

This tutorial was written as a response to an email asking how one could go about animating a balloon flying in the air — complete with attached string. I believe the quickest way to create a realistic motion would be to use soft body dynamics, which is the method described here. As usual, there are many other methods. Suggestions and corrections are welcome.

Check out the following playblast to see the result:

Quick modeling

The geometry was simplified since it’s not the issue here. Create a sphere, tweak it a bit and name it balloon. Next create a NURBS cylinder and non-proportionally scale it so that it looks like a string (the name used in this example is string1 because Maya seems to reserve the name string for internal use). The cylinder should have enough spans to deform properly later. I used six spans here.

Delete history on both objects.

A sphere and a cylinder

A sphere and a cylinder

A curve to deform the string

The cylinder itself could be turned into a soft body, but since it has volume (eight sections by default), deforming it directly will create irregularities in its thickness. Instead, we will use a curve.

In the side or front view, create a CV curve with six evenly spaced vertices going down straight through the cylinder. Use Snap to Grid (hold down the X key by default) in order to make it completely straight.

This curve will be used as a Wire deformer: when vertices move, they will deform the geometry they are attached to.

The deformation curve

The deformation curve

The Wire Deformer

From the Animation menu set, select Deform > Wire Tool and set its options to the default. Following the prompts on the Help Line, select the shape to deform (string1), press Enter, then select the Wire curve (curve1) and press Enter. You can do this through the Outliner.

This creates a new node, curve1BaseWire. To see the results of this operation, select a CV on curve1 and move it around. The string should deform accordingly.

Undo any CV tweaks so that the curve is straight again.

The Wire Deformer

The Wire Deformer

The Soft Body

Now for the soft body. Select the original curve (curve1) and from the Dynamics
menu set choose Soft/Rigid Bodies > Create Soft Body options. Set the options
shown to the right and click Create. In the Outliner, you will see a new Particle
object parented to the curve. This object has six particles, one for each CV
of the curve.

The curve has also been duplicated as copyOfcurve1 and is used as a Goal. This means the particles will tend to align themselves to the CVs of the duplicate curve, and while doing so will deform, or move, the CVs of the original curve.

We need to attach the string to the balloon, so that it follows it everywhere. To do this, parent the Goal curve (copyOfcurve1) to the balloon. Since that curve is hidden, the quickest way to do that is to use the Outliner: middle-mouse drag copyOfcurve1 onto balloon.

Creating the Soft Body

Creating the Soft Body

Relationship summary

The diagram to the right (“Parents and children”) sums up the relations we just set up. Make sure you understand the relationships and the role of each node.

Parents and children

Parents and children

Particle Goal Weights

If you now keyframe a motion for the balloon you’ll see the string move along with it, although it will remain quite stiff. This is because the Goal weight for the Particle object has been set to 1. You can lower it in the Particle object’s Attribute Editor section called Goal Weights and Objects, but this won’t be enough. We need to assign a specific Goal Weight to each particle, so that the top CV stays glued to the balloon while the lower ones move more freely.

The string is a bit stiff

The string is a bit stiff

Practice…

Go into Component Mode (F8), select a Pick Mask for Particles from the Status Line and drag-select the six particles in the perspective window (don’t select the particle object from the Outliner). This selects the individual particles. Go into Window > General Editors > Component Editor… and select the Particles tab. You will see a list of the particles (pt[0] through [5]) with several attributes columns. At the very end you’ll see goalPP, which is the Per Particle Goal attribute.

Modifying these values requires quite a bit of experimentation to get the proper look. Start with a value of 1.00 for the first particle (the one we want to keep glued to the balloon), 0.40 for the second particle and 0.20 for the remaining four. Tweak them until you’re satisfied with the motion. These values are multiplied by the particle object’s Goal Weight attribute (the one mentioned earlier), which is why you’ll want to keep it at a value of 1.00 to get predictable results.

Modifying GoalPP weights

Modifying GoalPP weights

…makes perfect

Now if you keyframe the balloon’s translation and rotation, you get something a little bit more interesting. The string now moves realistically.

This looks more natural

This looks more natural

Keeping everything together

You might find that the particles stretch the cylinder out of proportion. It order to help the particles maintain the overall length and shape of the cylinder, select the particle object and add Springs to it (Dynamics menu set > Soft/Rigid Bodies > Create Springs). Choose All as the Creation Method. This creates springs between all the particles. Since there are only six of them, you won’t get much of a hit on interactivity and frame rate. You’ll now have to play around with Stiffness and Damping to get the proper behavior. Don’t go over 1 for Damping or the simulation will collapse. I took Stiffness up to 20 which kept the shape nicely while still allowing for a fluid deformation.

Some Springs might help

Some Springs might help

Conclusion

For some added randomness in the string’s deformation, add a Turbulence Field to the particles. Set its Attenuation to zero, and tweak its Magnitude and Frequency to get the look you want.

The rest is basically a tweaking process between several influences which are summed up in the diagram to the left. Remember that the string will “follow through” the movement of the balloon, which should be keyframed carefully. You can make the balloon into a Rigid Body if you want, but I found it too hard to control that way.

Compare the following playblast with the previous one. The only values changed were the goalPP weights:

This method has one disadvantage. Because the Goal curve is a straight line parented to the balloon, if the balloon comes to a rest while in a non-vertical position, the string will eventually settle down somewhat horizontally, depending on the direction of the Goal curve. That said, unless you’re going to follow the balloon into the stratosphere, you should be ok.

Summary of influences

Summary of influences

Bookmark the permalink.

9 Comments

  1. Vincent
    Posted April 12, 2007 at 16:24 | Permalink

    God i don´t seem to be able to get the same result you do !!!!
    Would it be possible to post the finished scene file ?
    Thanks

  2. maxine
    Posted January 16, 2008 at 20:11 | Permalink

    Hi…. trying this technique to make a very baggy sleeve behave with arm movts……
    probs when going to comp editor…. when I select all the cvs (particles?) they do not have any values in the particles tab 1
    Have I selected wrong thing? if so what to do
    appreciate help if poss…
    thanks in anticipation as eager to sort out sleeve probs
    :<)

  3. suzanne
    Posted August 15, 2008 at 5:42 | Permalink

    Hi;

    I have been working on your flying balloon tutorial and cannot figure out parts of it: Once I parent the copyofcurve1 to the balloon, how would I select the balloon so that the two pieces do not seperate. (balloon and string)
    the string is not following the balloon. I’m not sure what the “Pick Mask for Particles,” is either is it the particle icon within Component Mode. I cannot select all the particles either. They are grayed out. The window>general editors>component editor does not have a goalpp under the particles tab. I so want to learn this but can’t seem to figure it out. I know I have seen that goalpp somewhere but I don’t remember. Thanks Suzanne H

  4. Posted March 10, 2009 at 16:45 | Permalink

    Thank you for your help!

  5. Posted October 25, 2010 at 10:38 | Permalink

    This was a really great read by the author looking forward to read more really soon.

  6. Posted October 30, 2010 at 0:00 | Permalink

    Maybe you could edit the post name title Flying Balloon | talino.org to something more suited for your subject you make. I enjoyed the post all the same.

  7. Posted August 29, 2011 at 13:30 | Permalink

    Excellent list of galleries I was already using few of it. however it is good to know more. One more great css showcase http://www.csstrophy.com.

  8. Posted July 23, 2013 at 16:12 | Permalink

    I’m not sure exactly why but this web site is loading incredibly slow for me. Is anyone else having this issue or is it a problem on my end? I’ll check back later on
    and see if the problem still exists.

  9. Posted August 9, 2013 at 17:58 | Permalink

    “We know that it is possible, without recourse to hypnosis, for one person to induce another to commit a wrong, a fact we may explain loosely as the influence of one personality upon another,” Erickson explained.
    Theory has it that since the mind controls all aspects of the body, if one can control the mind,
    one can make the body do almost anything, including cure diseases.

    Even if you’re lucky enough to find a pair of pants that show off the shape of your ass, it still may not be for you.

One Trackback

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>