Paso 6: MEL scripts
Ahora a escribir una función recursiva que implementa el algoritmo fractal ya mencionado. Hay muchas maneras de implementar esto, pero voy a mostrar los más fáciles de entender (espero)!
En primer lugar, declare la función generateFractal, que toma dos parámetros de entrada, un vector, float y un int.
Tenemos que escribir un cheque para ver qué nivel de recursividad nos. Este nivel de recursividad refiere a la profundidad estamos dentro del proceso. Cuando creamos el primer cubo es nivel 0, y luego cuando se realizan el segundo conjunto de cubos (niños), entonces estamos en nivel 1, etc.. Para nuestros propósitos que queremos especificar una profundidad de recursividad máxima y disminuir ese número hasta llegar a -1, sólo entonces se detendrá la función.
La siguiente línea creará un polyCube con anchura, altura y profundidad de $size, que es uno de los parámetros de entrada de la función generateFractal. Vamos a ver cómo se establece en el código un poco.
Luego movemos el cubo en la posición. ¿Usted podría estar pensando, oh espera, no tenemos que seleccionar primero el cubo? Nope! Por defecto Maya seleccionado el último objeto creado en la escena. Esto es útil.
Ahora a calcular que el siguiente cube(s) tamaño y cuánto desviarlo del cubo nos sólo hará (también conocido como su padre). El cubo siguiente será la mitad de su padre y será compensado por un cuarto de tamaño de sus padres y la mitad de su tamaño. Si no tiene sentido, no se preocupe. Una vez que comience a ejecutar esta función para generar fractales pueden jugar con estos números y ver cómo ellos afectan la estética de fractal.
Bueno, tenemos que calcular las posiciones de centro para los nuevos cubos que vamos a crear. Ya se calculan el desplazamiento para que las nuevas posiciones son iguales al anterior Centro, además de un desplazamiento en la dirección adecuada.
Finalmente llamamos a la función generateFractal dentro de sí mismo! Woohoo recursividad :) Observe que pasamos a la función de las nuevas posiciones de los centros, el tamaño y el nivel de recursividad!
Construcción y prueba de esta función, probablemente terminarás con un montón de cubos de la escena. Maya se ralentizar y finalmente crash. Así antes que generamos nuestro fractal, nos consulta Maya para cualquier objeto con el prefijo pCube y eliminarlos. Esto nos dará una escena limpia.
Ahora vamos a configurar los parámetros iniciales que pasaremos a nuestra función generateFractal! Nosotros nuestro primer cubo en (0,0,0) del centro y comenzar con un tamaño de 100 unidades, y vamos a ir profundo 6 niveles (en realidad 7 contando el cero).
Entonces llamaremos a la función! Maya se cuelgue hacia fuera por un segundo y procesar lo que sólo has dicho que haga. Maya podría congelar durante un segundo o diez. No te preocupes, eso es perfectamente normal. He encontrado que 6 es el más alto nivel que puedo alcanzar en mi máquina antes de confundir a Maya y causar que éste se desplome! Llamar a esta función es como "tomar la píldora roja"... Espero que sopla su mente: