CONSTRAINTS


SIMPLE CONSTRAINT.


Crea 3 cubi nella scena.

Vai alla lista dei Contraints:

Trascina il constraint POSITION nella scena. Apparirà qui:

Blocca la finestra dei parametri e seleziona un cubetto.

Premi ALT e trascina il cubo centrale qui:

Poi prendi quello a sinistra, premi ALT e trascinalo sotto.

Attiva la casella ACTIVE.
Nella finestra che si apre clicca su OK.

Il cubetto centrale scompare.

In realtà, si è diventato coincidente con il cubetto di sinistra.
Disattiva il Constraint e i cubetti si separeranno.

Riativalo cliccando su SNAP.
In questo caso il Contraint si attiva ma i cubetti restano separati.

In questo caso il cubetto centrale è linkato a quello di sinistra.

LOCK.
Se la casella è attiva il Child non può muoversi rispetto al Parent, ma la distanza tra di essi viene mantenuta.
Dato che il Contraint applicato in questo caso è di tipo Position, la rotazione del Child è ancora libera.

ZERO.
Elimina la distanza tra Child e Parent, facendo coincidere il Child al Parent.

Inseriamo il terzo cubetto come Source.

WEIGHT.
Percentuale di influenza di un Source sul Constrained Object.

Trascina un Source fuoiri in modo da eliminarlo.

Inseriamo un altro Contraint Position. Inserisci come Constrained il solito cubo originale e come Source quello elmininato dal contraint precendente.

A questo punto modificando il Weight il cubo originale si sposta tra i due.

Il Position più in basso viene applicato per ultimo, quindi riducendo il suo Weight si sente quello del Contraint superiore.

Cancelliamo di due Constraint di tipo Position, tornando alla situazione iniziale:

 


RELATION CONSTRAINT.


Riprendiamo le due scatole.

Inseriamo nella scena una Relation Constraint.

Trascina una scatola tenendo premuto ALT nella zona vuota del Contraint Settings.
Apparirà questo:

Vai su SEnder pre rendere la scatola un elemento che produce un output. Su Receiver per trasformarla in un elemento che riceve un input.
Per ora, andiamo su Sender. Apparirà questo:

Stessa cosa per la seconda scatola, ma questa volta selezione Receiver.

Collega la Rotation dei due blocchi cliccando sulla freccia Out e poi sulla freccia In.

Ruotando la prima scatola, l'altra segue.

Per cancellare una connessione basta cliccare di nuovo da una freccia all'altra. Oppure cliccare con il destro su una freccia e andare qui:

Inseriamo un operatore Vector To Number trascinandolo dalla lista all'interno della finestra dei blocchi. E apparirà il blocco corrispondente.

Colleghiamo così:

Collega la Y in output con la Translation Input del Cube1. Verrà automaticamente creato un blocco di conversione collegato alla X.

Stacca la connessione Y/X e connettila alla Y.

A questo punto spostando l'oggetto lungo Y l'altro segue la traslazione lungo l'asse.

Inserisci l'operatore Add.

Collega la traslazione al Number A.
Verrà generato un blocco automatico di conversione.

Inserisci questo blocco di condizione:

Colleghiamo il risultato dell' Add al Vector A della condizione. Verrà creato un blocco intermedio.

Collega l'ìuscita alla Translation del Cube1 e scollega quella attuale.

Crea nella lista dei Number questo blocco:

Collegalo così:

Nel Number B inserisci un valore numerico fisso cliccando con il destro:

In questo modo se A>B viene passato A, altrimenti B.

Facciamo la stessa cosa sul blocco Add.

Uniamo l'uscita di A>B sul blocco di condizione:

Semplifichiamo così:

Tradotto: se Cube si trova a Y>5 allora comanda Cube1 quando viene traslato lungo X. Altrimenti la traslazione lungo X non comanda Cube1.

Cancelliamo tutto e creaimo 8 cubi coincidenti.

Mettiamoli in colonna:

Andiamo nella Schematic View.

Andiamo nella modalità Parent.

Clicca e trascina un elemento sull'altro per linkarli. Clicca 2 volte per entrare in modalità di traslazione e risposizionarli nello schema.

Piazza un Contraint Relations nella scena. Seleziona tutti i cubi e trascinali tenendo premuto ALT nella zona del Contraint Relations 2 volte: una come Sender, una come Receiver.


Inserisci un operatore Damping 3D:

Copia/Incolla l'operatore per ogni coppia di scatole. (CTRL+C, CTRL+V). Facciamone 16.

Ognuno dei blocchi delle scatole dovrà essere collegato a 2 operatori Damping.

Colleghiamo ogni Sender così:

I Receiver colleghiamoli così:

Inseriamo un operatore INTEGER.

Inseriamo un valore:

Colleghiamolo ai Damping Factor degli operatori Damping.

Nella scena ogni cubo ha associato un Constraint.

Traslando e ruotando il cubo iniziale, gli atri seguono la trasformazione con un ritardo. Il movimento è quello di una coda.

 


EXPRESSION CONTRAINT


Ripartiamo da 2 scatole.

Inseriamo nella scena un Contraint Expression.

Premi ALT e trascina la prima scatola in una cella. Qui seleziona il Sender.

Cliccando con il destro su una cella è possibile scegliere il sistema si riferimento Global oppure Local.

Facciamo la stessa cosa sulla seconda scatola e specifichiamola come Receiver.

A destra dei segni = è possibile specificare una espressione utilizzando i nomi delle celle. Esempio: facciamo in modo che la scatola 2 segua la rotazione della scatola 1.

Alternativamente è possibile trascinare una casella Sender.

Per specificare il tipo di cella clicca con il destro e vai qui:

Creiamo una terza scatola e inseriamo 2 Sender e un Receiver.

Inseriamo anche la scatola 2 come Sender.

Specifichiamo questa espressione:

Questa sintassi indica un vettore. I 3 componenti del vettore sono indicati dal valore seguito dai numeri 0,1,2 tra parentesi quadre, indicanti rispettivamente gli assi X,Y e Z.

In questo esempio la scatola centrale si muove seguendo la coordinata X della scatola A, la sua propria coordinata Y e la coordinata Z della scatola C.

 


ALTRI CONSTRAINT


Per linkare un oggetto a un altro è anche possibile utilizzare il Constraint Parent/Child.
Trascinalo nella scena, poi con ALT trascina gli elementi nelle caselel giuste e clicca su Snap per attivarlo. In questo esempio il cappello è linkato all' Effector della testa.