[RESOLU] Problème de PNJ qui traverse le terrain

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
LedlaRabba
Messages : 7
Inscription : 09 Juil 2019 12:13

[RESOLU] Problème de PNJ qui traverse le terrain

Message par LedlaRabba » 09 Juil 2019 12:33

Bonjour tout le monde je viens de m'inscrire sur le forum pour bénéficier de vos expériences car j'ai un problème (pour moi) qui ne doit pas l'être pour vous.

Voila j'ai un personnage qui marche par défaut il est posé sur le sol il marche très bien.

Le problème est que lorsqu'il y'a une pente positive ou négative, il ne la suit pas.

Soit il marche dans le vide soit il traverse le terrain.

Mon terrain a un terrain collider
Il marche grâce à un animator controller avec la marche issue de Mocap
Le terrain a été "baké" avec les paramètres par défaut

J'ai testé avec une capsule sur le perso
J'ai testé avec un rigidbody mais rien n'y fait où j'ai essayé divers tests en cochant/décochant la gravité ou la cinétique

Je ne sais pas si il y'a une option à cocher quelque part

Image

Image

Je vous remercie d'avance

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Problème de PNJ qui traverse le terrain

Message par boubouk50 » 09 Juil 2019 13:32

Ne serait-ce pas plutôt le terrain qui a un collider pas assez défini?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

LedlaRabba
Messages : 7
Inscription : 09 Juil 2019 12:13

Re: Problème de PNJ qui traverse le terrain

Message par LedlaRabba » 09 Juil 2019 14:13

Bonjour Boubouk50
je te joins une capture d'écran des propriétés de mon terrain sachant qu'il est issue d'un fichier RAW (ce qui est peut-être l’origine du problème)

Image

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Problème de PNJ qui traverse le terrain

Message par boubouk50 » 09 Juil 2019 14:47

Ok...
Ma question est de savoir si le collider correspond à l'affichage.
Le personnage marche sur le collider du terrain, pas sur le terrain affiché. Il peut donc marcher sur des zones qui sont sous ou sur le terrain visible.
Cela signifierait que le comportement du personnage et du terrain sont bons, c'est juste que visuellement, cela ne correspond pas.
De ce que tu me dis, ton personnage possède un Rigidbody et ton terrain un Collider et que la collision fonctionne.
Comment fais-tu marcher ton personnage? Utilises-tu l'asset de base des StandardAssets d'Unity ou autre chose?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

LedlaRabba
Messages : 7
Inscription : 09 Juil 2019 12:13

Re: Problème de PNJ qui traverse le terrain

Message par LedlaRabba » 09 Juil 2019 15:40

Pour faire marcher mon personnage j'utilise l'asset Mocap et l'animation Walk et meme en testant avec l'animation HumanoidWalk avec Le StandardAssets j’obtiens les mêmes résultats

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Problème de PNJ qui traverse le terrain

Message par boubouk50 » 09 Juil 2019 15:49

Tu confonds animation et déplacement.
Que ton perso soit animé ou non, et comment il est animé, n'a rien à voir avec le déplacement, mis à part l'utilisation d'IK pour ajuster la position des pieds (mais je doute que tu en sois aussi avancé)
Comment tu déplaces ton personnage? Tu dois avoir un script de déplacement attaché à celui-ci pour qu'il aille dans la direction que tu souhaites au clavier/joystick/manette/etc.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

LedlaRabba
Messages : 7
Inscription : 09 Juil 2019 12:13

Re: Problème de PNJ qui traverse le terrain

Message par LedlaRabba » 09 Juil 2019 16:10

Le soucis vient d'un PNJ donc je ne tiens pas à le déplacer avec un joystick ou une souris l’objectif est de créer une animation pour un PNJ qui marche seul afin de simuler une foule.

Pour mon personnage il s'agit du FPSCharacter issue du StandardAssets

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Problème de PNJ qui traverse le terrain

Message par boubouk50 » 09 Juil 2019 17:01

Je vais me répéter une troisième fois: Comment tu déplaces ton personnage?
C'est un NavMeshAgent?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

LedlaRabba
Messages : 7
Inscription : 09 Juil 2019 12:13

Re: Problème de PNJ qui traverse le terrain

Message par LedlaRabba » 09 Juil 2019 17:46

Désolé je ne sais pas, je n'ai pas compris.
Je n'ai mis en place qu'un animator controller. Je n'ai pas ajouté de script sur le personnage. J'espère que j'ai pu avoir répondu à ta question. Auquel cas je m'en excuse s'il te faut joindre une capture d'écran je peux t'en envoyer une

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Problème de PNJ qui traverse le terrain

Message par boubouk50 » 09 Juil 2019 18:00

Dans ce cas oublie tout.
C'est impossible pour un personnage avec juste une animation de rester sur le sol qui n'est pas plat.
L'animation ne tient pas compte de l'environnement, ton perso pourrait voler ou être sous l'eau, l'animation s'en fout.
Il faut associer un characterController à tes personnages pour qu'ils interagissent avec le monde.
Pour un PNJ qui se ballade, il lui faut un rigidbody, un capsuleCollider et un characterController. Ici le characterController sera le NavMeshAgent.
Un NavMesh (Navigation Mesh) est une zone de navigation, de déplacement. Les NavMeshAgents posés dessus peuvent marcher sur ce NavMesh (selon des critères qu'il faut définir). Attention tout de même, les NavMesh sont des meshs invisibles qui simulent les collisions, ils faut qu'ils aient la même définition que le terrain pour ne pas avoir d'artéfacts tels le survol ou l'enfoncement.
Il est possible aussi de programmer un CharacterController pour que le personnage suive à la fois un chemin prédéfini et la configuration du sol (grâce au rigidBody et son Collider)
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Unity le logiciel »