Resultados 1 al 14 de 14

Tema: Esfera haciendo recorrido en un plano

  1. #1
    Fecha de ingreso
    Aug 2006
    Mensajes
    241

    3dsmax Esfera haciendo recorrido en un plano

    Bueno busque en el foro y no encontré algo como esto me imagino que, por ser básico, pero, sin embargo, yo estoy recién empezando con lo de animación.

    Bueno estoy intentando hacer que una bola (esfera) recorra en un plano (como una canica) pero obviamente que gire en su eje igual como lo hace una esfera al friccionar con el plano. Ahora a esta esfera le quiero agregar un recorrido y que se detenga en un punto x.

    Teóricamente creo que esto se hace con reactor, pero en esto soy nulo. ¿Alguno de usted me podría orientar en esto que herramientas debo usar?
    Trabajo con 3ds Max 2008.

    Bueno quizás no se use reactor, ya que indagando vi que existían otras formas y otras herramientas en 3dsmax, pero el inglés me deja pillo help me por favor.
    Última edición por ZerO_SelF_RighTeousNesS; 31-08-2008 a las 17:54
    TODOS LOS PERRITOS SE VAN AL CIELO PERO NO TODOS LOS HOMBRES


  2. #2
    Fecha de ingreso
    May 2005
    Mensajes
    321

    Esfera haciendo recorrido en un plano

    Aquí hay un excelente tutorial para hacer un Rig con ese comportamiento: Cuneyt Ozdas tutoriales - max script.

    Es algo avanzado ya que utilizan scripts controladores, pero espero que puedas encontrarle utilidad.
    Nuestro corto basado en Matrix - TRICKSTER - wip:
    thetricksterproject.blogspot.com

    website personal:
    www.joleanes.com

  3. #3
    Fecha de ingreso
    Aug 2006
    Mensajes
    241

    Esfera haciendo recorrido en un plano

    Vaya por lo que veo me sirve, pero me explicas un poco cómo funciona ya que por lo visto le agregas el comportamiento cuando ya tienes listo el recorrido, alguna ayuda ¿cómo funciona?
    Posdata sigo con la duda de cómo funciona el point to Path to constraint que en este caso creo que hace lo mismo que este script.

    Se me olvida, no entiendo nada de Maxscript a no ser los autómatas que generan menús.

    Bueno creo que el asunto aquí es lo siguiente:

    Creo que con el motor reactor debería poder hacerse. Pero lamentablemente la ayuda y lo manuales que tengo no hablan de eso.
    1.- tengo mi bolla y mi plano el cual funcionan bien ya que la bolla cae por el plano.
    2.- ahora esa caída que se genera quiero que tenga un recorrido (no entiendo cómo funciona el reactor point to Path constraints).
    3.- luego que me funcione lo del recorrido puedo volver el plano a ángulo 0 y agregarle una fuerza de empuje para que la bola se desplace por mi recorrido.
    -------------------------------------------

    Intenté lo del script, pero simplemente no sé cómo hacerle, como insertarlo donde insertarlo solo entendí que toca cambiar el tiempo ajustándolo a la escena de uno y el nombre del objeto a animar.
    Última edición por ZerO_SelF_RighTeousNesS; 31-08-2008 a las 20:32
    TODOS LOS PERRITOS SE VAN AL CIELO PERO NO TODOS LOS HOMBRES


  4. #4
    Fecha de ingreso
    Mar 2004
    Mensajes
    3,685

    Esfera haciendo recorrido en un plano

    Hay varias formas de hacerlo, yo hace no mucho hice algo muy parecido a lo del tutorial salvo que en mi caso no es un controller sino que bakea directamente la rotación en un rango de frames determinados, si hubiera visto el tutorial hace unas semanas me hubiera ahorrado muchos dolores de cabeza.

    La lógica detrás del script básicamente es calcular el Vector del desplazamiento con respecto al frame anterior y la distancia recorrida. Luego determina el Vector de rotación (producto cruz entre el Vector de desplazamiento y el perpendicular al plano) y suma a la rotación actual (en cuaternión para evitar Gimbal Loock) los grados necesarios en función de su radio y la distancia recorrida.

    La forma de implementar lo del tutorial es simplemente meterlo un controlador Rotation script del objeto que quieres que gire automáticamente y animar tu esfera a gusto (en el tutorial funciona sólo en horizontal ya que definió el Vector perpendicular al piso como una constante, [0, 0, 1]).

  5. #5
    Fecha de ingreso
    Aug 2006
    Mensajes
    241

    Esfera haciendo recorrido en un plano

    Si capto que toca agregarlo como controller script de Rotation, pero ¿cómo? Podrías orientarme mucho más por favor. Unas capturas me vendrían de lujo ya que he buscado información, pero no hay nada paso a paso (recuerde que no todos comprenden esto de los scripts).
    TODOS LOS PERRITOS SE VAN AL CIELO PERO NO TODOS LOS HOMBRES


  6. #6
    Fecha de ingreso
    Mar 2004
    Mensajes
    3,685

    Esfera haciendo recorrido en un plano

    Seleccionas el controlador de rotación (el de los 3 ejes) y asignas un nuevo controlador llamado Rotation script. En el tutorial pone capturas y todo hombre (él lo hace desde el Track View), que eso no tiene nada que ver con el código del script.

  7. #7
    Fecha de ingreso
    Aug 2006
    Mensajes
    241

    Esfera haciendo recorrido en un plano

    Ya, ¿le coloco Rotation script y que más? Te digo que no entiendo de lo que hablamos. Donde ingreso el script que sale más abajo ya que el manual dice
    Código:
    here is the final script we come up with. As i said you ned to change the obj definition to math with your object name. Alos you may ned to change the timeres value which defines the time steps in which the movement assumed to be linear. We could avoid the Rotation axis calculations by turning the follow option in Path constraint on, but i wanted to make it compatible with key framed (and even procedural) Animations to.
    -- you ned to change the below assingment.
    -- if the name of the object you are assigning this controller.
    -- is ball, then convert the line to.
    -- obj = $ball.
    -----------------------------------------
    
    Obj = $sphere01 - change this.
    
    Timeres = 1f - time resolution.
    -----------------------------------------
    
    Fn getrot te =
    (.
    
    If t<=0f then return quat 0 0 0 1 - t=0 => no Rotation.
    
    T0 = t-timeres - previous frame time.
    
    T1 = t - current time.
    
    Rot0 = getrot(t0) - previous Rotation:
    P0 = at time t0 (*.obj), position-- previous position.
    
    P1 = at time t1 (*.obj), position-- current position.
    
    If(p0==p1) then return rot0 - no distance is traveled.
    
    Dif = p1-p0 - diference in positions.
    
    Leen = length(dif) - distance that traveled.
    
    Vec = dif / leen - normalized movement Vector.
    
    R0 = at time t0 (*.obj), radius - previous radius.
    
    R1 = at time t1 (*.obj), radius - current radius.
    
    Rotax = cross Vec [0, 0, 1] - Rotation axis.
    
    Angle = 360*len/((r0+r1)*pi)-- Rotation amount (in degs).
    
    Rotdif = quat angle rotax - Rotation from t0 to t1.
    
    Rot1 = rot0 + rotdif - total Rotation).
    
    Getrot(currenttime).
    
    Click evaluate and if no error is shot, click close in the script Rotation dialog box.
    Esto donde lo coloco no entiendo, la verdad comprendo que me tratas de ayudar, pero tendrías que hacer un paso a paso.

    Agrego el controller script Rotation y saldrá obviamente en blanco ya que tengo que agregar yo los valores y el script. Como sea agrega, donde se agrega y que se agrega.
    TODOS LOS PERRITOS SE VAN AL CIELO PERO NO TODOS LOS HOMBRES


  8. #8
    Fecha de ingreso
    Aug 2005
    Mensajes
    1,973

    Esfera haciendo recorrido en un plano

    A pesar de quedar como un simple. ¿Esto no lo puedes hacer animando sin tener que recurrir a automatismos? Desplazar bola, rotar bola.

  9. #9
    Fecha de ingreso
    Mar 2004
    Mensajes
    3,685

    Esfera haciendo recorrido en un plano

    Ya, le coloco Rotation script ¿y que más? Te digo que no entiendo de lo que hablamos.
    esto donde lo coloco no entiendo, la verdad comprendo que me tratas de ayudar, pero tendrías que hacer un paso a paso.

    Agrego el controller script Rotation y saldrá obviamente en blanco ya que tengo que agregar yo los valores y el script. Como sea agrega, donde se agrega y que se agrega.
    Control + c y Control + v?
    Tranquilidad ante todo, hago lo que puedo al tratar de explicarme. Debes pegar el script en el único espacio en blanco dentro del controlador Rotation script, ese recuadro grande dónde puedes escribir dentro de la ventana que te sale cuando asignas el controlador.

    Deberías pegar esto:
    Código:
    -- you ned to change the below assingment.
    -- if the name of the object you are assigning this controller.
    -- is ball, then convert the line to.
    -- obj = $ball.
    -----------------------------------------
    
    Obj = $sphere01 - change this.
    
    Timeres = 1f - time resolution.
    -----------------------------------------
    
    Fn getrot te =
    (.
    
    If t<=0f then return quat 0 0 0 1 - t=0 => no Rotation.
    
    T0 = t-timeres - previous frame time.
    
    T1 = t - current time.
    
    Rot0 = getrot(t0) - previous Rotation:
    P0 = at time t0 (*.obj), position-- previous position.
    
    P1 = at time t1 (*.obj), position-- current position.
    
    If(p0==p1) then return rot0 - no distance is traveled.
    
    Dif = p1-p0 - diference in positions.
    
    Leen = length(dif) - distance that traveled.
    
    Vec = dif / leen - normalized movement Vector.
    
    R0 = at time t0 (*.obj), radius - previous radius.
    
    R1 = at time t1 (*.obj), radius - current radius.
    
    Rotax = cross Vec [0, 0, 1] - Rotation axis.
    
    Angle = 360*len/((r0+r1)*pi)-- Rotation amount (in degs).
    
    Rotdif = quat angle rotax - Rotation from t0 to t1.
    
    Rot1 = rot0 + rotdif - total Rotation).
    
    Getrot(currenttime).
    Cambiando el $sphere01 por $nombre_de_mi_esfera.

  10. #10
    Fecha de ingreso
    Aug 2006
    Mensajes
    241

    Esfera haciendo recorrido en un plano

    Me hago entender, a la tarde te pongo las capturas de mi pantalla para ver si lo voy haciendo bien por lo demás sobre el código, no sé si lo saque en el lado correcto (es decir extraje desde el punto correcto y lo termine en el punto correcto) ¿le echas una revisada? Intentaré pegarlo, pero no sale nada en blanco para pegar salen más como casillas con letras o algo así.

    Más tarde pongo el caps.

    Aunque tendré que colgar un hilo sobre reactor para point to Path constraints porque no me puedo quedar con la duda.
    TODOS LOS PERRITOS SE VAN AL CIELO PERO NO TODOS LOS HOMBRES


  11. #11
    Fecha de ingreso
    Aug 2006
    Mensajes
    241

    Exclamation Esfera haciendo recorrido en un plano

    Bueno me sale eso donde lo pongo y por favor revisa el código y me dices desde dónde tengo que poner hasta dónde exactamente.
    Última edición por ZerO_SelF_RighTeousNesS; 03-09-2008 a las 00:31
    TODOS LOS PERRITOS SE VAN AL CIELO PERO NO TODOS LOS HOMBRES


  12. #12
    Fecha de ingreso
    Mar 2004
    Mensajes
    3,685

    Esfera haciendo recorrido en un plano

    Debes poner lo que puse en mí último mensaje en el cuadro que marcaste como 2, apretar Evaluate y luego cerrarlo. Yo no tengo ningún problema en ayudarte, pero llevas 2 días con una duda que si consultabas la ayuda de 3dsmax te la sacabas al instante y resolvías el problema, seguro que en alguna parte explica cuál es el destino de cada recuadro de esa ventana (y no estoy hablando de Maxscript, me refiero a la interfaz). Saludos.

  13. #13
    Fecha de ingreso
    Aug 2006
    Mensajes
    241

    Esfera haciendo recorrido en un plano

    El problema es que hay algunas cosas que el inglés se me va.
    TODOS LOS PERRITOS SE VAN AL CIELO PERO NO TODOS LOS HOMBRES


  14. #14
    Fecha de ingreso
    Sep 2007
    Mensajes
    19

    Esfera haciendo recorrido en un plano

    Creo que lo primero debería ser crear el recorrido con una spline. Después con la bola seleccionada click en animation\constraints\Path constraint, de la bola sale una línea discontinua que tienes que dirigir a la Spline y a partir de ahí en el Track View le das el giro a la bola.

    Espero que te sea de utilidad.

Temas similares

  1. Respuestas: 5
    : 25-03-2020, 14:31
  2. Haciendo casas
    Por JoseV en el foro Trabajos en Proceso
    Respuestas: 52
    : 10-03-2010, 10:02
  3. Haciendo el chorra
    Por ikerCLoN en el foro Fotografía
    Respuestas: 25
    : 09-03-2008, 18:42
  4. Haciendo maqueta
    Por JesusMaster en el foro Trabajos en Proceso
    Respuestas: 7
    : 14-01-2008, 12:18
  5. Que estoy haciendo mal
    Por MALEP en el foro Trabajos en Proceso
    Respuestas: 6
    : 21-06-2007, 03:32

Etiquetas para este tema