Bee Breakdown

Final Product:

Still Image:

Breakdown:

Mechanical Bee in Houdini

Project Goal: To learn how to use procedural methods to model and animate geometry. Specifically, to use expressions and functions to generate cyclical motion as relates to real world objects.

Sources:

http://www.youtube.com/watch?v=2z9F6pVhR5o

I based my model off of the three robotic bee images found on this page http://funzday.com/amazing-robotic-animals-manipulation/

Movements:

You will notice an if statement in all my equations for a variable called slow motion. Slow motion is a check box that when checked has the animation move in slow motion and when unchecked move in real time.

Head Animation:

[Rotate X] if(ch(“../../slowMotion”) == 0, 4 * sin($F * 5), 4 * sin($F * 2))

[Rotate Y] if(ch(” ../../slowMotion”) == 0, sin($F * 10), sin($F * 4))

I wanted to give the head a nice bobble. So this the head has a small rotation in x and y. The middle body piece is actually connected to the head but only rotates in the y.

Antenna Animation:

[Rotate X]  if(ch(“../../slowMotion”) == 0, 5 * sin($F * 8), 5 * sin($F * 4))

The antennas are a basic x rotation. This gives them some separation from the head.

Tail Animation:

[Rotate X]  if(ch(“../../slowMotion”) == 0, -7.6 * sin($F * 5), -7.9 * sin($F * 2))

[Rotate Z]  if(ch(“../../slowMotion”) == 0, sin($F * 10), sin($F * 4))

This has the tail have a dangling like movement almost like its going to sting something.

Wing Connectors Animation:

[Rotate X]  if(ch(“../slowMotion”) == 1, -40 * cos($F * 2), -40 * cos($F * 40))

[Rotate Y] if(ch(“../slowMotion”)==1,-6.01 * sin($F * 2), -6.01 * sin($F * 40))

[Rotate Z] if(ch(“../slowMotion”) ==1, -0.89 * sin($F * 2), -0.89 * sin($F * 40))

The above equations are for the left side. The only difference on the right side is X and Z amplitude is positive. This movement is matching this piece up with the wings.

Wing Animation:

[Rotate X]  if(ch(“../../slowMotion”) == 0, -40 * cos($F * 40), -40 * cos($F * 2))

[Rotate Y] if(ch(“../../slowMotion”) == 0, -40 * (sin($F * 40)), -40 * sin($F * 2))

[Rotate Z] if(ch(“../../slowMotion”) == 0, -30 * sin($F * 40), -30 * sin($F * 2))

The above equations are for the left side. The difference in the right side is X and Z are positive.  The wings were me playing around with amplitude to get it to look just right. I really tried to match the motion of my source video.

Leg Animation:

The legs were the hardest part of this entire process.

Foot rotation: [Rotate Z]

if(ch(“../../slowMotion”) == 0,
if(stamp(“../copy7”, copyNum, 0) == 1, -50 * abs(sin($F * 4)) + 100, if(stamp(“../copy7”, copyNum, 0) == 2, -50 * abs(sin($F * 3)) + 100, -50 * abs(sin($F * 5)) + 100)),
if(stamp(“../copy7”, copyNum, 0) == 1, -50 * abs(sin($F * .9)) + 100, if(stamp(“../copy7”, copyNum, 0) ==2, -50 * abs(sin($F * .8)) + 100, -50 * abs(sin($F)) + 100)))

This equation has nested if statements with copy stamping. This allows me to  offset movements so the feet aren’t doing the exact same thing which is boring and inaccurate.

Knee rotation: [Rotate Z]

if(ch(“../../slowMotion”) == 0,
if(stamp(“../copy8”, copyNum, 0) == 1, -17.5 * sin($F * 8), if(stamp(“../copy8”, copyNum, 0) == 2, -17.5 * sin($F * 6), -17.5 * sin($F * 10))),
if(stamp(“../copy8”, copyNum, 0) == 1, -17.5 * sin($F * 1.8), if(stamp(“../copy8”, copyNum, 0) == 2, -17.5 * sin($F * 1.6), -17.5 * sin($F * 2))))

This again has nested if statements with copy stamping. The way my network is set up I also had to use a timeshift node to get the legs to look how I wanted.

Overall Notes:

Update: Motion Blur has been added to the wings.

I would like to add parameters so the speed can be changed by a slider instead of having to change each individual equation. Overall I love how this came out.

If you have any questions my email address is brylondon@gmail.com

© 2015 Bryanna London

Advertisement