Top Banner

of 35

Proyecto Final MAC TEORIA

Jul 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Programacin de Modificadores en MAXSCRIPT

Toms Alema Baeza Vicente Fernndez Lpez 2012

Programacin de Modificadores con MAXScript

ndice1. Introduccin ............................................................................................................. Pgina 3

1.1 Introduccin sobre el objetivo del trabajo. 1.2 Modificaciones Finales del objetivo del trabajo.2. MAXScript ................................................................................................................. Pgina 6

2.1 Introduccin MAXScript. 2.2 3DMAX y MAXScript en el cine. 2.3 Comparacin de MAXScript con otros Script. 2.4 Funcionamiento de MAXScript.3. Multiplicador de Objetos .......................................................................................... Pgina 14

3.1 Creacin del Script. 3.2 Funcionamiento del Script.4. Palmera Creator Script ............................................................................................. Pgina 23

4.1 Creacin del Script. 4.2 Funcionamiento del Script.5. Modificador Piedra ................................................................................................... Pgina 30

5.1 Creacin del Script. 5.2 Funcionamiento del Script.6. Referencias ............................................................................................................... Pgina 35

Toms Alema Baeza Vicente Fernndez Lpez

2

Programacin de Modificadores con MAXScript1. Introduccin1.1 Introduccin sobre el objetivo del trabajo.

En un principio el objetivo de este proyecto era trabajar con MAXScript, bsicamente consistira en la creacin de modificadores y la insercin de objetos, dicho trabajo lo dividiremos en dos fases, una inicial dnde aprendiramos todo lo relacionado con la sintaxis y lo necesario para desarrollar objetos y aplicar modificadores y otra que consistir en el desarrollo de los mismos. Previamente fijamos los siguientes hitos: Palmera (Objeto) Cortar (Modificador) Roca (Modificador)

Palmera: Consiste en crear un objeto palmera con lassiguientes opciones que permiten modificar la palmera.

Toms Alema Baeza Vicente Fernndez Lpez

3

Programacin de Modificadores con MAXScriptCortar: Es un modificador que consiste en separar un objeto endos, como si efectusemos un corte de cuchillo sobre el objeto, previamente seleccionamos el eje de corte y luego el lugar exacto, podemos seleccionar si queremos que se quede el objeto cerrado o abierto mediante la opcin Shape.

Roca: Es un modificador que consiste en otorgar el aspecto deroca a un objeto ya existente, pudiendo configurar los colores de la roca, el nivel de erosin y el nivel de suavizado.

Toms Alema Baeza Vicente Fernndez Lpez

4

Programacin de Modificadores con MAXScript

1.2 Modificaciones Finales del objetivo del trabajo Finalmente tuvimos un problema con uno de los componentes del grupo, ya que al no aprobar Matemticas 2 decidi no realizar el trabajo ya que no le servira para el curso siguiente, por eso decidimos cambiar a ultima hora el modificador que tenia que desarrollar l y finalmente decidimos crear entre los dos miembros del grupo el siguiente modificador. Multiplicador (Modificador) Multiplicador: se trata de un modificador en el cual tenemos una lnea o curva trazada y un Objeto ,cualquiera, en una escena de 3D MAX, el modificador nos permitir multiplicar el objeto a lo largo de la curva pudiendo elegir el numero de multiplicaciones que queremos, si queremos rotarlo manual o aleatoriamente aleatoriamente. y si queremos escalarlo manual o

Toms Alema Baeza Vicente Fernndez Lpez

5

Programacin de Modificadores con MAXScript

2. MAXScript2.1 Introduccin a MAXScript. MAXScript es un lenguaje de alto nivel orientado a objetos y de sintaxis bastante sencilla, se trata de un lenguaje de scripting que viene incorporado en la herramienta de modelado 3D Autodesk 3D Studio Max. La sintaxis de MAXScript es parecida a la que tienen programas como Delphi, es decir un lenguaje orientado a eventos, la peculiaridad de MAXScript es que tiene funciones propias que permiten la interactuacin de las instrucciones con los objetos 3D de Studio MAX. Se trata de un lenguaje que no necesita compilador, todas las instrucciones se llevan a cabo en tiempo real, lo que permite que la correccin de errores sea bastante rpida. Como se ha comentado anteriormente podemos utilizar MAXScript y 3D Studio MAX al mismo tiempo, lo que permite cambiar propiedades o aadir nuevas funcionalidades a los diferentes elementos que tengamos en nuestra escena 3D. MAXScript nos permite, entre otras cosas: Crear de escenas complejas que desde la interfaz bsica de 3D MAX serias complicadas de llevar a cabo. Controlar el programa de manera interactiva a travs de lneas de comando mediante el Listener. El Listener es como una especie de compilador donde introducimos las diferentes instrucciones devolviendo en la pantalla 3D el resultado de dicha instruccin. Crear plugins, modificadores personalizados, etc. Ampliar o remplazar la interfaz de usuario de los objetos, modificadores, etc. del entorno de trabajo 3D, permitiendo as una mayor personalizacin de nuestro entorno de trabajo 3D.

Toms Alema Baeza Vicente Fernndez Lpez

6

Programacin de Modificadores con MAXScript

2.2 MAXScript y 3D MAX en el cine. Podemos encontrar referencias a 3D en inmensidad de pelculas, la mas famosa que se conoce actualmente es AVATAR, que est totalmente creada en 3D a partir de captura de movimiento de actores reales, mediante esta tcnica pudieron modelar de manera mas real a los personajes de la pelcula, esta es una de las pelculas que integran tecnologa 3D mas famosa que se conocen, pero no es la nica, a lo largo de este tiempo muchas pelculas han hecho referencia a la tecnologa 3D. A continuacin presentamos una lista de pelculas que en sus producciones han utilizado tecnologa 3D y la han llevado a cabo con 3D Studio MAX y por consiguiente con MAXScript. Entre las pelculas que han usado 3D MAX destacamos las siguientes: Los Increbles: En esta pelcula se utiliz 3D MAX para los fondos cuando los personajes se encontraban dentro de algn edificio, segn parte del equipo de produccin se utilizo 3DMax, Discreet 3D y SplutterFish(renderizado).

-

Blade Trinity: Se utiliz 3D MAX para las escenas donde se destruan vampiros, en concreto se utiliz ThinkingParticles 2 lo pe proporciona las herramientas necesarias para poder desarrollar el fuego cuando se destrua un vampiro.

-

El Exorcista: El comienzo: Se utiliz el software 3ds max, Discreet 3D, HairFX (Turbo Squid), y Morph-O-Matic (Di-O-Matic), estas herramientas se utilizaron para llevar a cabo el desarrollo de cuervos que aparecen en la pelcula.

-

X-Men 2: En este caso se utiliz 3D MAX para el desarrollo de un mapa hologrfico foto-realista

Toms Alema Baeza Vicente Fernndez Lpez

7

Programacin de Modificadores con MAXScript

-

Lara Croft: Tom Raider: 3D Max fue utilizado por Mill Film para agregar personas a la toma de la Ciudad Antigua. Posterior mente dicha ciudad tuvo que ser destruida mediante animacin en 3D, para ello se utiliz 3DS MAX con FinalRender para los haces de luz, PyroCluster AfterBurn para los elementos de explosin y ThinkingParticles y Phoenix para realizar el anillo en llamas final.

Toms Alema Baeza Vicente Fernndez Lpez

8

Programacin de Modificadores con MAXScript2.3 MAXScript vs Otros Scripts. Todos los programas dedicados al desarrollo de grficos 3D por computador cuentan con un lenguaje de programacin para personalizar acciones del mismo. A continuacin hablaremos sobre las diferencias entre lenguajes de los programas mas importantes, (Maya, 3DS Max, Blender y Cinema 4D). Tanto 3DS Max como Maya cuentan con lenguajes propios dedicados para el programa, MAXscript para 3DS Max y MEL(Maya Embedded Language) para Maya. En cambio Cinema 4D y Blender usan Phyton, que es un lenguaje externo al programa. La diferencia ms importante es su nivel de complejidad, mientras que MAXscript es un lenguaje mas bsico, tanto MEL como Phyton son lenguajes de programacin mas complejos, similares a C++ o Java. En este aspecto MAXscript sale favorecido, aunque si el usuario posee conocimientos de programacin le ser mucho ms sencillo utilizar cualquiera de estos dos ltimos. La lectura del cdigo le ser ms sencilla y el usuario no echar en falta algunos aspectos bsicos de la programacin. Por poner un ejemplo, MEL y Phyton usan estndares de programacin, mientras que MAXscript tiene su propia sintaxis para realizar estos comandos bsicos. Esto conlleva que para poner tan solo un simple comentario en el script, cualquier usuario con conocimientos de programacin le ser sencillo en Phyton o MEL, mientras que para comentar una lnea en MAXscript tendr invertir tiempo en adquirir estos conocimientos bsicos de este lenguaje. Por suerte, aunque 3DS Max y Maya cuentan con lenguajes propios, en sus ltimas actualizaciones cuentan con formas de insertar o adaptar de forma fcil Phyton en sus scripts, permitiendo incorporar scripts realizados en Phyton en estas plataformas.

