Page 1 sur 1

[Résolu] Instance de prefab qui lévite (Unity 2019.4.31)

Publié : 13 Oct 2021 21:36
par jmhoubre
Bonsoir,

je ne suis pas super à l'aise avec les assets, et j'ai un souci. J'utilise des personnages de Synthy Studios (pack SimpleApocalypse).

Le prefab comprend un Capsule Collider, un Rigidbody, un Animator, un NavMesh Agent et un script. Quand j'ouvre le prefab, tout est conforme à mes souhaits : le personnage est positionné correctement dans son cylindre de NavMesh Agent et dans son Capsule Collider.
Image

En revanche, une fois instancié, c'est le chaos : cylindre et Capsule Collider sont bien positionnés, mais le personnage lévite.
Image
Son transform.y est à 0.05833334 au lieu de 0, et pour toucher le sol, je dois le mettre à -0.4.

Je ne vois pas trop d'où cela provient, je me doute qu'il y a un truc que je n'ai pas fait correctement, mais les différents essais tentés n'ont rien donné. Quelqu'un a une idée ?

Voici la configuration du prefab une fois instancié :
Image
Image

Re: Instance de prefab qui lévite (Unity 2019.4.31)

Publié : 14 Oct 2021 08:18
par boubouk50
Je pencherai du côté de l'animation/animator. L'objet aurait été animé à une certaine hauteur et décalerait donc le mesh.
Test sans animation ou juste avec l'animation pour voir.
Peut-être que ce n'est pas le bon avatar ou la bonne animation pour ce personnage?
Ca parait bizarre quand même qu'un pack comme celui-ci fasse cette boulette...

Re: Instance de prefab qui lévite (Unity 2019.4.31)

Publié : 14 Oct 2021 11:15
par jmhoubre
Bonjour,
la piste est bonne :)

J'ai enlevé l'animator et les bouts de code afférant, pas de lévitation.

J'ai fait un animator vierge (juste Create Animator Controller). Le zombi est enfoncé dans le sol ... Après avoir cherché les différences entre entre cet animator vierge et le mien, j'ai constaté que le Hips, un enfant du zombi qui doit contenir le squelette a son transform.position.y à -0.245, alors qu'avec mon animator, il est à 1.002.

Les animations viennent de mixamo, je ne pense pas que le pack soit en cause, mais l'intégration du pack avec les animations de Mixamo et mon controller surement.

Re: Instance de prefab qui lévite (Unity 2019.4.31)

Publié : 14 Oct 2021 13:51
par boubouk50
Les transformations sont définies par l'animation donc c'est elle qu'il faut modifier pour avoir un résultat correct (parce que c'est la source, sinon c'est un pansement).
Dans les animations, normalement, le pivot principal, qui défini la position du personnage ne bouge pas. l'animation est donc "sur place" (un personnage qui court n'avance pas mais il bondit quand même). Cela permet de gérer le déplacement par code ou autre.
Ici c'est ce qu'il faut faire. Tu pourrais également le bouger à la main et le replacer, mais en cas d'animation avec d'autres valeurs de hauteur, tu seras embêté. Tout dépend de la flexibilité que tu souhaites, entre générique et cas-par-cas.

Re: Instance de prefab qui lévite (Unity 2019.4.31)

Publié : 14 Oct 2021 14:10
par jmhoubre
J'ai mis les prefabs originaux du pack, avec l'animator de Synty Studios, ils fonctionnent parfaitement. Donc le problème vient de mes modifications. Je cherche encore aujourd'hui, sinon, je pars des prefabs de Synty.

Re: Instance de prefab qui lévite (Unity 2019.4.31)

Publié : 14 Oct 2021 20:24
par jmhoubre
Bon, j'ai tout transféré vers les originaux de Synty, je n'ai plus de zombi en lévitation. Je ne sais toujours pas ce que j'ai fait de travers, mais il faut que j'avance :)

J'espère que je vais pourvoir utiliser les animations de mixamo...

Merci boubouk.