Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Daniel Moreno

#1
General (Antiguo) / Ragdoll Mecanim
Abril 29, 2017, 08:20:11 PM
Hola buenas,
 
Llevo todo el día tirándome de los pelos y no lo consigo. Necesito que mi personaje primero ejecute animaciones, después durante un salto tiene que afectarle la gravedad y al tocar el suelo, según el suelo que toque haga otra animación o pase al ragdoll.
 
Ya he conseguido que haga las animaciones, para saltar lo que hago es desmarcar Apply root motion y añadirle un rigidbody al personaje en si, en lo más alto de la jerarquía, para que el cuerpo caiga como un bloque, el problema es que no me detecta collisiones y atraviesa el suelo. No se que puedo hacer.
 
Muchas gracias
#2
General (Antiguo) / Implementacion Ragdoll
Abril 29, 2017, 03:58:25 PM
Cita de: Daniel Moreno date=1493249758Era justísimo lo que necesitaba, muchísimas gracias amigo.
   


Lo he estado intentando y no consigo hacerlo, El MLSpace que usa no me aparece. No se si es que estará antiguo el tutorial.
#3
General (Antiguo) / Implementacion Ragdoll
Abril 27, 2017, 01:35:58 AM
Cita de: kingtrase date=1493211258Mirate este tutorial:
   
   

      
         
eature=oembed" width="459">
      
   
   
      Es muy facil de hacer, y esta bien mostrado. Un Saludo!
   


Era justísimo lo que necesitaba, muchísimas gracias amigo.
#4
General (Antiguo) / Implementacion Ragdoll
Abril 24, 2017, 11:13:32 PM
Hola buenas a todos.
 
Ando haciendo un juego que trata de un muñeco que hace piruetas, iba todo genial hasta que he intentado que al caer de otra forma que no fuera de pie hiciera el movimiento de ragdoll.
 
Hasta ahora conozco dos formas de hacerlo (aunque no se implementar ninguna):
 
-Borrando el personaje al caer y instanciando un ragdoll en la misma posición
 
-Activando la mecanica ragdoll en el momento del impacto
 
¿Como creen que sería mas fácil de abordar? Y si alguien tiene idea de como podría hacerlo me ayudaría muchisimo.
 
Muchas gracias.
#5
General (Antiguo) / Cambio en rotaciones
Abril 22, 2017, 10:02:22 AM
Cita de: TheBullet date=1492843881Diría que si quieres cambiar la rotación tienes que usar: 
   
   

Inicio.eulerAngles = rotaciones;

   
      En vez de usar:
   
   

Inicio.rotation.eulerAngles = rotaciones;

   
       
   
   
      Cuando lo modifiques ya no debería salirte el error.
   


Muchas gracias por la respuesta, realmente eso hace que deje de saltar el error, pero no termina de funcionar, me parece que asi lo que estoy cambiando es la posicion y no la rotación de los distintos objetos.
 
Acabo de comprobar que efectivamente eso me cambia la rotacion, será que tengo mal hecho el ragdoll y por eso no se cambia bien, voy a intentar optimizar el ragdoll, muchas gracias.
#6
General (Antiguo) / Cambio en rotaciones
Abril 22, 2017, 02:00:30 AM
Hola buenas.
 
Me ha ocurrido ya muchas veces que cuando quiero cambiar la rotacion de un objeto mediante script me salta el maldito error de:
 
"Assets/NewBehaviourScript.cs(39,19): error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.rotation'. Consider storing the value in a temporary variable"
 
Y mira que no estoy accediendo a una componente directamente, en el script que adjunto el fallo esta en el void Cambiazo, tengo una lista de Vector3 y quiero que cada hueso del character coja la rotación que corresponde a su posicion dentro del vector3. Pero no me deja cambiar su rotacion. Sabeis como puedo hacerlo?
 
Muchas Gracias
 
//www.unityspain.com/applications/core/interface/file/attachment.php?id=10446">NewBehaviourScript.cs
#7
General (Antiguo) / Recorrer huesos
Abril 22, 2017, 01:22:22 AM
Cita de: lightbug date=1492777621HOla, estoy seguro que hay una mejor forma pero podrias verificar si tiene hijos, si lo tiene tomarlo o guardarlo de la forma que quieras y a su vez reverificar si este tiene, is tiene guardarlo y verificar si este ultimo tiene, y asi de manera recuersiva para todos los hijos.
   
   
      Podrias tener algo asi, (recontra Ojo ni se si esto es un desastre lo hice medio al boleo jaja)
   
   

List<Transform> listaHijos = new List<Transform>();
 
void ObtenerTodosLosHijos(Transform padre)
{
     //antes de agregarlo a tu lista podes filtra la seleccion de la manera que quieras
listaHijos.Add(padre);
 
if(padre.childCount > 0)
        foreach(Transform child in padre)
           ObtenerTodosLosHijos(child);
}
 
void OnEnable()
{
foreach(Transform child in transform)
        ObtenerTodosLosHijos(child);
 
}

   
      salu2
   


Muchas gracias por la respuesta, no sabía que podía llamar a una función dentro de esta misma, intentaré hacerlo.
 
Acabo de intentarlo y funciona perfectamente, lo he retocado un poco pero la esencia es esa. Muchas gracias
#8
General (Antiguo) / Recorrer huesos
Abril 21, 2017, 01:45:26 PM
Hola buenas necesito recorrer los huesos de un character para cambiarlo por un ragdoll en la misma posicion, mi problema es que este character tiene muchos hijos y estos hijos a su vez tienen mas hijos, se recorrer todos los hijos de un gameobject pero no se como hacer que si ese hijo tiene a su vez mas hijos tambien los coja.
 
Si alguien sabe como hacerlo se lo agradecería.
#9
General (Antiguo) / Varios rigidbody en mismo cuerpo
Abril 21, 2017, 12:50:30 AM
Cita de: TheBullet date=1492721360¿Has probado de poner un rigidbody en el cuerpo y marcarlo como is kinematic?
   


he prpbado a hacer lo que me dices y ahora lo que pasa es que el objeto si sigue al padre, pero su collider ha dejado de funcionar, atraviesa las cosas, no lo entiendo
#10
General (Antiguo) / Varios rigidbody en mismo cuerpo
Abril 20, 2017, 10:45:10 PM
Cita de: ftejada date=1492710145Podrías intentar tirar un RayCast con un rayo que tenga una longitud pequeña, de 0.05f tal vez, en la direccion down de los pies. El down debe ser en su orientacion local para que el rayo salga desde la plate del pie en esa misma dirección.
   
   
      El hit te dará toda la informacion del collider con el que chocará, entre ella el nombre del gameobject al que está adjunto el collider. Quizas algo asi...

       
   
   

float longitudDelRayo = 0.05f;
RayCastHit hit; //Almacenará toda la informacion del objeto con el que colisionará
Vector3 direccionRayo = gameObjectPieIzq.transform.localRotation * new Vector3(0,-1,0);
Ray ray = new Ray(gameObjectPieIzq.transform.position, direccionRayo.normalize * longitudDelRayo);
//Creo que longitudDelRayo es redundante dentro del RayCast, pero no recuerdo... asi que lo meto otra vez
if(Physics.Raycast(ray, out hit, longitudDelRayo) //Si el rayo colisiona con algo entra dentro del if
{
//Si ha colisionado con el hit tienes todos los datos de con qué colisiona y puedes hacer lo que quieras dentro del este if.
if(hit.collider.gameObject.tag == "SueloMadera")
{
   //Poner algo aquí....
}
}

   
      Saludos
   


Gracias por la respuesta, eso podría valerme, de hecho lo voy a intentar pero realmente me vendría mejor que sea por choque y no por el ray por que tambien podría chocar desde delante, y si el muñeco se cae necesito saber si han tocado los pies primero para determinar si ha caido de pie o no y ya no me valdria mucho eso.
#11
General (Antiguo) / Varios rigidbody en mismo cuerpo
Abril 20, 2017, 06:56:56 PM
Hola buenas,
 
Estaba intentando que mi personaje al saltar detectara donde había caido en función de con lo que chocaran sus pies al caer, para esto hice un script para los pies y use OnCollisionEnter pero me di cuenta después de que no estaba funcionando, según parece no funciona pues los pies no tienen asignados un rigidbody, pero si les asigno un rigidbody dejan de seguir al resto del cuerpo y empiezan a moverse libremente, me gustaría saber como hacer para que si en un conjunto de objetos que forman uno solo (Uniendolos entre sí mediante parentesco) tengo varios colliders como puedo saber cual de los colliders es el que ha chocado.
 
Muchas gracias de antemano.
#12
General (Antiguo) / Haskey siempre entra en el if
Diciembre 20, 2016, 10:59:07 PM
Cita de: Miguel_Angel date=1482267813Sobra un punto y coma detrás de la linea if.
   


Muchas gracias estaba ya tan seguro de que algo estaba mal que ni me fijé en eso. 
 
Si ya alguien supiera decirme como hacer referencia a un boton desde un script me haría el día.
 
He intentado declarando Gameobject boton = Gameobject.Find("nombredelboton"); 
 
Pero no parece funcionar.
 
Mucahs gracias.
#13
General (Antiguo) / Haskey siempre entra en el if
Diciembre 20, 2016, 05:58:43 PM
Hola buenas,
 
Estoy intentando hacer que cuando el usuario complete un nivel se desbloquee el siguiente y para ello estoy usando playerprefbs, el codigo que ando usando es :
 
    
 



   
      void Start()
          {
              for (i = 2; i <= 3; i++) {
                  if(PlayerPrefs.HasKey("nivel"+i)==true);
                  {
                      bloqueado = "Bloqueado" + i;
                      bloq = GameObject.Find (bloqueado);
                      Destroy (bloq);
                      botonnivel = "" + i;
                  }
              }
          }
   

[/quote]
 
Siendo bloq una imagen de un candado, tengo en esa misma posicion un boton desactivado, y no se como hacer referencia a el sin ponerlo en public, es decir usando Find y otra cosa parecida.
 
La  cuestión es que siempre entra en el if independientemente de si existe la key nivelX o no, y de hecho si le hago un debub.log a PlayerPrefs.HasKey("nivel"+i) me devuelve false a si que no debería entrar en el if. No lo entiendo.
 
Si alguien sabe que puedo hacer me ayudaría mucho.
 
Mucahs gracias.
#14
General (Antiguo) / Uso boton atras
Diciembre 16, 2016, 07:34:23 PM
Hola buenas a todos.
 
Quería usar en Android al boton atras para volver  a la escena anterior, y según he leído por ahí tenía que usar la tecla "Escape" pero por más que lo he puesto bien, de hecho copiado de gente de internet, no me funciona.
 
¿Sabeis si en Unity 5 la tecla a usar ha cambiado o algo?
 
Gracias.
#15
General (Antiguo) / Ayuda con Ragdoll
Diciembre 10, 2016, 11:17:28 PM
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.