Monday, February 16, 2009

3D Animation Basics Part Two

3D Animation Under The Hood.

Seems forever since I wrote anything on 3D animation, and looking at the date of my last blog entry, believe me when I say I have more than a few basic tips for 3D animation beginners tucked up my sleeve. Also, in my defense, I have to admit that although I wasn't writing about 3D animation or the basics of, my actual time was spent doing the exact thing you all come here to read about: 3D animation-ing OR animating, or, well you get the point..

My last entry in May titled, "Inside The Basics of 3D Animation Software", was written as a brief summary explaining the fundamental function of all 3D animation software. At the end of that article, I mentioned that the preceding articles will cover the fields of modeling, texturing, animation, lighting and rendering. Before I do so however, I would like to add somewhat to my last article.

Now, take note, this article will be aimed at the aspiring 3D animator, who seeks to better understand the architecture and structure of 3D applications,

specifically Autodesk Maya. Reason being, of course, I myself am a Maya user from its first launch with Alias Wavefront, to its current state as an Autodesk juggernaut (which, after some initial hesitation, I have come to appreciate more and more each day). For those users who may be using other software, such as 3DSMax, Modo or XSI, I will endeavor to keep the article as software unspecific as possible. With that in mind, let's get started!

Considering that many of you reading this article will one day become proficient enough that you push your given 3D animation software beyond its means, it's important to understand how each action or operation is interpreted by your application and may, at times, have a detrimental lagging effect on it. For instance, if we look at the function of any 3D animation application, it is simply to automate a series of operations, which ordinarily change one type of data into another. The most basic example is when you input data via a keyboard and your computer reads and outputs text via a text word editor like Notepad or Microsoft Word.

When we apply that to 3D animation software, there is little difference. For example, you may create a polygonal object within your 3D scene. You may then choose to manipulate your object within your scene, changing its shape and transforming it over time to suit your needs. These three simple operations have seen you input data via your keyboard, calling up an operation to create a polygonal object. This polygonal object has then gone through two more processes of, firstly, having its shape edited via simple commands from your keyboard or mouse, then also having its translation edited in such a way to have it animate over time. The final step might be for this animated object to be printed to screen (3D animation rocks doesn't it?!).

The reality of the situation is most 3D packages will have these three functions split into two if not three modules that combine to make up the data flow of this particular example, the first being a modeling module to house all the commands that might encompass any type of modeling operation before it is passed on to the animation module to house all the animation commands. The third module, undoubtedly, would be a rendering module setup to handle all the

requirements of the final render.

Ordered into a logical process, this defines the data flow model of many 3D animation applications. Although this may seem the best way to structure any type of 3D animation program (especially when you consider that other fields, such as texturing, lighting, rendering, and even programming may very well require their own individual modules) the problem arises when you as an artist find yourself in the position where you require more functionality than is readily available by your given 3D animation application. An example of this may be when you come to the situation where you would like to use an animation deformer for modeling. A problem arises when you reflect on the data flow model I mentioned earlier. Because you 3-D animation application is split into several different modules, and data can only flow from one module to another (as well as in only one direction), you would be unable to jump into the animation module until you'd finished all the functions you wanted to perform in the modeling module. Bearing in mind as well, you then could not simply jump back into the modeling module to continue modeling your object once you were finished completing an operation in the animation module. Such a data flow model would become cumbersome to artists, and prove detrimental in any production pipeline.

This is where other methods, such as the push-pull method utilized in Maya, prove their worth.

To summarize the theory behind Autodesk Maya's push-pull method, it works in a nonlinear fashion, allowing 3D animators and programmers alike to create complex networks from basic data types. The push-pull method gives users the flexibility to jump from one operation to another regardless of which module the operation may be a part of. Using the above example, the push-pull method would take the object to your modeling with and connect a deformer node to that

object. The transform data would be sent through the deformer node, which would then update the original object accordingly. Because of the use of such a model, a 3D animator is given greater flexibility to jump from one operation to another, disregarding any type of one-way data flow requirement. If this explanation doesn't satiate the hunger of many of you, feel free to check back regularly for a special article I will write on Maya’s Architecture specifically. I simply felt it necessary to explain some fundamental differences between Autodesk Maya and other 3D animation software packages available in the market.

With all this information about data flow models, certain nodes updating other nodes and the architecture of 3-D animation applications, the important thing to understand is that every operation you execute within your preferred 3D animation application will affect the way that application functions. Anyone who

has ever performed a multitude of operations on objects within Maya and failed to delete history will understand what I'm talking about. Intimately.

So with that in mind, endeavor to learn more about the 3-D animation application you're choosing to or currently use and pay close attention to the way in which you use it, how your 3D animation software processes information and what you can do to prevent unwanted responses within your application or the all too common “...not responding” error message.

As with all my articles, if you have any queries regarding 3D animation or any other beginner questions you would like to ask, feel free to either post it below or drop me an e-mail at the address listed at the bottom of this page. As for myself, I is out!