Problème avec mes animations

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
Camcam
Messages : 41
Inscription : 08 Déc 2016 16:33

Problème avec mes animations

Message par Camcam » 03 Mai 2017 19:54

Bonjour,

Je suis en train de coder une AI pour mes ennemies et j'ai un problème avec les animation d'attaques , en faite j'essaye de créer une vitesse d'attaque, par exemple un goblin va avoir 5,5s d'attaque autrement dit toute les x secondes il va jouer l'animation d'attaque , mon premier problème est que lorsque je lance le jeux tout va bien le mob attend bien avant d'attaquer et je subis des dégâts , sauf que après il continue son animation d'attaque en boucle mais sans que je prenne de dégâts et je ne re perd de la vie que au bout de 5,5 secondes supplémentaires. Donc le principe fonctionne sauf que l'animation d'attaque ne s'arrête pas

Donc j'ai penser faire:

Quand il peut attaquer :
jouer attaque
jouer animation par défaut

Sauf que dans ce cas là l'animation d'attaque se joue tellement vite que je ne la voit pas et je ne sais pas comment faire pour que mon animation d'attaque se joue complément et qu'ensuite il joue l'animation par défaut

Code : Tout sélectionner

void attack ()
	{

		int numatk = Random.Range (0, GetComponent<Stats_Mobs> ().getlesatk ().Count); //un nom d'animation aléatoire 
		if (GetComponent<Animator> () != null) {// les mobs peuvent avoir soit un "animator" soit un composent "Animation"
				GetComponent<Animator> ().Play (GetComponent<Stats_Mobs> ().getlesatk () [numatk]);

		} else {
				GetComponent<Animation> ().Play (GetComponent<Stats_Mobs> ().getlesatk () [numatk]);
				GetComponent<Animation> () [GetComponent<Stats_Mobs> ().getlesatk () [numatk]].speed = 1;
			}
					
			Target.gameObject.GetComponent<Stats_joueur> ().ApplyDommage (dammage);//applique les dommages 
					Debug.Log ("The Enemy Has Attacked");
	}
	

void Update () {
//code 
			if (Distance < attackRange)
			{
				if (temps >= vitessedatk * 100) {
					attack ();// 
					temps = 0;
				} 
			}

		}
		temps++;
		print ("le temps :"+temps);
	
	}
ps : pour une raison obscure ma variable temps affiche deux valeurs a la fois dans la console

Je sais pas si j'ai été clair mais en tout cas j’espère que vous avez une solution ;)


:!: Attention à la section tu postes. :!:
et Les balises code SVP !
Merci de lire la Netiquette.
N'ième rappel




Merci d'avance !

Avatar de l’utilisateur
evereal
Messages : 109
Inscription : 06 Nov 2015 18:46

Re: Problème avec mes animations

Message par evereal » 04 Mai 2017 09:18

Pour que l'animation se joue complétement avant de passer à une autre animation, il faut cocher le "HasExitTime" dans les propriétés de transition.
https://docs.unity3d.com/Manual/class-Transition.html
C'est propre aux "Animator", il faudra donc changer tes mobs ne possédant qu'un composant "Animation".
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”

Camcam
Messages : 41
Inscription : 08 Déc 2016 16:33

Re: Problème avec mes animations

Message par Camcam » 04 Mai 2017 09:47

Bonjour,

Le problème est que mes modèles viennent de l'asset store et je ne sais pas comment changer pour faire fonctionner leurs animations avec un animator (j'ai déjà essayer en vain )

Krafter
Messages : 65
Inscription : 11 Fév 2017 17:03

Re: Problème avec mes animations

Message par Krafter » 04 Mai 2017 10:24

Pour utiliser un animator : (ce qui implique de virer ta ligne qui utilise animator ou animation je pense), tu prends ton ennemie , dans l'inspector add component et animator. Ensuite dans ta hierarchy tu fais clique droit et tu créer un animator controller que tu glisse dans ton animator. Tu peux double cliquer dessus pour l'ouvrir.
Là tu fais glisser tes animations (Windows => animator (ou truc du genre) ça t'affiche la fenêtre de l'animator)

A partir de là tu double clique sur une animation que tu à mis. Dans l'inspector tu as ses paramètres, tu peux coché "has exit time"
Je te conseil de travailler dans l'animator le plus possible pour tes animations, essaye de suivre des tutos le concernant tu verra c'est simple.

Camcam
Messages : 41
Inscription : 08 Déc 2016 16:33

Re: Problème avec mes animations

Message par Camcam » 04 Mai 2017 16:56

Je te remercie pour cette explication détaillée je vais tout de suite essayer , ça m'arrange énormément car devoir gérer Animation et Animator en même temps c'est un peu relou ^^

Camcam
Messages : 41
Inscription : 08 Déc 2016 16:33

Re: Problème avec mes animations

Message par Camcam » 04 Mai 2017 18:32

Re saliut ,

Premier problème je ne vois pas comment créer un animator controler

Avatar de l’utilisateur
Max
Messages : 8763
Inscription : 30 Juil 2011 13:57
Contact :

Re: Problème avec mes animations

Message par Max » 04 Mai 2017 18:42

Bonsoir,
Camcam a écrit :Premier problème je ne vois pas comment créer un animator controler
dans ce cas, regarde du coté de tuto comme Controlling Animation. Ce sont quelques bases qui devraient t'être utile pour avancer.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Camcam
Messages : 41
Inscription : 08 Déc 2016 16:33

Re: Problème avec mes animations

Message par Camcam » 07 Mai 2017 18:08

Salut,

J'ai essayer de suivre tes conseils mais je ne trouve ton "has exit time" , ensuite qu'est que l'avatar dans les paramètres de l'animator ?

En gros j'ai supprimé le composent animation et je l'ai remplacé par le composent animator, j'ai ajouter les animation mais rien à faire mon monstre ne veux pas s'animer....

Mise a jour : j'arrive à animé le monstre ^^ ça commence doucement a fonctionner

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: Problème avec mes animations

Message par Greg » 08 Mai 2017 16:31

Bonjour,

pour utiliser les animations :

Allez dans le menu, onglet 'Window' et ouvrir les fenêtres 'Animation' et 'Animator'.
Sélectionnez un GameObject dans la hiérarchie de la scène, aller dans la fenêtre 'Animation' et cliquez sur 'Create'.
Choisissez le nom de votre 1ère animation ainsi que le dossier de destination et enregistrez.

Cet étape va :
- Créer dans le dossier choisit un Animator au nom de votre GameObject et une Animation d'entrée pour votre Animator.
- Équiper votre GameObject de cet Animator et lui affecter l'animation.

Dans votre projet, allez dans le dossier de l'Animator et faite click droit > Create > Animation.
Créer ainsi autant d'animations que nécessaire.

Ensuite, allez dans la fenêtre Animator. Ici vous pouvez paramétrer :
- Dans la partie de gauche, les paramètres de votre Animator (comme un boolean activant/inactivant un changement d'état)
- Dans la partie de droite, les différent 'états' de votre animation ainsi que les différentes transitions entre ces derniers.

Un click droit dans un espace vide de la partie de droite vous permet de créer un nouvel état.
Un click droit sur un état vous permet de créer une transition vers un autre état.
Un click gauche sur un état vous permet de définir l'animation de transition vers celui-ci ainsi que certains paramètre comme la vitesse de l'animation. (mettre -1 en speed inverse l'animation)
Un click gauche sur une transition (flèche) vous permet de définir l'imbrication entre l'animation de l'état entrant et de l'état sortant.
C'est aussi ici que se trouve le paramètre 'Has Exit Time'

Une fois votre Animator paramétrer, assurez-vous d'avoir votre GameObject équiper de l'Animator sélectionner dans la hiérarchie de la scène.
Retourner dans la fenêtre Animation, vous devriez alors avoir accès en dessous du bouton rouge 'Rec' à l'ensemble de vos animations.

Sélectionnez-en une, appuyer sur Rec et vous pouvez commencer à créer vos Animations.

Pour approfondir les animations et transitions (et les canvas au passage ^^), je vous conseille de télécharger dans un projet test le Unity UI Samples : https://www.assetstore.unity3d.com/en/#!/content/25468

Enfin, la partie avatar de l'Animator concerne les 'rigged humanoïds' : https://docs.unity3d.com/Manual/class-Avatar.html

Bon courage à tous! :super:
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

Répondre

Revenir vers « (C#) CSharp »