REACTOR. COOPERATIVE CONTRAINTS.

 

 

I Cooperative Constraints sono più stabili dei Simple Contraints, ma richiedono un tempo maggiore di simulazione. I Cooperative Contraints devono essere inseriti in un Constraint Solver affinchè facciano parte della simulazione. il Solver è una specie di RBCollector dedicato ai vincoli. il suo scopo è quello di fare lavorare insieme più vincoli.

Alcune proietà sono comuni a tutti questi vincoli.

STRENGHT e TAU.
Insieme definiscono la forza del vincolo.
Strenght applica un impulso di base per mantenere il vincolo fra gli oggetti. Tau è un impulsi correttivo quando Strenght non è sufficiente a mantenere il vincolo. Indica la percentuale di impulso correttivo da applicare.

BREAKABLE CONSTRAINTS.
Si tratta divincoli che si spezzano quando si supera una soglia specificata (in corrispondenza di questo punto cessano gli impulsi che hanno la funzione di mantenere il vincolo).

LINEAR/ANGULAR.
Soglie lineari e angolari da raggiungere prima che il vincolo si spezzi.


Il Solver per i vincoli Cooperative si crea da qui:

Questi sono i suoi parametri:

Clicca su RBCOLLECTION per assegnare appunto l' RBC contenente gli oggetti su cui verranno stabiliti i vincoli da assegnare al Solver. Successivamente inserisci nella lista i vincoli Cooperative impostati fra gli oggetti.

DEACTIVATION THRESHOLD.
Definisce una soglia che disattiva tutti i corpi rigidi fra cui valgono i vincoli presenti nel Solver.

DISABLED.
Vengono disabilitati tutti i vincoli presenti nel Solver.

 

 

HINGE

Il vincolo Hinge si crea da qui:

La sua funzione è quella di simulare un cardine fra 2 oggetti.

Questi sono i suoi parametri:

Ad esempio definiamo una scatola che ruota intorno al bordo di un'altra.

La scatola gialla è linkata a quella blu, e il suo Pivot Point è posizionato al confine tra le due scatole. La scatola blu ha Mass=0. Le collisini fra i due oggetti sono disabilitate.

Creiamo un vincolo Hinge prendendo la scatola gialla come Child e quella blu come Parent, poi allineiamo lo spazio del vicnolo Hinge al child con il comando Child Body. L'Hinge si posizionerà in corrispondenza del Pivot point della scatola gialla.

Quando selezioniamo l'Hinge compare una freccia grossa e una piccola.

In realtà le frecce sono 4: 2 verdi per il livello Parent, 2 rosse per il livello Child dell' Hinge. Solo che non si vedono tutte perchè risultano coincidenti.

L'asse grosso specifica quello di rotazione per l'oggetto, quello piccolo invece serve a definire i limiti di rotazione. Occorre quindi allineare innanzitutto gli assi del Child(rossi) e del Parent (verdi) nel verso giusto.

Scendiamo al livello Child Space e ruotiamolo di 90 gradi, in modo da posizionare l'asse grosso lungo il confine delle due scatole.

Con il comando Child Space allineiamo lo spazio Parent a quello Child.


Gli assi piccoli servono a regolare la zona di limitazione della rotazione. Attivando Limited apparirà un ventaglio, indicante l'ampiezza della rotazione possibile.

L'ampiezza dell'arco consentino si regola con i parametri MIN/MAX Angle, mentre il suo orientamento nello spazio si regola scendendo al livello Parent Space e ruotando lo spazio attorno all'asse grosso.

A questo punto sarà visibile anche l'asse rosso piccolo, relativo allo spazio Child. A questo punto la scatola gialla potrà ruotare intorno all'asse rosso grosso, però soltanto in modo tale che l'asse rosso piccolo resti sempre all'interno dell'arco di limitazione verde.

Ad esempio, partiamo da questa situazione:

La posizione più estrema che la scatola gialla potrà assumere è questa: l'asse rosso piccolo si trova al confine dell'arco verde.

 

 

POINT TO POINT.

Questo vincolo permete di attaccare 2 oggetti insieme. Essi condividono un punto in comune. Possono ruotare liberamete l'uno rispetto l'altro.

Questi sono i suoi parametri:

Esempio: la ciambella è fissa nello spazio e il vincolo è centrato su di essa.

Nella sezione CONTRAINT TYPE si definisce il tipo di vincolo.

LIMITED.
Permette di definire dei limiti alla rotazione. Ad esempio permettiamo una rotazione limitata soltanto rispetto a un asse.

Come al solito, l'arco verde mostra la rotazione possibile per gli assi rossi del Child.

In modalità Stiff Spring è possibile definire una distanza da mantenere costante fra i due oggetti durante la simulazione. In questo caso diventa disponibile questo parametro:

SET.
Imposta la distanza come quella corrente fra i due oggetti.

In questa modalità è possibile allineare gli spazi Child e Parent sui rispettivi oggetti. Si bailita infatti il pulsante Each Body.


Rispetto al caso Standard, questa volta la teiera ruota anche localmente.

 

PRISMATIC.

Questo vincolo permette a due oggetti di muoversi soltanto rispetto a un asse. Le traslazioni lungo gli altri assi e le rotazioni sono bloccate.

Questi sono i suoi parametri:

Come al solito sono presenti 2 serie di assi: rossi per il Child, verdi per il Parent. L'ase grosso con il suo orientamento definisce la direzione lungo cui gli oggetti possono muoversi. L'asse piccolo non serve.
Con i parametri della sezione LIMITED si definisce un segmento lungo l'asse (qui sopra evidenziato in bianco) indicante il tratto percorribile per l'oggetto.

 

 

CAR-WHEEL.

Questo vincolo si utilizza per attaccare una ruota a un oggetto (il telaio di un amacchina? E chi lo sa!). La ruota può appunto ruotare liberamente intorno a un asse di rotazione. Il suo movimento llineare è invece definito tramite un asse si sospensione. Il Child si comporta da ruota, il Parent di comporta da telaio.

Il vincolo si occupa di ruotare la ruota durante la simulazione

Costruiamo una macchina rudimentale (con una ruota sola):

La scatola ha Mass=0, la ruota Mass=1.

Imponiamo il vincolo Car Wheel definendo la scatola come Parent e la ruota come Child. Questi sono i parametri del vincolo:

Quando imponiamo il vincolo appaiono i sliti assi verdi (Parent) e rossi (CHild). L'asse verde indica le sospensioni, quello rosso l'asse di rotazione.

Occorre ovviamente orientare gli assi correttamente. Per farlo possiamo ricorrere al livello Suspension Rotation per ruotare l'asse relativo alla sospensione.

Per gli assi di rotazione occorre usare i livelli Parent Space e Parent Child (ne esiste uno rosso e uno verde)

Con i Suspension Parameters definiamo la traslazione della ruota lungo l'asse della sospensione. Viene visualizzato con un segmento, come nel caso del vincolo Prismatic.

VELOCITY.
Velocità che la ruota dovrà raggiungere (espressa in rad/s).

GAIN.
Accelerazione angolare.

Esempi con un valore =10 per entrambi i parametri.

 

 

POINT TO PATH

Questo vincolo costringe il Child a muoversi lungo un percorso relativo al Parent (se il percorso deve seguire un oggetto) o allo spazio World. L'orientamento del Child non è vincolato. Quindi per utilizzare questo vincolo occorre definire almeno un percorso.

Creiamo una scatola e un percorso. e i vari elementi reactor che occorrono per la simulazione.

Occorre innanzitutto posizionare l'ogeto sopra il percorso, in corrispondenza del punto di partenza.

 

Questi sono i parametri del vincolo:

Clicca su CHILD e assegna la scatola al vincolo.
Clicca su PATH e assegna il percorso che l'oggetto dovrà seguire.

Per default è impostato Align Parent Space To Path, in modo che l'oggetto segua il percorso nello spazio in cui questo è definito.

Assegna il Point-To Path al gestore dei vincoli Cooperative e fai partire la simulazione.

Attenzione: l'oggetto impazzisce se arriva agli estremi di un percorso aperto.