stringtranslate.com

Lenguaje integrado Maya

Maya Embedded Language (MEL) es un lenguaje de programación que se utiliza para simplificar tareas en el software de gráficos 3D Autodesk Maya . La mayoría de las tareas que se pueden realizar a través de la interfaz gráfica de usuario de Maya se pueden realizar con MEL, así como también ciertas tareas que no están disponibles desde la interfaz gráfica de usuario. MEL ofrece un método para acelerar tareas complicadas o repetitivas, además de permitir a los usuarios redistribuir un conjunto específico de comandos a otras personas que puedan encontrarlo útil.

Diseño

MEL es sintácticamente similar a Perl y Tcl . Proporciona cierta gestión de memoria y asignación dinámica de matrices, y ofrece acceso directo a funciones específicas de Maya. La mayoría de los comandos estándar de Maya son scripts MEL predeterminados, guardados en el directorio Archivos de programa de Maya.

MEL es bastante limitado en comparación con los lenguajes de programación convencionales. Es principalmente un lenguaje destinado a registrar la sesión de Maya, [ cita requerida ] por lo que carece de muchas funciones avanzadas como las matrices asociativas. Python se agregó a Maya como una alternativa a MEL en Maya 8.5. Aun así, MEL ofrece algunas ventajas sobre Python:

A menudo se critica a MEL por su falta de funciones de programación y orientación a objetos. Sin embargo, en la práctica, se utiliza como un lenguaje de metaprogramación en el que MEL simplemente le indica a la arquitectura de nodos de Maya que resuelva el problema. Dado que los nodos forman el núcleo computacional real de Maya, utilizar un método de programación más robusto y evidente sería un enfoque muy ineficiente. En muchos sentidos, MEL complementa la API de Maya, con límites algo claros entre las tareas asignadas. Esto hace que MEL sea más difícil de aprender y comprender por completo.

Usos

Las herramientas diseñadas con scripts MEL generalmente se dividen en las siguientes categorías:

Ejemplo

Este es un ejemplo de un script que copia un objeto seleccionado a través de su ruta:

// secuencia de comandos de instancias/duplicados animados proc  animatedDuplication  ( int  $rangeStart ,  int  $rangeEnd ,  int  $numOfDuplicates ,  int  $duplicateOrInstance ) {  int  $range_start  =  $rangeStart ;  int $  range_end  = $  rangeEnd ;  int  $num_of_duplicates  =  $numOfDuplicates ;  int  $step_size  =  ( $range_end  -  $range_start )  /  $num_of_duplicates ;  int  $i  =  0 ;  int  $temp ; currentTime  $range_start ;  // establecer en el inicio del rango cadena  $selectedObjects [];  // para almacenar los objetos seleccionados  $selectedObjects  =  `ls -sl` ;  // almacenar los objetos seleccionados  select  $selectedObjects ; mientras  ( $i  <=  $num_of_duplicates )  {  $temp  =  $range_start  +  ( $step_size  *  $i );  currentTime  ( $temp );  // se seleccionaron los objetos a duplicar o instanciar  seleccionar  $selectedObjects ;  si ( $duplicateOrInstance  ==  0 )  {  duplicar ;  }  de lo contrario  {  instancia ;  }  $i ++ ;  } } // Ejemplo de uso:  // duplicar la selección actual 5 veces --  // distribuida uniformemente entre los fotogramas 1 y 240  animatedDuplication ( 1 ,  240 ,  5 ,  0 );

Características

Maya también ofrece un lenguaje de expresión que es un superconjunto de MEL y da como resultado nodos que se ejecutan como parte del gráfico de dependencia de Maya. Las expresiones se desarrollan con el editor de expresiones de Maya y permiten que los scripts se activen mientras Maya evalúa el archivo de escena en cada cambio de tiempo para simular comportamientos complejos o realizar otras tareas útiles.

Referencias

Enlaces externos