XSIforum.com

animar varios coches por un path

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

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
animar varios coches por un path
« en: 19 Marzo 2011, 13:37:52 »
Hola a todos,

Necesito hacer una animación de carreteras con varios carriles y multitud de coches, y despues de mil busquedas por todos lados no encuentro una forma facil y sencilla animar cientos de coches por un path en XSI

De momento lo he resuelto aplicando a cada coche el path y para que  evitar que se superpongan a lo largo de la animacion, tengo que ir de uno en uno insertando el key de comienzo en el path y el final, imaginaros hacer esto con 200 ó 300 coches, ¡¡¡¡ una locura !!!!

¿alguien tiene alguna idea?

muchas gracias

Re: animar varios coches por un path
« Respuesta #1 en: 19 Marzo 2011, 13:49:28 »
Te tendría que valer con una simple curva para cada carril.
1-. Sitúa los coches a una distancia entre ellos que creas conveniente
2-. Selecciona todos los de un mismo carril y con CnsComp activado hazles el constraint path a la curva para ese carril
3-. Anima el % y deberías ver que todos se mueven a la vez manteniendo la misma distancia.
4-. Has lo mismo para el resto de carriles.

Re: animar varios coches por un path
« Respuesta #2 en: 19 Marzo 2011, 13:53:15 »
Seleccionando todos los path, desde su PPG puede aplicar en Path%age la función L(x), siendo x el tanto por ciento de la cuerva en el que se repartirán los objetos a lo largo de la curva, no se si me explico.

- Seleccionas los path de los coches, y les haces le haces el path a todos a la vez.
- Desde la ventana que se abre (PPG) en Path%age, metes L(x), siendo x el tanto por ciento en el que quieras que se repartan.

 :)

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re: animar varios coches por un path
« Respuesta #3 en: 19 Marzo 2011, 15:27:45 »
Hola Sumatra,
gracias por la respuesta, lo he probado, lo que ocurre de esta forma es que los coches conservan la distancia pero no siguen la curva cada uno independientemente, es como si se formara un grupo o model con el conjunto y los desplaza todos a la vez, ¿se te ocurre la forma de resolverlo?

gracias

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re: animar varios coches por un path
« Respuesta #4 en: 19 Marzo 2011, 15:37:45 »
Hola Chelos,

no se a que llamas PPG pero bueno, creo que entiendo lo que me dices, esta forma, es como lo he hecho pero imagina hacer el porcentaje de recorrido para cada coche si hablamos de 200 coches, es un trabajo brutal, lo que necesito es hacerlo de forma automatica que todos los coches respeten la distacia unos de otros y pueda asignarles a todos a vez un path.

¿se ocurre otra forma de hacerlo?

en 3dmax he visto que un compañero duplica los objetos una vez asigando el path y los duplicados al moverlos se desplazan a lo largo de path, si los sueltas mantienen luego esa distancia, al dar al play comienzan a moverse todos y ademas hacen loop, por lo que no nunca se termina el movimiento, esto permite moverse con una camara en cualquier parte del proyecto que siempre hay coches moviendose, yo llevo usando XSI desde siempre y no me puedo creer que no tenga una funcion para hacer esto.

gracias

Unaided

  • ***
  • 3293
Re: animar varios coches por un path
« Respuesta #5 en: 19 Marzo 2011, 16:28:08 »
PPG (Property Pages ¿Graphics? ¿GUI?) son los paneles con parámetros de operadores dentro de XSI.

Has probado a emplear el mismo método que comentas de Max, pero en XSI?

Igualmente, creo que ICE para lo que quieres hacer puede ser una interesante opción en vistas de construirlo de forma parametrica y automatizada. Por ejemplo, haciendo el Constraint to Path de uno de los coches y usar ICE para 'crear' la nube de coches, referenciados a ese, y darles aleatoriedad.

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re: animar varios coches por un path
« Respuesta #6 en: 19 Marzo 2011, 18:18:03 »
¿Pero con ICE se puede controlar que no se salgan del trayecto y siga cada uno su carril?

y si, lo he probado y no funciona al duplicarlo conserva exactamente los mismos parametros que el original por lo que se queda encima.

la idea seria algo hacer algo asi como una cadena de "VAGONES DE TREN" por ejemplo, sería un caso similar
con eso me valdría

