SlideShare a Scribd company logo
Maya Dynamics Basics
Lab 5: MEL and Expression
Author: Khieu Van Bang
Email: tribang.nd@gmail.com
CONTENTS
 Basics:
Why using MEL & expressions?
Differences between MEL and expression.
What you can do by using MEL and Expression ?
 MEL Basics:
 How Maya Uses MEL.
 Script Editor.
 MEL Commands .
 Variables .
 Return Values.
 Expression:
 Create expression.
 Helpful Resources.
1) BASICS
1.1) What is MEL and Expressions?
1.2) Differences between MEL and Expression.
1.3) What you can do by using MEL and Expression ?
MEL and Expression
1.1) What is MEL and Expressions?
1) MEL and Expression
 MEL stands for Maya Embedded Language. MEL is a scripting language which can
embody "open architecture" of maya. By using MEL, user can control maya functions
directly/indirectly. Even maya's GUI (graphic user interface) can be controlled by MEL.
Therefore user can add new functions that maya doesn't have OR customize GUI as
their needs.
 Expression controls attribute of object. User can control an animation which cannot
be key framed (e,g. particle). Using expression is similar to script MEL.
We will mainly learn how to work with Expression.
1.2) Differences between MEL and Expression.
1) MEL and Expression
MEL Expression
MEL is more likely completely independent
programme.
Expression is a correlation with objects.
MEL needs complete structure of grammar. Expression needs only the least rules.
MEL is executed no matter animation is played
or not.
Expression is executed only while animation
playing.
MEL is saved separately with the scene. Expression is saved as a part of the scene.
MEL access to the attribute indirectly. Expression access to the attribute directly.
1.3) What we can do by using MEL and Expression.
1) MEL and Expression
 MEL : control an attribute of object accurately, create new macro, create new user
interface, customize maya GUI.
 Expression : control attributes of object apart from key framing by numerical
expression, control attributes by conditions, It can use MEL command in expression.
However, it can't control the attribute that controlled by existing key, set driven key,
constraint, motion path or other expression. It can occur an error if you run MEL
commands such as connection/disconnection of attribute or creation/deletion of
object within the expression.
 Grammar of MEL is very similar to other programming languages like C, C++. Not
only the MEL, most script based languages are descended from C. It is not essential
to learn programming language for MEL. Although if you have experience with
scripting language, it will be easier to understand the structure.
 Do not worry !
1) MEL and Expression
o I know you are designers.
 Expression is very easy to use.
2) MEL BASICS
2.1) How Maya Uses MEL.
2.2) Script Editor.
2.3) MEL Commands .
2.4) Variables .
2.5) Return Values.
MEL and Expression
2.1) How Maya Uses MEL
2) MEL Basics
 Menus.
 Shelf Buttons.
 Hotkeys.
 Expressions.
 GUI.
2.2) 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.
2) MEL Basics
 You get to it by hitting.
 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.
2) MEL Basics
2.3) MEL Commands
Variable type Default value
int 0
float 0.0
string ""
 Modes :
Creation
-By default.
Edit
-Used to change values of an existing object.
Query
-Used to get a value from an existing object.
2) MEL Basics
2.3) MEL Commands
2.3) MEL Commands
2) MEL Basics
Examples of Modes:
- Creation
polySphere;
- Edit
polySphere -edit -radius 4 “Rambo”;
- Query
polySphere -query -radius “Rambo”;
2.4) Variables
- Are for storing data.
- Always start with a „$‟
- Data Types.
- Int (Stands for Integer)
4
- Float
7.259
- String
“Frito Chili Pie”
- Declaring a variable.
- int $theNumberAwesome = 42;
- Equals sign assigns a value to a variable.
2) MEL Basics
2.5) 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;
2) MEL Basics
Example 1
2) MEL Basics
 MEL commands
polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -tx 1 -ch 1;
 Command options
move -r -os -wd 0 0 5.109298 ;
move -r 0 0 5 pCube2;
Example 2
2) MEL Basics
 Variable declarations
int $height = 2;
polyCube -w 1 -h $height -d 1;
 Variable assignments
int $width;
$width = 2;
polyCube -w $width -h $height -d 1;
$width = $width + 1;
polyCube -w $width -h $height -d 1;
Example 3
2) MEL Basics
 Selective structure
int $height = 2;
int $depth;
if ($height>2)
{
$depth = $height;
polyCube -w 1 -h $height -d $depth;
}
if($depth < 1) { polySphere -r 1;
}
Example 4
2) MEL Basics
 The for-construct
int $i;
for ($i = 0; $i < 20; $i++) {
sphere -pivot 0 $i 0;
}
 A spiral surface
select -all;
delete;
circle -center 4 0 0;
int $i;
for($i = 0; $i < 60; $i++)
{ duplicate;
rotate -r 0 3 0;
move -r 0 .3 0;
}
select -all;
loft;
3) EXPRESSION
MEL and Expression
What is Particle expression ?
3) Expression
 Are more complex than other types of expressions. For example, we can write an
expression to control all particles in an object the same way, or you can control each
particle differently.
3.1) Attributes Notes
3) Expression
1
2
 Add dynamic attributes(Modify > Add Attribute)
o Control dynamic and custom attributes you add to a particle shape node.
o When we add a dynamic attribute to an object, the attribute names appear in the
Expression Editor’s Attributes list.
 Per Particle (Array) Attributes
o Are created with Radius, Mass, Opacity,
Color, and Incandescence per-particle
ramps already added to the nParticleShape
node.
 Step 1: Create a object.
o Example: Type "sphere" in command line and press enter. It will create a
new nurbs sphere.
 Step 2: Change object attributes.
o Example: Change the name of the sphere in channel box as "Ball".
 Step 3: Create expression.
o Select the ball. Go to Window > Animation Editor > Expression Editor,
run Expression Editor.
o Type in "ScaleBallWidth" in the box of Expression Name.
o Type "Ball.scaleX = Ball.scaleZ = time +1;" in the expression box.
3.1) Create expression
3) Expression
 Step 4: Click "Create" and playback the animation.
3.1) Create expression
3) Expression
3.1) Create expression
3) Expression
3) Expression
Example 1 : Random Colored Particle.
Random colored fireworks shot up into the sky every time
3) Expression
How to create it ?
Example 2: Control the moon orbiting the earth
3) Expression
3) Expression
How to create it ?
 Books
 Complete Maya Programming by
David A. D. Gould.
 Websites
 area.autodesk.com
 fundza.com
 ewertb.soundlinker.com
Helpful Resources.
MEL and Expression
Helpful Resources.
MEL and Expression
Helpful Resources.
MEL and Expression
Thanks!

More Related Content

PDF
Notes netbeans
PPTX
GUI programming
PDF
Android Application Development - Level 2
PDF
Android Application Development - Level 1
PDF
Android Application Development - Level 3
PPTX
GUI Programming in JAVA (Using Netbeans) - A Review
PPTX
Sofwear deasign and need of design pattern
Notes netbeans
GUI programming
Android Application Development - Level 2
Android Application Development - Level 1
Android Application Development - Level 3
GUI Programming in JAVA (Using Netbeans) - A Review
Sofwear deasign and need of design pattern

What's hot (17)

DOCX
Android interface elements and controls-chapter8
PDF
Jide grids developer_guide
PPS
Advance Excel tips
DOC
Csharp
PPTX
Gui programming a review - mixed content
PPT
Graphical User Interface in JAVA
PPT
GUI Programming In Java
PPTX
Graphical User Interface (Gui)
PPT
Unit 6 Java
PDF
Power of call symput data
PPS
Procedures functions structures in VB.Net
PPTX
Chain of Responsibility Pattern
PPTX
System software - macro expansion,nested macro calls
PPT
WPF Controls
PDF
Part 12 built in function vb.net
PDF
Chapter 13.1.6
PPT
Graphical User Interface (GUI) - 1
Android interface elements and controls-chapter8
Jide grids developer_guide
Advance Excel tips
Csharp
Gui programming a review - mixed content
Graphical User Interface in JAVA
GUI Programming In Java
Graphical User Interface (Gui)
Unit 6 Java
Power of call symput data
Procedures functions structures in VB.Net
Chain of Responsibility Pattern
System software - macro expansion,nested macro calls
WPF Controls
Part 12 built in function vb.net
Chapter 13.1.6
Graphical User Interface (GUI) - 1
Ad

Viewers also liked (17)

PPTX
Progression from prelim to final thriller film
PDF
Maya Python (PyMel)
PDF
Seni kriya clay lempung dari tepung l
PDF
viaMAXI
PPT
Kmew presentation
PPTX
Magazine Genre Research
PDF
Nikravesh big datafeb2013bt
PDF
Mathematica. 3[1]
PDF
Happy birthday quote pictures
PDF
CoinTelegraph franchise program
DOCX
Javed sayyed resume
PPTX
Cruise in andaman
PPTX
Properties of matter
PPT
加鑫(蔣堂)產品目錄 2015
PDF
Influence of micropolar lubricant on bearings performance a review(2)
PDF
Vipra today july 2016
PDF
RELIEVES / ESCULTURAS
Progression from prelim to final thriller film
Maya Python (PyMel)
Seni kriya clay lempung dari tepung l
viaMAXI
Kmew presentation
Magazine Genre Research
Nikravesh big datafeb2013bt
Mathematica. 3[1]
Happy birthday quote pictures
CoinTelegraph franchise program
Javed sayyed resume
Cruise in andaman
Properties of matter
加鑫(蔣堂)產品目錄 2015
Influence of micropolar lubricant on bearings performance a review(2)
Vipra today july 2016
RELIEVES / ESCULTURAS
Ad

More from Trí Bằng (20)

PDF
Session 11 – fluid effects
PDF
Session 10 – advanced goal &amp; instanter
PDF
Session 09 – particle goal
PDF
Session 08 – particle instancer
PDF
Session 07 – object desintegration
PDF
Session 06 – particle materials
PDF
Session 04 – field &amp; collision effect
PDF
Session 03 – emitters
PDF
Session 02 – animation particle basics
PDF
Session 01 – introduces maya dynamics
PDF
Session 00 – Course overview Maya Dynamics
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_16._DỰNG_CẢNH_VÀ_PHỐI_CẢNH
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_14._MENTALRAY
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_12._HOẠT CẢNH (ANIMATION)
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_11._VẬT LIỆU NANG CAO TRONG MAYA PHẦN 2
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_11._VẬT LIỆU NANG CAO TRONG MAYA PHẦN 1
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_10._VẬT LIỆU CƠ BẢN TRONG MAYA
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_8._DỰNG HINH THỰC VẬT
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_6.__DỰNG HÌNH ĐỒ VẬT
PDF
Thiết kế 3D_cơ_bản với Maya_Bài_5._PHƯƠNG PHÁP MODELING - DỰNG HÌNH
Session 11 – fluid effects
Session 10 – advanced goal &amp; instanter
Session 09 – particle goal
Session 08 – particle instancer
Session 07 – object desintegration
Session 06 – particle materials
Session 04 – field &amp; collision effect
Session 03 – emitters
Session 02 – animation particle basics
Session 01 – introduces maya dynamics
Session 00 – Course overview Maya Dynamics
Thiết kế 3D_cơ_bản với Maya_Bài_16._DỰNG_CẢNH_VÀ_PHỐI_CẢNH
Thiết kế 3D_cơ_bản với Maya_Bài_14._MENTALRAY
Thiết kế 3D_cơ_bản với Maya_Bài_12._HOẠT CẢNH (ANIMATION)
Thiết kế 3D_cơ_bản với Maya_Bài_11._VẬT LIỆU NANG CAO TRONG MAYA PHẦN 2
Thiết kế 3D_cơ_bản với Maya_Bài_11._VẬT LIỆU NANG CAO TRONG MAYA PHẦN 1
Thiết kế 3D_cơ_bản với Maya_Bài_10._VẬT LIỆU CƠ BẢN TRONG MAYA
Thiết kế 3D_cơ_bản với Maya_Bài_8._DỰNG HINH THỰC VẬT
Thiết kế 3D_cơ_bản với Maya_Bài_6.__DỰNG HÌNH ĐỒ VẬT
Thiết kế 3D_cơ_bản với Maya_Bài_5._PHƯƠNG PHÁP MODELING - DỰNG HÌNH

Recently uploaded (20)

PDF
Complications of Minimal Access Surgery at WLH
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Institutional Correction lecture only . . .
PPTX
Presentation on HIE in infants and its manifestations
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
Lesson notes of climatology university.
PDF
A systematic review of self-coping strategies used by university students to ...
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPTX
Pharma ospi slides which help in ospi learning
PDF
01-Introduction-to-Information-Management.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
GDM (1) (1).pptx small presentation for students
Complications of Minimal Access Surgery at WLH
O5-L3 Freight Transport Ops (International) V1.pdf
Institutional Correction lecture only . . .
Presentation on HIE in infants and its manifestations
Supply Chain Operations Speaking Notes -ICLT Program
FourierSeries-QuestionsWithAnswers(Part-A).pdf
human mycosis Human fungal infections are called human mycosis..pptx
Lesson notes of climatology university.
A systematic review of self-coping strategies used by university students to ...
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Pharma ospi slides which help in ospi learning
01-Introduction-to-Information-Management.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Chinmaya Tiranga quiz Grand Finale.pdf
O7-L3 Supply Chain Operations - ICLT Program
GDM (1) (1).pptx small presentation for students

Session 05 – mel and expression

  • 1. Maya Dynamics Basics Lab 5: MEL and Expression Author: Khieu Van Bang Email: tribang.nd@gmail.com
  • 2. CONTENTS  Basics: Why using MEL & expressions? Differences between MEL and expression. What you can do by using MEL and Expression ?  MEL Basics:  How Maya Uses MEL.  Script Editor.  MEL Commands .  Variables .  Return Values.  Expression:  Create expression.  Helpful Resources.
  • 3. 1) BASICS 1.1) What is MEL and Expressions? 1.2) Differences between MEL and Expression. 1.3) What you can do by using MEL and Expression ? MEL and Expression
  • 4. 1.1) What is MEL and Expressions? 1) MEL and Expression  MEL stands for Maya Embedded Language. MEL is a scripting language which can embody "open architecture" of maya. By using MEL, user can control maya functions directly/indirectly. Even maya's GUI (graphic user interface) can be controlled by MEL. Therefore user can add new functions that maya doesn't have OR customize GUI as their needs.  Expression controls attribute of object. User can control an animation which cannot be key framed (e,g. particle). Using expression is similar to script MEL. We will mainly learn how to work with Expression.
  • 5. 1.2) Differences between MEL and Expression. 1) MEL and Expression MEL Expression MEL is more likely completely independent programme. Expression is a correlation with objects. MEL needs complete structure of grammar. Expression needs only the least rules. MEL is executed no matter animation is played or not. Expression is executed only while animation playing. MEL is saved separately with the scene. Expression is saved as a part of the scene. MEL access to the attribute indirectly. Expression access to the attribute directly.
  • 6. 1.3) What we can do by using MEL and Expression. 1) MEL and Expression  MEL : control an attribute of object accurately, create new macro, create new user interface, customize maya GUI.  Expression : control attributes of object apart from key framing by numerical expression, control attributes by conditions, It can use MEL command in expression. However, it can't control the attribute that controlled by existing key, set driven key, constraint, motion path or other expression. It can occur an error if you run MEL commands such as connection/disconnection of attribute or creation/deletion of object within the expression.  Grammar of MEL is very similar to other programming languages like C, C++. Not only the MEL, most script based languages are descended from C. It is not essential to learn programming language for MEL. Although if you have experience with scripting language, it will be easier to understand the structure.
  • 7.  Do not worry ! 1) MEL and Expression o I know you are designers.  Expression is very easy to use.
  • 8. 2) MEL BASICS 2.1) How Maya Uses MEL. 2.2) Script Editor. 2.3) MEL Commands . 2.4) Variables . 2.5) Return Values. MEL and Expression
  • 9. 2.1) How Maya Uses MEL 2) MEL Basics  Menus.  Shelf Buttons.  Hotkeys.  Expressions.  GUI.
  • 10. 2.2) 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. 2) MEL Basics  You get to it by hitting.
  • 11.  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. 2) MEL Basics 2.3) MEL Commands Variable type Default value int 0 float 0.0 string ""
  • 12.  Modes : Creation -By default. Edit -Used to change values of an existing object. Query -Used to get a value from an existing object. 2) MEL Basics 2.3) MEL Commands
  • 13. 2.3) MEL Commands 2) MEL Basics Examples of Modes: - Creation polySphere; - Edit polySphere -edit -radius 4 “Rambo”; - Query polySphere -query -radius “Rambo”;
  • 14. 2.4) Variables - Are for storing data. - Always start with a „$‟ - Data Types. - Int (Stands for Integer) 4 - Float 7.259 - String “Frito Chili Pie” - Declaring a variable. - int $theNumberAwesome = 42; - Equals sign assigns a value to a variable. 2) MEL Basics
  • 15. 2.5) 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; 2) MEL Basics
  • 16. Example 1 2) MEL Basics  MEL commands polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -tx 1 -ch 1;  Command options move -r -os -wd 0 0 5.109298 ; move -r 0 0 5 pCube2;
  • 17. Example 2 2) MEL Basics  Variable declarations int $height = 2; polyCube -w 1 -h $height -d 1;  Variable assignments int $width; $width = 2; polyCube -w $width -h $height -d 1; $width = $width + 1; polyCube -w $width -h $height -d 1;
  • 18. Example 3 2) MEL Basics  Selective structure int $height = 2; int $depth; if ($height>2) { $depth = $height; polyCube -w 1 -h $height -d $depth; } if($depth < 1) { polySphere -r 1; }
  • 19. Example 4 2) MEL Basics  The for-construct int $i; for ($i = 0; $i < 20; $i++) { sphere -pivot 0 $i 0; }  A spiral surface select -all; delete; circle -center 4 0 0; int $i; for($i = 0; $i < 60; $i++) { duplicate; rotate -r 0 3 0; move -r 0 .3 0; } select -all; loft;
  • 20. 3) EXPRESSION MEL and Expression
  • 21. What is Particle expression ? 3) Expression  Are more complex than other types of expressions. For example, we can write an expression to control all particles in an object the same way, or you can control each particle differently.
  • 22. 3.1) Attributes Notes 3) Expression 1 2  Add dynamic attributes(Modify > Add Attribute) o Control dynamic and custom attributes you add to a particle shape node. o When we add a dynamic attribute to an object, the attribute names appear in the Expression Editor’s Attributes list.  Per Particle (Array) Attributes o Are created with Radius, Mass, Opacity, Color, and Incandescence per-particle ramps already added to the nParticleShape node.
  • 23.  Step 1: Create a object. o Example: Type "sphere" in command line and press enter. It will create a new nurbs sphere.  Step 2: Change object attributes. o Example: Change the name of the sphere in channel box as "Ball".  Step 3: Create expression. o Select the ball. Go to Window > Animation Editor > Expression Editor, run Expression Editor. o Type in "ScaleBallWidth" in the box of Expression Name. o Type "Ball.scaleX = Ball.scaleZ = time +1;" in the expression box. 3.1) Create expression 3) Expression
  • 24.  Step 4: Click "Create" and playback the animation. 3.1) Create expression 3) Expression
  • 26. 3) Expression Example 1 : Random Colored Particle.
  • 27. Random colored fireworks shot up into the sky every time 3) Expression How to create it ?
  • 28. Example 2: Control the moon orbiting the earth 3) Expression
  • 29. 3) Expression How to create it ?
  • 30.  Books  Complete Maya Programming by David A. D. Gould.  Websites  area.autodesk.com  fundza.com  ewertb.soundlinker.com Helpful Resources. MEL and Expression