XSIforum.com

Rolling Ball

0 Usuarios y 1 Visitante están viendo este tema.

Rolling Ball
« en: 06 Julio 2007, 15:03:04 »
A ver si uno de estos genios matemáticos que esté acostumbrado a trabajar con expresiones me puede ayudar.

Como decía, estaba trabajando en un sistema para no tener que animar la rotación de la pelota cuando ésta se desplace.
Mediante la fórmula Rot = (360*distancia)/(2*PI*radio), he aplicado sendas expresiones a los ejes X y Z de la esfera.

El problema está en el eje Y. Me explico.

Cuando la pelota está en posición vertical (rot= 0,0,0), si la muevo, en la rotación sólo actuarán los ejes Z o X en función de hacia dónde la desplace. Hasta ahí, normal.
Ahora bien, una vez se ha desplazado (por ejemplo en X), si la quiero desplazar en Z, ya no debería actuar el eje Z de rotación, sino el Y, debido a que ya está rotada.

Lo que trato de conseguir son 2 cosas:

1-. cuando la pelota ha girado, si deseo desplazarla en otra dirección debería ponerse en marcha el eje de rotación Y
2-. Pese a la fórmula aplicada al eje de rotación Z, si la esfera está girada, ésta fórmula no debería actuar para que en su lugar, pueda hacerlo la del caso 1.

Ale, a ver quien es el cerebrito que descifra este entuerto.

PD: Por cierto, para los que querais experimentar, os posteo aquí el scrip. La escena que tengo sólo es una esfera hija de un null. Cuando el null se mueve, la esfera ha de rotar.

Rotación X: ( 360 * null.kine.local.posz ) / ( 2 * PI * sphere.sphere.radius )
Rotación Z: ( -360 * null.kine.local.posx ) / ( 2 * PI * sphere.sphere.radius )
« Última modificación: 06 Julio 2007, 15:04:52 por Sumatra »

Kinght

Re: Rolling Ball
« Respuesta #1 en: 06 Julio 2007, 15:18:26 »
A mi esto creo que me interesa (para el rig de un coche) ... pero todavía no me he puesto a mirarlo. Mañana lo comentamos ....

Ageditoooooo ....  Alaaaann !!! ... donde estais? ...  xD ... ;)

Re: Rolling Ball
« Respuesta #2 en: 06 Julio 2007, 15:37:13 »
Para el coche es más fácil ya que sólo te tienes que preocupar de 1 eje.

Por ejemplo, imagina que la carrocería se llama car y la rueda rud

En las propiedades de la rueda (Ctrl + K ) seleccionarías el eje Z con el botón derecho y le darías a Set Expression.
Una vez en el Expression Editor escribirías
(360*car.kine.local.posx)/(2*PI*rud.(.....).radius)
Validas la expresión y la aplicas.

alanf

  • *****
  • 6029
  • Pipeline Developer @ Felix & Paul Studios
Re: Rolling Ball
« Respuesta #3 en: 07 Julio 2007, 00:34:02 »
Una forma de simplificarlo es animar a lo largo de un path, y entonces es como trabajar con un solo eje, pero sigues podiendo rotar.

Con mi rig del coche prepare eso como una opcion. Tengo un slider con un valor que he de adaptar por cada path que use. Basicamente lo muevo 1 grid unit y le pongo el valor a este slider "normalizador" que ajusta los calculos de rotacion para que tengan sentido. (Esto es necesario ya que los paths funcionan con porcentajes, y todo cambia segun su longitud.)

No se bien como hacer que funcione con todos los ejes con solo expresiones. No lo veo posible.


Ageditoooooo ....  Alaaaann !!! ... donde estais? ...  xD ... ;)
Es que tengo clases, y me dan muchos deberes. XD

Re: Rolling Ball
« Respuesta #4 en: 07 Julio 2007, 02:18:18 »
No obstante sigo experimentando.
Mis esperanzas están puestas en tomar como referencia el modo Global a la hora de rotar, dado que no importará cuán rotada esté la esfera en ese momento; desde Global los ejes siempre siguen igual.
Quizás, si logro mezclar eso con algún layer de animación como centro de referencia, quien sabe...

PD: Tampoco me quiero ilusionar mucho. En Internet no he encontrado absolutamente nada. Por algo será.

alanf

  • *****
  • 6029
  • Pipeline Developer @ Felix & Paul Studios
Re: Rolling Ball
« Respuesta #5 en: 07 Julio 2007, 02:56:44 »
Te puedo garantizar que puramente con expresiones es 99.9% imposible. XD

Si es posible, a lo sumo sera con scripting, y eso lo sabe mejor angelito. jeje

Re: Rolling Ball
« Respuesta #6 en: 09 Julio 2007, 14:44:17 »
Al final he conseguido lo que buscaba.
Un tal Martin Chatterjee hizo una movida con una esfera que gira y la subió como .emdl para que el resto de los mortales pudiéramos usarla.
Ahora os la subo yo a vosotros por si llega el día en que quereis usarla o por si simplemente quereis examinarla.
Sólo teneis que animar el controlador. Cuando reproduzcais la animación, vereis que gira. Después, a plotear.

PD: Sólo para v.6.0 o superiores


M-TUNE

  • **
  • 668
  • Mental Reeeyyy..!!!
Re: Rolling Ball
« Respuesta #7 en: 11 Julio 2007, 02:57:07 »
muchas gracias..!!!  XD