| Le coordinate globali sono le coordinate dell'oggetto relative allo zero del mondo, mentre le coordinate locali si basano sulla posizione dell'oggetto genitore. Se l'oggetto non ha genitore entrambe le coordinate sono identiche. Questo è valido per Posizione, Scala e Rotazione. Tutti possono essere su coordinate locali o globali. I valori presenti nella sezione coordinate della Gestione Attributi sono sempre locali. Solo il Gestore Coordinate può essere settato con valori globali. Quando vengono usati come parametri dei nodi oggetto si possono utilizzare entrambe. Solo Scala Globale non può essere utilizzato perchè praticamente inutile. | ![]() |
| La base di tutte le coordinate è la Matrice. E' una Matrice 4x4 ridotta a 3x4 per comodità d'uso. La matrice è composta da 4 vettori di 3 valori l'uno. V0 indica la posizione (offset) mentre V1-V3 indicano la rotazione e la scala. V1-V3 non possono essere usati direttamente. Chi fosse interessato amaggiori dettagli sull'uso delle matrici dia un'occhiata al capitolo di Mikael Sternes sulle matrici che potrete trovare nella documentazione su C.O.F.F.E.E. SDK su plugincafe . Se dobbiamo accede al controolo dei vettori possiamo utilizzare lo speciale nodo adattatore. |
|
| Perchè dovremmo usare una cosa complessa come le matrici? Bene, sarebbe complesso ma ci rende le cose più facili. La Matrice contiene tutte le informazioni di cui abbiamo bisogno in in un pacchetto e lascia spazio a dei trucchi che ci possono semplificare la vita. Un esempio potrebbe essere un'espressione Target. Come comincereste a creare questa espressione? Quelli che di voi conoscono la trigonometria comincerebbero con seni e coseni ma il modo più semplice è con l'utilizzo di vettori e matrici. La cosa principale della quale abbiamo bisogno è il vettore di differenza tra l'oggetto e l'obiettivo. Avremmo bisogno delle coordinate globali per rendere l'Espressione indipendente dalla gerarchia degli oggetti. Sottraendo un vettore dall'altro troveremo un vettore di differenza che potremmo immaginare come una freccia che punta da un oggetto all'altro. |
|
| Questo vettore di differenza è tutto quello di cui abbiamo bisogno, a meno che non possiano usarlo per ruotare il nostro oggetto. Quello di cui avremmo bisogno è una nuova matrice basata su questo vettore. Per questa operazione il nodo giusto in Xpresso chiamato "Vector 2 Matrix". Crea una matrice che quando accede alla porta input della Matrice Globale allinea i valori in base al secondo oggetto. Il vettore di differenza non contiene informazioni sulla sua posizione di inizio (ricorda il V0 di una matrice). Possiamo correggere questo problema dividendo la matrice nei suoi componenti aggiungendolo alla posizione originale dell'oggetto. Possiamo vedere il setup complete disponibile in questa scena. |
|
| Per fare cose più intessanti possiamo vedere una soluzione un pò diversa. La base (Vettore di Differenza) è lo stesso ma invece di assegnare direttamente la matrice, vogliamo usare solamente la rotazione. Per questo esiste il nodo "Matrix 2 HPB" . Per accedere al vettore rotazionale un solo clic sul rettangolo rosso nel angolo del nodo e selezionarlo. Abbina il vettore alla rotazione globale dell'oggetto. Puoi trovare tutto in questa scena. |
![]() |
| Tutte e due le configurazioni daranno lo stesso risultato. . |