Toms Alema Baeza Vicente Fernndez Lpez

9

Programacin de Modificadores con MAXScript2.4 Funcionamiento de MAXScript. MAXScript es un lenguaje de alto nivel orientado a objetos y de sintaxis muy sencilla. Est pensado para usuarios de 3D Studio MAX que no estn familiarizados con la programacin. Sus variables son sin tipo y no hay distincin entre maysculas y minsculas. Gua Prctica de MAXScript MAXScript se encuentra en el panel de herramientas. En este panel hay una persiana de utilidades, y dentro de ella se puede presionar el botn MAXScript.

2.4.1 Declaracin de Variables Las variables se utilizan para almacenar datos que varan durante la ejecucin del programa. En MAXScript no es necesario declarar las variables antes de utilizarlas. Tenemos dos clases de variables en MAXScript, locales y globales, que actan como cualquier otro lenguaje de programacin: Variables locales: Slo son visibles en el bloque o funcin donde se declaran. Su valor se mantiene mientras se est ejecutando la funcin o el bloque donde se encuentran. Variables globales: Son visibles en todo el cdigo MAXScript. Podemos acceder a ellas desde diferentes utilidades, funciones, etc. Su valor permanece hasta que se sale de 3D Studio MAX. Global Total = 100; -- Declaracin de la variable Total . Global iva = 10; -- Declaracin de la variable iva. Total + iva -- Suma el valor de la variable Total ms el valor de la variable iva. Estas variables son globales, eso quiere decir que no variarn cada vez que se llame a una funcin. La variable se inicializara como undefined en el caso de que no se le asigne ni global ni local. Las cadenas en MAXScript empiezan y terminan con el smbolo de doble comilla. Como Hola , Esto es una cadena. En el caso de que se quieran utilizar las dobles comillas en la cadena se har uso del carcter \. Estos son sus usos aparte de las comillas: \ : Comillas. \\ : Carcter \. \n: Nueva lnea. \r: Retorno de carro.

Toms Alema Baeza Vicente Fernndez Lpez

10

Programacin de Modificadores con MAXScript\t: Tabulacin. Anteriormente se ha comentado que 3D Studio MAX no distingue entre maysculas y minsculas. Esto es cierto salvo en una excepcin. La comparacin entre dos cadenas s que hace esta distincin. Los comentarios se especificarn mediante dos guiones seguidos. A partir de estos dos guiones --, todo lo que se escriba hasta el final de la lnea ser considerado como un comentario. 2.4.2 Interaccin con objetos MAXScript puede trabajar con objetos de 3D Studio MAX al mismo tiempo que se trabaja con ellos de forma interactiva a travs de los botones y paneles. De hecho, los objetos pueden ser creados, transformados, modificados y eliminados desde MAXScript al igual que se hace desde 3D Studio MAX. Los comandos de creacin de objetos coinciden con los nombres de estos objetos. Para crear una caja bastar con escribir en la ventana oyente el comando box ( ). Una vez escrito, y despus de presionar la tecla INTRO, se crea una caja con los parmetros por defecto. Se recomienda asignar el objeto a una variable, para hacer ms manejable el uso de dicho objeto. Si el objeto creado no se asigna a ninguna variable y queremos referirnos a l utilizaremos el smbolo $ delante del nombre que tiene el objeto en la escena. Podemos modificar todos los parmetros del objeto (altura, radio, etc.), de nodo (nombre, color, etc.) y de transformacin (rotacin, posicin, etc.). Para modificar un valor en un objeto utilizaremos uno de los siguientes esquemas: $NombreObjeto.Parmetro=NuevoValor NombreVariable.Parmetro=NuevoValor Donde "NombreObjeto" sera equivalente al nombre del objeto a modificar en caso de que no este asignado a una variable y "NombreVariable" equivale a la variable que contiene el objeto a modificar. Para saber los nombres y tipos de parmetros de un objeto se puede utilizar la funcin ShowClass(). En el caso de que lo escribamos sin ningn objeto determinado nos aparecer una lista de objetos de 3DS MAX y sus parmetros correspondientes, mientras que si especificamos el objeto nicamente nos aparecern los parmetros de ese objeto. Por ejemplo: ShowClass "box.*" -- Muestra todos los parmetros de la clase box ShowClass "Box.height" -- Muestra todos los datos del parmetro height En el primer ejemplo hemos comprobado todos los parmetros de la clase box.

