Final Renders
Reference
This is an automata watch created by the Swiss watchmaker company Jaquet Droz. The company was founded by Pierre Jaquet-Droz in 1738 and has grown to make luxury watches costing up to $500,000. The birds are modeled from clay and hand painted. This is one of the more famous watches. Source: https://www.youtube.com/watch?v=yJamzhuA1Jc&list=PLbBjIAd7Lpp2- PDuo2s0fyv7Yp_Ipf7x6&index=4
Technical Process
Feathers – To first position the feathers, I oriented a grid along the YZ Plane, keeping them in a row behind on another. I changed the primitive type to Points, making sure there was only one row of points on the grid. I modeled a single feather and copied it onto the points of the grid using a copy node so they would overlap one another.
I then added a primitive node and used the expression abs(sin($F x 1) x ($PT / $NPT) x -50) in the Z rotation parameter to make each feather swing one after another within the positive sine values along a specified angle. The feather geometry had to be packed so that each point would hold only one primitive.
Expressions – For rotating the gears and clock hands, I used $F x 1 which represents the number of angles rotated per frame. To make sure the gears had the correct ratio when rotating, the smaller gear references the rotation expression of the larger gear and multiplies it by the number of teeth on the larger gear divided by the number of teeth on the smaller gear. This allows both to rotate without intersecting one another.
For animating the nodding/swinging of the birds, levers, and egg shells, I used abs(sin($F x 2) x 20) in the rotation Z parameter which takes the absolute sine value of the angle per frame and rotates the object until it reaches the specified angle. The inner number represents the speed of rotation or how many angles the object rotates per frame and the outer number represents the angle determining the range of rotation. I used the same expression for the bobbing motion of the bird emerging from the egg but plugged the expression into the transform Y parameter instead of rotation. The values now represent units rather than angles.
CHOP – I also used noise in a motion CHOP network linked to the transform Y parameters of the small birds to create a random bobbing up and down motion.
Problems Encountered
Movement Range – For the nodding/swinging motion, I had a problem figuring out how to keep the sine values within either a positive or negative range rather than both. I found that using abs() or -abs() allowed me control their stopping point so they would not swing past the origin and only stay within the positive or negative values of sine. The first two pictures represent the range before using the absolute value. The third represents the limit after.
Feathers – Once I understood how to create the feather-like motion of the wings, I noticed that the primitive node would weld the feathers together into one form. This created an odd stretch whenever the feathers would swing apart from each other. Packing the feather geometry so that each feather would count as only a single primitive solved this problem. This allowed only one primitive/point to be copied onto each of the grid points.
I also had some problems UVing in Houdini but eventually brought the birds into Substance to paint on. These are how the textures turned out.