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
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