MEL Scripting for Maya Animators - 2nd Edition - ISBN: 9780120887934, 9780080470719

MEL Scripting for Maya Animators

2nd Edition

Authors: Mark Wilkins Chris Kazmier
eBook ISBN: 9780080470719
Paperback ISBN: 9780120887934
Imprint: Morgan Kaufmann
Published Date: 25th July 2005
Page Count: 552
Sales tax will be calculated at check-out Price includes VAT/GST
Price includes VAT/GST

Institutional Access

Secure Checkout

Personal information is secured with SSL technology.

Free Shipping

Free global shipping
No minimum order.

Table of Contents

Preface Special Acknowledgment

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


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.


No. of pages:
© Morgan Kaufmann 2005
Morgan Kaufmann
eBook ISBN:
Paperback ISBN:


"Reading and following the lessons of this book provides one of the best ways for a casual Maya user to elevate their skills to a professional level. The fundamental techniques developed in MEL Scripting for Maya Animators are critical for visual effects artists to learn." —Scott Stokdyk, Visual Effects Supervisor, Sony Pictures Imageworks

"While the first edition opened the doors to MEL scripting for interested Maya users, this expanded and updated second edition delves deeper into important programming concepts, and new features in Maya released since the original edition. No longer just for the first steps in MEL programming, this edition takes the reader into the depths of advanced topics such as user interface layout and web panels that are sure to make this book a frequently used and a welcome addition to any technical director's bookshelf." —Doug Cooper, Visual Effects Supervisor, DreamWorks Animation

"MEL Scripting for Maya Animators is the set of keys you need to get under the hood of Maya. The book is well written for both technical and non-technical animators. It is an essential tool in making sophisticated animation not only possible but also practical." —Henry LaBounta, Senior Art Director, Electronic Arts

"This new edition is – as was the first edition – the very best of an extremely small number of books that even attempt to cover the subject of scripting animation. The authors take great pains to explain where pertinent features, graphs, and editors are found, and to paint a picture of the interconnectivity of Maya’s various networked nodes.
If you’re just getting started or are advanced enough to want the second edition’s beefed up content, there’s an empty spot for this book next to your monitor right now. But make sure there is enough space for a few pads of sticky notes and a couple of highlighting markers. You’ll want to ink this one up." —Game Developer, December 2005

Ratings and Reviews

About the Authors

Mark Wilkins Author

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 Author

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.