Toms Alema Baeza Vicente Fernndez Lpez

11

Programacin de Modificadores con MAXScriptEn el segundo ejemplo de ShowClass hemos comprobado que el parmetro "Height" de la clase "Box. Como cualquier lenguaje de programacin, existen expresiones de compararacin y lgicas. Estas expresiones en MAXscript son similares a las de cualquier otro lenguaje de programacin. A continuacin los mostraremos para aquellos que no estn familiarizados con la programacin: 2.4.3 Expresiones de comparacin. A == B -- Expresin que equivale a comparar si A es igual a B. A != B -- Expresin que equivale a comparar si A es distinta a B. A > B -- Expresin que equivale a comparar si A es mayor que B. A < B -- Expresin que equivale a comparar si A es menor que B. A >= B -- Expresin que equivale a comparar si A es mayor o igual que B. A 0 then -- El cdigo se ejecuta si la variable es mayor que 0. ( ) else if variable < -10 then -- El cdigo se ejecuta si la variable es menor que 10. ( ) else -- En cualquier otro caso se ejecuta este cdigo. ( )

Toms Alema Baeza Vicente Fernndez Lpez

12

Programacin de Modificadores con MAXScript

Los bucles se utilizan cuando es necesaria la repeticin de un cdigo, y se hace uso de los comandos for y while. For variable = 1 to variable2 do ( ) El script interpreta que debe repetir la accin (que vamos a escribir luego entre los parntesis), contando de a uno por vez, desde variable es igual a 1 hasta llegar al valor de variable2. While variable > variable2 do ( ) El script en este caso se repetir siempre que variable sea mayor que variable2. Todas las variables que se creen dentro de estos bucles se reiniciaran cada vez que se salga del bucle y se vuelva a llamar al mismo mas tarde. 2.4.3 Elaboracin de formularios / ROLLOUTS. Los formularios/rollouts tienen dos formas de hacerse, una es de forma automtica, tu creas el formulario y automticamente se te genera el cdigo del formulario, y otro modo es hacerlo a mano. Para hacer un formulario a mano lo primero que hay que hacer es declarar el formulario y darle un nombre: rollout RolloutDePrueba Rollout de Prueba ( ) createdialog RolloutDePrueba Despus aadiremos el comando createdialog fuera de los parntesis para que nos aparezca por pantalla. El siguiente paso es programar cada tecla que queramos aadir y su funcin, como por ejemplo si queremos hacer una funcin que coja elementos de la escena de forma aleatoria haremos un botn que utilizaremos para que se ponga en marcha la funcin y una casilla extra que nos permita coger objetos a partir de los que ya tenemos: rollout RolloutDePrueba Rollout de Prueba ( checkbox UsarSeleccinActual Usar seleccin actual button GetRandom Obtener Aleatorio On GetRandom pressed do (

Toms Alema Baeza Vicente Fernndez Lpez

13

Programacin de Modificadores con MAXScriptSCRIPT -- lo que quieras que haga la funcin. ) ) createdialog RolloutDePrueba

Lo nico que nos faltara por implementar sera el script que har que nuestro rollout se ponga en funcionamiento. Existen mltiples tipos de botones, checks y deslizadores distintos, estos son unos de los muchos que existen: Button Botn normal. Checkbox Casilla seleccionable. Radiobuttons Casillas circulares seleccionables. Spinner Cajas de inclusin de nmeros con flechas de scroll manual. ColorPicker Casilla de seleccin de color.

Labels Opciones seleccionables, ir acompaada dentro de un parntesis con las diferentes opciones a elegir.(Se usa junto a otros comandos como Radiobuttons, Spinners, etc.) Columns Columnas en las que irn repartidas las labels.(Se usa junto a otros comandos como Radiobuttons, Spinners, etc.)

