MEL Scripting for Maya Animators

MEL Scripting for Maya Animators

2nd Edition - July 25, 2005

Write a review

  • Authors: Mark Wilkins, Chris Kazmier
  • eBook ISBN: 9780080470719
  • Paperback ISBN: 9780120887934

Purchase options

Purchase options
DRM-free (PDF)
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order


Trying to learn Maya programming from the documentation can be daunting whether or not you are a programmer. The first edition of MEL Scripting for Maya Animators earned the reputation as the best introductory book on MEL, Maya’s scripting language. Now fully revised and updated, the second edition also includes new features, such as a discussion of global procedures, new chapters on fixing programming bottlenecks, advanced user interface techniques, and optimizing character rigs. New chapters on utility nodes and Maya's Web Panel feature provide new ideas on how to use MEL in applications. This new edition has kept the popular style of the first edition that offered very clear explanations of programming concepts to those without programming experience. A generous collection of code examples and Maya scene files is included on the companion Web site. This is a book for animators, artists, game developers, visual effects developers, and technical directors who want to learn the fundamentals of Maya, how to automate tasks, personalize user interfaces, build custom tools, and solve problems with MEL.

Key Features

  • Fully updated with several new chapters
  • Profusely illustrated and includes a companion Web site with numerous code examples and scene files
  • The authors bring their extensive experience in professional production studios to provide expert guidance


Technical and nontechnical animators, artists, game developers, visual effects developers, and technical directors

Table of Contents

  • Chapter 1 Maya Under the Hood
    In this chapter you will learn
    Why Look Under the Hood?
    The Dependency Graph, Attributes, and Connections
    Example 1: Using the Hypergraph to Explore the Dependency Graph
    Transform Hierarchy and Parent/Child Relationships
    Examining the Hierarchy
    Transform and Shape Nodes
    Example 2: Exploring Transform and Shape Nodes, Instancing, and History
    MEL and Maya’s User Interface
    What to Remember About How Maya Works Behind the Scenes

    Chapter 2 The Basics of MEL Commands
    In this chapter you will learn
    Can I Use MEL Without Scripting?
    Command Line and Command Feedback Line
    Command Shell
    Script Editor
    Script Editor Versus Command Shell
    Script Editor’s Messages as MEL Code
    Making a Shelf Button for a MEL Script
    Saving a MEL Script
    Seductive Dangers of the Status Message Area
    The whatIs Command
    Basic Structure of MEL Commands
    Where to Find Information About Maya and MEL on the Internet Newsgroups
    How to Use MEL Scripts Found on the Internet
    What to Remember About How to Use MEL Without Writing Scripts

    Chapter 3 Using Expressions
    In this chapter you will learn
    What Is an Expression?
    How Does an Expression Work?
    Equals Sign: Equality and Assignment
    How Maya Implements Expressions
    Is Maya’s Expression Language the Same as MEL?
    When (and When Not) to Use an Expression
    Defining Relationships Between Attributes
    What Is Operator Precedence?
    Walkthrough of Maya’s Expression Language
    Definitions of Variables
    Computing the Values of Attributes
    Assigning Computed Values
    Example 1: Eyes
    Analyzing the Problem
    Planning the Eyes’ Animation Controls
    Writing the Expression
    What to Remember About Using Expressions

    Chapter 4 Controlling Particles with Expressions
    In this chapter you will learn
    Two Kinds of Particle Object Attributes: Per Object and Per Particle
    All About Vectors
    Two Kinds of Expressions: Ordinary and Particle
    Example 1: Ordinary Expressions and a Newton Field
    Example 2: A Simple Particle Expression
    A Few Hints for Efficient Particle Expressions
    Example 3: Helical Particles Around a Curve
    What to Remember About Particle Expressions in Maya

    Chapter 5 Problem Solving with MEL Scripting
    In this chapter you will learn
    MEL’s Role in Maya: Building Scenes
    Strategies for Planning MEL Applications
    The Simplest User Interface
    Creating, Editing, and Querying Nodes in MEL
    Adding, Setting, and Getting Values of Attributes in MEL
    Connecting Attributes in MEL
    Creating and Connecting Expression Nodes in MEL
    Example 1: Using MEL to Automate Setup for Spiral Particles
    What to Remember About Writing MEL Scripts

    Chapter 6 Variables and Data Types
    In this chapter you will learn
    Declaring Variables (and Not Declaring Them)
    Environment Variables
    MEL Statements and Type Checking
    Simple and Aggregate Data Types
    What to Remember About Variables and Data Types in MEL

    Chapter 7 Using MEL Commands
    In this chapter you will learn
    What Is a MEL Command?
    Structure of a MEL Command
    Using MEL Commands in MEL Scripts
    Avoid Using MEL Commands in Expressions
    What to Remember About Using MEL Commands

    Chapter 8 Manipulating Nodes in MEL
    In this chapter you will learn
    Using ls Command to Find Nodes by Name or Other Properties
    Using Select Command to Manage Object Selection
    Creating Nodes in a Maya Scene
    Finding a Node’s Parents and Children
    Finding Information on Node Connections
    About Maya’s Node Types and the Node and Attribute Reference
    What to Remember About Managing Nodes in MEL

    Chapter 9 Controlling the Flow of Execution
    In this chapter you will learn
    Controlling the Flow of Script Execution
    Basic Conditional Operations: if-else and switch Loops
    What to Remember About Controlling the Flow of Execution in MEL

    Chapter 10 Procedures and Functions
    In this chapter you will learn
    Top-Down Design
    Example 1: A Trip to the Grocery Store
    What Are Procedures and Functions?
    Example 2: Geometry-Constrained Locators
    Example 3: Recursive Antenna
    What to Remember About Procedures, Functions, and Top-Down Design in MEL

    Chapter 11 Naming Nodes, Scripts, and Variables
    In this chapter you will learn
    Why Naming Conventions Are Important
    Naming Scripts
    Naming Variables
    Naming Nodes
    Example 1: Adding a Name Prefix to Objects in a Hierarchy
    Example 2: Changing Name Prefixes in a Hierarchy
    What Are Namespaces?
    Strategies for Using Namespaces
    What to Remember About Naming Scripts, Variables, and Nodes

    Chapter 12 Designing MEL User Interfaces
    In this chapter you will learn
    What Is a User Interface?
    What Maya Users Expect to See from a MEL Script
    Questions to Answer Before Designing a User Interface
    Designing and Testing a User Interface
    Structure of a Dialog Box
    What to Remember About Designing User Interfaces in MEL

    Chapter 13 Simple MEL User Interfaces
    In this chapter you will learn
    Collecting Information from Users
    Validating User Input: When and Why
    Asking for Confirmation with confirmDialog
    Asking User for Text String with promptDialog
    Asking User to Pick File or Directory with fileDialog
    Handling Warnings and Errors with Warning and Error Commands
    Using Regular Expressions and match to Validate Data
    How Regular Expressions Work
    Validating Integers
    Validating Floating-Point Numbers
    Validating Object Names (Without Namespaces)
    Example 1: Simple Dialogs and Input Validation
    What to Remember About Simple MEL User Interfaces and Input Validation

    Chapter 14 Custom Dialog Boxes
    In this chapter you will learn
    How to Structure a Script That Uses a Custom Dialog Box for Input
    Dialog Boxes and Their Contents
    Example 1: Making the Example Dialog Box
    Common Types of Controls
    Common Types of Layouts
    Example 2: Dialog Box for Making Geometric Primitives
    What to Remember About Building Custom Dialog Boxes in MEL

    Chapter 15 Making Advanced Dialog Boxes with formLayout
    In this chapter you will learn
    Why Use formLayout?
    Planning a Dialog Box for formLayout
    Using formLayout: Overview
    Using formLayout: Defining Placement Rules for UI Objects
    Example: Implementing a Dialog Box with formLayout
    What to Remember About Making Dialog Boxes with formLayout

    Chapter 16 Making Advanced Dialog Boxes with Web Panels
    In this chapter you will learn
    What You Need to Know Before You Proceed
    What Are Web Panels?
    Learning Web Authoring
    How a Dialog Box Built with Web Panels Works
    Planning a Dialog Box for Web Panels
    Creating a Web-Based Dialog Box for Maya
    Launching a Web-Based Dialog Box from MEL
    Example 1: Implementing a Dialog Box using JavaScript
    Ideas for Dialog Boxes Built with Web Panels
    What to Remember about Making Dialog Boxes with Web Panels

    Chapter 17 Improving Performance With Utility Nodes
    In this chapter you will learn
    What Is a Utility Node?
    When Should You Consider Using a Utility Node?
    How to Create and Connect a Utility Node
    Example 1: Using the plusMinusAverage node to find the midpoint between two locators
    Common Utility Nodes
    What to Remember About Improving Performance
    With Utility Nodes

    Chapter 18 Installing MEL Scripts
    In this chapter you will learn
    Installing a Script to Make It Available in All Scenes
    Installing a Script to Run When Maya Starts
    Installing a Script into a Script Node in a Scene
    Installing Custom Menus
    Managing Button Shelves and Creating Custom Shelf Icons
    What to Remember About Installing MEL Scripts

    Chapter 19 Examples Using MEL with Particle Dynamics
    Example 1: Introduction to Particle Goals
    Example 2: Particle Goals on a Surface
    Example 3: Using Goals on Multiple Surfaces
    Example 4: Using Goals on Surfaces, Part 2

    Chapter 20 Examples Using MEL with Solid Body Dynamics
    Example 1: Particle Collisions
    Example 2: Collision Events
    Example 3: Collisions Between Objects in Solid Dynamics
    Example 4: Solid Dynamics and Particles

    Chapter 21 Example of a Simple Crowd System
    Example 1: Creating a Vehicle
    Example 2: Vehicle Interaction
    Example 3: Vehicle Environment
    Example 4: Fine Tuning and Completing the Script
    Full Script Reference: crowdSystem.mel

    Chapter 22 Examples Using MEL in Character Rigging
    Example 1: Character Controls
    Example 2: Building a Character User Interface
    Full Text of mrBlahControls.mel

Product details

  • No. of pages: 552
  • Language: English
  • Copyright: © Morgan Kaufmann 2005
  • Published: July 25, 2005
  • Imprint: Morgan Kaufmann
  • eBook ISBN: 9780080470719
  • Paperback ISBN: 9780120887934

About the Authors

Mark Wilkins

Mark R. Wilkins is a technical director at DreamWorks Animation SKG, where he helped develop a production pipeline using Maya for effects and character animation. Mark also provides training and technical assistance to animators using Maya. He previously worked at Walt Disney Feature Animation in a variety of positions including software engineer and scene setup supervisor. He has contributed to a number of films, including Dinosaur, Mission: Impossible 2, Minority Report, and Madagascar. Mark holds a degree in physics from Harvey Mudd College.

Affiliations and Expertise

DreamWorks Animation SKG, Glendale, CA, USA

Chris Kazmier

Chris Kazmier is a senior technical director at Sony Pictures Imageworks, where he creates computer-generated effects for live-action films. He has worked on projects ranging from The Haunted Mansion to Sony's first all 3D feature animation Open Season. Previously, Chris worked at DreamWorks on Sinbad and at PDI/DreamWorks on the Intel Aliens ad campaign. Credits also include Fox Animation Studio's Titan AE and Anastasia.

Affiliations and Expertise

Sony Pictures Imageworks, Culver City, California, U.S.A.

Ratings and Reviews

Write a review

There are currently no reviews for "MEL Scripting for Maya Animators"