Skip to content

Ivy Growth Animator is ready with an Interface!

February 6, 2013

It’s finally ready!

It has a shiny new interface, and most importantly, it works 😀

For me, this kind of animation would be pretty tiresome without the addon (tried it before and gave up), so I’m pretty happy about it.
If you find yourself using this add on, I’d be really happy to see the kind of stuff you do with it, so feel free to comment here or email me.

See the source and download the script here

I will keep this script (and shortly the rest of my scripts) up to date through github.

Here’s a short wiki and installation guide:

Installation Instructions:

Installation_Instructions

Wiki

Add on Description:

This add on animates the growth of ivy and trees created by the ivy generator and sapling add ons. It can animate other objects as well, but will only work with “branches” that are made of a single curve object, even if it’s made of separate “loose parts”. It will also produce decent results only if the curves have been created in an ascending or descending order, for instance with the bottom branch being first, and higher branches created later and by order of height.
The curves representing the branches are converted to meshes by the add on.

For the leaves animation, it also requires that the leaves will be composed of a single mesh object, with each leaf being a separate, loose face.

The add on uses the Build modifier to animate the branches, and shape keys to animate the leaves.

Warning!

To animate the leaves, the add on creates a shape key for each face on the leaves mesh. If you have many leaves (over a few hundred), this can take several minutes (depending on your computer), and even several hours (!!) if you have thousands of leaves. The process also gets slower with each additional shape key. So splitting the mesh into several different objects is better than trying to do many leaves all at once.
I will probably optimize this in the future, but at the moment its not a very viable solution for a huge amount of leaves (over a few thousand) all in one mesh.

General usage:

To use the add on with the default parameters:
1. choose the name of the curve object and place it in the “BranchObject” object selection box.
2. Press on the “Animate Branches” Button.
3. Choose the leaves mesh object, and place its name in the “LeavesObject” object selection box.
4. Make sure you have the correct “BranchObject” name as well, alongside the “LeavesObject” name.
4. Press the “Animate Leaves” button.
5. Play the animation and enjoy!

Notes:1. The “BranchObject” name must be unique. If another object is too similar (contains the BranchObject’s name) the script will fail with an error.
2. To animate the leaves you must first animate the branches.
2. The leaves use the branch animation data to time the appearance of each leaf. So to get the proper results, you must have the correct “BranchObject” name in the box alongside the “LeavesObject” before pressing the “Animate Leaves” button.

Panel

Add on parameters:

BranchObject – name of the curve object which represents the branches.
LeavesObject – name of the mesh object that represents the leaves.

Branch Animation Parameters:
frame_start: the start frame for the animation of the branches.
faces_per_frame: the speed of the branch building animation. The higher the number, the faster the animation. Technically, it represents the number of faces that are built in one frame.
delay_branches: the number of frames to wait before starting to animate the next branch. Also determines the overall speed of the animation, and helps coordinating it.
initial_delay: The first branch is often large and needs more time before the next one should start. This parameter helps you set a delay between the first and second branches to help coordinate this.

Leaves  animation parameters:
delay_after_branch: how long (how many frames) to wait after the closest branch to the leaf finished animating, before starting to animate the leaf.
max_growth_length: the maximum number of frames (length) for animating the growth of a leaf. The total length will be randomly set between this value and the “min_growth_length” value.
min_growth_length: the minimum number of frames (length) for animating the growth of a leaf. The total length will be randomly set between this value and the “max_growth_length” value.

34 Comments
  1. Hikaru Ai permalink

    Thanks, i will try it

  2. Nikolay permalink

    Branches animates fine, but when I tried to animate leaves I get an error:

    ——
    Traceback (most recent call last):
    File “/home/nikolay/.config/blender/2.65/scripts/addons/ivy_growth_animator_addon.py”, line 147, in execute
    leaves_props.animate_leaves( leaves, ivy_objects )
    File “/home/nikolay/.config/blender/2.65/scripts/addons/ivy_growth_animator_addon.py”, line 420, in animate_leaves
    self.create_shapekey( leaves, index, start, duration) # Create a shapekey for this leaf
    File “/home/nikolay/.config/blender/2.65/scripts/addons/ivy_growth_animator_addon.py”, line 373, in create_shapekey
    bpy.ops.anim.change_frame(frame = build_start_frame) # Select frame for keyframe
    File “/home/nikolay/blender.app/blender-last/build_linux/bin/2.65/scripts/modules/bpy/ops.py”, line 188, in __call__
    ret = op_call(self.idname_py(), None, kw)
    RuntimeError: Operator bpy.ops.anim.change_frame.poll() Expected an timeline/animation area to be active

    location: :-1
    —-

    Any idea?

  3. @Nikolay:
    The error message is a little vague, it says the the animation area or timeline was inactive.
    Can you send me your scene file? Maybe I can find the error.

    Also, try reading the notes area in this blog post and make sure you’ve got all the steps right:
    Notes:
    1. The “BranchObject” name must be unique. If another object is too similar (contains the BranchObject’s name) the script will fail with an error.
    2. To animate the leaves you must first animate the branches.
    2. The leaves use the branch animation data to time the appearance of each leaf. So to get the proper results, you must have the correct “BranchObject” name in the box alongside the “LeavesObject” before pressing the “Animate Leaves” button.

  4. Nikolay permalink

    I do not know your email, so I post this file to the dropbox. You can download it using the next link: https://dl.dropbox.com/u/47111292/ivytest.blend

    Unfortunatly I can’t understand how to debug scripts with blender, so I cant understand error reason…

  5. @Nikolay:
    I was able to solve this simply by moving all the objects to layer 1, and adding a timeline window.
    (The leaves and branches were on all the layers).

    I’m not sure why this solved the issue, but I guess that in such a situation the python interface couldn’t change the frame or keyframe the object.

    Plz Let me know if it fixed it for you as well.

    • i have same problem with Nikolay, all of my object are in layer 1 and adding timeline window, but still error on leaves case, how to fix it?

    • Nikolay permalink

      Sorry, I had no time to test but now I do. So, I did everything you told but it didn’t help. I tried to create new scene with default settings, with timeline window and all object on first layer, but it didn’t help me too. I see the same message each time. Can’t understand why?….

      • Nikolay permalink

        So, I spent a few hours and found the way to fix it. But I am not sure that it’s good fix.
        I have changed every bpy.ops.anim.change_frame() to bpy.context.scene.frame_set and it works now for me.
        Maybe it will help someone.
        p.s. Yep, now I see animation of leaves works pretty slow. But it works!

      • Great stuff Nikolay!
        Another example of why open source is so awesome.

        I didn’t have time to work on this myself lately so its a great help that you found a solution.

        I’ll test it soon, and update the script on the git repository.

  6. @zico_newbie:
    What version of blender are you using?
    Can you also upload your .blend file so that I could have a look at it please?

  7. Michael Hannig permalink

    Hello, i have the same problem as Nikolay. The Branches animated but the if i want to animate the leaves i get a failure from Blender. I use the newest build 2.65.10. All objects are in the same layer. The Timeline is adding. Can i send you my blender-file to tlousky@gmail.com ?

    Thank you for answering

    • @Michael:
      Please email me your file. If you’re all getting the same error, something must be seriously wrong there and I’d like to fix it.

      Cheers

      • Michael Hannig permalink

        Thank you. I’ve send you my file. I hope you can find the failure.

        With greetings

  8. Michael Hannig permalink

    Oh, i´ve forgotten to say you, after animation of the branch the paramters in the “BranchObject” and “LeavesObject” disappear. See my second file. I have the parameters written again. Without success.

    • Hi Michael,

      It seems like the Ivy you created has over 18,000 faces (leaves).
      This is more than the add-on currently handles properly.

      Even on a very strong computer, just calculating this animation will take many many hours (over 20 on my PC).

      So I can’t really test this file…
      Could you please try with a smaller ivy, which has only a few hundred leaves? (1,500 max, and that would take at least several minutes to calculate)

      And about your second question,
      The “LeavesObject” and “BranchObject” are saved on the object that was active when you created the animation. In your case it’s the leaves object “IvyLeaf”. If you select it you’ll be able to see these parameters there.

      Please send me another file if the error persists.

  9. salvador permalink

    Does the ivy growth got subtituted by the ivy generator? Or is only that this add-on doesn work with blender 2.66a?

    • @Salvador:
      Please read the previous posts about this add-on. This is not a replacement but rather an enhancement to the ivy generator.

  10. taiwofolu permalink

    wwwow! Great stuff man. Thanks.

  11. I’m interested in using this plugin to create a root growing effect, but I’m having a bit of trouble getting the plugin set up. I’m comfortable with modeling, texturing, etc., but working with Scripting is definitely not my strong point. Are there any more in-depth tutorials available for this plugin?

    • Hi Matthew,
      I haven’t really made a tutorial about this script yet,
      it is planned but in queue with some other tuts, posts and projects.

      I’d be glad to help though. You can upload your scene to some file sharing place and I’ll explain the process more specifically if you’d like.

  12. Hey there having trouble getting this to work with Blender for the sapling addon. Works fine with the ivy and grows branches and leaves just fine only with the Ivy generator. I get the following error no matter what version of Blender I try on 3 different computers when using the sapling addon and trying to animate tree growth.

    Traceback (most recent call last):
    File “C:\Users\JRH\AppData\Roaming\Blender Foundation\Blender\2.71\scripts\addons\ivy_growth_animator_addon.py”, line 108, in execute
    object_name = branch_props.prepare_ivy_object( branch_props.modifier_name )
    File “C:\Users\JRH\AppData\Roaming\Blender Foundation\Blender\2.71\scripts\addons\ivy_growth_animator_addon.py”, line 174, in prepare_ivy_object
    first_curve_point = obj.data.splines[0].points[0].co # Coords of first curve point
    IndexError: bpy_prop_collection[index]: index 0 out of range, size 0

    location: :-1

    Wondering if you are still available to help me figure out what is going wrong? Got a great project that would really benefit from this tool you’ve built. Thanks either way the Ivy tool alone is very nice.

    • Hi John,

      I haven’t really tested this addon with sapling trees before, which is why it’s making trouble now.

      It appears there’s a difference between the type of curve the ivygen (poly) and the sapling (bezier) create,
      which is at the root of the problem, so to speak (heh).

      Anyway I fixed it and the addon can now animate the branches of sapling trees too.

      Get the latest version from GitHub.

      There is one bug remaining. The first branch to animate is not the base trunk for some reason, but all the other ones after that animate in the right order, even with base splits.

      I had that issue with ivygen curves too, and I just deleted that wayward branch to avoid the issue. You can do the same here.

      Someday I’ll probably fix this too.

      Cheers

  13. Fantastic! Working well so far. Thank you so much for your time and effort. This fall when everything is complete and I am sharing the project I’ll be sure to make mention of Biologic.

    John

  14. Grigoriy permalink

    And it will work in later versions of Blender? I have an error when trying to install = (

  15. OK, I just updated this add on to get it to work wit Blender 2.74, enjoy folks!

  16. Martin WInged permalink

    For anyone who finds that this plugin is not working and throws a SyntaxError at line 149 – add ‘branches )’ (without ”) at the end of this line in ivy_growth_animator_addon.py file, save it and install it again.

    • Martin WInged permalink

      Sorry for a typo – add this phrase at the end of line 145 ^ ,^

      • No need, I fixed it in the original script, thanks for reporting!

Trackbacks & Pingbacks

  1. Ivy Growth Animator Add-on | BlenderNation
  2. Ivy Growth Animator for Blender Creates a Growing Effect in Blender Easily
  3. First studio adventure « BioBlogical – BioLogic's 3D & Design blog
  4. Ivy Growth Animator for Blender Creates a Growing Effect in Blender Easily | cgbeer

Leave a reply to Hikaru Ai Cancel reply