3
$\begingroup$

I was trying to animate a plant. For that purpose I created a curve, gave it a bevel depth and animated start bevel factor, but then I got a problem - curves can't have branches. There are various ways to fake branches but I need them to start growing exactly in the moment when trunk reaches the branch height. Do you know how to make a plant with controlled shape to properly grow without animating all and every branch separately?

$\endgroup$
3
$\begingroup$

You'll need to do some manual tweaking and timing, no doubt. Automating this would make sense if you had a massive amount of plants to process.

I've used the following method when animating growing plants with branches which I've found relatively easy to do. Admittedly it was on 3dsMax, but I believe the same steps applies to Blender.

First off, I always work with a mesh. Then I build a quick rig/armature loosely following the branching of the plant. Usually automatic skinning works fine.

To animate it grow, I take the starting pose and scale each bone to zero. I flip the starting and ending keyframes so the plant grows instead of shrinks. And since every bone inherits the scale of its parent, you get a nice, gradually cascading effect.

Things to tweak at this point are the timing of when the branches start to grow (wait for the parent bone to grow to full size before beginning its own scaling, for example), and slight rotation of each branch.

$\endgroup$
  • $\begingroup$ Yeah, something like that I meant when said "... animating all and every branch separately", because I need a hell of a lot of branches. But anyway, thanks for the method, maybe its the only way... $\endgroup$ – Vitaliy May 21 '14 at 15:10
2
$\begingroup$

Blender has no straightforward way to do this.

I think you would have to script this (automate animating each curve by checking its parent branches growth and only start growing when appropriate).

This is reasonably involved to do, but this kind of task is well supported by Blender's API (you have access to all data you need).

$\endgroup$
  • $\begingroup$ Never used blender scripting, so its a bit of a nuisance, but sounds interesting. I just don't see how can you make a single script to animate any number of branches. Maybe, if you can somehow define the trunk and then animate every curve that is crossing the trunk... I just don't know where to start. $\endgroup$ – Vitaliy May 21 '14 at 15:21
  • $\begingroup$ Yep, a single script can animate any number of branches. You would need some way to detect which branches are parents and how they're connected. but its not so hard to do. $\endgroup$ – ideasman42 May 21 '14 at 16:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.