Re: animar varios coches por un path
« Respuesta #7 en: 19 Marzo 2011, 19:42:40 »
es como si se formara un grupo o model con el conjunto y los desplaza todos a la vez, ¿se te ocurre la forma de resolverlo?
¿Resolverlo? Pensaba que era precisamente eso lo que querías.
Creo que no termino de entender lo que intentas conseguir.
Si lo que quieres es que en una carretera se vean cientos de coches circulando por distintos carriles creo que esa solución te podría valer.
Lo de meterte en ICE es buena idea pero solo para experimentar; si esto es un encargo que te corre prisa y no manejas mucho ICE es mejor que no te metas en camisas de once varas.

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re: animar varios coches por un path
« Respuesta #8 en: 19 Marzo 2011, 20:11:14 »
¿Resolverlo? Pensaba que era precisamente eso lo que querías.

Hola Sumatra, con lo de resolverlo me refiero al problema que da cuando haces lo que me has dicho ¿has probado hacerlo? si lo pruebas te daras cuenta a que me refiero.

Prueba lo que me has dicho con 3 cubos como si fueran coches se tarda 2 minutos, y te daras cuenta del problema se supone, no funciona el CnsComp, mantienen la distancia pero se salen del path, a eso me refiero con lo de si sabes como resolverlo.

Estudiare el ICE pero no me da tiempo, para el lunes tengo que tener renderizada la animación.

Re: animar varios coches por un path
« Respuesta #9 en: 19 Marzo 2011, 21:02:35 »
@chachito, sobre como la maneras que te dije, el error que comentas tienes fácil solución, que yo creo que te sirve.

- Selecciona todo y path
- En ''age'' metes ''l(x)''
Has ''x'' menor de 100, por ejemplo 75.
- Haces key en lo que sea el inicio de la animación, y te vas a donde quieres que termina
- Ahora tendras la casilla de ''age'' en blanco, porque cada coche tiene un valor propio, entonces en ''age'' pones ''y+''
Y=100-x(el valor que hayas usado antes)
IMPORTANTE QUE DETRÁS DE LA ''y'' metas ''+'' (signo más)
- Haces key de nuevo

Espero que lo entiendas. Lo que haces con esto simpletemente es en vez de darle un valor a la edad del path de cada coche, le una suma un % a la edad que ya tengo cada uno.



Re: animar varios coches por un path
« Respuesta #10 en: 19 Marzo 2011, 22:33:44 »
Yo tiraría por ICE, si hablamos de 200/300 coches tal como dice el enunciado es la forma más controlable/escalable.

Unaided

  • ***
  • 3293
Re: animar varios coches por un path
« Respuesta #11 en: 21 Marzo 2011, 21:00:17 »
Aunque la explicación que diste se intuye clara, si puedes ilustrar con unas capturas o unos esquemas irá mejor para evitar posibles diferencias de comprensión por parte de todos.

Yo por ejemplo entiendo que un procedimiento que puede servirte es el que te comenté de hacer un constraint to path de uno solo coche y luego clonar este conjunto. En la prte de replicación es donde intervendría el scripting. Pero como Ice es visual puede simplificar su construcción.

Ahora bien, creo que hasta la versión 2012 Ice no soporta creación de geometría, un recurso para replicar geometría es instanciarla a un emisor de particulas. Si no va así el asunto corregidme.

De algún modo sería algo similar a crear un sistema masivo, aunque no requieras un comportamiento de inteligencia artificial.

Re: animar varios coches por un path
« Respuesta #12 en: 21 Marzo 2011, 21:35:36 »
ICE = Operador
Script = Procedimiento

No es sólo la automatización del proceso sino más bien hacerlo procedural con lo cual aumentar o disminuir el tráfico (por decir algo) no requeriría pérdida de trabajo.
Y si, efectivamente yo instanciaría el grupo de coches en un sistema de partículas, tampoco hace falta complicarse la vida :)

Algo como esto (chorrada de 5 min)...
http://img852.imageshack.us/img852/9111/followcurve.png

Re: animar varios coches por un path
« Respuesta #13 en: 22 Marzo 2011, 04:28:19 »
Que envidia me dais cabrones!
pd: dicho desde el carinio.

Re: animar varios coches por un path
« Respuesta #14 en: 22 Marzo 2011, 11:26:42 »
ICE = Operador
Script = Procedimiento

No es sólo la automatización del proceso sino más bien hacerlo procedural con lo cual aumentar o disminuir el tráfico (por decir algo) no requeriría pérdida de trabajo.
Y si, efectivamente yo instanciaría el grupo de coches en un sistema de partículas, tampoco hace falta complicarse la vida :)

