Noticias

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

Ayuda con Ragdoll

Iniciado por Daniel Moreno, Noviembre 30, 2016, 04:03:55 PM

Tema anterior - Siguiente tema
Hola buenas.
 
Estoy intentando meter un ragdoll a un personaje en un punto del juego y lo que estoy haciendo es destruir el personaje con las animaciones y poniendo en su lugar el personaje que es igual pero con el ragdoll.
 
El problema es que no se como hacer para poner las articulaciones de este segundo en la misma posición del primero. Me imagino que tendré que usar getcomponent pero no termino de verlo.
 
Si alguien pudiera darme algunos consejos me vendría genial.
 
Muchas gracias.

No entiendo que necesitas hacer, ¿Qué sentido tendría instanciar un objeto para aplicarle un ragdoll? ¿Que estaría haciendo Ragdoll en ese caso?.
 
Te explico, por lo general el modelo está separado de la lógica, un error muy común en los desarrolladores de Unity es no darse cuenta de esto. ¿Porque lógica, modelos y ui separados?, en el desarrollo de cualquier proyecto el cambio de una varias partes no tienen que afectar directamente a partes no dependientes, es decir, el modelo de tu personaje puede encontrarse en cualquier lado sin necesitar de un componente que lo controle, podrias cambiar el objeto completo sin necesidad de cambiar parte de tu código o reasignar nuevamente las variables. 
 
Ragdoll es una técnica utilizada en muchos juegos, deja muy buenos resultados, el problema es la mala aplicación de la misma, empieza por separar los modelos de tu código, es decir un personaje tanto en tercera como primera persona necesita sólo 3 datos, posicion, rotación y ángulo de cámara, y esto a la misma vez no tiene que estar emparentado a tu modelo. De esta manera puedes aplicar un Ragdoll del mismo modelo, luego en el Respawn solo creas una nueva instancia del modelo a controlar, es más de esta manera se hace efectivo el uso de PoolObject para evitar instanciar objectos todo el tiempo.
 
Es muy importante conocer los conceptos de la programacion para lograr un trabajo funcional y escalable.
 
 
 
Saludos.

Cita de: francoe1 date=1481339168No entiendo que necesitas hacer, ¿Qué sentido tendría instanciar un objeto para aplicarle un ragdoll? ¿Que estaría haciendo Ragdoll en ese caso?.
   
   
      Te explico, por lo general el modelo está separado de la lógica, un error muy común en los desarrolladores de Unity es no darse cuenta de esto. ¿Porque lógica, modelos y ui separados?, en el desarrollo de cualquier proyecto el cambio de una varias partes no tienen que afectar directamente a partes no dependientes, es decir, el modelo de tu personaje puede encontrarse en cualquier lado sin necesitar de un componente que lo controle, podrias cambiar el objeto completo sin necesidad de cambiar parte de tu código o reasignar nuevamente las variables. 
   
   
      Ragdoll es una técnica utilizada en muchos juegos, deja muy buenos resultados, el problema es la mala aplicación de la misma, empieza por separar los modelos de tu código, es decir un personaje tanto en tercera como primera persona necesita sólo 3 datos, posicion, rotación y ángulo de cámara, y esto a la misma vez no tiene que estar emparentado a tu modelo. De esta manera puedes aplicar un Ragdoll del mismo modelo, luego en el Respawn solo creas una nueva instancia del modelo a controlar, es más de esta manera se hace efectivo el uso de PoolObject para evitar instanciar objectos todo el tiempo.
   
   
      Es muy importante conocer los conceptos de la programacion para lograr un trabajo funcional y escalable.
   
   
       
   
   
      Saludos.
   


Muchas gracias por responder.
 
Intentaré aclarar lo que andaba diciendo, para no complicarme mucho lo que quiero hacer es teniendo un personaje sin ragdoll y el mismo pero con el ragdoll ya hecho.
 
En un punto del juego hago desaparecer el personaje si el ragdoll y en su posicion quiero poner el personaje que tiene el ragdoll.
 
Pero como necesito que todos los huesos se pongan en la misma posicion que los huesos del personaje que estaba antes.
 
En resumen lo que necesito es poner todos los huesos de un personaje en la misma posición y con la misma rotación que el de otro.
 
Muchas gracias.

Cita de: Daniel Moreno date=1481408248Muchas gracias por responder.
   
   
      Intentaré aclarar lo que andaba diciendo, para no complicarme mucho lo que quiero hacer es teniendo un personaje sin ragdoll y el mismo pero con el ragdoll ya hecho.
   
   
      En un punto del juego hago desaparecer el personaje si el ragdoll y en su posicion quiero poner el personaje que tiene el ragdoll.
   
   
      Pero como necesito que todos los huesos se pongan en la misma posicion que los huesos del personaje que estaba antes.
   
   
      En resumen lo que necesito es poner todos los huesos de un personaje en la misma posición y con la misma rotación que el de otro.
   
   
      Muchas gracias.
   


pues no destruyas el personaje principal, ni instancies uno nuevo solo tienes que desactivar el animator y hará efecto el ragdoll.

Cita de: leocub58 date=1481412147pues no destruyas el personaje principal, ni instancies uno nuevo solo tienes que desactivar el animator y hará efecto el ragdoll.
   


Claro, pero si deseas que el cuerpo quede aun después de un Respawn este método no sería viable.

Etiquetas: