PDA

View Full Version : Questions Regarding MEL


deatheater4ever
08-29-2007, 07:10 AM
I'm currently trying to learn MEL. What I wanna know is that ,is a prior knowledge of programming languages like C++ helpful before we delve into MEL ?

If I don't have a knowledge of programming languages ,would i be able to understand the content of training DVD's that teach MEL like Gnomon's MEL 101 Fundamentals ?

How much is MEL used as far as character rigging is concerned ? Is it used extensively ,because as far as i know the chief usage of MEL lies in controlling particles through expressions?

It would be great if anyone who has a good knowledge of MEL answered my questions ( any one answering them would also be fine ) but someone with prior knowledge of MEL would be great .

isamuraiqat
08-29-2007, 11:38 AM
ill be answering your questions based on my experience, cant give ya an absolute answer,

so anyway,

C++ is pretty different from MEL, MEL is a very easy to learn language, especially the syntax, it's oractically english to a limit, but with commands, so what you'll use from C++ wld actually be minor things, the loops, like the for loop and while, and the if statements, in addition to declaring the variables, and "procedures", i havent seen the Gnomon dvd or any other mel tutorials, i learnt it from books, but i think you wldnt need any prior knowledge of C++ to get what they say,

as for the rigging part, i dont think you could be a specialized rigger if u dont extensively know mel, because you need to apply your rigging system, whatever method you may use, not to a single charcter, but to a whole pipeline, therefore adding the whole thing to a mel script that does all that "thinking" you did to do the rig.

as for saying that it's mainly used for expressions for particles, you're underestimating mel, you can use it in every single process done in maya, it makes your life a lot easier!

if you wanna learn it, i would recommend that you get David Gould's Complete Maya Programming, the 1st volume, as it covers it pretty well, and i think it would be better thab any DVD you may buy,

hope that helps
isam

deatheater4ever
08-29-2007, 12:51 PM
ill be answering your questions based on my experience, cant give ya an absolute answer,

so anyway,

C++ is pretty different from MEL, MEL is a very easy to learn language, especially the syntax, it's oractically english to a limit, but with commands, so what you'll use from C++ wld actually be minor things, the loops, like the for loop and while, and the if statements, in addition to declaring the variables, and "procedures", i havent seen the Gnomon dvd or any other mel tutorials, i learnt it from books, but i think you wldnt need any prior knowledge of C++ to get what they say,

as for the rigging part, i dont think you could be a specialized rigger if u dont extensively know mel, because you need to apply your rigging system, whatever method you may use, not to a single charcter, but to a whole pipeline, therefore adding the whole thing to a mel script that does all that "thinking" you did to do the rig.

as for saying that it's mainly used for expressions for particles, you're underestimating mel, you can use it in every single process done in maya, it makes your life a lot easier!

if you wanna learn it, i would recommend that you get David Gould's Complete Maya Programming, the 1st volume, as it covers it pretty well, and i think it would be better thab any DVD you may buy,

hope that helps
isam




Thanks Isam,
I've already started learning C++ .........so i guess that would or would not help.
I,ve already ordered Gnomon's MEL 101 Fundamentals today by express courier...........i will have to chk out David Gould's book .......i'll order that too.........

Thanks a lot for your advice...

hibigibees
08-29-2007, 01:00 PM
hi, i guess this post is being repeated many times in cgtalk :) and the u can find a solution by searching through some of the forums here : [copy paste into google inputField]

site:forums.cgsociety.org learning mel

But since i've already started typing this, let me share my ideas - "mel has absolutely nothing to do with rigging". I would define rigging as "to make things better and usable" in general cause if you take any object in general its has some rig or other. Common example - a button in shirt, the eject button in cdrom drive etc. There is nothing which is called a "perfect rig" or anything, it depends on animator and enough is never enough - we can rig a character for the rest of our life but somewhere some control might need something more to it to make it perfect and again u will find something else missing or slow.... If the animator is happy with deformation and controls given - its a "good" rig according to him...

In cg, we might need knowledge in AAA (Art, Animation and Anatomy) and again it takes sometime to research a rig if its new and challenging to u. One can go crazy and animate each poly vertex too, but joints (or transforms) are provided to minimize the pain and to speed up production greatly ( i know that this example sucks :) )

The level of rnd, rig we do and the amount of time invested on rigging something should target its goal and mel has nothing which can do something concept wise. But mel helps to avoid repeatitive tasks, speeding up process, customizing things with a cool workflow. A one line code can save us from 10 secs or 100 hours of work too; example:

delete `ls -type "polySmoothFace"`; // deletes all polySmooth Nodes in the maya scene

Likewise mel expressions are again used to save time and do a particular task per frame basis.

For learning mel, you can learn it even in an hour or in a day but it depends on what u really want to do with it at that point of time. The minute you learn the basics, thumb rules and utilities, its always a good process to learn mel based on requirement from there, suppose you want to write a script for assigning a particular shader to a particular geometry;

you have to ask a few questions and search for answers ( obviously u can post here if you don't find one): the questions might be,
1. get the name of geometry's transform node
2. get the name of the shader (if given) or create one (if needed)
3. use the function or command provided by maya and pass the shader name and geometry name to assign the shader to the geometry

now u might have more questions,
1. should i assign the shader to geometry node or geometry's transform node
2. when should i create that shader, what if shader name already exists
3. what if there is no direct way to assign the shader to geometry using a function or command
4. ...

you might have 100 questions by the time u complete this assignment and if your mel script is made bullet proof then u will feel that you have learnt mel a bit. Now by doing more assignments you can impove coding and your codes will run faster as u learn how to optimize stuff in scripting. Knowledge in maya will improve too but prior knowledge of maya's dag would help u to understand things better and ofcourse reasoning stuff might help one to learn better.

Complete Maya Programming - by david gould - is a cool book (as told by Isam) to get started and the minute u get started, there is no better documentation than autodesk maya help (TTBOMK) to understand maya and mel.

After all that, check out david walden's and micheal comets skin weights tool(s) which i guess is used by most of the rigging ppl whom i know... going through the code will help u to write your own faster and you can ofcourse copy paste a command ;) or a create a similar function from others work too and customize it in yours....

As for c++, if u understand oops and the use of pointers well, u can get started with c++ too but it takes more time and u might need to ask more and more questions before each exercise to have a strong knowledge in it... (u dont need to use oops in a cpp program as its backward compatible with c but using it might help u define ur own data types like int and float etc and use it )

reg, sriram

CGTalk Moderation
08-29-2007, 01:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.