Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

¿Como Hago para programar un ragdoll?

Iniciado por brok, Diciembre 11, 2015, 04:30:19 PM

Tema anterior - Siguiente tema
Hola, quisiera que mis personajes tuviesen  ragdoll y me gustaria saber si se puede hacer una transicion para que cambie del personaje al ragdoll sin que se note ya que he intentado hacelo de otras maneras y ragdoll se vuelve un churro.

Diciembre 11, 2015, 05:03:38 PM #1 Ultima modificación: Diciembre 11, 2015, 05:13:41 PM por Antonio
Hola brok.

Yo lo que hago es crear el ragdoll con la herramienta que trae Unity (GameObject -> 3dObject -> Ragdoll), eso simplemente le coloca rigidbodies y skin joints a personaje. Luego para la transición lo que hago es con algún GetComponents cojo toda la cadena de arrays con los GameObjects que tienen esos componentes, y después  con algún bucle, paso por la lista para activar / desactivar su collider y poner la opción "Is kinematic" del rigidbody en activado / desactivado,  A parte, también le tengo otra función para que desactive todos los componentes del enemigo, u al menos los que se van ejecutando en cada ciclo. (por ejemplo, yo activo el ragdoll cuando mi zombie muere, en ese momento no necesito que siga calculando los caminos del navigator ni que siga intentando ejecutar Animaciones, así que todos los componentes que no me interesan, los desactivo con la opción enable o la que corresponda en cada script).

Así que a modo de resumen:
  1. Crear ragdoll con colliders, rigidbodies y skin joints.
  2. En el código, crear una lista / array con todos los gameobjects que participan en el ragdoll. (Cogerlo con GetComponents o como se prefiera).
  3. En la función adecuada, Activar / desactivar el collider, el rigidbody y los coponentes.
  4. Activar la función cuando sea conveniente.

[quote author=Adngel date=1449849818" data-ipsquote="" data-cite="Adngel" class="ipsQuote">Hola brok.

Yo lo que hago es crear el ragdoll con la herramienta que trae Unity (GameObject -> 3dObject -> Ragdoll), eso simplemente le coloca rigidbodies y skin joints a personaje. Luego para la transición lo que hago es con algún GetComponents cojo toda la cadena de arrays con los GameObjects que tienen esos componentes, y después  con algún bucle, paso por la lista para activar / desactivar su collider y poner la opción "Is kinematic" del rigidbody en activado / desactivado,  A parte, también le tengo otra función para que desactive todos los componentes del enemigo, u al menos los que se van ejecutando en cada ciclo. (por ejemplo, yo activo el ragdoll cuando mi zombie muere, en ese momento no necesito que siga calculando los caminos del navigator ni que siga intentando ejecutar Animaciones, así que todos los componentes que no me interesan, los desactivo con la opción enable o la que corresponda en cada script).

Así que a modo de resumen:
  1. Crear ragdoll con colliders, rigidbodies y skin joints.
  2. En el código, crear una lista / array con todos los gameobjects que participan en el ragdoll. (Cogerlo con GetComponents o como se prefiera).
  3. En la función adecuada, Activar / desactivar el collider, el rigidbody y los coponentes.
  4. Activar la función cuando sea conveniente.
[/quote]Gracias lo he echo pero me manda al enemigo a tomar el aire es para juego de lucha 2.5D a sin que mejor me quedo con la animación que es mas estable, gacias de nuevo

Etiquetas: