XSIforum.com

¿Evitar que un cuerpo atraviese a otro?

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

¿Evitar que un cuerpo atraviese a otro?
« en: 25 Febrero 2008, 11:35:35 »
Buenos dias a todos. Mi pregunta es simple, no se si la respuesta también lo será: ¿Se puede evitar que un cuerpo al desplazarlo atraviese a otro cuerpo? y ¿cómo? Me explico mejor, Resulta que estoy haciendo un personajillo simple (algunos ya lo habrán visto en el post de huesos que cree), peor al mover la cabeza de delante hacia atras, me gustaría que no se metiera en el cuerpo (caparazón) como se aprecia en la imagen que adjunto, sino que en lugar de eso "colisionase" de alguna forma sobre el y se fuera moldeando en base a su supoerficie.

Diré también, que todavía no he tocado nada de expresiones nunca, ni scripting (Sé que existen y poco más) y tampoco sé si con eso lo solucionaría. Tampoco he tocado los soft body y los rigid body...pero lei algo por encima en al guia de XSI y no parece que pueda ser la solución por qeu según entendi afecta a la animación, y a mi me gustaría (si es posible) que ya con solo transladarlo o moverlo se aplicase ese efecto. ¿Se puede conseguir?

Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #1 en: 25 Febrero 2008, 15:47:39 »
Lo único que se me ocurre es que pongas limitaciones de rotacion a los huesos, de manera que cuando vaya a colicinar le impidas la rotacion.
Seleccionas el hueso y en las propiedades le activas rotation limits, tienes para poner el max. y el min.

Dios

  • ***
  • 1622
  • Why, Mr. Anderson?
Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #2 en: 25 Febrero 2008, 16:50:14 »
Y con shapes?. Linkando el shape al movimiento de traslacion?

Sabes lo que es un shape??

Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #3 en: 25 Febrero 2008, 17:56:43 »
Dios..pues no de momento no se lo que es un shape... Pero si tu me dices que con eso se podría solucionar..investigaré. Y locolalocina..probaré lo que me dices a ver si también funciona...gracias por las sugerencias.

....Tras probar así por encima la limitación de la rotación, creo qeu no soluciona el problema. El caso es que la animación de la cabeza  veo más logico usar una animacion IK ( es decir moviendo el efector) y por lo tanto limitar la rotación no funciona, ya que por lo que he visto, unicamente afecta al rotar el hueso al que le he limitado la rotación. Por lo que tendría que limitar las rotaciones de todos los huesos de la cabeza, y aún así no se vería afectado al mover el efector. :S
« Última modificación: 25 Febrero 2008, 18:25:32 por yerex_tf »

siru

  • ***
  • 1761
  • Artista incomprendido
Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #4 en: 25 Febrero 2008, 18:02:26 »
como te dicen dios se puede hacer muy bien, o en la pestaña de shape ->link with orientation

Dios

  • ***
  • 1622
  • Why, Mr. Anderson?
Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #5 en: 25 Febrero 2008, 18:26:46 »
http://www.vast.ws/resources/xsi/tutorials/tutorials.html

Ahí tienes de todo. Vete a la sección de shapes, a ver si te haces una idea

Dios

  • ***
  • 1622
  • Why, Mr. Anderson?
Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #6 en: 25 Febrero 2008, 18:33:11 »
Un shape a grandes rasgos es una forma de tu geometría original "coja" una determinada forma. ES decir, si tu tienes ese modelo, lo que deberías hacer es copiarlo, y modelar, sin añadir ni eliminar puntos, sólo moviéndolos, hasta conseguir la forma que quieras que tenga cuando echas la cabeza hacia atrás. Los shapes funcionan mediante el histórico de cada geometría, por eso no debes hacer freeze. Luego lo único que tendrás que hacer es indicar que la forma original es la principal y que la otra es un shape. Después podrás a través de un "slider" (barrita que desplazas para dar un mayor o menor valor a una propiedad, por ejemplo la subdivisiones de una esfera), pasar de una forma a otra. Después lo que tendrás que hacer es linkar la traslación de la cabeza a ese slider, y así siempre que muevas ese control del hueso se activará el shape y no tendrás atravesamientos

Espero que lo entiendas

Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #7 en: 25 Febrero 2008, 18:39:03 »
Si, Gracias. cogi la idea. Ahora solo tengo que aprender a hacerlo....Supongo que empezare con un modelo más simple hasta que le coga el truco. Y gracias por el link tambien, ya lo tenía d etodas formas, pero el tio ese habla muy rapido a veces..y me cuesta entenderle....Pero mirare a ver si en el aparatado de Shapes habla mejor jejeje. Bueno voy a ello. Gracias.

P.D. A algunos de ustedes les he agregado al msn...pero sin compromiso...simplemente es por si tengo dudas rapidas para no estar abriendo muchoas post en el foro.

Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #8 en: 26 Febrero 2008, 20:49:18 »
Buenas me he estado mirando la ayuda de XSI sobre los Shapes y todas las opciones....(un poco pesada la ayuda) pero bueno el caso es que he empezado a hacer algunos ejemplos simples. En la imagen que adjunto se ven 3 cubos (un target, y los otros 2 cubos rotados en Z y X, simplemente). Le apliqué los Shapes (cubos rotados) a mi Target, y al ir a explorarlo para comprobar que esta todo correcto, me he dado cuenta que no tiene el apartado mixer...donde deberían estar los shapes.... En cambio quien si tiene el mixer es la escena (root) y esta si tiene los shapes..cosa que no entiendo por que están ahi.¿alguien me sabe decir por qué? Y si. si tenia seleccionado el target antes de aplicarle los Shapes.

la GUI de CSI dice en un apartado: "For each shape you pick, a shape key is added to the model’s Mixer > Sources > Shape folder."

Dios

  • ***
  • 1622
  • Why, Mr. Anderson?
Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #9 en: 26 Febrero 2008, 21:47:11 »
Para que un objeto tenga un mixer propio debes meterlo dentro de un modelo. Si no tienes modelos en la escena te crea el mixer en el root

Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #10 en: 27 Febrero 2008, 12:12:21 »
volvi a comprobar lo del modelo, y tenias razón. Algo hice mal la otra vez, por que no me aparecía. Ahora segui con el ejemplo de antes (los 3 cubos) y llegue a la conclusión de que las rotaciones del Shape completo no las tiene en cuenta, para deformar el Target. Entonces tuve que tecurrir a ponerle un esqueleto a cada Shape, para uqe me simulara el movi miento del cuello. Un Shape para levantar la cabeza desde la posicion neutra (centro) y otro shape para bajar el cuello desde dicha posición. Uno representaría la posición más alta a a que podía llegar el cuello y otro representaría la posición más baja.

Pero esto no sirve :S....por que por algún motivo aunque si se deforma el Target, en el cambio de neutral a un Shapes se hace pequeño para luego aumentarse...Sin nombrar los problemas que existen al tener los 2 Shapes con pesos (weights) distintos de cero...

¿que hago mal? Seguramente será que no lo he pensado bien ...pero no se me ocurre otra forma para levantar el cuello del personaje mediante Shapes, apra que no atraviese el caparazon...

¿como lo harian ustedes? una ayudita please..Gracias.

Dios

  • ***
  • 1622
  • Why, Mr. Anderson?
Re: ¿Evitar que un cuerpo atraviese a otro?
« Respuesta #11 en: 27 Febrero 2008, 15:45:51 »
No tienes que deformarlos con huesos ni nada de eso, tienes que modelarlos. Es decir, por ejemplo, haces una esfera que será el shape principal, la duplicas y mueves un punto. Ahora dices que la esfera con el punto desplazada sea un shape de la primera. Ahora al mover el slider verás como la esfera normal coge la otra forma