Gracias Gracias:  2
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 23

Tema: [MaXScript Tutorial] - Matrices de transformacion

  1. #1
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    3dsmax [MAXScript Tutorial] - Matrices de transformación

    Hola.

    Bueno, pues aquí estoy con un tutorial. Algo que tal vez os resulte útil en algún momento. Evidentemente eso dependerá de a qué os vayais a dedicar. Evidentemente una persona que se dedica exclusivamente a modelar difícilmente se va a encontrar con estas cuestiones pero si uno tira por el camino de la animación/dinamicas, entonces es más que probable que llegue un momento que se tope con este tipo de cosas. Os aseguro que un programador de motores para videojuegos se topa con esto continuamente.

    Así que, ¿de qué diablos estoy hablando?. Pues se trata de una situación que ya comenté en el hilo que abrí hace unos días, donde explicaba cómo hacer que un objeto mirase a otro haciendo uso de script controllers (sin utilizar el "Look-At Constraint" que viene con MAX, evidentemente).

    El tema va de destripar la matriz de transformación de un objeto para así conocerla mejor y de esta forma saber qué cosas podemos hacer con ella (¡no seais mal pensados!. ¿Os imaginais montandoos un rollito con una matriz de transformación?. ¡Qué freaky!).

    En este caso, como ejemplo, crearé un script controller que hará que un objeto siga un path pero sin hacer uso del "Path Constraint" de MAX. Además de seguir el path, el objeto variara su orientación para que mire en la dirección del desplazamiento. O sea, como si activarais la opción "Follow" del "Path Constraint".

    Pero antes de pasar a comentar el código del "script controller", voy a hacer una breve introducción a las matrices de transformación de un objeto en MAX.

    Matrices de transformación.

    Todo objeto en MAX tiene una matriz de transformación asignada que indica su posición, rotación y escalado. Por ejemplo, cread un cubo en la vista "Perspective" y mantenedlo seleccionado. Entonces abrid el MAXScript Listener (tecla F11) y escribid:

    Código:
    $.transform
    Pulsad intro para ejecutar la línea y el resultado será similar a éste (puede que no os de el mismo resultado si no habéis creado el cubo en el origen de coordenadas):

    Código:
    (matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
    Ahora puede que os estéis preguntando: "¡¡¿Y qué diablos significa esa retahíla de números?!!". Pues bien, parece claro que estamos ante una matriz, concretamente una matriz de tipo "matrix3". Eso significa, en MAX, que estamos ante una matriz de dimensiones 4x3, es decir, 4 filas y 3 columnas. Para que visualicéis mejor, voy a reordenar la matriz para mostrarosla en filas y columnas:

    Código:
    [1,0,0]
    [0,1,0]
    [0,0,1]
    [0,0,0]
    A esta matriz se le denomina concretamente matriz identidad. La matriz identidad tiene una característica y es que, además de que su diagonal principal esta rellena con unos, cualquier matriz A que multipliquemos por la matriz identidad, nos dará como resultado la propia matriz A.

    En cualquier caso ésto no era lo que os quería explicar. Lo que quería explicar es el significado de cada fila de la matriz que será lo que nos interese para resolver el problema de que un objeto mire hacia una dirección determinada. Así que yendo al grano, la primera fila de la matriz es el eje local X o vector "right" que indica la orientación del objeto en el eje X de nuestro mundo 3D. Luego tenemos la segunda fila que es el eje local Y o vector "up" que indica la orientación del objeto en el eje Y de nuestro mundo 3D. Casí para terminar, la tercera fila indica el eje local Z o vector "look" o "view" que indica la orientación del objeto en el eje Z de nuestro mundo 3D. ¡Finalmente! tenemos la cuarta fila que indica la posición de nuestro objeto relativa al origen de coordenadas de nuestro mundo 3D. Reescribo la matriz para que lo veais mejor:

    Código:
    [right.x right.y right.z]
    [up.x up.y up.z]
    [look.x look.y look.z]
    [pos.x pos.y pos.z]
    Estos tres vectores forman lo que en matemáticas se conoce como "base" y además tiene una peculiaridad y es que los tres vectores deben formar 90º entre sí, lo que se conoce como "base ortonormal". También tienen otra propiedad y es que los tres vectores deben estar normalizados, es decir, deben ser vectores cuya longitud es 1). Esto es importante tenerlo en cuenta porque de lo contrario nuestra matriz de transformación estará mal (¡¡sera una matriz degenerada!!).

    Ahora, si seleccionais el cubo, veréis dibujados los ejes X, Y y Z en forma de flechas. ¡Pero estos ejes no son los ejes locales del cubo sino que son los ejes alineados con los ejes de nuestro mundo 3D!. Para ver los ejes locales que nos dice nuestra matriz de transformación, pulsad el botón derecho del ratón mientras mantenéis pulsada la tecla ALT. Entonces os aparecerá un cuadro desplegable donde tendréis que escoger la opción "Local". De esta forma sí que estaréis visualizando los eje locales del cubo (right, up, look) que son los que nos indica la matriz de transformación, como ya he dicho.

    Pero un momento, ¡los ejes son iguales que antes de activar el sistema de coordenadas "Local"!. Claro, esto es porque el cubo se crea inicialmente con sus ejes alineados con los ejes de nuestro mundo 3D. Haced una cosa, rotad el cubo 90º en el eje X. Ahora haced lo mismo que antes para poner el sistema de coordenadas en modo "Local". Ahora sí veréis cómo el eje local Y apunta hacia arriba (eje "global" Z) y el eje local Z apunta hacía "fuera de la pantalla", es decir, el eje "global" -Y. Evidentemente el eje X no cambia ya que ha sido el eje de rotación que hemos utilizado.

    Ahora, teniendo aún seleccionado el cubo, volved al "MAXScript Listener" y volved a ejecutar la orden:

    Código:
    $.transform
    ¡Vaya!, como era de esperar la matriz ha cambiado para reflejar la nueva orientación de los ejes locales del cubo:

    Código:
    (matrix3 [1,0,0] [0,0,1] [0,-1,0] [0,0,0])
    o visto de otra forma:

    Código:
    [1, 0,0]
    [0, 0,1]
    [0,-1,0]
    [0, 0,0]
    Como podéis ver, el vector "right" no ha variado mientras que el vector "up" ([0,0,1]) ahora apunta en la dirección del eje "global" Z y el vector look ([0,-1,0]) ahora apunta en la dirección del eje "global" -Y. ¡Lógico, si acabamos de hacer una rotación de 90º en el eje X!.

    Ni que decir tiene que si movéis el cubo a otra posición y volvéis a mirar la matriz de transformación, observaréis cómo la fila cuarta de la matriz ha variado y refleja la nueva posición del cubo.

    Bueno, creo que con esto ya es suficiente para que entendais el código del script controller.

    Script controller :: Follow the Path!

    Sin más preambulos, aquí tenéis el código. ¡Hala, a palo seco!.

    Código:
    epsilon = 0.0001
    
    position = lengthInterp $Line01 NT
    tangent = lengthTangent $Line01 NT
    
    up = [0,0,1]
    
    cosine = dot tangent up
    
    if ( cosine > -epsilon and cosine < epsilon ) do up = [0,1,0]
    
    right = normalize (cross tangent up)
    
    up = cross tangent right
    
    matrix3 right up tangent position
    Como véis son muy pocas líneas de código. Ahora paso a explicar el código línea por línea:

    Código:
    epsilon = 0.0001
    Aquí declaramos y asignamos la variable "epsilon". Normalmente, este tipo de variable con este valor, se utiliza para comparar valores en coma flotante. Me explico. Imaginad que queréis comparar una variable "num" en coma flotante con el valor 0, es decir:

    Cita Iniciado por Ejemplo
    if num == 0.0 do (...)
    En un mundo perfecto esto sería totalmente correcto, pero por desgracia, en este mundo, ésto no es correcto. ¿Qué problema hay?. El problema es que MAXScript tiene una precisión "simple". Esto quiere decir que si tenemos un número con muchos decimales, debido a esta falta de precisón, el número final que va a utilizar MAXScript, es una versión redondeada. Esto se agraba más cuando concatenamos operaciones complejas como productos escalares, productos vectoriales, multiplicación de matrices o divisiones ya que el resultado se va degenerando cada vez más. Así que si bien es posible que después de una operación donde intervienen números en coma flotante esperemos un resultado de 0, es más que probable que el resultado sea próximo a 0 pero no exactamente 0. Por ejemplo 0.00001. ¡Es evidente que en este caso la comparación (0.0 == 0.00001) devolvería un rotundo "false"!. Así que la forma de solucionar esto es comparando nuestra variable "num" con un rango, en este caso el rango ]-epsilon, epsilon[:

    Cita Iniciado por Ejemplo
    if num > -epsilon and num < epsilon do (...)
    Esa comparación sí que devolvería "true". Espero haberme explicado...

    Pasamos a la siguiente línea:

    Código:
    position = lengthInterp $Line01 NT
    Bien, nosotros queremos que nuestro objeto siga una spline. Para ello necesitamos conocer la posición dentro de la spline en un espacio de tiempo determinado. Por suerte, MAXScript ofrece una función; "lengthInterp", que precisamente hace eso (de lo contrario nos hubiera tocado bregar con los diferentes tipos de interpolación existentes para las splines). A este método se le pasan dos parámetros (pueden ser hasta 4. Mirad la documentación de MAXScript para más información). El primero de ellos es una referencia a la spline en cuestión y el siguiente es el factor de interpolación. Es muy probable que muchos de vosotros os estéis preguntando qué es eso del factor de interpolación. Pues bien, digamos que es un porcentaje (normalizado, es decir, en vez de 0% a 100%, de 0 a 1) que nos indica en qué punto nos encontramos en la spline. Así, un factor de interpolación de 0 nos devolvera el punto inicial de la spline. Un valor de 1 nos devolvera el punto terminal de la spline y un valor de 0.5 nos devolvera el punto medio de la spline. Y así sucesivamente. Una vez explicado ésto, os digo qué es "NT". "NT" es una variable que viene predefinida en el script controller y nos indica el tiempo actual pero normalizado, es decir, una vez más, el tiempo en un rango [0,1]. Esto quiere decir que si tenemos una animación que va de 0 a 100 frames, si estamos en el frame 0, "NT" tendrá un valor de 0 (0/100). En el frame 50 tendrá un valor de 0.5 (50/100) y en el frame 100 un valor de 1 (100/100). Como podéis ver, esto es exactamente lo que queremos utilizar como factor de interpolación ya que en el frame 0 estaremos en el punto inicial de la spline mientras que en el 50 estaremos en la mitad de la spline y así sucesivamente.

    Pasamos de línea:

    Código:
    tangent = lengthTangent $Line01 NT
    Ok, nosotros queremos que la posición del objeto siga la spline, pero además, éste debe orientarse de forma que mire en la dirección de la trayectoria (de la spline). Para ello, necesitamos saber la tangente de la curva en un espacio de tiempo determinado. Pues bien, precisamente la función "lengthTangent" hace eso. El funcionamiento es similar a la función "lengthInterp" que he comentado anteriormente. Por si no os habéis percatado aún, éste vector tangente hará de vector "look" local a la hora de calcular la matriz de transformación. De esta forma conseguiremos que el objeto mire en la dirección de la curva. Ahora nos falta calcular los dos vectores restantes ("right" y "up") para poder calcular la matriz de transformación final.

    Empezamos con el vector "up":

    Código:
    up = [0,0,1]
    En esta línea escogemos un vector "up" temporal. Da igual el que escojamos pero a mí me pone éste . Siguiente línea:

    Código:
    cosine = dot tangent up
    Aquí introducimos la operación producto escalar o producto punto (dot product). Esta operación es esencial en la programación 3D, ya sea en el apartado gráfico, físicas, etc. ¡Esencial!. El producto escalar tiene varios comportamiento dependiendo de los valores que se pasen para realizar la operación. En este caso os bastara con saber que el producto escalar de dos vectores normalizados (vector normalizado es un vector cuya longitud es 1) es igual al coseno del ángulo que forman ambos vectores. Concretamente nosotros estamos calculando el coseno del ángulo que forman los vectores "tangent" y "up". En próximas líneas os explicaré el por qué de calcular el coseno.

    Código:
    if ( cosine > -epsilon and cosine < epsilon ) do up = [0,1,0]
    Bueno, aquí entra en juego la variable epsilon y el coseno que acabamos de calcular. Lo único que hace esta línea es compobar que el ángulo que forman el vector "tangent" y "up" sea distinto de 0 (o próximo a cero, recordad la charla sobre epsilon). Si resulta que no, que realmente el ángulo es próximo a 0, escogemos un nuevo valor para el vector "up" (tened en cuenta que éste es un vector "up" temporal, el "up" final lo calcularemos más adelante). Seguramente os estaréis preguntando por qué hago ésto. Pues bien, la explicación en la siguiente línea.

    Código:
    right = normalize (cross tangent up)
    Oki doki. Nos disponemos a calcular el vector "right". Si os acordais, en la explicación sobre las matrices de transformación dije que los vectores "right", "up" y "look" debían formar una base ortonormal, es decir, los 3 vectores debían formar ángulos rectos (90º) entre cada uno de ellos. Pues precisamente vamos a empezar a hacer eso, es decir, calcular nuestra base ortonormal. Por ahora ya tenemos el vector "look" (la tangente) y tenemos un vector "up" temporal. Así que es de lógica que si queremos tener una base ortonormal, el vector "right" debe ser perpendicular al plano formado por los vectores "tangent" y "up" (tened en cuenta que dos vectores definen un plano). Pues mirad por donde aquí entra en juego otra operación tan importante como el producto escalar; el producto vectorial (cross product). Precisamente la función "cross" de MAXScript lo que hace es calcular el vector perpendicular a los vectores que se le pasa como parámetros. En este caso estamos hallando el vector perpendicular a los vectores "tangent" y "up" que es justamente lo que andamos buscando. Además, si os fijais, el vector emitido por el producto vectorial es normalizado con la función "normalize". Recordad lo que dije en el tema de las matrices de transformación, además de formar una base ortonormal, los vectores deben estar normalizados.

    En este momento donde voy a explicar por qué hice la comprobación de que el ángulo formado por los vectores "tangent" y "up" no fuera 0. La explicación es bien sencilla. Imaginad que nuestro vector "tangent" hubiera valido [0,0,1] que es precisamente el primer valor que hemos asignado a "up". Ahora hacemos el producto vectorial de ambos vectores. Podéis comprobarlo vosotros mismo escribiendo y ejecutando la siguiente línea en el "MAXScript Listener":

    Código:
    cross [0,0,1] [0,0,1]
    ¡¡Horror, nos ha devuelto el vector [0,0,0] lo cual no es lo que queremos para nuestro vector "right"!!. Ahora escribid y ejecutad la línea:

    Código:
    cross [0,0,1] [0,1,0]
    ¡¡Bien, efectivamente el producto vectorial nos ha devuelto [-1,0,0] que es un vector perpendicular a [0,0,1] y [0,1,0]!!. Ahora entenderéis por qué he hecho la comprobación del ángulo y en el caso de que fuera 0 (o próximo a 0) por qué he variado el valor del vector "up".

    Pasamos línea:

    Código:
    up = cross tangent right
    Bueno, pues ya estamos llegando al final. Ya tenemos el vector "look" y el vector "right" pero sólo tenemos un vector "up" temporal que lo más probable es que no sea perpendicular a los vectores "look" y "right" (recordad, imprescindible para obtener una base ortonormal). Por eso tenemos que regenerar este vector. ¿Cómo?. Pues fácil, con otro producto vectorial. Sólo que en este caso, el producto vectorial será entre los vectores "look" y "right". De esta forma obtendremos nuestro vector "up" definitivo. Fijaos que en este caso no he normalizado el vector resultante ya que el producto vectorial de dos vectores normalizados da como resultado otro vector normalizado.

    ¡Y finalmente llegamos al final!:

    Código:
    matrix3 right up tangent position
    Esto es muy sencillo. Estamos creando la matriz de transformación final de nuestro objeto. No será ninguna sorpresa. Sólo tenéis que comparar esta matriz con la matriz que os mostré en la explicación sobre matrices de transformación. La vuelvo a poner:

    Código:
    [right.x right.y right.z]
    [up.x up.y up.z]
    [look.x look.y look.z]
    [pos.x pos.y pos.z]
    la única diferencia es que en vez de llamar al vector "look", "look", lo hemos llamado "tangent" ya que es la tangente de la curva la que hemos utilizado como vector "look" para nuestro objeto. Pongo la matriz que hemos calculado para que lo veais mejor:

    Código:
    [right.x right.y right.z]
    [up.x up.y up.z]
    [tangent.x tangent.y tangent.z]
    [position.x position.y position.z]
    Y esto es todo, con un poco de suerte todo esto tendrá sentido. Si no (y estais interesados en el tema), os recomiendo que leais el mensaje varias veces y poco a poco lo iréis entendiendo.

    Adjunto una escena de prueba y este mismo mensaje en formato de texto. Para ver el script controller no tenéis más que seleccionar el cono, ir a la pestaña "Motion", y en la lista que hay, hacer clik con el botón derecho del ratón sobre la única entrada que hay ("Transform: Transform Script") y seleccionar "Properties". De esta forma os aparecerá el cuadro de diálogo "Script Controller" donde podéis ver el código del controlador.

    En fin, espero que ésto os haya resultado de utilidad.

    Thanks for watching!.
    Archivos adjuntados Archivos adjuntados
    Última edición por 3dpoder; 08-10-2008 a las 17:18

  2. #2
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: [MAXScript Tutorial] - Matrices de transformación

    Esta noche ya tengo qué estudiar ¡Muchas gracias por tu tiempo, y por el documento!

  3. #3
    Odio donde estoy Avatar de Davescambra
    Fecha de ingreso
    Feb 2005
    Ubicación
    Ontinyent, Valencia, España, Europa, La tierra...
    Mensajes
    1,311

    Thumbs up Re: [MAXScript Tutorial] - Matrices de transformación

    Iker, creo que esto tendría que ser fijo ¿No crees?

    Magnífico. Genial, aunque me queda mucho que aprender de max antes de meterme a maxscript, aunque nunca esta de más.

    "Nadie nace con un software de 3D bajo el brazo" Proverbio... no es un proverbio es una realidad

  4. #4
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: [MAXScript Tutorial] - Matrices de transformación

    Muchas gracias.

    Ni que decir tiene que esto no es un tutorial básico de MAXScript sino que es un tema relativamente avanzado que tiene mucho de problema matemático. Lo digo para que no os desaniméis si no lo entendéis. MAXScript se puede utilizar para muchas cosas sin llegar a estos extremos.

    Saludos.

  5. #5
    Senior Member Avatar de Santiago
    Fecha de ingreso
    May 2004
    Ubicación
    Bs As / Argentina
    Mensajes
    282

    Re: [MAXScript Tutorial] - Matrices de transformación

    Espectacular!!! Muchas gracias!!
    "nos queda la suerte, que si se balancea un poco, nos puede tocar" E. Bunbury

  6. #6
    Senior Member
    Fecha de ingreso
    Dec 2004
    Ubicación
    Mdrd
    Mensajes
    692

    Re: [MAXScript Tutorial] - Matrices de transformación

    No creo que me meta con el MaxScript, lo dejaremos por el momento. Pero le he estado echando un vistazo al tutorial que preparaste y te agradezco el enorme esfuerzo que hay detrás de éste.
    Gracias y un saludo.
    :: Ningun tonto se queja de serlo; no les debe de ir tan mal ::

  7. #7
    pythonized... Avatar de Cesar Saez
    Fecha de ingreso
    Mar 2004
    Ubicación
    Granada, España
    Mensajes
    3,765

    Re: [MAXScript Tutorial] - Matrices de transformación

    Gracias, lo voy a leer con calma a ver si logro seguirlo, para maxscript no hay mucho (aparte de la ayuda de max claro) y estos aportes son muy valiosos

    Gracias

    Edito: Acabo de darle una primera leída y enhorabuena!, eres un buen profesor, esta tan bien explicado que hasta yo lo entiendo
    Última edición por Cesar Saez; 29-12-2005 a las 00:44

  8. #8
    Ninja Fever Avatar de Mars Attacks
    Fecha de ingreso
    Jun 2003
    Ubicación
    Castellón
    Mensajes
    12,744

    Re: [MAXScript Tutorial] - Matrices de transformación

    Podrías hacer cosas para Blender, que para Max ya hay mucha gente haciendo

  9. #9
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: [MAXScript Tutorial] - Matrices de transformación

    Es que hacerlo en MAX es más productivo y satisfactorio Mars, ¿por qué no te pones tú también con MAXScriptí

  10. #10
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: [MAXScript Tutorial] - Matrices de transformación

    Cita Iniciado por ikerCLoN
    Es que hacerlo en MAX es más productivo y satisfactorio Mars, ¿por qué no te pones tú también con MAXScriptí


    Cita Iniciado por Mars Attacks
    Podrías hacer cosas para Blender, que para Max ya hay mucha gente haciendo
    Pues si nadie se decide a crear un exporter para Blender para el motor que estamos haciendo, tendré que crearlo yo mismo. Aunque la verdad es que da pereza tener que aprender un nuevo lenguaje (python) y una nueva API (la que exponga Blender a través de python). Y más que serán si decido hacer exporters para Maya y XSI.

    Pero en fín, quién sabe, a lo mejor empiezo a desarrollar en Blender y resulta que me gusta.

  11. #11
    El cabreador
    Fecha de ingreso
    Oct 2002
    Ubicación
    S.Compostela.
    Mensajes
    8,790

    Re: [MAXScript Tutorial] - Matrices de transformación

    Muy bueno si señor, se agradece un montón...y muy buena explicación.

    Ni que decir tiene que esto no es un tutorial básico de MAXScript sino que es un tema relativamente avanzado que tiene mucho de problema matemático. Lo digo para que no os desaniméis si no lo entendéis. MAXScript se puede utilizar para muchas cosas sin llegar a estos extremos.
    Menos mal que has puesto esto...

    Saludos.

  12. #12
    Ninja Fever Avatar de Mars Attacks
    Fecha de ingreso
    Jun 2003
    Ubicación
    Castellón
    Mensajes
    12,744

    Re: [MAXScript Tutorial] - Matrices de transformación

    Cuando aprendas python, te preguntaras por qué llaman "lenguajes de programación" a todas esas otras cosas

  13. #13
    Senior Member Avatar de mariano2cv
    Fecha de ingreso
    Apr 2005
    Mensajes
    178

    Re: [MAXScript Tutorial] - Matrices de transformación

    hola quisiera saber como hacer para que en max script si yo doy una serie de ordenes a objetos de una escena, por ejm que el box "a" se mueva, el box "b" se le asigne un material y el box "c" se le asigne un uvw map en el caso que en la escena no este el box "a" quiero que el script siga con las otras ordenes que le había asignado como hago? gracias

  14. #14
    Moderador Avatar de Klópes
    Fecha de ingreso
    Jul 2005
    Ubicación
    Estuve el día que llovió en los Monegros
    Mensajes
    7,988

    Re: [MAXScript Tutorial] - Matrices de transformación

    Ah, no, nada. Sólo quería salir en este hilo.
    ...y estaba superbueno.
    Y miré su perfil. Y vi que era amigo de Daniela. Puaf.


    Dos niñas en el parque

    no se elevará, nunca más

  15. #15
    reBorn Avatar de promineo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Tenerife
    Mensajes
    3,402

    Re: [MAXScript Tutorial] - Matrices de transformación

    tío Half te quiero, te sales. snif snif
    PromineoStudios

    Sin riesgos en la lucha, no hay gloria en la victoria

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Tutorial MaXScript - Introduccion
    Por 3dpoder en el foro 3DStudio Max
    Respuestas: 28
    Último mensaje: 18-03-2016, 17:25
  2. Tutorial para animar con maxscript
    Por juliux en el foro Programación y Scripts
    Respuestas: 0
    Último mensaje: 19-12-2012, 05:51
  3. Tutorial sobre el debugger de maxScript
    Por juliux en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 17-07-2009, 01:44
  4. Tutorial de MaXScript prinsipiante
    Por Alexs1888 en el foro Programación y Scripts
    Respuestas: 4
    Último mensaje: 06-10-2008, 23:42
  5. [MaXScript Tutorial] - Matrices de transformacion
    Por HalfVector en el foro Programación y Scripts
    Respuestas: 18
    Último mensaje: 02-08-2008, 17:41

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •