XSIforum.com

Rig pierna, controlador de rodilla.

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

Rig pierna, controlador de rodilla.
« en: 19 Enero 2009, 03:54:14 »
Muy buenas, escribo esto para ver si me podeis ayudar en una curiosidad personal que tengo...

Tras ver muchos videos de Rigs, casi siempre veo que en las piernas suelen tener en la rodilla un controlador, el cual maneja la rodilla como si directamente modificases el Joint de la cadena de huesos, pudiendo estirar y mover la rodilla libremente, no se si me explico.

La cosa es que por mas que le doi vueltas a la cabeza no lo consigo, tengo varios rigs de pruebas y nada, lo mas que me he aproximado a sido haciendo un femur y una tibia independientes, un null ala altura de la rodilla, efector del femur constraint de posicion con el null, null padre del root de la tibia y root de la tibia constraint de posicion con efector del femur. Luego les hice a los huesos una expresion de control distance para el strechy.

Bien, de esa forma tengo una rodilla que gira estilo normal y si desactivo el contraint del root de la tibia puedo manejar la rodilla libremente, el efecto que consigo es parecido, sobre todo en el femur, pero la tibia al ser hija del null mantiene siempre la misma distacia respecto a este y no da el resultado que quiero.

Como consigo un controlador que trabaje como el propio joint?


Y bueno, depsues de esto tengo otra pregunta, creo que se llama blend, el efecto de pasar de que la rodilla gire en angulo recto a curvado, de la cual he tenido otra idea pero solo sirve en caso de que no se haga envelope (o eso creo) ya que lo unico que hice es poner unos cubos simulando la pierna con constraint de pose a los huesos.

He hecho 2 cadenas de huesos, una con 2 huesos, femur y tibia y otra con 4 huesos, 2 huesos por cada parte, luego como ya he dicho los cubos tienen constraint de pose con las 2 cadenas, asi que para pasar de algulo recto a curvado solo tengo que desactivar el constraint de pose que tienen los cubos a la cadena de 2 huesos.

Bien, como conseguir esto mismo, pero con un personaje con un envelope? se pueden intercarbiear el envelope con alomejor un custom parameter?


Como no se si me he explicado os adjunto foto de los 2 casos (le faltala expresion control distance al de la izquierda, pero para que os hagais la idea).


Gracias por adelantado



alanf

  • *****
  • 6029
  • Pipeline Developer @ Felix & Paul Studios
Re: Rig pierna, controlador de rodilla.
« Respuesta #1 en: 19 Enero 2009, 04:21:53 »
"blend" en ingles significa "mezclar", lo que puede significar cualquier cosa. no es el nombre de ningun efecto; es como llamar a un slider "intensidad".


Pregunta 1:
No uses huesos independientes para lo que deberia ser una cadena completa (como un brazo o una pierna.) Seleccionas el primer hueso y Skeleton->Chain Up Vector y click en tu objeto controlador. Veras que en modo IK, el controlador apuntara la direccion de la rodilla.

MUY IMPORTANTE: NUNCA elimines un up-vector sin desactivarlo primero. Para desactivarlo, selecciona el primer hueso de la cadena relevante y en Kinematic Joint, en la pestania Resolution Plane, en "Res. Plane" lo pones a "Default", y entonces si puedes eliminar el up-vector en paz. Si no lo desactivas antes de borrarlo es muy posible que corrompas la escena.


Pregunta 2:
Entiendo tu planteamiento, pero el efecto no se hace asi. Es algo mas avanzado y no tengo tiempo de entrar en detalle, pero una pista: path-constraints a una curva. Tambien puedes intentar destripar este rig:
http://www.christophercrouzet.com/resources_ccRig.php


Ah, y acostumbrate a crear sliders (un numero con decimales, por ejemplo de 0 a 1) en vez de botones on/off (booleans), ya que te permiten suavizar el efecto de lo que sea que hagas. Si pasas de 0 a 1 hay un pop brusco.


Re: Rig pierna, controlador de rodilla.
« Respuesta #2 en: 19 Enero 2009, 04:40:23 »
Sobre la pregunta 1, un up vector como tu dices, lo unico que conseguiré es que la rodilla apunte a cierto sitio, pero no es el efecto que quiero, como ya dije el ejemplo de mover el Joint de la cadena con control+j es justo lo que busco, que no solo haga como un upvector sino que tambien cambie la longitud de los huesos.

Lo de usar 2 huesos para la pierna fue lo unico que se me ocurrio, pq de otra forma no se como poder mover la rodilla.


Sobre la pregunta 2, precisamente desde que vi la demo de Christopher Crouzet fue cuando me surgieron todas estas dudas, el rig ya lo intente destripar hace unos dias y realemnte ahi no hay quien comprenda nada, parace que hizo un rig completo a base de nulls y luego tiene tb un controlador en las piernas para sacar una cadena de huesos o quitarla y que sea controlado por nulls, no se, la verdad que no entendi nada claro.