Algo como esto (chorrada de 5 min)...
http://img852.imageshack.us/img852/9111/followcurve.png


Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re: animar varios coches por un path
« Respuesta #15 en: 26 Marzo 2011, 14:54:10 »
Hola,

me parecen muy interesantes las opciones que me habeis dado, quiero probar con ICE, me pondré las pilas porque posiblemente tenga que hacer mas trabajos de estos y os aseguro que ha sido un suplicio, me gustaría compartir con vosotros el video para que opineis e intentemos entre todos buscar una solución que sirva para cualquiera que en el futuro necesite hacer un trabajo parecido incluyendome a mi mismo.

el video lo subire esta semana.

gracias César Saez, voy intentar hacer lo que me dices a ver si lo consigo, locierto es que asusta el ICE parece muy complicado, por otro lado he encontrado una pagina donde usan ICE TRAIN que consiste en hace el movimiento de un tren con sus vagones que en definitiva es algo parecido a los coches.

http://3dquakers.com/web/index.php?option=com_content&view=article&id=43&Itemid=26

Unaided, como digo voy a subir el video y si te parece lo comentamos.

un saludo a todos



« Última modificación: 30 Marzo 2011, 08:44:07 por chachito »

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re: animar varios coches por un path
« Respuesta #16 en: 30 Marzo 2011, 09:05:54 »
¿alguien sabe donde puedo subir el video en modo protegido?
gracias

Re: animar varios coches por un path
« Respuesta #17 en: 30 Marzo 2011, 11:04:38 »
Vimeo

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #18 en: 16 Octubre 2011, 22:33:04 »
Hola aqui está el video que hice con los coches uno a uno, sigo con el problema de automatizarlos si alguien sabe como hacerlo lo agradecería



un saludo
« Última modificación: 20 Octubre 2011, 00:44:34 por chachito »

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #19 en: 18 Octubre 2011, 23:07:21 »
he localizado un video de un tutorial, pero no explica como se hace pero si se puede con ICE, lo adjunto por si a alguien le puede interesar


Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #20 en: 20 Octubre 2011, 00:35:25 »
Hola César Sáez,
estoy intentando hacer la estructura de ICE que me pones en el archivo adjunto pero da varios fallos al unir los nodos, ¿sabes porque?
gracias, de todas formas si pudieras ayudarme a crear varios coches como el video de "Christian Gotzinger" te lo agradeceria mogollón me estoy volviendo loco para hacer coches y coches y mas coches y estoy intentando entender el ICE pero no es facil y no se donde conseguir tutoriales para hacer este efecto.

adjunto la imagen con la estructura de ICE:


ICE = Operador
Script = Procedimiento

No es sólo la automatización del proceso sino más bien hacerlo procedural con lo cual aumentar o disminuir el tráfico (por decir algo) no requeriría pérdida de trabajo.
Y si, efectivamente yo instanciaría el grupo de coches en un sistema de partículas, tampoco hace falta complicarse la vida :)

Algo como esto (chorrada de 5 min)...
http://img852.imageshack.us/img852/9111/followcurve.png
« Última modificación: 20 Octubre 2011, 00:42:52 por chachito »

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #21 en: 20 Octubre 2011, 23:57:51 »
bueno como nadie sigue este tema, ni me ayudan, ni me comentan, ni nada de nada, jajajaja y estoy empeñado en aprender y ayudar a los que les pueda ser util este hilo pues voy a ir publicando mis avances que seguro que a alguien algun día le surgirá el mismo problema que a mi y le puede servir de tutorial

todavia me faltan muchas cosas:

1 hacer que todos los coches vayan por el mismo eje
2 hacer que los coches roten siguiendo la trayectoria (esto ya está) pero que mantengan el eje local Y siempre en vertical (vamos vector local en 1)
3 poder elegir el numero de particulas sin que se me monten unas sobre otras y me hagan una pelota, de momento lo he resuelto aplicando un numero de particulas por segundo y va bien
4 ya se me ocurriran mas cosas

un saludo

Re:animar varios coches por un path
« Respuesta #22 en: 21 Octubre 2011, 11:43:58 »
Un día tendré que ponerme en serio con ICE, pero por ahora tengo que seguir prestando mi atención en Maya...
¿Cómo has hecho que las instancias tengan un color aleatorio?

Re:animar varios coches por un path
« Respuesta #23 en: 21 Octubre 2011, 12:30:15 »
Un día tendré que ponerme en serio con ICE, pero por ahora tengo que seguir prestando mi atención en Maya...
¿Cómo has hecho que las instancias tengan un color aleatorio?

