The static images, movies and technical breakdown on this page demonstrate how an animation can be baked (exported) as a sequence of rib archive files. An explanation is also given of how other Maya scenes can reference the achived assets in such a way that complex scenes can be rendered without the need for Maya to directly display multiple copies of the original geometry.
For this assignment, we have to take reference photos of palmetto, and use them to model one branch.
I took some reference photos and started analyzing the shapes and colors for the leaves and stem.
The structure of the stems and leaves are quite interesting.
The leaves have strips, spots and outlines with lighter green.
The stems themsevles have variations in color as well.
I have also taken some reference videos:
This is what my first model look like:
In class, I got feedback from the professor and classmates,
and I changed the outline shape for the leaves, and made them denser.
I looked through students' works from pervious quarter,
and I was amazed by Hosuk's palmetto animation.
I decided to use the hair system to animate my branch as well.
So here are the steps I took to animate the branch:
Finish the model for the palmetto branch.
Use "Joint Tool" under "Animation -> Skeleton" and create joints along the path of the stem.
Smooth Bind the joints to the stem and leaves.
Use "IK spline handle tool", click on the base joint and tip joint.
Finally, select the IK spline handle curve, go to "Dynamics -> Hair -> Make Selected Curves Dynamic".
Adjust the "Stiffness" for the "follicode".
Add "Air" or "Turbulence" from "Fields" to the scene. (If the fields are not working,
you can go to "Window -> Relationship Editors -> Dynamic Relationships"
and enable the fields to work on the dynamic curve.)
Change the frame number depending on how long you want the animation to be.
This is what my palmetto animation looks like:
Create Rib Archives:
After you get the animation you like, you create a cube that can contain the branch
My cube is 5 x 2 x 2. Then you do FreezeTransformation.
Select the cube, then go to the Attribute Editor,
Click on "Attributes" and go to "RenderMan" -> "Manage Attributes..."
From "Optional Attributes", find "Pre Shape MEL" and add it.
Go to the Attribute Editor and unfold "Extra RenderMan Attributes",
type in: readArchiveRI("RIB_Archive/branch2.rib");
Create a RIB file by export selected cube, and change the file type
option to "RIB_Archive".
These steps are just for still images, so if you want to generate
a sequence of ribs to create animation,
you type in "rman genrib;" in the MEL command line, and Maya will generate the ribs for you.
Project directory will create a "Renderman" sub-directory,
go inside and you'll see another sub-directory "yourfilename".
Renderman -> "yourfilename" -> rib -> 0000, 0001... _Final
In Maya, go into "Extra RenderMan Attributes",
change Pre Shape MEL to: readArchiveRI
Browse to find your file for Pre Baked Rib,
and remember to check "Use for Animation",
and Ignore Proxies Bounding Box.
Duplicate the cube and form them to whatever you want your palmetto
to look like. Don't forget to assign materials to the cubes
so you can change the texture and color of the leaves.
Now you just adjust Renderman's render settings and do batch render.
High Res Stills:
What my animation looks like:
When I first batch rendered my animation, I got popping palmetto branches.
I found out it's because the "readArchiveRI" script lets each cube read the archives randomly.
When you don't have a cycle animation, the cube reads from say frame 70 to the end
then jump back to frame 1.
So I went back to Maya to bake my animation (since I used dynamics).
Here are the steps I took:
Select the joints' rotation attributes, go to Edit -> Keys -> Bake Simulation.
Go to Graph Editor and make the last frame the same as the first frame.
Adjust the curves to make the animation smooth.
This should take care of the popping problem.
I rendered out 215 ribs of cycle animation, and then batch render only 100 frames.
Remember to enter the number of ribs you have for "Number of Available Ribs".
For example, I have 215 ribs, so I will put 215 even though I'm only rendering out 100 frames.