GroupBox Sirve para agrupar botones en submens. Group Sirve para agrupar botones en submens pero con alineacin automtica sin necesidad de especificar el tamao de la caja.

Toms Alema Baeza Vicente Fernndez Lpez

14

Programacin de Modificadores con MAXScript3. Multiplicador de objetos3.1 Creacin del Script. A la hora de comenzar a crear un modificador tenemos que tener previamente clara la estructura del formulario del modificador, al menos tener clara una base de dicho formulario para poder trabajar, una de las ventajas que tiene MAXScript es que el formulario se puede crear tanto de forma visual, es decir eligiendo los diferentes objetos de una lista y aadindolos en el lugar que queramos, como de forma manual, es decir escribiendo el cdigo correspondiente a cada uno de los diferentes objetos del formulario. Para crear el Multiplicador de objetos creamos el siguiente formulario:

Toms Alema Baeza Vicente Fernndez Lpez

15

Programacin de Modificadores con MAXScriptPara poder crear el modificador, primero de todo tenemos que definir un rollout, un rollout nos permite crear una ventana de dialogo con en la cual se nos mostrara todo el formulario. El rollout se define de la siguiente manera:

Cuando creamos el rollout le asignamos una palabra clave, nuestro caso Multiplicador, con esta palabra clave podremos hacer referencia posteriormente a dicho rollout, podemos tambin aadirles informacin adicional como el nombre que queremos que aparezca en el modificador, el tamao del modificador, etc. Una vez tenemos el rollout definido junto con el formulario y las diferentes instrucciones que queremos que haga nuestro modificador tenemos que hacer una llamada a dicho rollout para que se cree el cuadro de dialogo, para ello tendremos que crear lo siguiente:

Esta instruccin se suele poner normalmente al finalizar todo el modificador, dentro del rollout se encuentra tanto las instrucciones para crear el formulario, como las instrucciones que realizara cada objeto de dicho formulario. A continuacin explicaremos lo que queremos que se realice en cada uno de los elementos de nuestro formulario.

En esta parte del formulario queremos que cuando se pulse el botn Elige Lnea y el botn Elige Objeto el nombre de la curva y del objeto que hayamos seleccionado se escriba de forma automtica en el cuadro de texto que hay encima de cada uno de los diferentes botones, para ello debemos escribir el siguiente cdigo en MAXScript

Toms Alema Baeza Vicente Fernndez Lpez

16

Programacin de Modificadores con MAXScript

Como se puede observar es un lenguaje orientado a eventos, en este caso cuando pinchemos en un elemento de 3DMax (ON PICKED OBJ DO) se asignara a la variable texto del cuadro de texto el nombre del objeto seleccionado. Para comprobar que se realizaba de forma correcta creamos un MessageBox con el cual observar que el nombre asignado era el correcto.

En este fragmento de nuestro formulario lo que queremos que haga nuestro Script es que una vez seleccionado tanto la curva como el objeto

multipliquemos el objeto el nmero de veces que se indica en el spinner Num. Objetos. Por otro lado podemos seleccionar si queremos un escalado manual, moviendo el spinner Escalar o un escalado aleatorio, marcando el checkbox Aleatorio. En cuanto a la rotacin, trabaja de la misma manera que el escalado, podemos escalarlo manualmente mediante los spinners o aleatoriamente mediante el checkbox. Todas estas acciones se llevarn a cabo una vez se haya pulsado el botn de crear. (ON Button Pressed DO) A continuacin explicaremos por partes el cdigo fuente utilizado para poder crear todos los objetivos de nuestro formulario:

Toms Alema Baeza Vicente Fernndez Lpez

17

Programacin de Modificadores con MAXScript

Como se observa en esta parte del cdigo se crea el evento ON PRESSED, este evento se lanzara cuando el botn Crear este pulsado, una vez se haya pulsado se crearan las variables que vemos a continuacin Primero creamos una variable a la cual le asignaremos el valor de la curva, una vez tenemos esto creamos otra variable con la cual obtener la longitud de la lnea mediante la funcin curvelenght utilizamos esto para poder crear posterior mente un salto con el cual poder ver como se crean los objetos uno detrs de otro.

