Introducción a MEL Scripting en Maya: fractales 3D (6 / 7 paso)

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:

			

          

Artículos Relacionados

Introducción en LSL scripting en Second Life

Introducción en LSL scripting en Second Life

Hola y Bienvenidos a "Antes de empezar en LSL scripting". LSL está parado para "Linden Scripting Language" y se utiliza para la escritura de los objetos que encontrar y hacer en Second Life.QUE ESTE TUTORIAL ES PARA:Este tutorial está
Introducción a VB Script: una guía para principiantes: parte 2: trabajar con archivos de

Introducción a VB Script: una guía para principiantes: parte 2: trabajar con archivos de

bien en mi último VBScript instructable, fui sobre cómo hacer un script para apagar tu internet para jugar Xbox 360. Hoy tengo un problema diferente. Mi ordenador ha sido cerrar a veces al azar y quiero iniciar sesión cada vez que se reinicia el orde
Entender y aprender la interfaz de Maya

Entender y aprender la interfaz de Maya

Maya es una de las herramientas más poderosas para hacer 3D modelado, animación, rendering, iluminación, dinámica, scripting y más. Mayoría de las personas tardan años en descubrir capacidades y poder de Maya. He estado usando Maya desde el año 2005,
Generativo Voronoi 3D rompecabezas

Generativo Voronoi 3D rompecabezas

El año pasado, comencé a interesarme en los patrones de voronoi. Estos patrones se encuentran en la naturaleza (ej., burbujas de jabón, las alas de mariposa, manchas de jirafa, etc.). Además, estos patrones se aplican en economía, matemáticas y geome
Procedimiento genera árboles

Procedimiento genera árboles

Si nunca has jugado a juegos como Minecraft, ha visto terreno procesalmente generado. Una infinita variedad de ríos, montañas y árboles puede generarse de simples fórmulas matemáticas.En este Instructable, voy a enseñar cómo generar procesalmente un
Escribir un nuevo servicio para linux (opensuse)

Escribir un nuevo servicio para linux (opensuse)

Este instructable le enseña a escribir y poner en práctica un nuevo servicio en Linux (opensuse).Usted aprenderá cómo convertir un script de shell en un servicio.¿Qué es bueno para?Un servicio puede hacer varias cosas.Esto es para hacer un seguimient
Creación de objetos recurrentes en Maya usando MEL e impresión 3D

Creación de objetos recurrentes en Maya usando MEL e impresión 3D

Este instructable le mostrará cómo crear un objeto recursivo en Maya usando el lenguaje de guiones de MEL (Maya Embedded Language). Además, cubrirá cómo 3D imprimir estos objetos utilizando un Objet Eden 260V.Materiales que necesitará:1. Autodesk May
Introducción a mi Tutorial de como hacer su muy propio rol juego sin cualquier conocimiento de Scripting y Pixel-Art

Introducción a mi Tutorial de como hacer su muy propio rol juego sin cualquier conocimiento de Scripting y Pixel-Art

bien, desea realizar su propio proyecto de rol, pero no sabes donde empezar... bueno este tutorial básicamente le mostrará cómo crear un juego de RPG de rodillo de dados sin necesidad de cualquier navegador de internet, un asesino de aburrimiento per
Con Maya para crear rápidamente un render de producto profesional para Shapeways

Con Maya para crear rápidamente un render de producto profesional para Shapeways

Al vender un diseño del modelo en 3D páginas web impresión como Shapeways, creo que es importante crear una impresión primera hermosa y profesional para un cliente cuando aterrizan en tu página de producto.En esta lección, vamos a usar Maya 2015 para
Branching Fractal Shapes

Branching Fractal Shapes

Un maya de python script que permite jugar con formas ramificadas. Un objeto de base se copia muchas veces, y los ejemplares tienen una cierta relación a sus "padres" por lo que cuando se traduce una de las copias de primera generación, rotar o
ACTUALIZACIÓN: Cómo utilizar archivos Mocap Maya, BVH o FBX

ACTUALIZACIÓN: Cómo utilizar archivos Mocap Maya, BVH o FBX

Para aquellos con un archivo FBX, vaya al paso siguiente.Este tutorial está realizado para Maya 2013, pero creo que debería funcionar en 2010-2015.Buen recurso para datos de fuente abierta mocap: Archivos originalesconvertidos a BVHPuesto que muchos
IoT - controlar un Raspberry Pi Robot por internet con HTML y shell scripts sólo

IoT - controlar un Raspberry Pi Robot por internet con HTML y shell scripts sólo

(Si te gusta este Instructables, no olvide votar en ella (por encima de: bandera de la esquina a la derecha). está compitiendo en concursos de automatización y de INTERNET de las cosas. ¡Muchas gracias! ;-)En este instructables, aprenderemos cómo cre
Guían de principiantes para Maya: Robots

Guían de principiantes para Maya: Robots

Autodesk Maya es una gran herramienta para la creación de modelos complejos. Si usted sabe lo que está haciendo, usted puede bastante mucho diseño nada con Maya. En este instructable, seré tu guía en Polígono simple modelado en Maya. Incluso con las
Parte 1 openHAB y Zwave - Introducción

Parte 1 openHAB y Zwave - Introducción

Actualización 11-13 1930CDT ***Tengo el interruptor en el Aeon Labs Aeotec Z-Wave Z-Stick, Gen5 Z-Wave Plus - ZW090 debido a problemas con la continuación. La cuestión es que experimentan una pérdida de conexión con todos mis nodos de una vez por sem