Bonsoir,
Je me heurte a un petit soucis qui me chagrine quelques peu.
J'ai un personnage en 3D que j'ai animer avec blender au niveau de ses jambes (et que de ses jambes avec des IK).
Dans Unity, j'ai utiliser un bout de code pour faire pencher le personnage sur l'avant ou l’arrière en fonction du mouvement de la souris (en bougeant un des Bones du torse). Tout fonctionnais bien jusqu'a se que je lance l'animation des jambes, a se moment là, plus moyen de me pencher.
Dans Blender, quand je lance l'animation des jambes et que je bouge un Bone qui n'est pas affecter par cette animation, tout ce qui est relier bouge correctement, ce qui m’amène à penser que mon problème est plutôt du coté de l'importation de l'animation dans Unity.
Petite photo, sur la gauche, dans Unity RAS sans l'animation, a droite, mon Armature dans Blender.
Quelqu'un aurais une idée de ce que j'ai fait de travers ?
Ps : Dans "Animation type" dans Unity, je suis sur "Legacy".
Merci
[RESOLU] Mouvement d'un Bone sur un objet animer
Re: Mouvement d'un Bone sur un objet animer
Le Script qui affecte les "bones" est-il placé dans une fonction "LateUpdate"?.
Re: Mouvement d'un Bone sur un objet animer
Bonjour, merci de te réponse.
Non, je n'utilise pas cette fonction (que je ne connaissait pas d’ailleurs, je vais regarder de plus près sont utilité)
Cependant, cela ne change rien, de plus, même depuis l'éditeur, je ne peux pas effectuer de rotation sur un bone quand un animation est joué.
Une idée ?
Merci
Non, je n'utilise pas cette fonction (que je ne connaissait pas d’ailleurs, je vais regarder de plus près sont utilité)
Cependant, cela ne change rien, de plus, même depuis l'éditeur, je ne peux pas effectuer de rotation sur un bone quand un animation est joué.
Une idée ?
Merci
Re: Mouvement d'un Bone sur un objet animer
C'est une question d'ordre d’exécution. Le code dans un LateUpdate est exécuté APRES les animations et AVANT le rendu. Donc, normal que bouger les "bones" dans l’éditeur soit sans effet lors de l'animation.
Quelle que soit l'Animation (cohérente ou pas), elle est (ou peut être) "overwritée" par le code dans le LateUpdate. Principe fondamental sous Unity. Surtout en Legacy.
http://www.echo17.com/forum/index.php?topic=180.0
Quelle que soit l'Animation (cohérente ou pas), elle est (ou peut être) "overwritée" par le code dans le LateUpdate. Principe fondamental sous Unity. Surtout en Legacy.
A part placer le code qui visiblement fonctionnait au bon endroit?!. Non...
http://www.echo17.com/forum/index.php?topic=180.0
Re: Mouvement d'un Bone sur un objet animer
Un grand merci de nouveau, merci beaucoup de ton explication !
Effectivement, la rotation veux s'effectuer, cela fait des sursauts mais à chaques frames l'angle de rotation cherche à se remettre à sa valeur d'origine et dès que j’arrête de forcer avec la souris, elle la reprend.
J'ai pas chercher bien loin pour la rotation, juste un transform.Rotate
EDIT : Je crois que ca vient de mon code cette fois. Je récupérais la valeur avec Input.GetAxis plutôt qu'avec Input.mousePosition
Je reviens confirmer si le problème est résolut
Effectivement, la rotation veux s'effectuer, cela fait des sursauts mais à chaques frames l'angle de rotation cherche à se remettre à sa valeur d'origine et dès que j’arrête de forcer avec la souris, elle la reprend.
J'ai pas chercher bien loin pour la rotation, juste un transform.Rotate
EDIT : Je crois que ca vient de mon code cette fois. Je récupérais la valeur avec Input.GetAxis plutôt qu'avec Input.mousePosition
Je reviens confirmer si le problème est résolut