Sobre lo de los parameters boleanos decirte que tienes razon, pero como veras no son mas que pruebas, no es ningun rig serio.


Gracias por tu respuesta.

Re: Rig pierna, controlador de rodilla.
« Respuesta #3 en: 19 Enero 2009, 04:48:40 »
Una idea que s eme ocurre pero no se si se puede (para la pregunta 2), es haciendo un envelope a una curva y que esta tenga diferentes controladores para deformarla, la cosa es como poner los controladores atados a los puntos de la curva, bueno mejor dicho alreves, para asi poder darle la forma que uno quiera?

alanf

  • *****
  • 6029
  • Pipeline Developer @ Felix & Paul Studios
Re: Rig pierna, controlador de rodilla.
« Respuesta #4 en: 19 Enero 2009, 05:44:50 »
Sobre la pregunta 1, un up vector como tu dices, lo unico que conseguiré es que la rodilla apunte a cierto sitio, pero no es el efecto que quiero, como ya dije el ejemplo de mover el Joint de la cadena con control+j es justo lo que busco, que no solo haga como un upvector sino que tambien cambie la longitud de los huesos.
Ah, vale. (Admito que lei tu mensaje rapido debido a lo grande que era. XD)

Pues para eso es basicamente lo mismo que tener una cadena elastica, pero en cada hueso. Mira el manual sobre la expresion ctr_dist(). Con ella a cada hueso le das la longitud de su propio centro en relacion al centro de tu objeto en la rodilla.


... la cosa es como poner los controladores atados a los puntos de la curva, bueno mejor dicho alreves, para asi poder darle la forma que uno quiera?
Path Constraint. Mira el manual.

Re: Rig pierna, controlador de rodilla.
« Respuesta #5 en: 19 Enero 2009, 06:16:22 »
Ah, vale. (Admito que lei tu mensaje rapido debido a lo grande que era. XD)

Pues para eso es basicamente lo mismo que tener una cadena elastica, pero en cada hueso. Mira el manual sobre la expresion ctr_dist(). Con ella a cada hueso le das la longitud de su propio centro en relacion al centro de tu objeto en la rodilla.

Path Constraint. Mira el manual.



Que tonto soy, sabia que era algo que podia hacer pero que no se me ocurria, voy a probarlo ahora mismo.


Lo del path constraint lo miraré despues y ya te comento.


Gracias!

Re: Rig pierna, controlador de rodilla.
« Respuesta #6 en: 19 Enero 2009, 06:43:34 »
Bien he probado poner en la longitud de cada hueso la expresion control distance de su centro al controlador, con esto consigo un manejo del strech (se llama asi no? :P) mas libremente pero sigue sin se rlo que quiero, puedo estirar mas o menos cada hueso pero por ejemplo no puedo mover la rodilla hacia delante libremente, adjunto un video donde enseño ala izquierda el metodo que tu me has dicho y a la derecha un ejemplo con curvas de lo que quiero.






Re: Rig pierna, controlador de rodilla.
« Respuesta #7 en: 19 Enero 2009, 07:20:43 »
Bien, aqui sigo evolucionando, he conseguido lo que quiero haciendo lo mismo de antes pero finalmente poniendo que la tibia tenga constraint de posicion con el controlador de la rodilla y otro constraint de posicion del effector a otro controlador, no se si seria la manera correcta, corregidme si me equivoco.



P.D.- Menuda tonteria y no os imaginais la de vueltas que le he dado  :-\.


« Última modificación: 19 Enero 2009, 07:57:25 por bLiNd »

alanf

  • *****
  • 6029
  • Pipeline Developer @ Felix & Paul Studios
Re: Rig pierna, controlador de rodilla.
« Respuesta #8 en: 19 Enero 2009, 15:20:11 »
Bien hecho. Enhorabuena por descubrirlo casi todo tu solito. :)

Constraints + expresiones en el hueso es efectivamente el metodo correcto para este efecto.

pd: Si quieres que al poder mover la rodilla al estirar el controlador del final, se estire la rodilla, puedes hacer un nuevo null que tenga un 2-point constraint (con el mismo up-vector que la cadena de huesos) y emparentas tu control de la rodilla ahi. Al estirar, se mantiene en el centro entre cada extremo de la pierna, de forma proporcional.

alanf

  • *****
  • 6029
  • Pipeline Developer @ Felix & Paul Studios
Re: Rig pierna, controlador de rodilla.
« Respuesta #9 en: 19 Enero 2009, 15:21:12 »
Ahora te toca solventar un problema mas... pon todo dentro de un null padre e intenta escalar tu "personaje". Veras que se joden los valores de ctr_dist(). A ver si descubres como solucionarlo... :P