[Résolu] [DB-AL] Récupérer la durée de l'animation jouée.

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

[Résolu] [DB-AL] Récupérer la durée de l'animation jouée.

Message par DevAmat » 05 Jan 2017 11:04

Salut je développe en solo un petit jeu qui ressemble fortement a starFox 64. Je ne suis pas encore fixé sur le gameplay final donc je test des choses. J'imagine implémenter un "dash" (pas la laissive ;-) ). Donc dans un premier temps j'ai imaginé que mon vaisseau effectue une rotation pour dash, cette rotation je pense la faire directement sur blender (pas le mixeur ;-) ). L'idée est de faire jouer cette rotation et que le dash s'effectue dans le temps de l'animation. Le souci c'est que j'ai un animator dans lequel j'ai mon animation mais je n'arrive pas en code a récupérer le temps de cette animation lorsque je la joue...

ps: Désolé pour les blagues
Dernière édition par DevAmat le 06 Jan 2017 14:35, édité 3 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Récupérer la durée de l'animation jouée.

Message par boubouk50 » 05 Jan 2017 11:29

Il faut que tu ailles dans l'AnimationState de ton clip pour récupérer la variable time
Doc: https://docs.unity3d.com/ScriptReferenc ... -time.html
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Récupérer la durée de l'animation jouée.

Message par DevAmat » 05 Jan 2017 12:24

Merci pour ta réponse mais je passe par l'animator donc pas par le système Animation si je t'ai bien compris. En fait je pense avoir trouvé mon bonheur ici:
http://answers.unity3d.com/questions/69 ... mator.html

Ce lien confirme ce que j'avais remarqué au sujet de l'animator, c'est a dire que lorsque l'on fait Animiator.Play("NomAnimation") et bien c'est exécuté a la fin de la frame donc je ne peux pas récupérer toute suite la lenght de l'animation qui va être jouée... Dans ce lien la une personne passe par une coroutine c'est une bonne idée... Franchement Unity est chiant de ce coté je trouve... Par contre ôtez moi un doute la lenght "GetCurrentAnimatorStateInfo(0).length" c'est bien la durée en seconde de l'animation?
Dernière édition par DevAmat le 05 Jan 2017 12:47, édité 1 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Récupérer la durée de l'animation jouée.

Message par boubouk50 » 05 Jan 2017 12:40

En seconde oui. Doc: https://docs.unity3d.com/ScriptReferenc ... ength.html

Sinon, pour le temps:
https://docs.unity3d.com/ScriptReferenc ... dTime.html
A tester, mais il me semble, qu'il te donne le pourcentage d'avancement de l'animation, donc tu peux savoir où tu en es.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Récupérer la durée de l'animation jouée.

Message par DevAmat » 05 Jan 2017 12:50

Effectivement le temps normalisé pourra me servir, merci pour ton aide!

zugsoft
Messages : 386
Inscription : 26 Juin 2014 23:43
Localisation : Swiss
Contact :

Re: [DB-AL] Récupérer la durée de l'animation jouée.

Message par zugsoft » 05 Jan 2017 14:29

Avec le legacy animation c'était simple.
Avec l'animator c'est pas aussi simple.
Car tu peux avoir des valeurs d'une autre animation en utilisant le normalise, j'ai galéré un moment avant d'arriver à avoir exactement ce que je voulais.
Pour cela, je créer un tableau contenant les noms de animations et leur Identifiant, puis je compare le temps normalisé ET l'identifiant pour retrouver l'animation jouait pour trouver le temps exact ou je me trouve dans mon animation.

Avec le legacy animation, tu avais l'information directement, bien plus simple.
Moon RTS

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: [DB-AL] Récupérer la durée de l'animation jouée.

Message par DevAmat » 05 Jan 2017 15:39

zugsoft a écrit :Avec le legacy animation c'était simple.
Avec l'animator c'est pas aussi simple.
Car tu peux avoir des valeurs d'une autre animation en utilisant le normalise, j'ai galéré un moment avant d'arriver à avoir exactement ce que je voulais.
Pour cela, je créer un tableau contenant les noms de animations et leur Identifiant, puis je compare le temps normalisé ET l'identifiant pour retrouver l'animation jouait pour trouver le temps exact ou je me trouve dans mon animation.

Avec le legacy animation, tu avais l'information directement, bien plus simple.

Effectivement c'est tordu comme système... Merci pour ce complément d'info je ferai attention a bien recup le bon temps.

Répondre

Revenir vers « (C#) CSharp »