Segun su ICETree parecen diferentes objetos dentro de un grupo.

Re:animar varios coches por un path
« Respuesta #24 en: 21 Octubre 2011, 12:34:06 »
1 hacer que todos los coches vayan por el mismo eje
No lo acabo de entender, la idea es que los coches sigan un path... es decir, el eje local viene dado por el path.
¿Podrías concretar la pregunta un poco más?

Citar
2 hacer que los coches roten siguiendo la trayectoria (esto ya está) pero que mantengan el eje local Y siempre en vertical (vamos vector local en 1)
Esa parece fácil, debería ser algo como esto (despues de que siga a la curva y antes de la simulacion)...
Get particle velocity -> Multiply -> (point at) -> direction to rotation -> Set orientation
              <1,0,1>  ->

Citar
3 poder elegir el numero de particulas sin que se me monten unas sobre otras y me hagan una pelota, de momento lo he resuelto aplicando un numero de particulas por segundo y va bien
Acá tienes que tomar una decisión, lo suyo sería que los coches que van a mayor velocidad cambiasen de carril ante una posible colisión con otra partícula... la otra opción es simplemente limitar la velocidad de las partículas de forma que nunca se puedan adelantar entre si y no colisionen.
¿Que comportamiento es el que te interesa/necesitas?

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #25 en: 21 Octubre 2011, 17:48:06 »
Un día tendré que ponerme en serio con ICE, pero por ahora tengo que seguir prestando mi atención en Maya...
¿Cómo has hecho que las instancias tengan un color aleatorio?
Las particulas aleatorias se hacen aplicando un randomize al grupo de objetos en este caso he usado un grupo de 3 coches/colores

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #26 en: 21 Octubre 2011, 17:56:48 »
No lo acabo de entender, la idea es que los coches sigan un path... es decir, el eje local viene dado por el path.
¿Podrías concretar la pregunta un poco más?

Si, te explico, al emitir particulas (los coches), estos singuen el path, pero si te fijas bien en las imagenes, no todos los coches siguen el path por el centro de estos. unos coches están mas a la izquierda del path y otros un poco mas a la derecha del path y otros incluso mas arriba o mas abajo, de momento el efecto es bueno porque no hay una carreterra o alfalto que nos sirva de guia para ver el fallo, al estar estar en el aire no se aprecia bien.

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #27 en: 21 Octubre 2011, 17:58:57 »
Esa parece fácil, debería ser algo como esto (despues de que siga a la curva y antes de la simulacion)...
Get particle velocity -> Multiply -> (point at) -> direction to rotation -> Set orientation
              <1,0,1>  ->

voy a probarlo y os digo algo, gracias

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #28 en: 21 Octubre 2011, 18:27:57 »
Acá tienes que tomar una decisión, lo suyo sería que los coches que van a mayor velocidad cambiasen de carril ante una posible colisión con otra partícula... la otra opción es simplemente limitar la velocidad de las partículas de forma que nunca se puedan adelantar entre si y no colisionen.
¿Que comportamiento es el que te interesa/necesitas?

bueno, de momento me es suficiente con que los coches de un carril sigan todos a una velocidad constante, y los del carril izquierdo vayan mas rápidos con valocidad constante, esto creo que lo tengo resuelto, todavia no lo he probado con varios paths.

Por otro lado a lo que me referia, es que para conseguir el numero de coches deseados solo consigo que vaya uno detras de otro aplicando "nº de particulas por segundo" en la ventana "emit from surface", en esta ventana hay otra opción que es "nº total de particulas", pero que si lo activas, se juntan todas formando una pelota y no van en hilera una detras de otra.

Juan Fco.

  • *
  • 42
  • Aprendiendo ICE
Re:animar varios coches por un path
« Respuesta #29 en: 23 Octubre 2011, 21:43:09 »
bueno hoy acabo de descubrir que hay cosas que han mejorado con la version 2012, por ejemplo lo de que todos vayan en linea uno detras de otro sin desplazarse del path, la solución está, en la simple activación de "time varying", esta opción, en la version 2010 no estaba por eso no me salía, sin embargo surge otro problema que con la 2010 no me ocurria, con la versión 2012 se me montan las particulas o coches de vez en cuando, salen del emisor de dos en dos o de tres en tres o tocandose una con otra

¿puede alguien ayudarme a resolver esto?

si le pongo emision 1 por segundo, realmente no lo respeta salen mas particulas de las deben
« Última modificación: 23 Octubre 2011, 23:07:26 por Juan Fco. »