fxjeane
October 6th, 2008, 03:45 PM
TD-College is proud to announce to the public the release of our new and highly anticipated course "Introduction to Mel Programming". After the obligatory intro to programming concepts, this intense, 6-week course will sink its teeth in hard-core, make-it-work production scripting that will have students turn out useful scripts to produce more with less effort.
Course: Introduction to MEL Programming (http://td-college.com/index.php?option=com_content&task=view&id=27&classid=15)
Mentor : Kevin Mannens - Effecs Course Director -TD-College
Start Date: Oct 12th 2008
Course: Introduction to MEL Programming (http://td-college.com/index.php?option=com_content&task=view&id=27&classid=17)
Mentor : Sean Looper - Pipeline Supervisor -RIOT
Start Date: Oct 19th 2008
Description:
Introduction to MEL programming will provide the student with a detailed explanation of several scripts that were written and used in production. With the knowledge gained from this course, students will be able to expand upon Maya’s already impressive list of tools by creating new UI, automating tasks and generally making life easier for themselves or whoever they are writing code for. This course assumes no previous programming experience, but intermediate to advanced knowledge of Maya. This assumption will allow us to skip the pleasantries and delve right in the juicy bits. The course spends relatively little time on explaining dry, theoretical programming concepts; instead, we will illustrate how MEL is being used in feature film production.
WEEK 1: Under the Hood
We will start by taking a closer look what really happens when actions are performed while using Maya. This will lead us to an analysis of some common MEL commands and the workflow on how to query and create attributes through MEL. With that knowledge we should be ready to write our very first MEL script. After that we will have a closer look at important programming concepts like procedures, data types, iterations and conditional statements.
1. Maya, behind the scenes
1.1. Introduction
1.2. Resources
2. What can MEL do for you?
2.1 Some examples of MEL scripts
3. Not your every day Maya
3.1. A closer look at the script editor
3.2. When marking menus don’t listen
3.3. Maya as a system of nodes
4. MEL commands
4.1. What is a MEL command?
4.2. The structure of a MEL command
4.3. Create, Edit, Query mode
4.4. MEL syntax
4.5. Your first script!
4.5. Often used MEL commands5. Variables and data types
5.1 Definition and syntax
5.2. Data types
5.3. Special characters
5.4. Arrays
5.5. Descriptive names
5.6. Capturing the result of a command in a variableWEEK 2: Conditional statements, iterations and procedures
1. Conditional statements
1.1. Definition
1.2. Killing a particle based on the position of a locator.
1.3. Toggling the resolution gate2. Looping statements
2.1. While loops
2.2. For loops
2.3. For-in loops
2.4. Putting an array in a textScrollList
2.5. An example of nesting loops
2.6. Variable Scope
2.7. The internal names of controls3. Procedures
3.1. Definition
3.2. Arguments
3.3. Return procedures
3.4. Local and global procedures4. Bringing it all together: a renaming tool
5. Strategies for designing MEL scripts
5.1. Top down Design
5.2. Advantages of top-down design
5.3. Non-MEL example of top-down design
5.4. Top down design applied to MEL scripting
5.5. Step-by-step creation of the km_allCams scriptWEEK 3: Getting down and dirty
This week students will write 2 very simple scripts to put the accumulated knowledge from the previous 2 weeks into practice. If this were basketball training, these 2 scripts would be your first attempt at a lay-up. The idea is to drive home the theoretical concepts we learned in the previous weeks and get firm fundamentals we can build on.
1. km_cleanOutliner
1.1. A word about naming conventions and formatting workflow
1.2. The need for km_cleanOutliner
1.3. Top-down design
1.4. First UI or first other procedures?
1.5. The UI procedure of km_cleanOutliner
1.6. The buttonCmd procedure 2: km_dustTools
2.1 Background information
2.2 The top-down design
2.3. The UI compoments
2.4. The UI procedure of km_dustTools
2.5. Populating the TSL’s: populateFluidShapeTSL and populatePartTSL
2.6. Populating the checkbox list: populateEmitterCkBx
2.7. Changing the fluidShape’s shaded display based on the TSL: setShadedDisplay
2.8. Setting the particleShapes startFrame: setPart2RunUp and setPart2ShotStart
2.10. setTimeline sets the timeline to either runup or shot startWEEK 4: Hands-on MEL-coding: km_bookmarkManager
This is the deep-end of a pool filled with hungry piranhas. We will jump in, head first and dressed like a giant meatball. This chapter is a line-by-line dissection of a script written a while back called bookmarkManager. As you can probably gather from the name, this script sets up characters and fights with light sabers. In the course of this chapter, we will cover concepts like building UI’s with formLayouts, operations on strings and scriptJobs.
1: Orientation and top-down
1.1 Origin and UI layout
1.2. Top-down Design of km_bookMarkManager
2: Creating a UI with formLayout
2.1. A note on formatting in this document
2.2. Introduction to formLayout
2.3. The km_bookmarkManager UI3: the listCam and populateBookMarklist procedures
3.1. listCam procedure
3.2. populateBookmarkList procedure4: Renaming elements in the TSL
4.1. The renameCamera procedure
4.2. The renameBookmark procedure 5: The remaining RMB-functionality of the camera TSL
5.1. The toggleResGate procedure
5.2. The openAECam procedure
5.3. The lookThoughCam procedure 6: The lookThroughBookmark and deleteBookmark procedures
6.1. The lookThroughBookmark procedure
6.2. deleteBookmark procedure7: Copying bookmarks from one camera to another one
8: The “add bookmark” button and its functionality
9: Automatically adding newly created cameras to the camera TSL with scriptjob
10: The help window
WEEK 5: Hands-on MEL-coding: km_debrisCreator
Week5, we are talking face-down-in-the-muck, hard-core material. Students will have to flex their cerebral muscles and dig deep in those repressed childhood memories, but we guarantee you that it will all be worth it.
1: Orientation and top-down
1.1 Origin and UI layout
1.2. Top-down Design of km_debrisCreator2: Good coding practices: Redux
2.1. Design your code before you code it.
2.2. Comment your code as you write it, not after.
2.3. Each procedure should have a meaningful explanatory header comment.
2.4. Use indents and margins appropriately
2.5. Keep procedures direct and to-the-point
2.6. Always use descriptive variable names3: Good practice when writing procedures
3.1. The difference between procedures and functions
3.2. Procedures should be small, simple and layered-up
3.3. Modularity
3.4. K.I.S.S
3.5. Comments. Again.
3.6. Model-view-controller (MVC)4: The debrisCreator procedure: MVC in action
4.1. Outline
4.2. New commands
4.3. Code and comments5: The needleCreator procedure
5.1. Outline
5.2. New commands
5.3. Code and comments6: The getNeedle procedure
6.1. Outline
6.2. New commands
6.3. Code and comments7: The getNeedleattr procedure
7.1. Outline
7.2. New commands
7.3. Code and comments8: The UI procedures: km_debrisCreator
8.1. Outline
8.2. New commands
8.3. Code and comments9: The UI procedures: getSceneDir
9.1. Outline
9.2. New commands
9.3. Code and comments10: The UI procedures: browseNeedle
10.1. Outline
10.2. New commands
10.3. Code and comments11: The UI-suckers: needleCmd and debrisCmd
11.1. Outline
11.2. New commands
11.3. Code and commentsWEEK 6: MEL AND EXPRESSIONS
Week 6 demonstrates how you MEL and expressions can be combined to set up scalable FX rigs. It is important to understand that there are differences between MEL and expressions, so we will start this week by explaining precisely what expressions are and how they differ from MEL. To exemplify a practical application of expressions, we will set up a moderately complex rig that can be scaled for big shots in production.
1: What are expressions and how do they differ from MEL?
1.1. Regular expressions
1.2. Particle expressions
1.3. The difference between expressions and MEL2: Procedural Dust with expressions
2.1. Overview
2.2 Outline
2.3. Scene setup summary
2.4. Creating the particle systems
2.5. Setting up the expressions
2.6. Setting up a customized Z-depth pass for compositing3: Annotating collision positions
3.1. Overview
3.2. How do I get the exact position of a collision?
3.3. Creating locators at the collision position
3.4. Creating annotations at the collision position4: Adding expressions with MEL
4.1. Overview
4.2. Workflow
4.3. The Creation expression
4.4. The Runtime expression
4.5. Integrating expressions in MEL
We have several other courses in production such as "Math For Technical Directors", "Introduction to Houdini FX" and "Houdini Production Techniques" and "Real Flow Production Techniques". We will let you know more about these courses as we get closer to their release date.
We would like to thank you for your interest and continued support and we wish to see you at our school soon.
Sincerely
The TDC Team
*Courses availability, start date and assigned mentor are subject to change.
*Courses are only available to admitted students.
Course: Introduction to MEL Programming (http://td-college.com/index.php?option=com_content&task=view&id=27&classid=15)
Mentor : Kevin Mannens - Effecs Course Director -TD-College
Start Date: Oct 12th 2008
Course: Introduction to MEL Programming (http://td-college.com/index.php?option=com_content&task=view&id=27&classid=17)
Mentor : Sean Looper - Pipeline Supervisor -RIOT
Start Date: Oct 19th 2008
Description:
Introduction to MEL programming will provide the student with a detailed explanation of several scripts that were written and used in production. With the knowledge gained from this course, students will be able to expand upon Maya’s already impressive list of tools by creating new UI, automating tasks and generally making life easier for themselves or whoever they are writing code for. This course assumes no previous programming experience, but intermediate to advanced knowledge of Maya. This assumption will allow us to skip the pleasantries and delve right in the juicy bits. The course spends relatively little time on explaining dry, theoretical programming concepts; instead, we will illustrate how MEL is being used in feature film production.
WEEK 1: Under the Hood
We will start by taking a closer look what really happens when actions are performed while using Maya. This will lead us to an analysis of some common MEL commands and the workflow on how to query and create attributes through MEL. With that knowledge we should be ready to write our very first MEL script. After that we will have a closer look at important programming concepts like procedures, data types, iterations and conditional statements.
1. Maya, behind the scenes
1.1. Introduction
1.2. Resources
2. What can MEL do for you?
2.1 Some examples of MEL scripts
3. Not your every day Maya
3.1. A closer look at the script editor
3.2. When marking menus don’t listen
3.3. Maya as a system of nodes
4. MEL commands
4.1. What is a MEL command?
4.2. The structure of a MEL command
4.3. Create, Edit, Query mode
4.4. MEL syntax
4.5. Your first script!
4.5. Often used MEL commands5. Variables and data types
5.1 Definition and syntax
5.2. Data types
5.3. Special characters
5.4. Arrays
5.5. Descriptive names
5.6. Capturing the result of a command in a variableWEEK 2: Conditional statements, iterations and procedures
1. Conditional statements
1.1. Definition
1.2. Killing a particle based on the position of a locator.
1.3. Toggling the resolution gate2. Looping statements
2.1. While loops
2.2. For loops
2.3. For-in loops
2.4. Putting an array in a textScrollList
2.5. An example of nesting loops
2.6. Variable Scope
2.7. The internal names of controls3. Procedures
3.1. Definition
3.2. Arguments
3.3. Return procedures
3.4. Local and global procedures4. Bringing it all together: a renaming tool
5. Strategies for designing MEL scripts
5.1. Top down Design
5.2. Advantages of top-down design
5.3. Non-MEL example of top-down design
5.4. Top down design applied to MEL scripting
5.5. Step-by-step creation of the km_allCams scriptWEEK 3: Getting down and dirty
This week students will write 2 very simple scripts to put the accumulated knowledge from the previous 2 weeks into practice. If this were basketball training, these 2 scripts would be your first attempt at a lay-up. The idea is to drive home the theoretical concepts we learned in the previous weeks and get firm fundamentals we can build on.
1. km_cleanOutliner
1.1. A word about naming conventions and formatting workflow
1.2. The need for km_cleanOutliner
1.3. Top-down design
1.4. First UI or first other procedures?
1.5. The UI procedure of km_cleanOutliner
1.6. The buttonCmd procedure 2: km_dustTools
2.1 Background information
2.2 The top-down design
2.3. The UI compoments
2.4. The UI procedure of km_dustTools
2.5. Populating the TSL’s: populateFluidShapeTSL and populatePartTSL
2.6. Populating the checkbox list: populateEmitterCkBx
2.7. Changing the fluidShape’s shaded display based on the TSL: setShadedDisplay
2.8. Setting the particleShapes startFrame: setPart2RunUp and setPart2ShotStart
2.10. setTimeline sets the timeline to either runup or shot startWEEK 4: Hands-on MEL-coding: km_bookmarkManager
This is the deep-end of a pool filled with hungry piranhas. We will jump in, head first and dressed like a giant meatball. This chapter is a line-by-line dissection of a script written a while back called bookmarkManager. As you can probably gather from the name, this script sets up characters and fights with light sabers. In the course of this chapter, we will cover concepts like building UI’s with formLayouts, operations on strings and scriptJobs.
1: Orientation and top-down
1.1 Origin and UI layout
1.2. Top-down Design of km_bookMarkManager
2: Creating a UI with formLayout
2.1. A note on formatting in this document
2.2. Introduction to formLayout
2.3. The km_bookmarkManager UI3: the listCam and populateBookMarklist procedures
3.1. listCam procedure
3.2. populateBookmarkList procedure4: Renaming elements in the TSL
4.1. The renameCamera procedure
4.2. The renameBookmark procedure 5: The remaining RMB-functionality of the camera TSL
5.1. The toggleResGate procedure
5.2. The openAECam procedure
5.3. The lookThoughCam procedure 6: The lookThroughBookmark and deleteBookmark procedures
6.1. The lookThroughBookmark procedure
6.2. deleteBookmark procedure7: Copying bookmarks from one camera to another one
8: The “add bookmark” button and its functionality
9: Automatically adding newly created cameras to the camera TSL with scriptjob
10: The help window
WEEK 5: Hands-on MEL-coding: km_debrisCreator
Week5, we are talking face-down-in-the-muck, hard-core material. Students will have to flex their cerebral muscles and dig deep in those repressed childhood memories, but we guarantee you that it will all be worth it.
1: Orientation and top-down
1.1 Origin and UI layout
1.2. Top-down Design of km_debrisCreator2: Good coding practices: Redux
2.1. Design your code before you code it.
2.2. Comment your code as you write it, not after.
2.3. Each procedure should have a meaningful explanatory header comment.
2.4. Use indents and margins appropriately
2.5. Keep procedures direct and to-the-point
2.6. Always use descriptive variable names3: Good practice when writing procedures
3.1. The difference between procedures and functions
3.2. Procedures should be small, simple and layered-up
3.3. Modularity
3.4. K.I.S.S
3.5. Comments. Again.
3.6. Model-view-controller (MVC)4: The debrisCreator procedure: MVC in action
4.1. Outline
4.2. New commands
4.3. Code and comments5: The needleCreator procedure
5.1. Outline
5.2. New commands
5.3. Code and comments6: The getNeedle procedure
6.1. Outline
6.2. New commands
6.3. Code and comments7: The getNeedleattr procedure
7.1. Outline
7.2. New commands
7.3. Code and comments8: The UI procedures: km_debrisCreator
8.1. Outline
8.2. New commands
8.3. Code and comments9: The UI procedures: getSceneDir
9.1. Outline
9.2. New commands
9.3. Code and comments10: The UI procedures: browseNeedle
10.1. Outline
10.2. New commands
10.3. Code and comments11: The UI-suckers: needleCmd and debrisCmd
11.1. Outline
11.2. New commands
11.3. Code and commentsWEEK 6: MEL AND EXPRESSIONS
Week 6 demonstrates how you MEL and expressions can be combined to set up scalable FX rigs. It is important to understand that there are differences between MEL and expressions, so we will start this week by explaining precisely what expressions are and how they differ from MEL. To exemplify a practical application of expressions, we will set up a moderately complex rig that can be scaled for big shots in production.
1: What are expressions and how do they differ from MEL?
1.1. Regular expressions
1.2. Particle expressions
1.3. The difference between expressions and MEL2: Procedural Dust with expressions
2.1. Overview
2.2 Outline
2.3. Scene setup summary
2.4. Creating the particle systems
2.5. Setting up the expressions
2.6. Setting up a customized Z-depth pass for compositing3: Annotating collision positions
3.1. Overview
3.2. How do I get the exact position of a collision?
3.3. Creating locators at the collision position
3.4. Creating annotations at the collision position4: Adding expressions with MEL
4.1. Overview
4.2. Workflow
4.3. The Creation expression
4.4. The Runtime expression
4.5. Integrating expressions in MEL
We have several other courses in production such as "Math For Technical Directors", "Introduction to Houdini FX" and "Houdini Production Techniques" and "Real Flow Production Techniques". We will let you know more about these courses as we get closer to their release date.
We would like to thank you for your interest and continued support and we wish to see you at our school soon.
Sincerely
The TDC Team
*Courses availability, start date and assigned mentor are subject to change.
*Courses are only available to admitted students.