Cinema 4D Cinema 4D Prime Oggetti Deformatori Deformatore Spline
Funzione disponibile in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D
Oggetto Spline

Base Coord. Oggetto

Coordinate

P [XYZ m]

Questo valore rappresenta la posizione dell’oggetto in relazione al sistema coordinate globale o al sistema coordinate genitore se l’oggetto si trova all’interno di una gerarchia (vedere anche Gestione Coordinate).

S [XYZ ]

Questo valore rappresenta la scala dell’oggetto in relazione al sistema di coordinate globale o al sistema coordinate genitore se l’oggetto si trova all’interno di una gerarchia (vedere anche Gestione Coordinate).

Modificare la scala dell’oggetto utilizzando questo valore equivale a scalare l’oggetto in modalità Usa Assi Oggetto, cioè si modificherà il sistema asse dell’oggetto (vedere anche Differenze tra le modalità Usa Strumento Oggetto e Usa Strumento Modellazione).

R [HPB °]

Questo valore rappresenta l’angolo dell’oggetto in relazione al sistema di coordinate globale, o al sistema coordinate genitore se l’oggetto si trova all’interno di una gerarchia (vedere anche Gestione Coordinate).

Ordine

Questo menu di selezione è rilevante solo per coloro che creano animazioni. Le opzioni in questo menu possono ridurre al minimo le possibilità di ottenere il temuto "Blocco Gimbal”.

Osservate il seguente esempio:

Abbiamo configurato un personaggio con gerarchie complesse per l’animazione. Supponiamo di voler animare la joint della spalla destra in una vista frontale creando una semplice rotazione verso il basso. Dobbiamo quindi creare dei keyframe per le punte delle dita per poterle posizionare sia verso l’alto, sia verso il basso. Se avviamo ora l’animazione possiamo notare che, oltre a muoversi verso il basso come ci si aspettava, il braccio ha anche una leggera deviazione (immagine sopra, in alto a destra). Questo è un classico esempio di "blocco gimbal". Qui l’effetto è relativamente debole, ma in alcuni casi può comportare effetti decisamente anormali, come un movimento "a cavatappi”.

Ecco come un ordine di rotazione corretto può contribuire a ridurre questo effetto: tutto ciò che dovete fare è osservare gli assi delle Joints PRIMA dell’animazione, in modo da determinare quali assi ruoteranno meno durante l’animazione. Nel nostro esempio si tratta dell’asse X. Selezionate ora una delle opzioni Ordine in cui l’asse X si trova in secondo piano. Avviene ancora una leggera deviazione, ma il risutato è di gran lunga migliore rispetto a quello precedente.

Un’altra opzione che aiuta a determinare il corretto ordine di rotazione è l’opzione Rotazione Cardano. Attivate questa opzione e lo strumento Ruota:

Sequenza impostata a HPB a sinistra e a XYZ a destra.

Utilizzando le bande di rotazione potete vedere direttamente (PRIMA di animare) se l’animazione lavorerà o meno in una determinata direzione. A sinistra nell’immagine qui sopra potete vedere delle bande di rotazione rosse, verde e blu posizionate in un determinato modo per farvi vedere che la rotazione (freccia rossa) è impossibile (nessuna delle fasce è posizionata nel piano di rotazione). Questa animazione avrà sicuramente dei problemi di Blocco Gimbal.

Sfogliate semplicemente le varie opzioni Ordine finché una delle bande non si posiziona sul piano di rotazione (nell’immagine sopra: la fascia blu). Se create ora l’animazione i problemi con il Blocco Gimbal saranno minimi.

E’ sempre un rischio impostare il secondo valore intorno ai 90° (o 270°) in correlazione con l’ordine di rotazione:

La cosa migliore è impostare sempre il valore corrispondente allo .

Tradizionalmente, questo problema può essere eluso animando un Oggetto Genitore Nullo.

Anche le selezioni congelate, che si trovano in basso nella finestra di dialogo, possono essere d’aiuto.

 Quaternion

Rotazione Quaternion

Suggerimento:
La funzionalità del tag Quaternion (che ora appare solo quando vengono caricate scene di versioni precedenti alla R18 e non può più essere generata come un nuovo tag) non è stata però integrata sotto forma di proprietà oggetto.

Generale

Sicuramente avrete sentito parlare del temuto Blocco Gimbal in combinazione con l’animazione dei personaggi, per esempio, o magari l’avete sperimentato personalmente!

Il Blocco Gimbal avviene quando il valore di rotazione P si aggira sui 90°, a questo punto l’heading H e il banking B hanno lo stesso effetto. Il risultato è che una di queste dimensioni viene persa completamente e avvengono ampi salti rotatori anche con la più piccola rotazione.

La funzione Quaternion, che funziona solo per l’animazione di rotazioni, può esservi d’aiuto.

Di default, Cinema 4D usa la Rotazione Eulero per interpolare le rotazioni degli oggetti (Eulero: sistema a giroscopio per le rotazioni separate (HPB), interpolazioni nello spazio 3D Euclideo (ad angolo retto)).

Le componenti individuali di una rotazione Eulero sono interpolate singolarmente, il che significa che il valore medio tra l’HPB (0, 0, 0) e l’HPB (60, 60, 60) sarebbe, per esempio, HPB (30, 30, 30). Il fatto che un’oscillazione da 0, 0, 0 fino 30, 30, 30 a 60, 60, 60 non sia necessariamente il percorso più breve può essere testato nella Viewport.

Ciò che serve è un’interpolazione che impieghi il percorso più breve da A a B, cioè la stessa cosa che farebbe l’utente se dovesse animare il percorso manualmente.

Questo è esattamente quello che fanno i Quaternion. Un Quaternion porterà il percorso da 0, 0, 0 a 60, 60, 60 attraverso 35.104 °, 22.83 °, 35.104 °.

Il Quanternion eveita di creare movimenti inutili e quindi evita il Blocco Gimbal.

Potreste chiedervi perché non viene applicata un’animazione Quaternion fin dall’inizio a tutti gli oggetti. Il motivo è che l’interpolazione Quaternion ha anche degli svantaggi. Il Quaternion funziona bene finché il cambio di rotazione è inferiore ai 180°. Oltre questo limite, possono presentarsi dei problemi visto che il Quaternion cercherà sempre il percorso più breve.

Suggerimento:
Il percorso più breve per un’Espressione Quaternion si trova sempre su una sfera 3D. Questa viene immaginata dall’interpolazione Quaternion come una rotazione attorno ad un asse fisso — l’asse attorno al quale può ruotare con la minima rotazione possibile. Di regola, questo non ha niente a che fare con l’asse dell’oggetto ed è differente per ogni rotazione.

Esempio

Date un’occhiata al seguente esempio:


  1. Un oggetto deve essere ruotato per più di 180° attorno ad un determinato asse.
  2. Viene settato un keyframe per lo stato iniziale. Il Timeslider viene portato al fotogramma in cui la rotazione terminerà, l’oggetto viene ruotato, e il movimento viene impostato con il keyframe. Fin qui tutto bene.
    Indipendentemente se viene usata la funzione Quaternion oppure no, nulla cambierà per gli stati iniziale e finale. L’interpolazione Quaternion userà un solo metodo per raggiungere lo stesso scopo.
  3. Per prima cosa, osserviamo il tradizionale metodo di rotazione Eulero in Cinema 4D:
    Un oggetto è stato ruotato usando dei keyframes (per esempio, B (bank) ruotato di 220°, il che ruota gli oggetti in senso orario di 220°):
  4. Ora vediamo il metodo Quaternion. Come già spiegato, questo metodo di interpolazione cercherà sempre il percorso più breve per lo stato finale. Il percorso più breve in questo esempio, comunque, non è (dal punto di vista dello spettatore) la rotazione in senso orario di 220° ma una rotazione di 140° esattamente nella direzione opposta.

Attivando l’opzione Rotazione Quanternion si attiva l’animazione Quaternion per quell’oggetto (i valori di keyframe saranno identici ai valori Eulero e solo l’interpolazione tra i valori cambierà di conseguenza). Se questa opzione è disattivata, verrà usato il metodo per l’animazione Eulero.

Notate che l’interpolazione Quaternion funziona solo su percorsi di rotazione locali e non su coordinate congelate (vedi Blocca Tutto).

E’ disponibile un’opzione Interpolazione Quaternion separata nelle proprietà dei keyframe che può essere usata per influire temporaneamente sull’interpolazione.

Risulteranno le seguenti differenze nelle animazioni Eulero:

Quando si dovrebbero usare le animazioni Quaternion e quando invece no?

Le animazioni Quaternion andrebbero usate se:

Le animazioni Quaternion non andrebbero usate se:

 Blocca Trasformazione

Blocca Tutto

Questa scena contiene due oggetti: Arm 2 ha le coordinate locali rappresentate nell’immagine sopra ed è un oggetto Figlio di Arm 1. Le coordinate mostrate nella Gestione Attributi sono sempre coordinate locali (esse riflettono il sistema di coordinate dell’oggetto Genitore nella gerarchia). Fin qui tutto bene.

Ora vogliamo animare Arm 2 in modo che ruoti di 45° attorno al suo asse X. Normalmente, ruoteremo l’oggetto utilizzando le bande di rotazione ed impostando due keyframe:

Il risultato può essere visto al centro dell’immagine sopra. Anche se la rotazione è avvenuta su un singolo asse, tutti e tre gli assi sono stati modificati. Ciò è dovuto al fatto che il sistema di coordinate dell’oggetto Genitore (Arm 1) ha un orientamento diverso rispetto alle coordinate locali. Spesso, questo comportamento non può essere evitato. E nella Timeline, le tre F-Curve, che potrebbero essere modificate, non rendono le cose più semplici. Inoltre, il nostro esempio ha anche un blocco Gimbal Rotazione Quaternion), che dà come risultato una rotazione successiva del braccio.

Tutti questi aspetti negativi possono essere evitati se si congela la trasformazione PRIMA di effettuare l’animazione. In questo modo si copieranno i valori Posizione, Rotazione e Scala ai valori subordinati del nome stesso ed impostare i valori iniziali nuovamente a 0 e a 1.

Questo comporta i seguenti vantaggi:

Il comando Congela Tutto congelerà tutte le coordinate (Posizione, Scala, Rotazione),e tutte le coordinate primitive saranno impostate a 0.

Suggerimento:
Il comando Congela Trasformazione (menu Strumenti/Coordinate) compie la stessa funzione per tutti gli oggetti selezionati.

Sblocca Tutto

Le coordinate principali saranno controbilanciate con le coordinate bloccate. In seguito tutte le coordinate bloccate saranno resettate a 0.

Suggerimento:
Ciò può essere fatto per tutti gli oggetti utilizzando un comando separato (menu principale: Funzioni / Sblocca Trasformazione).

P [XYZ m]
S [XYZ ]
R [HPB °]

Esse sono coordinate congelate prese dalla gerarchia genitore.

Suggerimento:
I valori per queste coordinate congelate possono essere trovati nell’Editor XPresso (Coordinate / Blocca Trasformazione) nei menu Porta Input ed Output. Queste coordinate possono essere modificate dopo essere state congelate, e le coordinate primarie rimarranno impostate a 0.

Blocca P
Blocca S
Blocca R

Questi pulsanti possono essere utilizzati per bloccare le tre coordinate primarie:

Suggerimento:
Notate che le coordinate posizione congelate possono essere modificate come risultato del congelamento dei valori rotazione, il quale è un effetto normale. Ad esempio, se un oggetto Figlio viene ruotato (paragonato al congelamento), la posizione dell’oggetto Figlio deve essere modificata di conseguenza se deve rimanere nella stessa posizione relativa.