Maya is a high-end 3D computer graphics and 3D modeling software package originally developed by Alias Systems Corporation, but now owned by Autodesk as part of the Media and Entertainment division. Autodesk acquired the software in October 2005 upon purchasing Alias. Maya is used in the film and TV industry, as well as for computer and video games, architectural vizualisation and design.
In 2003, Maya (then owned by Alias|Wavefront) won an Academy Award "for scientific and technical achievement", citing use "on nearly every feature using 3-D computer-generated images.
Maya is a popular, integrated node-based 3D software suite, evolved from Wavefront Explorer and Alias PowerAnimator using technologies from both. The software is released in two versions: Maya Complete and Maya Unlimited. Maya Personal Learning Edition (PLE) is available (excluding the Linux version) at no cost for non-commercial use, although the resulting rendered images are watermarked.
Maya was originally released for the IRIX operating system, and subsequently ported to the Microsoft Windows, Linux and Mac OS X operating systems. IRIX support was discontinued after the release of version 6.5. When Autodesk acquired Alias in October 2005, they continued Maya development. The latest version, 2008 (9.0), was released in September 2007.
An important feature of Maya is its openness to third-party software, which can strip the software completely of its standard appearance and, using only the kernel, can transform it into a highly customized version of the software. This feature in itself made Maya appealing to large studios which tend to write custom code for their productions using the provided software development kit.
A Tcl-like cross-platform scripting language called Maya Embedded Language (MEL) is provided not only as a scripting language, but as means to customize Maya's core functionality (much of the environment and tools are written in the language). Additionally, user interactions are implemented and recorded as MEL scripting code which users can store on a tool bar, allowing animators to add functionality without experience in C or C++ programming and compilers, though that option is provided with the software development kit. Support for Python scripting was added in version 8.5.
The core of Maya itself is written in C++.
Project files, including all geometry and animation data, are stored as sequences of MEL operations which can be optionally saved as a 'human readable' file (.ma, for Maya ASCII), editable in any text editor outside of the Maya environment which allows for a high level of flexibility when working with external tools.
A marking menu is built into larger menu system called Hotbox that provides instant access to a majority of features in Maya at the press of a key.
and subdivision surfaces
(or SubDivs) are available in Maya.
Polygons are a widely used model medium due to its relative stability and functionality. Polygons are also the bridge between NURBS and SubDivs. NURBS are used mainly for their ready-smooth appearance and they are used in Dynamics because they respond well to deformations. SubDivs are a combination of both NURBS and polygons. They are ready-smooth and can be manipulated like polygons, providing the artist with an instant representation of a smoothed polygon. Maya's hair cannot be applied to Sub division polygons.
Overview of animation
The model is placed in a starting pose or position, and a keyframe is set. Some frames later, another keyframe is set, and the model is moved as desired. This process is repeated as many times as needed. The animation software interpolates the motion needed to move the model smoothly between the keyframes. What this means is that if the animator keys a box, and moves the box across the room in the next keyframe, when the scene is scrubbed or viewed, the box will glide across the floor instead of jumping from frame to frame. This applies to anything in the scene - moving fingers, eyelids, moving lips, etc.Nonlinear Animation
- After animating a character with keyframes or motion capture, its animation data can be collected into a single, editable sequence. This animation sequence is called an animation clip.
- In Maya, there are two types of clip: source clips and regular clips. Maya preserves and protects a character's original animation curves by storing them in source clips. Source clips are not used to animate the characters. Instead, copies or instances of source clips called regular clips are used to animate the characters nonlinearly.
- Moving, manipulating, and blending regular clips to produce a smooth series of motions for a character is the basis of nonlinear animation. The tool with which all these aspects of a character's nonlinear animation can be managed is the Trax Editor. Path Animation
- A path animation controls the position and rotation of an object along a curve. An object must first be attached to the curve for it to become a path curve. Motion paths can be generated by animating objects using motion path keys.Motion Capture Animation Skeletons
- Skeletons are hierarchical, articulated structures that let the animator pose and animate bound models. A skeleton provides a deformable model with a similar underlying structure as the human skeleton gives the human body.
- Just like in the human body, the location of joints and the number of joints you add to a skeleton determine how the skeleton's bound model or `body' moves. The process of binding a character to its skeleton is called "Skinning". The process of making a skeleton or bones, refining the joints, using IK or FK, putting handles on the joints so animators can manipulate them, and over all making the model ready for animation is called "Rigging"
- ;Forward Kinematics
- Forward Kinematics (FK) is an animation method that involves moving each joint without the restriction of an expected final position. Thus, the 'goal' is to move a joint (or series of joints) as desired, and the final pose is a consequence of those movements. Forward Kinematics is often used for finely-tuned joint movement (such as hands & fingers), as it allows for more complete control over posing. For more information, see Forward kinematic animation.
- ;Inverse Kinematics
- The reverse of Forward Kinematics, Inverse Kinematics is a method that involves defining a final pose, and generating joint movement as needed to reach that pose. Thus, the 'goal' is for all joints to be in a final pose, and the individual joint movements are a consequence of getting to that final pose. Joints must have carefully defined limits to their possible motion for Inverse Kinematics to work well, or the joints can end up 'flopping' before reaching the goal pose. Inverse Kinematics is often used for large limb movement (such as walking, reaching, etc.). For more information, see Inverse kinematic animation and Inverse kinematics.The inverse kinematics in Maya are directly evolved from Wavefront Kinemation
- ;Full Body IK Solver
- When Alias bought Kaydara, Maya got an upgrade, from Kaydara MotionBuilder, with a full body IK solver (FBIK Solver) which simulates real body kinematics. The package comes with a biped and a quadruped FBIK sample.Skinning
- ‘‘Skinning’’ is the process of setting up a character's model so that it can be deformed by a skeleton. You skin a model by binding a skeleton to the model. A model can be bound to a skeleton by a variety of skinning methods, including smooth skinning and rigid skinning. Smooth skinning and rigid skinning are direct skinning methods. Indirect skinning methods can also be used, which combine the use of lattice or wrap deformers with either smooth or rigid skinning.Constraints
- ‘‘Constraints’’ enable the animator to constrain the position, orientation, or scale of an object to other objects. Constraints are often used to depict characters manipulating or interacting with props or the environment. Further, with constraints specific limits on objects and automate animation processes can be imposed.Character Sets
- In Maya, a character set is a node that brings together into a set all the attributes of any collection of objects that you want to animate together. The character set could be anything: a well-armed robot, an automobile, or even some seemingly unrelated collection of objects. Maya enables you to bring all the attributes together in a character node, so you only have to select one node, the character node, when you want to animate all the various attributes.Deformers
- ‘‘Deformers’’ are high-level tools that you can use to manipulate (when modeling) or drive (when animating) the low-level components of a target geometry. In other software packages, the terms modifiers and space warps are used to refer to what Maya calls deformers. The following are the many types of deformers: Blend Shape deformer, Lattice deformer, Cluster deformer, Nonlinear deformers, Sculpt deformer, Soft Modification deformer, Jiggle deformer, Wire deformer, Wrinkle deformer, Wrap deformer, Point On Curve deformer.
Dynamics and simulation
Maya features a particle system
for handling masses like steam and water drops. Dynamic fields allow adding gravity, wind and vortexes, allowing for effects such as blowing leaves or even tornados. Special tools give artists the ability to brush and style particles like hair and fur. This module is a direct evolution of Wavefront Dynamation
An artist may create rigid body geometric objects which collide automatically without explicit animation, as well as soft body objects which can ripple and bend, like flags and cloth.
Maya effects are built-in programs that make it easy for users to create complex animation effects such as smoke, fire and realistic water effects, with many options and attributes for tuning the results.
In version 8.5 a powerful cloth simulator called "nCloth" was added, allowing users to simulate cloth with control over aspects such as self-collision and interpenetration. The cloth objects can be modified to behave as rigid or soft bodies.
Rendering and render setup
Maya has an open render API, and allows for third party render integration. There is a number of renders supported, here is a list of a few:
- Chaos Group, Vray
- Cebas, FinalRender
- DNA Research, 3Delight
- Illuminate Labs, Turtle
- Indigo Renderer
- NextLimit, Maxwell Render
- Nvidia, Gelato
- Mental Images, Mental ray
- Physically Based Rendering, PBRT for Maya (openSource )
- Pixar, RendermanForMaya
- Pixar, Renderman Studio (which replaces RAT ) and works with PhotoRealistic Renderman
- Sitex Graphics, Air (With RIB translation software like Liquid or MayaMan )
- Sunflow (openSource )
- Like most 3D programs, Maya includes a number of parameterized shading models to define an object's visual properties, including Lambert, Blinn, Phong, and anisotropic shaders. Depending on which shading model is used, the parameters affect attributes such as the surface's color, reflective properties, and transparency, with the goal of simulating the appearance of real-life materials such as metal, stone, wood, and skin. Shaders can also incorporate bump maps, which create the illusion of surface textures. Toon Shading
- Toon shading creates the look of 2D cel or cartoon animation using 3D modeling and animation software. Elements of the "toon" look include profile lines (outlines), border lines, crease lines, intersection lines, and solid color shading. Combined, these elements recreate the look of traditional animation's "ink and paint" technique, where ink refers to lines and paint refers to shading.Lighting
- In the real world, when light shines on a surface, the parts of the surface facing toward the light source appear illuminated, and the parts of the surface facing away from the light source appear dark. If one object is located between a second object and the light source, the first object casts a shadow onto the second object.PaintEffects
- A component of Maya used to paint brush strokes and particle effects on a 2D canvas or on or between 3D geometry. Paint Effects can be used as a traditional paint program to paint images on a canvas, to paint repeatable textures applied to 3D geometry in scenes, or to paint in 3D space
- ’’Paint Effects’’integrates 2D painting tools into a 3D rendering environment. Libraries include numerous trees, grasses, and plants which can be painted to 'grow' off the surface of an object.Mental ray
- Native Mental Ray renderer.RenderMan for Maya
- In 2005, Pixar released RenderMan for Maya renderer which incorporates the full RenderMan Pro Server features into a native Maya plugin. The workflow involves the use of Maya materials converted into RenderMan .
Maya Unlimited version comes with a set of tools not available in the Maya complete version. Maya Fluid Effects
- A realistic fluid simulator (effective for smoke, fire, clouds and explosions, added in Maya 4.5)Maya Classic Cloth
- Cloth simulation to automatically simulate clothing and fabrics moving realistically over an animated character. The Maya Cloth toolset has been upgraded in every version of Maya released after Spider-Man 2. Alias worked with Sony Pictures Imageworks to get Maya Cloth up to scratch for that production, and all those changes have been implemented, although the big studios opted to use third party plugins such as Syflex instead of the (relatively) cumbersome Maya Cloth. Maya Fur
- Animal fur simulation similar to Maya Hair. It can be used to simulate other fur-like objects, such as grass.Maya Hair
- A simulator for realistic-looking human hair implemented using curves and PaintEffects. These are also known as dynamic curves.Maya Live
- A set of motion tracking tools for CG matching to clean plate footage.Maya nCloth
- Added in version 8.5, nCloth is the first implementation of Maya Nucleus, Autodesk's simulation framework. nCloth gives the artist further control of cloth and material simulations.
Scripting and plugins
In Maya, anything can be connected to anything. E.g. a color intensity of a shader can be used to control the movement of a door opening and closing. To control the node based system of Maya, fully reconfigurable user interface can be scripted with MEL
script code which can be dropped onto a shelf to create a new icon that executes that code.
With the release of Maya 8.5 support for the Python scripting language has been included. The current implementation of Python in maya is not fully object oriented though.
Mel stands for Maya Embedded language and it's a script language similar to C embedded in Maya.
Code written in Mel can be executed from the script editor, from the shelves and from drop down menus.
Mel lets the user have more access and more control than the User Interface; some functions of the software and advanced options are only available by using Mel.
All maya preferences are maya code so are the drop down menus. This means that it is always possible, with a little digging, to retrieve the mel commands
and mel functions that maya calls when you click a specific button of the UI.
Mel is not object oriented, this means it is not possible create classes and methods or functions associated to it as you would in C++ or Python.
This however shouldn't be seen as a mere limitation because gives Mel a strong structure making it accessible and easier to understand to Maya users and to first time programmers.
Also the linear scripting nature of the language would assist the user in making the most of the maya nodes instead of tempting him/her to make its own objects, as in case of object oriented languages.
Maya is the culmination of three 3D software lines: Wavefront's The Advanced Visualizer (in California), Thomson Digital Image (TDI) Explore (in France) and Alias' Power Animator (in Canada). In 1993 Wavefront purchased TDI, and in 1995 Silicon Graphics Incorporated
(SGI) purchased both Alias and Wavefront (due to pressure from Microsoft
's purchase of Softimage
earlier that year) and combined them into one working company, producing a single package from their collective source code. In the mid-1990s, the most popular pipeline in Hollywood films was a combination of tools: Alias Studio for modeling, Softimage
for animation, and PhotoRealistic RenderMan
for rendering. This combination was used for numerous films, such as Jurassic Park
, The Abyss
and Terminator 2: Judgement Day
. The combined company was referred to as Alias|Wavefront. It took Alias|Wavefront two more years after the merger to release Maya.
Both Alias and Wavefront were working on their next generation of software at the time of the merger. Alias had taken a Macintosh product, "Alias Sketch!", moved it to the SGI platform and added many features to it. The code name for this project was "Maya", the Sanskrit term for "illusion." Maya was developed in close collaboration with Walt Disney Feature Animation, during the production of Dinosaur, and the GUI was all customizable as a requirement from Disney so they could set up their own GUI and workflow based on decades of animation experience. This had a large impact on the openness of Maya and later also helped the software become an industry standard, since many facilities implement extensive proprietary customization of the software to gain competitive advantage.
It was then decided to adopt Alias' "Maya" architecture, and merge Wavefront's code with it.
In the early days of development, Maya used Tcl as the scripting language. After the merger, there was debate amongst those who supported Tcl, Perl and Sophia. Sophia was much faster than the others and won out. However, once error checking was added, it ended up being equally slow.
Upon its release in 1998, Alias|Wavefront discontinued all previous animation-based software lines including Alias Power Animator, encouraging consumers to upgrade to Maya. It succeeded in expanding its product line to take over a great deal of market share, with leading visual effects companies such as Industrial Light and Magic and Tippett Studio switching from Softimage to Maya for the animation software.
Later Alias|Wavefront was renamed Alias. In 2003 Alias was sold by SGI to the Ontario Teachers' Pension Plan and the private equity investment firm Accel-KKR. In October 2005, Alias was sold again, this time to Autodesk, and on January 10, 2006, Autodesk completed the acquisition and Alias Maya is now known as Autodesk Maya.
Official Maya learning tools
Along with the history of Maya the company has produced Maya learning tools which date back to the earlier Alias days. Beginning with an internally produced newsletter on Maya software techniques and workflows, the company continued with the internally produced Art of Maya book and training videos and tutorials. In response to strong user demand the company's education department further developed instructional books and video-based learning content referred to as learning tools. Autodesk continues to develop learning tools with content developed both by internal product specialists as well as industry professionals. The company's video-based learning tools have recently moved away from physical production and are now available as digital downloads.
Current version (2008)
The system requirements for Maya 2008 are as follows:
- Windows and Linux: Intel Pentium 4 or higher, AMD Athlon 64, or AMD Opteron processor
- Macintosh: Power Mac G5 or Intel-based Macintosh computers
- 2 GB RAM
- 2 GB hard disk space
- Qualified hardware-accelerated OpenGL graphics card
- Three-button mouse with mouse driver software
- DVD-ROM drive
Version release dates history
- 2009 October 2008
- 2008 Extension 2, Only to subscribers(9.2): February 2008
- 2008 Extension 1, Only to subscribers(9.1): December 2007
- 2008 (Support for Windows Vista, 9.0): September 2007
- 8.5 SP1: June 2007
- 8.5: January 2007
- 8.0: August 2006
- 7.0.1: December 2005
- 7.0: August 2005
- 6.5.1: December 2005
- 6.5: January 2005 (last shipping IRIX Version)
- 6.0: May 2004
- 5.0: May 2003
- 4.5: July 2002
- 4.0: June 2001 (no Mac OS X Version)
- 3.5.1: September 2002 (Mac OS X only)
- 3.5: October 2001 (first shipping Mac OS X Version only)
- 3.0: February 2000 (first shipping Linux Version)
- 2.5.2: March 2000
- 2.5: November 1999
- 2.0: June 1999
- 1.5: October 1998 (IRIX only)
- 1.0.1: October 1998 (Windows Version)
- 1.0.1: June 1998 (IRIX Version)
- 1.0: June 1998 (first shipping Windows Version)
- 1.0: February 1998
- "Maya 7 for Windows and Macintosh" by Danny Riddel, Morgan Robinson and Nathaniel Stein. Peachpit Press, 2006.
- "Mel Scripting for Maya Animators" by Mark R. Wilkins and Chris Kazmier, Morgan Kaufmann Publishers, 2005.
- "Understanding Maya" by Sergey Tsiptsin, ArtHouse Media, 2007.