James M. Hales and Dr. R. Brent Adams, Industrial Design
Maya Embedded Language (MEL) is a powerful programming tool for Maya, the leading 3D modeling and animation software produced by AliasWavefront. It has been used by the top motion picture companies in the makings of major blockbuster films such as How the Grinch Stole Christmas, Toy Story I and II, and Monsters Inc. MEL is further fundamental in other areas such as architecture, commercials, computer gaming, and broadcast media. This programming language provides an open architecture format for Maya. This means artists, programmers, and directors are not limited by the existing functions of a software program and can instead create their own tools, and refine the productivity and speed of existing functions.
Brigham Young University has attempted a leap forward beyond other traditional animation schools and design schools by creating an innovative, interdisciplinary degree. This new major, animation, incorporates aspects of design, film making, computer programming, and engineering. This advanced training holds great potential for providing some of industries most marketable employees. With this interdisciplinary training come several challenges. These challenges include helping artists understand technical aspects of computer programming as well as helping technical people understand design. Another strong desire of the Industrial Design program is to enable all students to obtain the training necessary to take full advantage of Brigham Young University’s supercomputing facilities. No other college or university in the United States offers to undergraduate students the opportunity for this kind of experience with a supercomputer.
The purpose of this project was to create five tutorial lessons designed for artists and people with little or no previous computer programming experience. This approach was deemed valuable because it is contoured to the vast majority of students currently in the animation program. The tutorials can also be used to train students and faculty of other disciplines wishing to improve or expand their skills.
In approaching this task, I met with Brent Adams, head of the animation program, and discussed what items would be most important for students to begin learning. We chose the direction of creating one tutorial designed toward training students in command line rendering for the supercomputer, and four tasks dealing with MEL scripting in Maya. These four tasks deal with speeding workflow by creating scripts for repetitive actions and assigning them to hot keys, using basic commands to get and act upon information in a file, creating varied user interfaces (windows), and designing hierarchical programs with user interfaces. The format I chose for the tutorials is intended to allow for use in a presentation type setting, or for use on an individual basis as written lessons.
In preparing these tutorials, I was met with the challenge of explaining a complex subject to people of varied experience and background. I found it necessary to add a couple additional sections at the beginning and end of the planned tutorials. I began by creating a simple overview of MEL programming syntax, vocabulary, and key programming functions. At the end of the tutorials, I attached a two page appendix of flags for the Render command to aid students in their command line rendering to the supercomputer.
Another challenge that proved to be of benefit to me was the process of researching and preparing these tutorials. Because the amount of literature on MEL scripting is limited to a few small sections in a few books, I found it necessary to take existing code from the internet, test it, dissect it, and modify it to teach myself how to use MEL. This is the common process people have had to go through to learn MEL. The process of dissecting existing code and learning MEL for myself enabled me to get the perspective of the potential users of these tutorials and see what they would need to know and the questions and problems they would encounter. I have attempted in these tutorials to not only teach a limited set of rules and uses, but instead to include the principles of learning on one’s own, stepping them through the process. After the tutorials, I provided a list of sources that I found helpful in my own research and gave some suggestions on how to go about teaching oneself beyond the five tutorials. Knowing the growth and change of technology, I also sought to teach the most fundamental principles and go about processes in a way that described the “why” rather than a specific use of menus or commands. I hope this will allow these tutorials to be useful for a longer period of time.
I am confident that this project will be of great benefit to many students in Industrial Design in helping them further develop their marketability and skill set. I feel that my abilities and skills have been enhanced and I am grateful for the privilege of working on this project and the assistance provided to me by Brent Adams, and Chris Harvey, to whom I addressed many questions.