Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Alvaro95 en Agosto 25, 2018, 10:26:40 PM

Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 25, 2018, 10:26:40 PM
Buenas a todos
 
 
 
Explico el caso un poco.
 
Resulta que he exportado un modelo animado desde 3DSmax a Unity 2018, y con ello tambien su correspondiente animacion, hasta aqui todo bien...
 
El modelo se ha exportado perfectamente y la animacion igual, ahora viene mi calvario, necesito algun metodo (Supongo que sera script) para que la animacion se reproduzca al pulsar una tecla en especifico.
 
Es decir, quiero que la animación se ponga en marcha cuando yo pulse una tecla, como B o G, cualquiera.
 
 
 
Espero vuestras respuestas comunidad.
 
Screen:
 
(https://fotos.subefotos.com/a0a1c13457a24b3630bf869852a3ac74o.png)
 
 
 
 
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: brok en Agosto 25, 2018, 11:48:43 PM
Bueno eso tienes que crear un AnimatorController, creas el árbol de animaciones, ide por defecto y luego las demás y configuras con una variable bool por ejemplo y al programar llamas al animator de tu personaje, programas las teclas con un if y luego dentro del if pones la variable de tu animator y creo que luego un punto y setbool o getbool no me acuerdo ahora mismo y lo pones en true o false si has puesto una variable bool en el mecanim.
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 26, 2018, 12:25:46 AM
Eh, un poco mas especifico por favor, soy principiante 
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: pioj en Agosto 26, 2018, 11:59:15 AM
Cita de: Alvaro95 date=1535235946Eh, un poco mas especifico por favor, soy principiante 


Para qué lo reportas? Basta con responder.. 
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 26, 2018, 01:36:19 PM
NOO, le he dado sin querer pensando que era una reply, sorry
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Igor en Agosto 26, 2018, 05:01:33 PM
hola,
 
no entiendo muy bien, quieres que la animacion se reproduzca mientras pulsas una tecla? y que cuando la sueltes se pare? 
 
primero en la pestaña del animator tienes que crea dos "triggers" con el nombre que quieras porejemplo "parado" y "andando"
 
creo que sale un estado inicial... a ese le asignas una animacion de "parado"
 
creas otro estado y lo llamas "andando" o como quieras, y le asignas la animacion de "andando"
 
el cada uno de los estados, en el inspector, le pones como condicion para activarlo a cada uno su trigger (al estado parado el trigger parado y al estado andando el trigger andando)
 
ahora viene el script. lo añades a tu objeto con animator
 

private Animator anim;
void Start(){
anim = GetComponent<Animator>();
}
 
void Update(){
  if (Input.GetKey(keyCode.R)){
     anim.SetTrigger("andando");
  }else{
     anim.SetTrigger("parado");
  }
}
  
//mientras pulses "R" se reproducira la animacion

 
 
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 26, 2018, 06:53:33 PM
Hola Igor muchas gracias por tu respuesta.
 
 
 
Te explico un poco.
 
La escena en concreto es una especie de carrusel de feria y lo que deseo es que cuando pulse una tecla se cierren los arneses de seguridad 
 
 
 
Como ves, los arneses tiene una animación importada desde 3DsMax, por lo tanto lo único que necesito es que cuando pulse una tecla la animación se reproduzca totalmente.
 
 
 
Es un take importado no le he renombrado ni nada.
 
(https://fotos.subefotos.com/fb61420ffd5a2a8769281969b28e026co.png)
 
 
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: lightbug en Agosto 27, 2018, 12:22:20 AM
Cita de: Igor date=1535295693//mientras pulses "R" se reproducira la animacion
   


a mi me pasó algo feo con un caso similar, mientres este la R presionada se triggeará una y otra vez, quedará en cuadro 1 de la animación. Lo resolví con algo así:
 

if (Input.GetKeyDown(KeyCode.R)){
     anim.SetTrigger("andando");
  }else if(Input.GetKeyUp(KeyCode.R)){
     anim.SetTrigger("parado");
  }

 
 
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 27, 2018, 12:28:31 AM
Pero yo no es eso lo que necesito
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Igor en Agosto 27, 2018, 12:12:38 PM
pues deja solo la primera parte del "if"
 

if (Input.GetKeyDown(KeyCode.R)) {
anim.SetTrigger("andando");
}

 
 
 
pero primero fijate en:
 
Cita de: Alvaro95 date=1535302413 
   
   
      (https://fotos.subefotos.com/fb61420ffd5a2a8769281969b28e026co.png) (https://fotos.subefotos.com/fb61420ffd5a2a8769281969b28e026co.png)
   
   
       
   


 
 
 
 
 
 
a la izquierda de la imagen, arriba, tienes "layers" y "parameters"...  pues en parameters es donde tienes que crear el "trigger" "andando"...
 
luego, al pinchar en "Take 001" te saldran otras opciones a la izquierda... en ina de ellas, abajo, pone para añadir una condicion a esa animacion... ponle el trigger que has creado...
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 27, 2018, 02:58:24 PM
Si, el parámetro andando ya lo tenia creado, el problema es que no tengo opciones para añadirlo
 
 
 
La única opción ha sido crear una nueva transición desde Emptry hasta Take 001, no se si sera lo mas correcto.
 
 
 
(https://fotos.subefotos.com/30e5048ef8508e89608d010d0f1c4f63o.png)
 
 
 
(https://fotos.subefotos.com/8bff7995500a557e17500e72a67dfffeo.png)
 
 
 
Y otra cosa, el guion estaría así correcto?
 
 
 
(https://fotos.subefotos.com/915a593e5616bdc777b93b8df89d4925o.png)
 
 
 
Por que me reporta un error al final.
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: francoe1 en Agosto 27, 2018, 03:16:42 PM
El error es tan simple como una falta de llave al final del IF del input.
 
Por otro lado en la línea de transición entre EMPTY state y La animación debe contener la referencia al trigger. 
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Igor en Agosto 27, 2018, 03:17:44 PM
creo que es donde "transition", nose, no tengo el PC delante... suelo mirar esta pagina desde el movil...
 
luego te confirmo bien...
 
espera! creo que ya se... te lo estaba diciendo mal... (por no hacerlo con el PC delante... jeje, sorry) 
 
tendrias que crear un estado mas, ya que de "entry" pasa directamente a "Take 001" (ese seria tu estado de reposo (parado)) ...y de ese pasaria al "andando" 
 
1° tendrias que crear el estado "andando",  
 
...luego, desde el estado "Take 001" creas una transicion que vaya a "andando" (una flechita que los une, que va de "Take 001" a "andando"
 
pinchas esa flechita, y es ahi donde sale para poner un parametro como condicion para pasar a ese estado, osea, esa flechita de "take001" a "andando" dice que la animaciin pase de "take001" a andando.... pero poniendole ese parametro solo pasara a "andando" cuando se cumpla la condicion...
 
si quisieras que volviese al estado "parado" (take001) tendrias que poner otra flecha (transicion) en sentido contrario... con otra condicion...
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: francoe1 en Agosto 27, 2018, 03:21:36 PM
Los trigger siempre es mejor llamarlos desde Any State, salvo que la animación tenga una salida por EXIT-STATE
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 27, 2018, 03:26:01 PM
Ya lo he hecho pero la animación no parece reproducirse al pulsar R, creo que esta todo bien.
 
 
 
(https://fotos.subefotos.com/8788ad00e7468bcb9a0fe96c5833ecf8o.png)
 
 
 
(https://fotos.subefotos.com/bb7382b6404b40abc026b2038c2cf5b1o.png)
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 27, 2018, 04:24:17 PM
Hecho! gracias tios!
Vale, ya he corregido el problema, y una pregunta, si quisiera que la animación fuera acompañada de un clip de audio como deberia introducirlo? a través de script?
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: francoe1 en Agosto 27, 2018, 04:53:05 PM
Cita de: Alvaro95 date=1535379857Hecho! gracias tios!
   
   
      Vale, ya he corregido el problema, y una pregunta, si quisiera que la animación fuera acompañada de un clip de audio como deberia introducirlo? a través de script?
   


Deberias hacer una referencia a un Audio Source y a un Audio Clip -
 

private AudioSource _source { get; set; }
[SerializeField]
private AudioClip _clip = null;
private void Awake()
{
_source = gameObject.AddComponent<AudioSource>();
}
     
private void Update()
{
  if(Input.GetKeyDown(KeyCode.R)) _source.PlayOnShot(_clip);
}
     

 
Si quieres reproducir múltiples audios en una animación utiliza EventKey o si es algo mas complejo te invito a usar Director
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 27, 2018, 06:05:51 PM
Seria que solo sonara cuando la animación se reproduce, no cada vez que le doy a la R
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 27, 2018, 11:19:08 PM
Y en el caso que quisiera añadir otra animación y que mientras tanto se quedara en ese mismo estado como seria?
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: francoe1 en Agosto 28, 2018, 02:24:07 AM
Cita de: Alvaro95 date=1535404748Y en el caso que quisiera añadir otra animación y que mientras tanto se quedara en ese mismo estado como seria?
   


 
 
Cita de: Alvaro95 date=1535385951Seria que solo sonara cuando la animación se reproduce, no cada vez que le doy a la R
   


Creo que ya llegaste a tu cuota diaria de ayuda en el foro, no digo que este mal preguntar pero te estás quedando en un mismo lugar por no buscar información, estas cosas son simples, solo basta con entender cómo funciona, no busques la solución a X problema sin hacer el intento de aprender la herramienta, Unity tiene muchisimas secciones para aprender dentro del ámbito de las animaciones. 
 
Para aprender sobre esto te recomiendo la documentación oficial. 
 
https://docs.unity3d.com/ScriptReference/UnityEngine.AnimationModule.html (https://docs.unity3d.com/ScriptReference/UnityEngine.AnimationModule.html)
 
 
 
Saludos
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: pioj en Agosto 28, 2018, 07:35:39 AM
Cita de: Alvaro95 date=1535385951Seria que solo sonara cuando la animación se reproduce, no cada vez que le doy a la R
   


Mírate en el manual de Unity3D algo llamado Animation Event. Es un tipo de acción que puedes conectar a un fotograma de una animación. Puede ser cualquier cosa, así que también puede sonar un audio...
 
Cita de: Alvaro95 date=1535404748Y en el caso que quisiera añadir otra animación y que mientras tanto se quedara en ese mismo estado como seria?
   


Repasa la documentación básica de cómo funciona el Mecanim/Animator. Es el uso fundamental del módulo.
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Alvaro95 en Agosto 28, 2018, 01:14:28 PM
Gracias pioj y francoe
Título: Animación al pulsar una tecla [AYUDA]
Publicado por: Samusan en Septiembre 16, 2018, 11:39:42 AM
Ni caso, he contestado y no se borrarlo XD