Unity 3D. Gestion des personnages-3. Tutoriel 22
Dernière partie de la série de tutoriels de gestion de personnages. Cette fois ci, je passe aux choses sérieuses en vous expliquant comment déplacer et animer le personnage par javascript.
Après ça, si vous serez capable de créer votre propre Uncharted, si, si 😉
Le script utilisé dans le tutoriel :
?Download movingScript.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | var Ouvrier :GameObject; var speed=4.0; var jumpSpeed=8.0; var gravity=20.0; var rotationSpeed=50.0; private var moveDirection=Vector3.zero; function Start(){ Ouvrier.animation.Stop(); var idle=Ouvrier.animation["idle"]; idle.wrapMode=WrapMode.PingPong; var walk=Ouvrier.animation["walk"]; walk.wrapMode=WrapMode.Loop; var jump=Ouvrier.animation["jump"]; jump.wrapMode=WrapMode.Clamp; idle.layer=-1; walk.layer=-1; } function FixedUpdate(){ var controller:CharacterController=GetComponent(CharacterController); if (controller.isGrounded){ var newRotation=Input.GetAxis("Horizontal")*rotationSpeed; transform.Rotate(0,newRotation*Time.deltaTime,0); //-------------------------------------------------------------------- moveDirection=Vector3(0,0,Input.GetAxis("Vertical")); moveDirection=transform.TransformDirection(moveDirection); moveDirection*=speed; //---------------------------------------------------------------------- if (Input.GetAxis("Vertical") && controller.isGrounded){ Ouvrier.animation.CrossFade("walk"); }else { Ouvrier.animation.CrossFade("idle"); } if (Input.GetButton("Jump")){ moveDirection.y=jumpSpeed; Ouvrier.animation.CrossFade("jump"); } } moveDirection.y-=gravity*Time.deltaTime; controller.Move(moveDirection*Time.deltaTime); } |
Bonjour krys,
J’ai splité une animation de plusieurs persos et un objet en 4 parties (idle, part1, part2, part3) et déclenche la lecture de l’animation par les touches f1, f2, f3. Les persos restent bien synchro mais pas l’objet, il se déclenche plus rapidement et se désynchronise.
As-tu une idée d’où cela vient ?
Antidote
Non faudrais voir ton projet dans un webplayer par exemple
Bonjour.
Tres serieux…et bien expliqué…
Vous avez 17 fps?
Je vous remercie.
Cordialement.
Salut,merci pour ce tuto
par contre il effectue un moonwalk le personnage quand on recule.
Quel est la commande pour jouer l’animation a l’envers ,svp?
merci
Bonjour avant tout super tuto Merci beaucoup , j’apprends tout les jours un peu plus et j’adore !
J’ai un souci que je viens juste de remarqué la camera systeme wo fonctionne très bien mes animes aussi …Bien que j’aimerais en ajouter ^^
Mais quand j’appuie sur les deux boutons de la souris
en même temps » se qui m’est arrivé par hasard »
et sur la touche avancé,le personnage avance dans les aires et traverse les mures … Sympa pour finir le jeux rapidement , mais y a t’il une solution… Bonne continuation et j’espère que l’on pourra avoir une suite un de ses 4 , pour ajouter des animations 😉
a bientôt.
Bonjours Krys64 j’avais une questions qui touche les scripts FPS j’aurais besoin de savoir comment mettre comme touche de déplacement Z;Q;S;D.
Merci pour tous ces tutoriels Gratuits et bien détailler !
Fab
Bonjour à tous et un grand Merci à Krys pour ses supers tutos qui me permettent à moi et à bien d’autres de progresser sous Unity.
En suivant la logique du script que tu décris, j’ai essayé de rajouter une autre animation (un coup de poing) déclenché par une autre touche. Je suis plutôt nouveau en JavaScript et j’ai dû faire des erreurs car cela ne fonctionne pas. 1 : la présence du code fait que le personnage reste animé mais reste sur place, et rien ne se passe lorsque j’appuie sur la touche voulue (ici keypad 0). Voici le code que j’ai inséré :
var punch=Personnage.animation[« punch »];
punch.wrapMode=WrapMode.Clamp;
dans le function Start (je pense que ça c’est ok)
Plus bas :
if (Input.GetButton(« KeyCode.Keypad0 »)){
Personnage.animation.CrossFade(« punch »);
}
Je le rappelle, je suis débutant et je doit passer à côté de quelque chose de super simple…
Merci à tous ceux qui auraient une idée pour corriger le problème !
Hello merci pour ton script ! je suis en trein de suivre ton tuto sur la gestion des personnages !
Mais quand je copie colle le script, sur MainCamera je n’est aucune variable ! j’ai que WowCamera (script) !
Je m’apperçoi aussi que dans la console ENORMEMENt d’erreur comme un oublie de ; a un ligne alros que il y en a un !
Je suis perdu !
HELP
je ne vois pas la vidéo sur la page mais seulement le script
j’ai changé de navigateur et désactiver AdBlock mais y’a pas de moyen