[RESOLU] Repère différent en mode enregistrement d'une animation

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Danytro
Messages : 7
Inscription : 20 Juil 2018 21:14

[RESOLU] Repère différent en mode enregistrement d'une animation

Message par Danytro » 25 Août 2018 17:59

Bonjour,
Quelqu'un pourrait-il m'indiquer quelle est la bonne méthode pour faire pivoter l'hexagone autour d'une des 6 arêtes sans créer 6 animations ?
J'ai créé un hexagone via sketchup, j'en ai fait un prefab avec ses propres composants dont l'animation qui devrait faire tourner de 180° l'hexagone autour d'une de leurs 6 arêtes. Dans mon jeu, l'arête qui sert de pivot est choisie aléatoirement lors de l'exécution du script. L'hexagone avance donc en pivotant sur une de ses 6 arêtes.
J'ai essayé en créant une animation par arête.
Le script créait une instance de l'arête voulue, la rendait parente du jeton et le pivotement se faisait correctement.
Mais il était pénible de mettre à jour les 6 animations à chaque fois que je voulais les modifier. En plus je me suis dis que je pouvais limiter le nombre de GameObject par hexagone sachant que le jeu comprendra une cinquantaine d'hexagones.
Je n'ai donc conservé qu'une seule arête en tant que GameObject que je n'instancie plus. Je pivote l'arête autour de l'axe vertical de l'hexagone pour qu'elle se positionne sur la arête choisie aléatoirement. Ensuite Je la rend parente de l'hexagone le temps de jouer l'animation de pivotement.
quand je clique sur l'arête qui doit faire pivoter l'hexagone, l'origine de ses axes est placée au centre de l'arête. Le problème est que lorsque je rentre en mode enregistrement dans l'animation, la position et l'orientation des axes de l'arête instanciée restent à la position initiale de l'arête avant sa rotation par rapport à l'axe vertical. Je ne comprend pas pourquoi.
Merci
Dernière édition par Danytro le 30 Août 2018 09:10, édité 1 fois.

Avatar de l’utilisateur
Liven
Messages : 268
Inscription : 30 Nov 2017 01:48

Re: Repère différent en mode enregistrement d'une animation

Message par Liven » 26 Août 2018 16:48

Faudrait que tu nous montre un peu le code dont tu te sert pour faire les rotations pour qu'on puisse t'aider car juste avec tes explication, c'est un peu abstrait

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Repère différent en mode enregistrement d'une animation

Message par Alesk » 27 Août 2018 16:56

Le reparentage dynamique en animation sur unity, c'est pas trop ça.

Tu ferais mieux de tout faire avec du code, ça peut paraître plus compliqué au départ, mais au final ce sera plus simple et plus souple à utiliser et paramétrer.

Et puis tu as déjà posé une question similaire il y a quelques temps... je ne vois pas bien la différence avec ton souci précédent...

Danytro
Messages : 7
Inscription : 20 Juil 2018 21:14

Re: Repère différent en mode enregistrement d'une animation

Message par Danytro » 30 Août 2018 09:10

Liven a écrit :
26 Août 2018 16:48
Faudrait que tu nous montre un peu le code dont tu te sert pour faire les rotations pour qu'on puisse t'aider car juste avec tes explication, c'est un peu abstrait
La rotation est effectuée via une animation, pas avec du code. C'est la changement de hiérarchie du pivot qui est effectué avec du code. Depuis ma question, j'ai recréé une animation pour chaque pivot. L'héxagone pivote bien autour de l'axe de l'arête voulue.

Danytro
Messages : 7
Inscription : 20 Juil 2018 21:14

Re: Repère différent en mode enregistrement d'une animation

Message par Danytro » 30 Août 2018 09:19

Alesk a écrit :
27 Août 2018 16:56
Le reparentage dynamique en animation sur unity, c'est pas trop ça.

Tu ferais mieux de tout faire avec du code, ça peut paraître plus compliqué au départ, mais au final ce sera plus simple et plus souple à utiliser et paramétrer.

Et puis tu as déjà posé une question similaire il y a quelques temps... je ne vois pas bien la différence avec ton souci précédent...
Mes problèmes sont liés au système de coordonnées d'Unity (local / global) que je n'ai pas bien compris. Par exemple
, quelque soit l'argument worldPositionStays choisi, lorsque je change la parent d'un GameObject, il change de position sur la scène en fonction de la position du nouveau parent alors que je voudrais que ce GameObject ne bouge pas. Je vais étudier le sujet....

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: [RESOLU] Repère différent en mode enregistrement d'une animation

Message par Alesk » 30 Août 2018 10:33

Il va falloir nous filer un petit package d'exemple de ton projet... juste le code ça n'aidera pas à capter ce qui coince avec la partie animation.

Mais sinon, pourquoi as-tu besoin d'utiliser des animations ? Est-ce absolument nécessaire ? Car ton problème serait beaucoup plus simple à régler en n'utilisant que du code...

Danytro
Messages : 7
Inscription : 20 Juil 2018 21:14

Re: [RESOLU] Repère différent en mode enregistrement d'une animation

Message par Danytro » 30 Août 2018 20:15

Bonjour,
L'animation correspond au pivotement d'un hexagone autour d'une de ses arêtes. Par ses pivotements, l'hexagone dévale une pente.
Pendant cette rotation, l'hexagone change légèrement de position de manière à passer de son ancien réceptacle vers son nouveau réceptacle. J'ai essayé au départ de coder les mouvements mais je n'arrivait pas à synchroniser les mouvements de rotation et la translation de l'hexagone. J'ai remarqué également la possibilité de jouer sur les "courbes" de déplacement de l'objet dans l'animation, cela m'a semblé parfait pour faire des réglages fins.
Je ne suis pas sûr d'être capable de faire un "package", le projet en est à son début. Une copie écran serait peut-être suffisante mais il semble que la limite du nombre de pièces jointes sur le forum ai été atteinte.

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: [RESOLU] Repère différent en mode enregistrement d'une animation

Message par Alesk » 30 Août 2018 21:33

Tu auras plus de souplesse ou de réactivité en utilisant les courbes d'animation, si tu désires faire des mouvements un peu compliqués.

Par contre, pour une simple rotation et une translation, tu seras moins précis qu'avec du code est des calculs mathématiques dans le cas qui t'occupe.

Essaye de poster une vidéo sur youtube pour montrer en détails ce qui cloche, une simple capture d'écran ne suffira pas.

Répondre

Revenir vers « Unity le logiciel »