Animating wind across detailed plants

Hello folks, I have been wracking my internets trying to find a best solution for creating a realistic breeze across models of plants but am getting stuck and I need some more experienced hands to tell me if the end result I am looking for is possible with my wee computer and blender.

I have several models of poppy plants that were created through NGplant with simple cutout textures to shape the leaves. I want the main stems of the plant to slightly bend and flex in the wind with perhaps a little fluttering of the leaves.

Suggestions I have seen or tried:

  • Running a displacement texture through the model, which I think would work better for grass and bushy foliage textures rather than flexing stems realistically.
  • Creating an edge skeleton which receives a soft-body wind which is then hooked into the full model. This seems intense for hooking all the verts together and my skill fail me in weight painting an edge skeleton or even making the plant mesh connected and flexible.
  • The best I can get with softbody wind on the entire mesh is a jello effect that makes the entire model quiver instead of flexing, see attached movie.

My end goal would to be able to animate a whole field of plants as seen in the last clip of the video. Is this possible short of renderfarm?
So do I just need to read up on animating bones for the stems. What do I need to do to the object mesh to keep all the leaves anchored to the stem correctly and have the thing bend properly. Can I do all this and still keep the plants as single objects for pasting across a scene?

Any hints or advice would be helpful. Attached youtube movie.

Try to use lattice with soft body.

Hmm, that looks good, but how do you exactly weight-paint a lattice so it can be stiff at the root and wobbly around the top stems. Can empties have softbody applied to them?

One of the best hidden features in blender.
Setting soft body goal weights for lattices:

In edit mode select vertex.
N_Key pops up the panel where you can set the weight. (for the selected vertexes )
Weight values of 1.0 along with G Max 1.0 make the vertex pinned at place.
Smaller weight values give more freedom to the vertex.

Same technique would work for edge meshes too (including setting the weights in the floating panel)

To make the soft body be aware of weight check the “W” on the soft body panel.

And no empties can not be soft bodies but can be vertex parented to a soft body.

Thanks bjornmose, I found the weight settings slightly before you posted.

So, to give closure and an update to what I found would work best so far:
Using version 2.5


At first I painfully muddled through and was able to apply a lattice to my plant object. I fooled with tugging at the lattice verts and it looked good. However when I applied wind to my newly soft-body lattice it of course blew away like an angry cube of jello.

  • Then I had trouble figuring out how to weight paint the verts of the latices until I found that you could specify the weights in the transform panel. I specified the ground verts of the lattice as 1.0 and reduced the weight on each layer of the lattice until it looked good waving there in the wind.
  • The problem was that the whole plant looked like it was encased in jello so I decided to make three differently weighted lattices that were connected to different parts of the plant objects via vertex groups. One lattice for the main stem and flower, another lattice for the secondary stems, and another lattice for all the leaves. This way I was able to adjust the weights of the lattice and the soft-body flexing of the different parts. The leaves were looser than the main stem etc.
  • I had much, much pain figuring out soft-body baking and kept on pulling my hair out every time I adjusted the wind and the the real-time play back would not update to the next setting. Shame on me for not knowing, but finding Blender documentation makes me want to go on a stabbing fit.
  • The best practice for animating a bunch of these lattice plants is to place the one original instance of your plants on one layer with the wind generator. Then you duplicate the multiple plants on another layer and rotate and position the objects to suit. All the duplicated objects will retain their links to the lattices on the original plants and will retain a constant wind “direction” regardless of position.
  • My only real criticism now is that the different vertex groups can become separated from each other because of their different lattices. Perhaps there is a way to bind the “core” of a lattice to the movements of another so the vertex groups would all stay closer to the main stem.

If anybody has any better ways of approaching the issue or advice please pipe in. I am far from pro.

You may want to read this tread …

pointing to this (* which is the core of what i mean *)

well between the lines you could even see how to set up the ‘edge tree’ you first intended
and that would be IMHO the way to go.

Ah bjornmose,
It looks like you are a developer. How kind of you to give me pointers. I will continue to slug away and pile through the referenced posts to figure this out. We will see if I can render a large field of poppies before my wee computer melts.

Thanks as well for the work on the software. It is much appreciated by us poor artists.Have a good weekend.

So yet another update:

I followed bjornmose’s hints provided in the two links above and decided that I would try and animate the flower mesh as best I could possibly do to see how much effort it would take. Basically the principle behind the animation is to provide a soft-body “edge tree” for the plant mesh and animate wind or field effects across it.

  • I created a bone rig armature for the plant mesh, having long chains of bones for the stems and one bone each for each of the leaves.
  • I then created a mesh edge tree by tracing the bone armature and then assigned different goal weights to parts of the mesh “tree” to account for different qualities in the wind. (i.e. the petals would blow away easier than the lower stems)
  • The bone armature was linked precisely with each of the edges using IK attached to a different vertex group.
  • The bone armature was set to deform the mesh using weight painting.

The end effect is a more realistic path to wind effects on the individual parts of the plant, however I have these questions:

  • Creating an edge tree to affect the bones and then attaching them with a ton of vertex groups seemed like a giant hassle. It would be better somehow to specify soft body qualities to bones directly. I don’t know much about it.
  • This is my first time actually rigging something with bones, does it usually take forever like it did for me. Creating and positioning a bone fore every leaf in a plant seemed kind nuts. Is that normal to get things “just right”.
  • Weight painting the deform of the mesh on the armature was hard in the beginning but I got better as I went and started to use the mask. Is there a way to mask by vertex group so I don’t have to twist around so much to paint the leaves?
  • Once I had the model of the plant done, it consisted of a mesh object, an armature object, and an edge tree mesh object. I parented them all to the main mesh and I had to continually “select children” if I wanted to duplicate it across a scene. Is there a better way?
  • I had to individually bake each edge tree i the scene as I could not find a function that could clear all the bakes and re-bake at the same time. Is there any in 2.5?
  • I was totally confused about the field settings. I think I will use the normal force field to simulate gusts of wind passing unevenly across the scene. Wind just ensures an even constant force across the scene. Am I wrong and is there a good listing of the force settings?

I think I might have to fool with the spring settings in the edge tree in addition to just goal weights ad I have to figure out what bend bonds do.
Any advice or tips are appreciated and thanks to bjornmose.

Well …
I know it would be nice to have … (some kind of soft bones)
/* the very reason i did ask for not taking ‘fake soft armatures’ too serious … was kind of possibility check … I need to dive into the armature code … which is fast moving at the moment … but once it it got predictable … i will do */
and I will implement it … as soon as 2.5 settles to something stable enough to add new features…
for now I’d like to stick to the policy …
make 2.5 as good as 2.4xx was . . (not adding new features like this would be)
working around like this …
or waiting for 2.6 may be 2.7 …
let’s see

Thanks again bjornmose,
I am still fiddling with the spring weights of the “edge tree” to get the plant stems less wobbly.

I got the field generator working to make a believable gust of wind that moves.

The biggest issue now is that I have to select and individually bake each plant structure after they are placed in a scene. This isn’t so bad for just a few plants, but if I want to place a hundred plants I have to select and bake each one. Giving the edge tree meshes a group name before duplication helps you select them in the outline.

May I suggest some slightly different approaches if the above isn’t working. Some thoughts:

First I think that perhaps you could move just the top vert for the stem, x and y movement can be quickly done using warp with something like a cloud texture mapped to a moving empty. (FWIW This also works great for water since animating it in Z make the water seem to boil up)
Second if you want to use displacement, instead of a lattice, try using mesh deform [in 2.5 you no longer need to completely encompass the mesh and the effect is dependent on the distance from each vert to the controlling mesh = perfect if your control mesh is at the top, its influence diminishes towards the ground].
Third you could use shapes instead of deform and make the plants in a given area part of the same group and modify the shapes for that group at the same time.
Fourth physics sim - may be a bit much but you may find a way to animate these as if they are hair particles - I’ve seen some “combing particle path” vids that may work
Fifth, are you using painted objects? - aka instanced particles - its a fun way to paint your plants all over the place and they can be animated but each duplicate will have the same animation.

In 2.4x was a hidden “bake selected” option, to bake all selected objects in one run. Code looks like CTRL+B_Key in 3d view … lets see, … yup still works in my 2.49b.
I don’t if that feature survived 2.5.

“less wobbly” sounds like you need some damping:
friction is global and synchronizes with media movement (wind)
Goal.damp along goal spring
Edge.damp along edge spring

please keep us updated I find this question fascinating and I hope that you can make this work!