What is MEL?

advertisement
An Introduction to MEL
Scripting for Animators
Presented by: Paul Robbins
Who I am
Who I am
Education
Who I am
Education
- BFA in Digital Art/Design from Henderson State
University with a minor in Computer Science
Who I am
Education
- BFA in Digital Art/Design from Henderson State
University with a minor in Computer Science
- BS in Computer Animation from Full Sail
Who I am
Experience
Who I am
Experience
- Animator at Insomniac Games
Who I am
Experience
- Animator at Insomniac Games
- Animator at Activision’s Raven Software
Who I am
Experience
- Animator at Insomniac Games
- Animator at Activision’s Raven Software
- Wolfenstein
Who I am
Experience
- Animator at Insomniac Games
- Animator at Activision’s Raven Software
- Wolfenstein
- Singularity
Who I am
Experience
- Animator at Insomniac Games
- Animator at Activision’s Raven Software
- Wolfenstein
- Singularity
Outline
Outline
Basics
- What is MEL?
- How Maya Uses MEL
- Script Editor
- MEL Commands
- Variables
- Return Values
Outline
Usage and How to Learn MEL
- Script Editor
- MEL Command Reference
- Other People’s Scripts
Outline
Usage and How to Learn MEL
- Script Editor
- MEL Command Reference
- Other People’s Scripts
Outline
Example Script
- How it Works
- The Process of Writing It
Outline
Helpful Resources
MEL Basics
MEL Basics
What is MEL?
MEL Basics
What is MEL?
- Stands for Maya Embedded Language
MEL Basics
What is MEL?
- Stands for Maya Embedded Language
- Scripting language that’s unique to Maya
MEL Basics
What is MEL?
- Stands for Maya Embedded Language
- Scripting language that’s unique to Maya
- Easier to learn than programming languages like
C++
MEL Basics
How Maya Uses MEL
MEL Basics
How Maya Uses MEL
- Menus
- Shelf Buttons
- Hotkeys
- Expressions
- GUI
MEL Basics
Script Editor
MEL Basics
Script Editor
- You get to it by hitting
MEL Basics
Script Editor
- Top area displays the MEL that Maya just did
MEL Basics
Script Editor
- Top area displays the MEL that Maya just did
- Bottom area is a work area where you type code
interactively
MEL Basics
Script Editor
- Top area displays the MEL that Maya just did
- Bottom area is a work area where you type code
interactively
- Selecting text and hitting ‘ctrl + Enter’ executes code
MEL Basics
Script Editor
- Top area displays the MEL that Maya just did
- Bottom area is a work area where you type code
interactively
- Selecting text and hitting ‘ctrl + Enter’ executes code
- Make a shelf button by selecting text and middle
mouse dragging to the shelf
MEL Basics
MEL Commands
MEL Basics
MEL Commands
- Structure
MEL Basics
MEL Commands
- Structure
<command name> -flags values;
MEL Basics
MEL Commands
- Structure
<command name> -flags values;
MEL Basics
MEL Commands
- Structure
<command name> -flags values;
MEL Basics
MEL Commands
- Structure
<command name> -flags values;
MEL Basics
MEL Commands
- Structure
<command name> -flags values;
- Example 1
sphere -radius 3;
MEL Basics
MEL Commands
- Structure
<command name> -flags values;
- Example 1
sphere -radius 3;
- Example 2
polySphere -radius 2.5 -subdivisionsX 10
-subdivisionsY 30 -name "Rambo";
MEL Basics
MEL Commands
- Structure
<command name> -flags values;
- Example 1
sphere -radius 3;
- Example 2
polySphere -radius 2.5 -subdivisionsX 10
-subdivisionsY 30 -name "Rambo";
- These flags are like the option box settings
MEL Basics
MEL Commands
- Modes
MEL Basics
MEL Commands
- Modes
Creation
Edit
Query
MEL Basics
MEL Commands
- Modes
- Creation
- by default
MEL Basics
MEL Commands
- Modes
- Creation
- by default
- Edit
- Used to change values of an existing
object
MEL Basics
MEL Commands
- Modes
- Creation
- by default
- Edit
- Used to change values of an existing
object
- Query
- Used to get a value from an existing
object
MEL Basics
MEL Commands
- Examples of Modes
MEL Basics
MEL Commands
- Examples of Modes
- Creation
polySphere;
MEL Basics
MEL Commands
- Examples of Modes
- Creation
polySphere;
- Edit
polySphere -edit -radius 4 “Rambo”;
MEL Basics
MEL Commands
- Examples of Modes
- Creation
polySphere;
- Edit
polySphere -edit -radius 4 “Rambo”;
- Query
polySphere -query -radius “Rambo”;
MEL Basics
Variables
MEL Basics
Variables
- Are for storing data
MEL Basics
Variables
- Are for storing data
- Always start with a ‘$’
MEL Basics
Variables
- Are for storing data
- Always start with a ‘$’
- Data Types
MEL Basics
Variables
- Are for storing data
- Always start with a ‘$’
- Data Types
- Int (Stands for Integer)
MEL Basics
Variables
- Are for storing data
- Always start with a ‘$’
- Data Types
- Int (Stands for Integer)
4
MEL Basics
Variables
- Are for storing data
- Always start with a ‘$’
- Data Types
- Int (Stands for Integer)
4
- Float
MEL Basics
Variables
- Are for storing data
- Always start with a ‘$’
- Data Types
- Int (Stands for Integer)
4
- Float
7.259
MEL Basics
Variables
- Are for storing data
- Always start with a ‘$’
- Data Types
- Int (Stands for Integer)
4
- Float
7.259
- String
MEL Basics
Variables
- Are for storing data
- Always start with a ‘$’
- Data Types
- Int (Stands for Integer)
4
- Float
7.259
- String
“Frito Chili Pie”
MEL Basics
Variables
- Declaring a variable
- To MAYA!
MEL Basics
Variables
- Declaring a variable
- int $theNumberAwesome = 42;
MEL Basics
Variables
- Declaring a variable
- int $theNumberAwesome = 42;
- Equals sign assigns a value to a variable
MEL Basics
Return Values
MEL Basics
Return Values
- Are the result of running a command
MEL Basics
Return Values
- Are the result of running a command
returnValue <command name> -flags values;
MEL Basics
Return Values
- Are the result of running a command
returnValue <command name> -flags values;
MEL Basics
Return Values
- Are the result of running a command
returnValue <command name> -flags values;
- Use backquotes to store the return value/result of a
command in a variable
MEL Basics
Return Values
- Are the result of running a command
returnValue <command name> -flags values;
- Use backquotes to store the return value/result of a
command in a variable
int $variable = `<command name> -flags
values`;
Usage and How to Learn MEL
Usage and How to Learn MEL
Script Editor
Usage and How to Learn MEL
Script Editor
- Echo All Commands
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
- Help
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
- Help
- help polySphere;
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
- Help
- help polySphere;
- List of what flags a command uses
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
- Help
- help polySphere;
- List of what flags a command uses
- shows the flags short and long names
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
- Help
- help polySphere;
- List of what flags a command uses
- shows the flags short and long names
- shows the data type of a flags value
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
- Help
- help polySphere;
- List of what flags a command uses
- shows the flags short and long names
- shows the data type of a flags value
- whatIs?
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
- Help
- help polySphere;
- List of what flags a command uses
- shows the flags short and long names
- shows the data type of a flags value
- whatIs?
- whatIs editMenuUpdate;
Usage and How to Learn MEL
Script Editor
- Echo All Commands
- Displays commands that don’t normally
display
- Help
- help polySphere;
- List of what flags a command uses
- shows the flags short and long names
- shows the data type of a flags value
- whatIs?
- whatIs editMenuUpdate;
- use if you just don’t recognize something
Usage and How to Learn MEL
MEL Command Reference
Usage and How to Learn MEL
MEL Command Reference
- To the MEL Command Reference!
Usage and How to Learn MEL
Other People’s Scripts
Usage and How to Learn MEL
Other People’s Scripts
- Try to trace what’s happening
Usage and How to Learn MEL
Other People’s Scripts
- Try to trace what’s happening
- Look up what you don’t know in the Command
Reference
Usage and How to Learn MEL
Other People’s Scripts
- Try to trace what’s happening
- Look up what you don’t know in the Command
Reference
- Write up the new commands you learn to get
comfortable with them
Example Script
Example Script
Cycle Tangent Select
Example Script
Cycle Tangent Select
- The Code
string $selectedCurve[] = `keyframe -query -selected -name`;
int $firstKey = `findKeyframe -which "first" $selectedCurve[0]`;
int $lastKey = `findKeyframe -which "last" $selectedCurve[0]`;
selectKey -replace -keyframe -time $firstKey $selectedCurve[0];
selectKey -add -keyframe -time $lastKey $selectedCurve[0];
keyTangent -edit -inTangentType flat -outTangentType flat;
selectKey -add -outTangent -time $firstKey $selectedCurve[0];
selectKey -add -outTangent -time $lastKey $selectedCurve[0];
Example Script
Cycle Tangent Select
- The Process
Example Script
Cycle Tangent Select
- The Process
- Come up with the idea
Example Script
Cycle Tangent Select
- The Process
- Come up with the idea
- Step through it manually with Echo All
Commands on
Example Script
Cycle Tangent Select
- The Process
- Come up with the idea
- Step through it manually with Echo All
Commands on
- Use Command Reference to understand all
the commands that the script editor spits
out
Example Script
Cycle Tangent Select
- The Process
- Come up with the idea
- Step through it manually with Echo All
Commands on
- Use Command Reference to understand all
the commands that the script editor spits
out
- Grab the commands from the script editor
Helpful Resources
Helpful Resources
Books
Helpful Resources
Books
- MEL Scripting for MAYA Animators
by Mark R. Wilkins and Chris Kazmier
Helpful Resources
Books
- Complete Maya Programming
by David A. D. Gould
Helpful Resources
Websites
Helpful Resources
Websites
- forums.cgsociety.org (CGTalk)
Helpful Resources
Websites
- forums.cgsociety.org (CGTalk)
- creativecrash.com (formerly Highend3d.com)
Helpful Resources
Websites
- forums.cgsociety.org (CGTalk)
- creativecrash.com (formerly Highend3d.com)
- tech-artists.org
Helpful Resources
Websites
- forums.cgsociety.org (CGTalk)
- creativecrash.com (formerly Highend3d.com)
- tech-artists.org
- area.autodesk.com
Conversational MEL Tutorial
Conclusion
Conclusion
What we’ve covered
Conclusion
What we’ve covered
- How Maya uses MEL
Conclusion
What we’ve covered
- How Maya uses MEL
- The Script Editor and how to see the MEL that Maya
uses
Conclusion
What we’ve covered
- How Maya uses MEL
- The Script Editor and how to see the MEL that Maya
uses
- Commands
Conclusion
What we’ve covered
- How Maya uses MEL
- The Script Editor and how to see the MEL that Maya
uses
- Commands
- Variables
Conclusion
What we’ve covered
- How Maya uses MEL
- The Script Editor and how to see the MEL that Maya
uses
- Commands
- Variables
- Return Values
Conclusion
What we’ve covered
- How Maya uses MEL
- The Script Editor and how to see the MEL that Maya
uses
- Commands
- Variables
- Return Values
- And an Example Script
Thank You
Background image from www.interweb.in/wallpaper
Download