Este fragmento de cdigo es el mas importante de nuestro Script, ya que es aqu donde se realizan toda la multiplicacin, rotacin y escalado de los elementos.

Toms Alema Baeza Vicente Fernndez Lpez

18

Programacin de Modificadores con MAXScriptComo se puede observar se trata de un bucle for que se repite el valor que introducimos en el spinner de Num.Objetos, y mediante la variable salto se crean los objetos de manera continuada. Una vez tenemos el bucle formado creamos un conjunto de variables que nos permitirn definir la posicin del nuevo elemento, en este caso la posicin que vamos a introducir es de forma aleatoria, para ello creamos una variable aleatoria y posterior mente mediante la funcin LengthInterp() , la cual devuelve un punto de la curva , la funcin necesita el parmetro de la curva y un parmetro numrico que devolver dicho punto, en nuestro caso el parmetro numrico es un random por lo que cada vez que se ejecute el bucle la posicin ira variando de forma aleatorio. Una vez hecho esto entran en juego los parmetros de Rotacion y Escalado, como se ha comentado anterior mente existen dos maneras de rotar y escalar, por lo que creamos una estructura if else con la cual poder asignar los dos tipos de rotacin y escalado. En cuanto a la rotacin: Si pulsamos el checkbox Aleatorio haremos que se cree una variable aleatoria y mediante la funcin EulerAngles rotaremos el objeto aleatoriamente en el eje Z, la funcin EulerAngles nos permite rotar el objeto de forma gradual desde 0 hasta 360.

-

Si no pulsamos el checkbox Aleatorio hacemos que la funcin EulerAngles coja los valores que hemos introducido en los Spinners Eje X Eje Y Eje Z.

En cuanto al escalado: Si pulsamos el checkbox Aleatorio haremos que se cree una variable aleatoria y mediante la funcin Scale escalaremos el objeto en los tres con el valor que haya tomado la variable aleatoria.

-

Si no pulsamos el checkbox Aleatorio hacemos que la funcin Scale tome el valor del Spinner Escale.

Toms Alema Baeza Vicente Fernndez Lpez

19

Programacin de Modificadores con MAXScript

Este es el ultimo fragmento del cdigo del botn crear, en este fragmento es donde se crea el objeto en si, creamos una copia del objeto en la posicin que anteriormente hemos definido y dependiendo de lo que hayamos seleccionado en la pestaa de rotacin rotara de una manera u otra, por otro lado hacemos que los objetos que creemos estn linkeados a la curva seleccionada. Por otro lado mediante la funcin completeRedraw() podremos observar como se crean las copias del objeto conforme va avanzando el bucle.

Toms Alema Baeza Vicente Fernndez Lpez

20

Programacin de Modificadores con MAXScript3.2 Funcionamiento del Script. A continuacin se mostraran un par de ejemplos del funcionamiento del Script. Ejemplo 1: Esferas siguiendo un Helix

Ejemplo 2: Hedras en un Texto

Toms Alema Baeza Vicente Fernndez Lpez

21

Programacin de Modificadores con MAXScriptEjemplo 3: Lirios siguiendo Lnea

Toms Alema Baeza Vicente Fernndez Lpez

22

Programacin de Modificadores con MAXScript4. Palmera Creator4.1 Creacin del Script. Decidimos crear el modificador "Palmerita", que crea una palmera con los parmetros que tu desees incluyendo el nmero de hojas, porque las plantas y palmeras que incluye por defecto 3DS MAX carecen de opciones de personalizacin, como variar el numero de ramas etc. Como hemos mencionado anteriormente, a la hora de crear el formulario del modificador lo podemos hacer tanto por cdigo como automticamente. Para crear la palmera creamos el siguiente formulario:

Toms Alema Baeza Vicente Fernndez Lpez

23

Programacin de Modificadores con MAXScriptPara poder crear el modificador, primero de todo tenemos que definir un rollout, un rollout nos permite crear una ventana de dialogo con en la cual se nos mostrara todo el formulario. El rollout se define de la siguiente manera:

Una vez definimos todos los detalles del rollout como su nombre, tamao, etc. (opcionales) debemos introducir el comando createdialog al final del cdigo para que se nos muestre por pantalla:

Dentro del rollout se encuentran todas las instrucciones de funcionamiento del formulario, asi como las acciones que debern hacer cada uno de los elementos. A continuacin explicaremos lo que queremos que se realice en cada uno de los elementos de nuestro formulario. En esta parte del formulario queremos que cuando se pulse el botn Crear Tallo Se cree un tallo con los atributos que hayan sido elegidos en el formulario. Por otro lado podemos seleccionar si queremos que salga curvado marcando el checkbox Doblar, moviendo los spinner Angulo y "Direccion" para establecer los parmetros de la seleccin. Adems cuenta con la opcin de seleccionar el color del tallo o utilizar el material por defecto. Todas estas acciones se llevarn a cabo una vez se haya pulsado el botn de crear. (ON Button Pressed DO)

Toms Alema Baeza Vicente Fernndez Lpez

24

Programacin de Modificadores con MAXScriptEn esta otra parte del formulario queremos que cuando se pulse el botn Crear Hojas Se creen "X" cantidad de hojas de forma y posicin aleatoria. Podemos seleccionar la cantidad de hojas, ancho y tamao de estas moviendo los spinners respectivos. Adems cuenta con la opcin de seleccionar el color del tallo o utilizar el material por defecto. Todas estas acciones se llevarn a cabo una vez se haya pulsado el botn de crear. (ON Button Pressed DO) A continuacin explicaremos por partes el cdigo fuente utilizado para poder crear todos los objetivos de nuestro formulario:

Este evento ON PRESSED se crear cuando se presione el botn "Crear Tallo" que realizar las siguientes acciones:

ste cdigo crea un cilindro y una esfera llamados "Tallo" y "Copa" con los valores asignados en los campos, algunos sern predeterminados como los segmentos de la figura y otros como el ancho(ancho.value) y el alto(alto.value) de la figura se cogern de los valores que se asignen en los spinners del formulario. Despus se le aplicarn los materiales, que sern los primeros de la tabla de materiales y seleccionara la esfera como objeto activo.

Toms Alema Baeza Vicente Fernndez Lpez

25

Programacin de Modificadores con MAXScript

ste otro lo que hace es comprobar si las casilla doblar est presionada (doblar.checked=true) y nicamente si lo est realizar el cdigo interno de la comprobacin, que es aplicar el modificador Bend con los valores que metimos anteriormente en los spinners del formulario.

Despus seleccionar la esfera (Copa) y le aplicar el modificador Taper haciendo que quede de forma ahuevada y parezca la parte superior del tallo de la palmera. Despus la escalar para ajustarse mejor al tallo.

Este evento ON PRESSED se crear cuando se presione el botn "Crear Hojas" que realizar las siguientes acciones:

Toms Alema Baeza Vicente Fernndez Lpez

26

Programacin de Modificadores con MAXScriptste cdigo esta dentro de un "for", es decir que el cdigo se repetir una y otra vez hasta que la condicin deje de cumplirse, en este caso cuando i que inicialmente es 1 sea igual al valor introducido en el spinner del formulario en el que seleccionbamos la cantidad de hojas que queramos crear. Para ello, primero crea unas variables con valores aleatorias dentro de un rango, que luego se utilizarn a la hora de crear las hojas, para establecer su posicin, curvatura, direccin, etc.

A continuacin crea un cilindro llamado Hoja la altura de la "Copa" de la palmera, con los valores asignados en los spinners de anchura y longitud. Despus selecciona el cilindro y le aplica el modificador Bend que hace que el objeto se doble el angulo que ser equivalente a una de esas variables aleatorias nombradas anteriormente. Tras esto se le asignara el material de las hojas (el segundo de la lista de materiales) y se rotar el cilindro una cantidad aleatoria sobre si mismo, gracias al comando "rotate Cil rot"(Cil rot son dos variables aleatorias). La gracia de este cdigo es que al estar contenido dentro de un "for" se repetir tantas veces como hojas seleccionadas y con valores aleatorios distintos al ser variables locales las cuales se

Toms Alema Baeza Vicente Fernndez Lpez

27

Programacin de Modificadores con MAXScriptresetearan en cada iteracin. Eso quiere decir que se crear una hoja por repeticin con posicin, rotacin y ngulo distintos al anterior. ATENCION: Los CheckBox de Doblar y enroscar no funcionan correctamente ya que no nos permite actuar sobre el grupo entero y las hojas no se ponen en lugar correcto.

Toms Alema Baeza Vicente Fernndez Lpez

28

Programacin de Modificadores con MAXScript4.2 Funcionamiento del Script. Ejempo1: Palmera Sin texturas

Ejemplo 2: Palmera Con Texturas

Toms Alema Baeza Vicente Fernndez Lpez

29

Programacin de Modificadores con MAXScript5. Piedra5.1 Creacin del Script. Decidimos crear el modificador "Piedra" porque despus de realizar varias prcticas y hacer uso de materiales, echamos en falta un modificador que convirtiera automticamente el aspecto de un objeto y lo transformara. Como hemos mencionado anteriormente, a la hora de crear el formulario del modificador lo podemos hacer tanto por cdigo como automticamente. Para crear la piedra creamos el siguiente formulario:

Para poder crear el modificador, primero de todo tenemos que definir un rollout, un rollout nos permite crear una ventana de dialogo con en la cual se nos mostrara todo el formulario. El rollout se define de la siguiente manera:

Toms Alema Baeza Vicente Fernndez Lpez

30

Programacin de Modificadores con MAXScriptUna vez definimos todos los detalles del rollout como su nombre, tamao, etc. (opcionales) debemos introducir el comando createdialog al final del cdigo para que se nos muestre por pantalla:

Dentro del rollout se encuentran todas las instrucciones de funcionamiento del formulario, asi como las acciones que debern hacer cada uno de los elementos. A continuacin explicaremos lo que queremos que se realice en cada uno de los elementos de nuestro formulario. En esta parte del formulario queremos que cuando se pulse el botn Rock'n Roll Se modifique el objeto seleccionado para que su aspecto se asemeje al de una roca. Por otro lado podemos seleccionar los colores de la roca, as como el uso de un material por defecto. Si queremos que salga Suavizado marcando el checkbox Suavizar Bordes. Y hemos aadido una opcin para aquellos objetos que tengan una definicin demasiado baja. Adems podemos controlar la cantidad de deformacin que queremos que sufra el objeto, ya que no todos los objetos necesitaran la misma cantidad de deformacin que otros, depender del tamao y definicin del objeto. Todas estas acciones se llevarn a cabo una vez se haya pulsado el botn de Rock'n Roll. (ON Button Pressed DO) A continuacin explicaremos por partes el cdigo fuente utilizado para poder crear todos los objetivos de nuestro formulario:

Toms Alema Baeza Vicente Fernndez Lpez

31

Programacin de Modificadores con MAXScript

Este evento ON PRESSED se crear cuando se presione el botn "Rock'n Roll" que realizar las siguientes acciones:

ste cdigo asigna el color seleccionado en el formulario al objeto y despus comprueba si ha sido seleccionada la casilla de material para asignarle o no el material por defecto. Debido a errores con el material se aadi un modificador UVW MAP con aspecto en caja para asignar mejor los materiales al objeto.

Despus crearemos unas variables locales aleatorias dentro de un rango para asignar a los modificadores TAPER y NOISE valores aleatorios para que no se asemejen los objetos demasiado (en el caso de el NOISE se le aplicara el valor que se introdujo en el spinner "Deformacin").

Toms Alema Baeza Vicente Fernndez Lpez

32

Programacin de Modificadores con MAXScript

Por ultimo se harn comprobaciones de las casillas seleccionables para realizar el cdigo de dentro de los condicionales (IF) y aplicar los modificadores pertinentes. En estos casos se comprob si el botn de subdividir estaba seleccionado para aplicar un SUBDIVIDE y en el caso del suavizado se aplicar un MESH SMOOTH.

Toms Alema Baeza Vicente Fernndez Lpez

33

Programacin de Modificadores con MAXScript5.2 Funcionamiento del Script. Ejemplo Piedra

Toms Alema Baeza Vicente Fernndez Lpez

34

Programacin de Modificadores con MAXScript6. Referenciashttp://emrahgunduz.com/category/categories/development/maxscript/ http://www.scriptspot.com/3ds-max/tutorials/maxscript-101-free-online-training http://www.mrbluesummers.com/1492/video-tutorials/3dsmax-monday-movie-66-maxscriptrollouts http://www.foro3d.com/f112/maxscript-28677.html http://www.creativecrash.com/3dsmax/downloads/scripts-plugins/c/ Ayuda Autodesk MAXScript http://www.kxcad.net/autodesk/autodesk_maxscript_reference_9/

Toms Alema Baeza Vicente Fernndez Lpez

35