4 animations sur un perso , 1 animation qui bouge
4 animations sur un perso , 1 animation qui bouge
Bonjour
Je fait un cycliste avec 4 animations.
Il pédale, il pédale et tend le bras gauche, il pédale et tend le bras droit et il est à l'arrêt, pied gauche au sol avec sa tête qui tourne un peu de droite à gauche pour faire une petite animation
Il pédale il pédale et tend le bras gauche il pédale et tend le bras droit Suite à venir ( pb de taille d'image)
Je fait un cycliste avec 4 animations.
Il pédale, il pédale et tend le bras gauche, il pédale et tend le bras droit et il est à l'arrêt, pied gauche au sol avec sa tête qui tourne un peu de droite à gauche pour faire une petite animation
Il pédale il pédale et tend le bras gauche il pédale et tend le bras droit Suite à venir ( pb de taille d'image)
- Pièces jointes
-
- ScreenShot051.jpg (124.53 Kio) Consulté 3722 fois
-
- ScreenShot052.jpg (121.62 Kio) Consulté 3722 fois
Re: 4 animations sur un perso , 1 animation qui bouge
il est à l'arrêt, pied gauche au sol
Il fonctionne sans pb.
Le bug vient que quand je mets une vitesse nulle, j'ai bien l'animation de la tête du perso qui tourne de droite à gauche et les roues du vélo qui ne tournent pas .
MAIS j'ai ses jambes qui ne se mettent pas à la bonne position
Si vous avez une idée .
Merci
J'utilise ce script ( Merci Boubouk50). En fonction des vitesses , c'est telle ou telle animation qui se lanceCode : Tout sélectionner
using UnityEngine;
using System.Collections;
public class VeloAnimationBrasPourTourner : MonoBehaviour {
// pour les nouveaux personnages à 4 animations
private TrajetVl trajetVl;
public Animation anim;
public string arret, roule,gauche,droit;
public bool chien;
void Start () {
if (chien)
trajetVl = transform.parent.parent.GetComponent<TrajetVl>();
else
trajetVl = transform.parent.GetComponent<TrajetVl>();
}
// Update is called once per frame
void Update () {
switch((int)Mathf.Round(trajetVl.kmh*10))
{
case (70): // vitesse égale 7 km/h sur le déclencheur
anim.Play(roule);
break;
case (65): // vitesse égale 6.5 km/h sur le déclencheur
anim.Play(gauche);
break;
case (63): // vitesse égale 0.1 km/h sur le déclencheur
anim.Play(droit);
break;
default :
anim.Play(arret);
break;
}
}
}
Le bug vient que quand je mets une vitesse nulle, j'ai bien l'animation de la tête du perso qui tourne de droite à gauche et les roues du vélo qui ne tournent pas .
MAIS j'ai ses jambes qui ne se mettent pas à la bonne position
Si vous avez une idée .
Merci
Re: 4 animations sur un perso , 1 animation qui bouge
Il a une autorisation de sortir ton cycliste ?
J'ai du mal à t'aider, je ne connais pas trop l'ancien système d'animation. Pourquoi tu n'utilises pas l'actuel avec un animator ?
J'ai du mal à t'aider, je ne connais pas trop l'ancien système d'animation. Pourquoi tu n'utilises pas l'actuel avec un animator ?
Dernière édition par jmhoubre le 18 Mars 2020 11:08, édité 1 fois.
Re: 4 animations sur un perso , 1 animation qui bouge
Lui oui ...
Nous non
J'utilise la 4.6 car au boulot je n'ai que celle-là.
Nous non
J'utilise la 4.6 car au boulot je n'ai que celle-là.
Re: 4 animations sur un perso , 1 animation qui bouge
Je suis un peu étonné par ce script. Notamment la ligne :
je me demande pourquoi le commentaire indique 0.1 km/h alors que visiblement il s'agit de 6,3 km/h.
Au boulot ? Tu n'est pas confiné ?
Code : Tout sélectionner
case (63): // vitesse égale 0.1 km/h sur le déclencheur
Au boulot ? Tu n'est pas confiné ?
Re: 4 animations sur un perso , 1 animation qui bouge
Erreur sur le commentaire.
Je bosse chez moi car j'ai unity en version free
J'ai remarqué qu'en fonction du moment où V=0 km/h, la position des jambes varie.
Je bosse chez moi car j'ai unity en version free
J'ai remarqué qu'en fonction du moment où V=0 km/h, la position des jambes varie.
- Pièces jointes
-
- ScreenShot057.jpg (86.69 Kio) Consulté 3697 fois
-
- ScreenShot058.jpg (103.27 Kio) Consulté 3697 fois
-
- ScreenShot059.jpg (108 Kio) Consulté 3697 fois
Re: 4 animations sur un perso , 1 animation qui bouge
Bonjour,
j'ai de nouveau regardé ton code. Dernier truc qui me chiffonne : le switch. De ce que j'ai compris, la valeur de case est la vitesse multipliée par 10 arrondi et casté en integer ((int)Mathf.Round(trajetVl.kmh*10)). Les cas gérés sont 7, 6,5 et 6,3 km/h. Toutes les autres vitesses vont dans le default et génèrent un arrêt du cycliste : 10 km/h par exemple, ou 5 etc...
J'avoue que j'ai du mal à comprendre à quoi cela correspond.
J'aurai défini un enum avec {STOP, LEFT, RIGHT et FORWARD}
j'ai de nouveau regardé ton code. Dernier truc qui me chiffonne : le switch. De ce que j'ai compris, la valeur de case est la vitesse multipliée par 10 arrondi et casté en integer ((int)Mathf.Round(trajetVl.kmh*10)). Les cas gérés sont 7, 6,5 et 6,3 km/h. Toutes les autres vitesses vont dans le default et génèrent un arrêt du cycliste : 10 km/h par exemple, ou 5 etc...
J'avoue que j'ai du mal à comprendre à quoi cela correspond.
J'aurai défini un enum avec {STOP, LEFT, RIGHT et FORWARD}
Re: 4 animations sur un perso , 1 animation qui bouge
Bonjour
Je cherche toujours.
Seul le passage de 6.5 à 7 km/h pose pb.
J'ai essayé de faire une coroutine qui dit si V=7 alors on joue l'animation d'arret pendant 0 sec, puis on joue l'animation de Roule.
Ainsi, l'animation de 6.5 à 7 km/h passe par l'animation Arret
Mais cela ne fonctionne pas car on reste sur l'animation ARRET sans lancement de l'animation Roule.
Comment la modifier svp?
Merci
Je cherche toujours.
Seul le passage de 6.5 à 7 km/h pose pb.
J'ai essayé de faire une coroutine qui dit si V=7 alors on joue l'animation d'arret pendant 0 sec, puis on joue l'animation de Roule.
Ainsi, l'animation de 6.5 à 7 km/h passe par l'animation Arret
Mais cela ne fonctionne pas car on reste sur l'animation ARRET sans lancement de l'animation Roule.
Comment la modifier svp?
Merci
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
/* 7 km pour rouler
* 6.5 pour tourner à gauche
*/
public class VeloAnimationBrasPourTourner : MonoBehaviour {
// pour les nouveaux personnages à 3 animations
private TrajetVl trajetVl;
public Animation anim;
public string arret,roule, gauche;//arret, roule,gauche,droit;
public bool chien;
void Start () {
if (chien)
trajetVl = transform.parent.parent.GetComponent<TrajetVl>();
else
trajetVl = transform.parent.GetComponent<TrajetVl>();
}
IEnumerator CoroutineArretPuisRoule()
{
//lance l'anim d'arret pendant 0sec.
anim.Play(arret);
//attente 5 seconde.
yield return new WaitForSeconds(0);
//lance l'anim roule.
anim.Play(roule);
}
// Update is called once per frame
void Update () {
switch((int)Mathf.Round(trajetVl.kmh*10))
{
case (70): // vitesse égale 7 km/h sur le déclencheur
StartCoroutine(CoroutineArretPuisRoule());
break;
case (65): // vitesse égale 6.5 km/h sur le déclencheur
anim.Play(gauche);
break;
case (0): // vitesse égale 0 km/h sur le déclencheur
anim.Play(arret);
break;
default :
anim.Play(arret);
break;
}
}
}
Re: 4 animations sur un perso , 1 animation qui bouge
Re bonjour
En modifiant le temps d' attente , j' ai vu que le pb vient de l'animaion Roule.
Le code lance bien l'animation Arret, puis l' animation Roule se charge, mais celle-ci ne tourne pas en loop.
Que dois-je modifier ?
Merci
En modifiant le temps d' attente , j' ai vu que le pb vient de l'animaion Roule.
Le code lance bien l'animation Arret, puis l' animation Roule se charge, mais celle-ci ne tourne pas en loop.
Que dois-je modifier ?
Merci
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
/* 7 km pour rouler
* 6.5 pour tourner à gauche
*/
public class VeloAnimationBrasPourTourner : MonoBehaviour {
// pour les nouveaux personnages à 3 animations
private TrajetVl trajetVl;
public Animation anim;
public string arret,roule, gauche;//arret, roule,gauche,droit;
public bool chien;
void Start () {
if (chien)
trajetVl = transform.parent.parent.GetComponent<TrajetVl>();
else
trajetVl = transform.parent.GetComponent<TrajetVl>();
}
IEnumerator CoroutineArretPuisRoule()
{
//lance l'anim d'arret pendant 0sec.
anim.Play(arret);
//attente 2 secondes pour le test.
yield return new WaitForSeconds(2);
//lance l'anim roule.
anim.Play(roule);
}
// Update is called once per frame
void Update () {
switch((int)Mathf.Round(trajetVl.kmh*10))
{
case (70): // vitesse égale 7 km/h sur le déclencheur
StartCoroutine(CoroutineArretPuisRoule());
break;
case (65): // vitesse égale 6.5 km/h sur le déclencheur
anim.Play(gauche);
break;
case (0): // vitesse égale 0 km/h sur le déclencheur
anim.Play(arret);
break;
default :
anim.Play(arret);
break;
}
}
}