Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 58,34€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales
Sign in to follow this  
Alvaro95

Animación al pulsar una tecla [AYUDA]

Recommended Posts

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:

a0a1c13457a24b3630bf869852a3ac74o.png

 

 

Edited by Alvaro95

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
11 hours ago, Alvaro95 said:

Eh, un poco mas especifico por favor, soy principiante :4_joy:

Para qué lo reportas? Basta con responder.. 

Share this post


Link to post
Share on other sites

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

 

Edited by Igor

Share this post


Link to post
Share on other sites

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.

fb61420ffd5a2a8769281969b28e026co.png

 

Edited by Alvaro95

Share this post


Link to post
Share on other sites
14 hours ago, Igor said:

//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");
  }

 

Share this post


Link to post
Share on other sites

pues deja solo la primera parte del "if"

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

 

pero primero fijate en:

17 hours ago, Alvaro95 said:

 

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...

Share this post


Link to post
Share on other sites

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.

 

30e5048ef8508e89608d010d0f1c4f63o.png

 

8bff7995500a557e17500e72a67dfffeo.png

 

Y otra cosa, el guion estaría así correcto?

 

915a593e5616bdc777b93b8df89d4925o.png

 

Por que me reporta un error al final.

Edited by Alvaro95

Share this post


Link to post
Share on other sites

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. 

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...