Tuesday, May 12, 2015

IMM 211 - Final Project (Menger Sponge)

Here is my final project for IMM 211 - Animation I.

Proposal 
My final project is a procedure 3D animation of a stage-4 Menger Sponge assembling itself. A Menger Sponge is a complex fractal (meaning it follows a pattern that could theoretically be repeated indefinitely). The animation begins with polygonal planes which assemble themselves into cubes which are used to form the four stages of the Menger Sponge.

Pre-Production
Much of the research that went into this project dealt with learning the specific functions available in Maya. I am very familiar with the underlying structure of the Menger Sponge, so the modeling aspects of the project did not require much outside research. Since I created a procedural animation, the, it closely follows the project storyboard. The completed storyboard can be seen in the blog post below. A significant amount of time and research went into selecting a song to enhance the animation as well. In terms of timing, the beat of "Kiara" by Bonobo closely matches the animation of the Menger Sponge, so I decided to use it in the final project.

Production Log
Work on this project began several months ago. After the pre-production and research stages, I began the modeling work in Maya. I began by animating the assembly of planes to form basic cube (which was used as a building block for the rest of the Menger Sponge). From there, I animated the motion of the cubes to form the first stage of the Menger Sponge. I learned a lot about changing reference points, perspective views, and cameras during this stage. Afterwards, much of the work animation work was similar, just more complex. The second, third, and fourth stages of the Menger Sponge are built upon previous stages, so the animation got increasingly more complex. Once the fourth stage of the Menger Sponge was completed, I began working with cameras. I learned a lot about using all of the perspective views in conjunction to get the desired camera effects. After the camera's was key-framed, it was time to work on materials and texturing. I wanted to give the Menger Sponge a metallic appearance, so I used the EnvChrome preset in Maya and changed its properties and attributes until I created the material that I was looking for.

After the Menger Sponge was modeled/textured and the animation was key-framed, it was ready for rendering. The biggest problem that I encountered during this process occurred during rendering. Due to the reflective nature of the EnvChrome, rendering the animation was very memory-intensive. For this reason, I was unable to batch render the animation. Each of the 490 frames were keyed, renamed, and saved individually. After countless hours of rendering, I compiled all of the stills to create the final animation. I then added a soundtrack to the animation ("Kiara" - Bonobo). The final render was then uploaded to YouTube, and the completed animation can be seen above.

Self-Evaluation
I have learned a lot about Maya (and 3D animation as a whole) throughout the course of the semester. I am not particularly interested in modeling characters or creating organic movements, which is why I chose to work on a procedural animation. It was interesting to learn about all of the NURBS creation and manipulation techniques although I did not incorporate them into this particular project. I am more comfortable and interested in working with polygons, so this project is composed entirely of polygonal models.

Prior to this class, I had no animation experience whatsoever. Throughout the semester, I created many NURBS models which I ended up using as a part of my final project for IMM 370. However, I am most proud of my work with polygonal models. Figuring out how to accurately model and animate such a complex polygonal model was a great learning experience. In all, I am very satisfied with the final result of my project. I hope to continue working on similar projects in the future.

Sunday, April 12, 2015

Assignment #9: Final Project Storyboard

The ninth assignment was to create the storyboard for the final project. My final project is more of a procedural assembly of a stage-4 Menger Sponge. For this reason, there is not much of a story to convey through the storyboard. Instead, I showed exactly how the animation will progress (from flat primitive shapes to a complex multi-stage Menger Sponge). Below is my storyboard.


Assignment #8: Pre-Rigged Character Animation

The sixth assignment was to create a simple animation using a pre-rigged character. In class, we were taught how to control and manipulate the classic Lowman rig. However, I have much more experience using the SimpleMan (pre-rigged character), so I decided to create an animation using this rig instead. Originally, I was going to create a karate kick animation. However, the way the inverse kinematics are set up with the SimpleMan rigs made this very challenging. So instead, I created a short animation where the character takes a bow then punches towards the camera. Below are some screenshots from the animation process.
Screenshot of the character preparing for punch
Screenshot of character during punch


Assignment #7: Simple Animation

The seventh assignment involved creating a simple animation using the techniques covered throughout the course up to this point. I decided to get started on my final project and animate the assembly of basic cubes (to use later in my final Menger Sponge animation). The cubes started out as a net, which is basically the shape you would get if you unfolded all sides of a cube. This shape then begins to animate and the initial cubes take shape from the original nets. These cubes then duplicate and assemble themselves to create a stage-1 Menger Sponge. This is the basic concept behind my final project. The goal would then be to use the stage-1 Menger Sponges as building blocks for the next Menger Sponge (showing the fractal nature of this design). This process will ultimately repeat until a Stage-4 or 5 Menger Sponge is created. However here is the basic animation that I have up to this point:

Step 1: The flattened cube (net)
Step 2: Cube assembly in progress
Step 3: Completed cubes
Step 4: Cubes duplicate
Step 5: Stage-1 Menger starts to take shape
Step 6: Completed Stage-1 Menger Sponge.

Assignment #6: Shaders/Lighting Exercise

The sixth assignment was to create a model and experiment with materials, shaders, and lighting. Continuing with the fractal theme, I created a 3D version of the Sierpinski Triangle using the reference image below. I used polygonal geometry to create this model, as using NURBS would introduce unnecessary complexity. I created my own shaders and edited properties to make the model semi-transparent so that all iterations of the fractal can be viewed at once. I also experimented with various light sources to get the effect that I was looking for. Overall, this exercise helped me get more comfortable with shaders and lighting as a whole.

2-dimensional Sierpinski Triangle
(image: https://www.zeuscat.com/andrew/chaos/sierpinski.clear.gif)

Another view of the completed model.


A render of the completed model.


Tuesday, March 10, 2015

Midterm - Self Evaluation

I have learned a lot about Maya throughout this semester. When I started this class, I had absolutely no experience with Maya (or 3D modeling/animating) whatsoever. I feel like I have come a long way since then. We started off learning the basic primitive shapes, and now we are creating complex models using curves and the many techniques associated with them.

I am most comfortable with drawing curves and creating realistic models using photo references. I found the first few projects to be challenging because there was no physical photo reference in Maya to base the models off of. However, once I learned how to create an image plane, it became significantly easier to create more realistic 3D models.

I really enjoyed learning about the different types of curves and the techniques associated with them. I am used to using Bezier curves (since I have done a lot of work with Adobe Illustrator), but Maya has quite a few more options. It fascinates me how a simple curve can be used to create such a complex geometric shape. I wish to further explore these concepts in the future.

I have the most difficulty with modeling NURBS with CVs. Although pushing/pulling CVs often gives the model an organic look, I find it very difficult to keep the model somewhat symmetrical or to simply achieve the desired result. However, I have been practicing these techniques in quite a few of my models, so i definitely feel more comfortable with this type of NURBS modeling with practice.

I would also like to learn more about modeling with polygons. Since most of my origami work is symmetrical and based on fractals, I would like to incorporate that style in my 3D models. However, it can be difficult to create a fully symmetrical model using NURBS. It is obviously possible to achieve the desired result using NURBS; however, since it seems 3D modeling is heading in the direction of polygons, I would like to learn a bit more about polygon modeling as well.

Overall, I feel like a have learned a great deal of information both inside and outside of class this semester. Although the basic concepts are taught in class, I realize how important it is to expand your knowledge by learning techniques online outside of class. Becoming proficient in 3D modeling definitely comes with time and practice. I will continue working on building my library of Maya skills, and ideally apply them to a more complex and comprehensive final project.

Sunday, March 8, 2015

Assignment #5.5: NURBS Modeling (Surfboard) [WIP]

This was not a formal assignment. For my final project, I would like to create a surfboard, so I decided to get a head start on it. As the title states, this model is still a work in progress. I used the image below as a reference to get the basic curves that go into surfboard design. By lofting and extruding these curves, I was able to create the basic shape of the surfboard. I ran intro trouble making the top of the surfboard because Maya will not allow you to create a surface (using planar) if your curve is not consistent in either the X, Y, or Z dimension (meaning the curve is not flat). To get around this issue, I simply extruded the curve I used to make the stringer and projected the top rail curves on the extruded surface. I then used the trim tool to cut out the shape of the board. I created different materials for the fiberglass of the board and the wood used in the stringer. Many improvements can be made to this model, but I am pretty happy with it so far. I also intend to add my previous fin model to this surfboard to make it a complete setup. Below you will find an image of the reference and a frame from my final render.

The reference used to create the shape of the board. Image found here.

A frame from the final render.

Assignment #5: Modeling Using Curves (Surfboard Fin)

The fifth assignment was to create a model using curves. I used the image below as a reference to re-create the basic curved shape and structure of a surfboard fin. I used the lofting, planar, and extrusion techniques to create the curved surface of the fin. I then molded a NURBS cube to create the fiberglass part of the fin that gets inserted into the board. I then mapped curves to the surface and used the trim tool to hollow out sections on the bottom of the fin so it would fit into a board. I then created the fiberglass texture by creating a bump map with the cloth texture and changing the attributes to give a fiberglass effect. The top of the fin was then textured to represent carbon fiber. Below is a screenshot of the reference, design process, and a photo from the final render.

This image was used as a reference to create my 3D fin model

A screenshot from the animation process (after creating curves)

An image of the final render

Assignment #4: NURBS Model (Rubber Duck)

The fourth assignment was to create a more advanced NURBS model simply using primitive shapes. Although the completed model resembles a rubber duck, I feel as though it could be significantly improved with the use of curves (and lofting, extruding, etc.). This model was created with a few primitive NURBS shapes. Then, by simply selecting and pushing/pulling CVs on the surfaces, I modeled the beak and wings of the rubber duck. This process is very time consuming, and it can be difficult to achieve the desired result. I would like to explore curves more in the future (as I think these would make it much easier to create more sophisticated models). Below are some screenshots from the final render.

A frame from the completed render (with backgrounds/textures)


A frame from the completed render.

Thursday, February 19, 2015

Assignment #3: Bouncing Ball Animation (Part 2)

The third assignment was to finish the bouncing ball tutorial from the PDF that we began last week. All of the animation was completed during the previous class. This week's assignment helped me gain a better understanding of how textures, materials, lighting, and rendering work in Maya. Below is a screenshot from the material/lighting process as well as a render from the final animation.

A screenshot from the texturing/rendering process
The final render

Monday, February 9, 2015

Assignment #2: Bouncing Ball Animation (Part 1)

The second assignment was to complete half of the bouncing ball tutorial from the PDF. At this point, the ball, ring, and floor are in place. The movement of the ball is being exaggerated to give it the squash and stretch effect seen in traditional 2D animation. From here, textures will be applied to each of the objects, and fire will surround the ring. This will be implemented using a particle system.

Saturday, February 7, 2015

Assignment #1.5: Primitives Model (Menger Sponge)

Much of my origami work deals with fractals, so I knew I wanted my first 3D project to be a fractal. In my opinion, one of the most fascinating fractals (made with origami) is the Menger Sponge. That being said, I decided to create a Menger Sponge simply using primitive shapes. Once I created the basic pattern, I created groups of objects, and simply relocated them to make the more complex fractal with more iterations. This model actually inspired my other (more complex) 3D Fractal model that I submitted for Assignment #1. Below is a frame from the final render.


Assignment #1: Create a Model Using Maya Primitives (Fractal)

The first assignment was to create a model using the primitive shapes in Maya 2015. Much of my origami work focuses on fractals, so I decided to create a fractal using polygonal cubes. I originally had the idea to create a Menger Sponge in Maya; however, while browsing through photos of 3D fractals, I decided to design something very different.

[In Progress] Stage-2 Fractal

[In Progress] Stage-4 Fractal

[In Progress] Stage-6 fractal before lighting, textures, etc.

Unlike the Menger Sponge, I started with the largest stage first and continued to add further iterations by adding smaller cubes while repeating the same general pattern. This particular model took several hours to complete because it required 2220+ cubes to be created, re-sized, positioned, etc. I am particularly pleased with the result, as seen here:

Completed Fractal with 6 Iterations