Coordonnées globales et locales |
|
| Les coordonnées globales sont les coordonnées d'un objet par rapport au point 0 du monde, alors que les coordonnées locales sont calculées par rapport à l'objet parent. Si l'objet n'a pas de parent les deux coordonnées sont identiques. Ceci est valable pour la position, l'échelle et la rotation. Toutes les trois peuvent être locales ou globales. Les valeurs affichées dans l'onglet coordonnées du gestionnaire d'attributs sont toujours locales. Seul le gestionnaire de coordonnées peut être réglé pour afficher les valeurs globales. Lorsque vous utilisez un nœud d'objet les deux type de coordonnées sont disponibles. Seule l'échelle globale n'est pas disponible du fait qu'elle n'est pratiquement jamais utilisée. |
![]() |
| La base de toutes ces coordonnées est la matrice. C'est une matrice de 4x4, réduite à 3x4 pour en faciliter l'utilisation. Une matrice consiste en 4 vecteurs, avec 3 valeurs chacun. |
![]() |
| Pourquoi se donner la peine d'utiliser quelque chose d'aussi complexe qu'une matrice ? Eh bien, cela peut être complexe mais cela rend les choses plus faciles. Les matrices stockent toutes les informations dont nous avons besoin en un paquet unique et permettent quelques astuces qui rendent la vie plus facile. Un bon exemple est ce que vous connaissez sous le nom d'expression cible. Comment vous y prendriez vous pour recréer cette expression ? Certains d'entre vous, qui connaissent la trigonométrie pourraient commencer avec des sinus et cosinus mais la voie la plus facile passe par les vecteurs et les matrices. L'élément principal dont nous avons besoin est la différence des vecteurs entre l'objet qui doit s'orienter et sa cible. Nous aurons besoin des coordonnées globales pour cela car l'expression doit agir indépendamment de la hiérarchie des objets. En soustrayant un vecteur de l'autre nous obtenons un vecteur de la différence que vous pouvez imaginer comme une flèche pointant d'un objet vers l'autre. |
![]() |
| Ce vecteur différence
est tout ce dont nous avons besoin, excepté que nous ne pouvons
pas encore l'utiliser pour faire pivoter l'objet. Nous allons avoir besoin
d'une nouvelle matrice basée sur ce vecteur. Pour cela il existe
un nœud tout prêt appelé Vecteur -> Matrice, il crée
une matrice qui, une fois connectée à l'entrée matrice
globale d'un objet, va l'aligner en fonction du vecteur différence,
mais il manque encore quelque chose d'important. Le vecteur de différence
ne contient aucune information su sa position de départ (rappelez-vous
le port V0 d'une matrice). Nous pouvons corriger cela en séparant
les différents composants de la matrice puis en injectant la position
originale de l'objet. |
![]() |
![]() |
|
| Pour rendre les choses un petit peu plus intéressantes nous allons jeter un coup d'œil à une solution légèrement différente. La base (vecteur différence) est la même, mais plutôt que d'assigner directement la matrice nous utiliserons uniquement une rotation. Nous disposons pour cela du nœud Matrice->HPB. Pour activer le port de sortie du vecteur de rotation il suffit de cliquer sur le carré rouge dans le coin supérieur droit du nœud et de le sélectionner. Maintenant injectez cette rotation dans la rotation globale de l'objet. Vous trouverez cette scène ici. | |