Personnage monte escalier mais sur path et doncmvt en dent de scie
- boubouk50
- ModoGenereux
- Messages : 6246
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
Fais un effort, je t'ai indiqué où deux fois déjà. Relis!
Au bout d'un moment, c'est assez épuisant de ne faire que te donner les solutions...
Au bout d'un moment, c'est assez épuisant de ne faire que te donner les solutions...
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
transform.LookAt dit de regarder l'objet défini par PointOnPath avec ses 3 rotations et ses 3 directions.
Itween lance le script Itween
PointOnPath demande un chemin, défini par le tableau tablist, et un pourcentage défini par fraction + 01.f.
Ce que je ne comprends pas c'est à quel moment lui donner la directive de rester vertical.
Itween lance le script Itween
PointOnPath demande un chemin, défini par le tableau tablist, et un pourcentage défini par fraction + 01.f.
Ce que je ne comprends pas c'est à quel moment lui donner la directive de rester vertical.
Code : Tout sélectionner
transform.LookAt(iTween.PointOnPath(tabtList, fraction + 0.1f));
- boubouk50
- ModoGenereux
- Messages : 6246
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
Ce n'est pas assez explicite?
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
MSG Reedite
J'avais bien compris mais je pensais qu'il fallait garder la suite ( itwenn...).
Juste avec transform.up
le perso est bien vertical mais ne s'oriente pas selon le path
Sur unity scripting, pour lookAt, il faut une cible et un paramètre vector.
J'ai ajouter la cible , pour moi c'est Donc Itween.....
Mais le résultat est le même ,le perso est bien vertical mais ne s'oriente pas selon le path
J'avais bien compris mais je pensais qu'il fallait garder la suite ( itwenn...).
Juste avec transform.up
Code : Tout sélectionner
transform.LookAt(transform.up= Vector3.up);
J'ai ajouter la cible , pour moi c'est Donc Itween.....
Mais le résultat est le même ,le perso est bien vertical mais ne s'oriente pas selon le path
Code : Tout sélectionner
transform.LookAt((iTween.PointOnPath(tabtList, fraction + 0.1f)),transform.up= Vector3.up);
Dernière édition par freepl le 14 Nov 2019 12:37, édité 1 fois.
- boubouk50
- ModoGenereux
- Messages : 6246
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
Ok. Je vois maintenant où il y a mauvaise compréhension.
Quand je dis après, je parle après la ligne.
Tu laisses ton LookAt (iTween) pour orienter ton personnage face au path. Puis tu verticalises ton perso.
Quand je dis après, je parle après la ligne.
Tu laisses ton LookAt (iTween) pour orienter ton personnage face au path. Puis tu verticalises ton perso.
Code : Tout sélectionner
//Orientation face au path
transform.position = iTween.PointOnPath (tabtList, fraction);
//Rendre vertical le personnage
transform.up= Vector3.up;
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
avec ta modif, le perso est enfin droit mais il ne se tourne pas dans la direction du path.
J'explique.
En gros j'ai un path plat qui va du nord au sud(1) et un autre du sud au nord avec escalier(2).
A la création des persos je crois qu'ils sont créées "face au nord".
Pour ceux qui suivent le path 2 vers le nord, il sont tournés dans le bon sens ( femme en gris )
Pour les autres ils sont tournés vers le nord, donc dos au déplacement ( femme en rouge)
la femme en bleue regarde dans le sens de son déplacement
La femme en rouge regarde "le dos" de son déplacement.
ceci est valable pour tous les objets, y compris les vl ( mais pour eux je garderai le script d'origine)
Image à t=0 image à t + 2
Edit
Je viens de tester en faisant tourner de 180° un chemin, c'est le bon raisonnement. Le persos gardent leur orientation
J'ai testé aussi un chemin à 90°.
Les persos gardent leur orientation ( de création ?).
Ils sont verticaux
J'explique.
En gros j'ai un path plat qui va du nord au sud(1) et un autre du sud au nord avec escalier(2).
A la création des persos je crois qu'ils sont créées "face au nord".
Pour ceux qui suivent le path 2 vers le nord, il sont tournés dans le bon sens ( femme en gris )
Pour les autres ils sont tournés vers le nord, donc dos au déplacement ( femme en rouge)
la femme en bleue regarde dans le sens de son déplacement
La femme en rouge regarde "le dos" de son déplacement.
ceci est valable pour tous les objets, y compris les vl ( mais pour eux je garderai le script d'origine)
Image à t=0 image à t + 2
Edit
Je viens de tester en faisant tourner de 180° un chemin, c'est le bon raisonnement. Le persos gardent leur orientation
J'ai testé aussi un chemin à 90°.
Les persos gardent leur orientation ( de création ?).
Ils sont verticaux
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
Je cherche de ce coté mais je ne trouve pas : lookAt dans la direction opposé.
https://answers.unity.com/questions/132 ... ction.html
https://answers.unity.com/questions/132 ... ction.html
- boubouk50
- ModoGenereux
- Messages : 6246
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
Je me suis relu, et j'ai vu que je n'avais pas repris la bonne ligne:
il faut mettre:ou après et pas après (qui ne contient AUCUN LookAt, d'ailleurs).
Par contre, veille à repartir du code initial.
Aussi, il se peut que le code que je t'ai donné pour redresser le personnage verticalement ne soit pas fonctionnel. Il se pourrait qu'il réoriente le plan XZ.
Dans ce cas, l'idée est toujours valide, mais pas l'implémentation. Il faudrait voir à faire une rotation sur l'axe local X right (en admettant Y up et Z forward) pour l'aligner avec le Y up World, donc calculer l'angle par exemple et l'affecter.
il faut mettre:
Code : Tout sélectionner
transform.up= Vector3.up;
Code : Tout sélectionner
transform.rotation = Quaternion.FromToRotation(Vector3.up, Vector3.up);
Code : Tout sélectionner
transform.LookAt(iTween.PointOnPath(tabtList, fraction + 0.1f));
Code : Tout sélectionner
transform.position = iTween.PointOnPath (tabtList, fraction);
Par contre, veille à repartir du code initial.
Aussi, il se peut que le code que je t'ai donné pour redresser le personnage verticalement ne soit pas fonctionnel. Il se pourrait qu'il réoriente le plan XZ.
Dans ce cas, l'idée est toujours valide, mais pas l'implémentation. Il faudrait voir à faire une rotation sur l'axe local X right (en admettant Y up et Z forward) pour l'aligner avec le Y up World, donc calculer l'angle par exemple et l'affecter.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
Merci de continuer m'aider.
Le résultat est identique.
J'ai tourné un path de 90°, le perso le suit bien mais ne s'oriente pas selon le path.
Les petites barres verticales sont le path de l'escalier tourné de 90°, les perso sont orientés vers "leur nord".
Est-il possible, chose que je ne sais VRAIMENT pas faire, de récupérer les infos des transforms et simplement de remplacer par transform.up ?
Le résultat est identique.
J'ai tourné un path de 90°, le perso le suit bien mais ne s'oriente pas selon le path.
Les petites barres verticales sont le path de l'escalier tourné de 90°, les perso sont orientés vers "leur nord".
Est-il possible, chose que je ne sais VRAIMENT pas faire, de récupérer les infos des transforms et simplement de remplacer par transform.up ?
- boubouk50
- ModoGenereux
- Messages : 6246
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Personnage monte escalier mais sur path et doncmvt en dent de scie
Donc, si tu enlèves la ligne, ils sont dans le bon axe mais pas verticaux, si tu la remets, il sont verticaux mais pas dans le bon axe?
Dans ce cas, c'est la ligne que je t'ai donné qui ne fait pas ce qu'on lui demande, je pensais qu'elle n'affecterait que le up du personnage alors qu'elle affecte tous les axes.
J'en reviens donc à ce que j'ai dit précédemment, il faut le réorienter d'une autre manière.
Soit en corrigeant le LookAt () soit en effectuant une rotation de ton personnage.
Pour corriger le LookAt (), il faudrait faire en sorte que le point donné soit sur le même plan horizontal, donc que la position Y soit identique à celle de ton personnage.
Quelque chose comme ça alors:
Tu remplaces donc le LookAt () actuel par ces 3 lignes. N'oublie pas de supprimer la ligne que je t'ai faite rajouter.
Dans ce cas, c'est la ligne que je t'ai donné qui ne fait pas ce qu'on lui demande, je pensais qu'elle n'affecterait que le up du personnage alors qu'elle affecte tous les axes.
J'en reviens donc à ce que j'ai dit précédemment, il faut le réorienter d'une autre manière.
Soit en corrigeant le LookAt () soit en effectuant une rotation de ton personnage.
Pour corriger le LookAt (), il faudrait faire en sorte que le point donné soit sur le même plan horizontal, donc que la position Y soit identique à celle de ton personnage.
Quelque chose comme ça alors:
Code : Tout sélectionner
Vector3 direction =iTween.PointOnPath(tabtList, fraction + 0.1f);
direction.y = this.transform.position.y;
transform.LookAt(direction);
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation