7.2 – Dinamica Fisica – Soft Body e Cloth

In questo paragrafo tratteremo il modello fisico di Blender adatto alla simulazione dei corpi dalla struttura deformabile, partendo prima dal solito cubo con i suoi otto vertici per poi suddividerlo in un numero di facce sufficienti a una vera simulazione. Piazziamo allora il solito cubo sopra un piano fisso, ma stavolta non ruotato. Iniziamo con l’attivare per il cubo la sola fisica Soft Body.

Avviando l’animazione (barra spaz.) vedrete semplicemente il cubo oscillare su e giù. Esso non cade verso il basso nonostante la presenza della forza di gravità. Ciò accade perché di default è attivo il pannello Soft Body>Goal il quale vincola il nostro cubo a muoversi solo in base all’uso di eventuali keyframe o per l’effetto della parentela a un oggetto animato. Disattiviamo il pannello Goal, mentre per piano attiveremo soltanto la fisica senza la quale il Soft Body non rileverebbe la sua presenza. Avviando l’animazione vedrete il cubo cadere per effetto della gravità, impattare sul piano, rimbalzare leggermente e oscillare in modo simile a un budino, fino a quando la struttura (di soli 8 vertici) finirà con il collassare. Per evitare ciò è necessario cambiare qualcosa nel pannello Edges. Per prima cosa dovete immaginare i bordi della mesh come se fossero delle molle più o meno rigide. Aumentiamo Bending (rigidità flessione) a 0.2, cioè all’inizio dell’intervallo 0-10 dei valori possibili. Con tali modifiche vedrete il cubo oscillare di meno e soprattutto non collassare. Ma si tratta pur sempre di un’animazione per nulla interessante, infatti l’impiego ideale della fisica dei soft body non è certo nel caso di un cubo con 8 vertici, scelto esclusivamente come esempio preliminare, ma su delle mesh ricche di vertici per un risultato maggiormente realistico che inevitabilmente comporterà tempi di calcolo maggiori. Iniziamo allora a suddividere il cubo N volte, mantenendo una sua rotazione in modo che esso atterri lungo uno spigolo (o vertice) e non sulla sua base. Dopodiché aumentiamo Bending a 2 e portiamo i valori Pull e Push a 0.8 (due ulteriori parametri utili a definire la rigidezza complessiva della mesh). Ripetendo l’animazione della caduta, vi accorgerete subito che il calcolo del moto sarà più complesso, soprattutto nei momenti di impatto tra il softbody e il piano. Recandovi nel contesto Modifier relativo al cubo, troverete già applicato in automatico il modifier Softbody (senza alcuna opzione). Sotto di esso possiamo aggiungere il modificatore Subdivision Surface e quindi applicare lo smooth shading per un risultato esteticamente più realistico.

In questo caso il SubSurf non potrà essere portato sopra il modificatore softbody. Parametri del pannello Edge:

  • Pull (0 – 0,999) A valori bassi corrisponde una rigidità minore delle molle, quindi un allungamento maggiore dei bordi tra due vertici.
  • Push (0 – 0,999) Resistenza alla compressione proporzionale al valore scelto.
  • Damp (0 – 50,000) Per smorzare in tempi più brevi (valori maggiori) l’oscillazione delle molle.
  • Plasticity (0 – 100) Rende più facilmente permanenti le deformazioni della mesh.
  • Bending (0 – 10,000) Estende le connessioni meccaniche a vertici non immediatamente vicini.
  • Length ( 0 [disattivato] – 100 [nessun effetto] – 200) Cambia in percentuale (fino a raddoppiare con 200) la variazione delle dimensioni dei bordi elastici durante la loro deformazione, con 0 (default) è disattivato, da 1 a 99 riduce le dimensioni, 100 lascia tutto inalterato, 101 – 200 aumenta le dimensioni.

Come detto in precedenza, il modello del cubo (suddiviso) è composto esclusivamente da facce quadrate che vengono viste dal motore fisico di Blender come se tra i quattro vertici di ognuna di esse esistessero quattro molle lungo i bordi. Attivando il pannello

la simulazione avverrà considerando ulteriori potenziali elastici sulle diagonali di ogni faccia, la cui rigidità è proporzionale al valore Shear (0-1) il tutto per una struttura fisica “morbida” più stabile e realistica. Lasciamo disattivato questo pannello e duplichiamo il cubo, ponendo uno dei due appena sopra il piano, in modo che l’altro cadendo vada ad impattarlo. Per ottenere la simulazione del contatto di un softbody sull’altro dovremo semplicemente attivare ad entrambi il Collision.

Quando il moto di un soft body è governato da keyframe o dalla parentela con un altro oggetto animato, dovremo attivare il pannello Goal:

Stiffness è il parametro per regolare la rigidezza del soft body; a zero avremo il collasso della mesh, mentre non è consentito un valore 1, ma leggermente inferiore.
Damping è l’importante parametro variabile da 0 a 50 che accelera la perdita di energia elastica responsabile delle vibrazioni del soft body, diminuendo così il tempo necessario alla stabilizzazione.
Strenght è un parametro di default posto a 0,700 variabile da zero a uno. Ponendolo a zero assisterete al collasso della mesh, mentre con il valore uno il comportamento del soft Body sarà quello di un corpo rigido. I valori di minimo e massimo servono nel caso tramite Weight Paint si sia mappato il modello per distribuire un differente peso dell’effetto a differenti parti delle mesh. Infine con Vertex Group potremo limitare l’effetto soft body a solo una parte della nostra mesh.

Se eventuali problemi nel realismo dell’animazione dei soft body non venissero risolti tramite i vari parametri finora trattati, dovremo giocoforza aumentare la precisione del calcolo rivolgendo la nostra attenzione al pannello Solver.

In genere sarà sufficiente lasciare la spunta su Auto-Step e diminuire il valore di Error Limit, cercando di trovare un buon equilibrio tra tempo di calcolo e accuratezza. Una raffinata simulazione, specie se in presenza di molti oggetti che interagiscono tra loro, necessiterà logicamente un tempo di elaborazione maggiore, il che rende molto importante la memorizzazione dell’animazione in una o più cache.

Per liberare la memoria basta cliccare Delete All Bakes. Tramite Bake viene calcolata l’intera animazione senza essere visualizzata nella 3D View, e in basso nell’interfaccia di Blender appare la barra di avanzamento del calcolo . Con il pulsante + aggiungeremo nuove cache dati per diverse prove, che potremo eliminare con il tasto – . Per conservare la cache su disco occorre che il file .blend del progetto sia già salvato, quindi nella medesima directory verrà creata una cartella denominata blendcache.

Nel caso di corpi chiusi privi di sporgenze o protuberanze, risulta meno utile l’opzione Self Collision (che vedremo in azione nella dinamica dei cloth) la quale elabora la collisione di parti della mesh con se stessa. Tuttavia in caso di necessità basterà attivarla e trovare il metodo di calcolo migliore per questo tipo di collisioni

Se oltre al campo gravitazionale fossero presenti alcune forze, come quelle elencate qui

sarà possibile limitare l’effetto di ognuna di esse ricorrendo al pannello Field Weights. Vedremo qualche esempio di forza parlando di Cloth e Sistemi particellari, per i quali troveremo le medesime opzioni Field Weights

Infine è possibile trasformare la mesh dalla sua struttura originale a quella visibile in un qualsiasi fotogramma della dinamica elaborata via Soft Body (ciò vale anche per i corpi Cloth che esamineremo tra poco) semplicemente ponendoci nel fotogramma desiderato e applicando il modificatore che troveremo nel contesto Modifiers delle properties. È anche possibile applicare il modificatore come Shape Key (par. 6.3).

Per esaminare le proprietà fisiche degli oggetti di tipo Cloth ricorreremo all’esempio pratico della realizzazione di una bandiera. Create un piano suddiviso in un numero discreto di facce come nell’immagine in basso, magari aiutandovi con lo strumento Loop Cut and Slide (Ctrl R) per ottenere facce quadrate.

Quindi attivate per esso la dinamica cloth.

Create un Vertex Group per la prima fila verticale di vertici (come evidenziato in rosso nella figura) e disponete la mesh in modo verticale, con i suoi lati più corti paralleli all’asse z. Attivate per il piano la fisica Cloth e nel pannello Shape indicate il gruppo di vertici creato in precedenza nel campo Pin Group (pinning = fissaggio). Avviando l’animazione vedrete la bandiera cadere verso il basso restando fissa nel bordo i cui vertici sono serviti per il Pinning. In questo primo esempio possiamo osservare che l’oggetto non collide con se stesso, cosa che invece accadrebbe nella realtà determinando un moto più complesso della stoffa. Poniamo subito rimedio attivando il pannello Self Collision nel pannello Cloth Collison. Subito noterete una dinamica decisamente più complessa e realistica come visibile nell’immagine (smooth shading e modificatore subsurf).

In assenza di altre forze oltre a quella gravitazionale (ad esempio il vento) la bandiera tende ad aggrovigliarsi su se stessa per poi penzolare.

Nel pannello Cloth, icona

troverete anche dei presets per simulare il comportamento dei seguenti materiali: Cotone, Denim, Pelle, Gomma, Seta; e potrete aggiungerne di altri. Sempre nel pannello cloth è possibile impostare la qualità della simulazione con Quality Steps 1 – 80. Nel pannello Physical Properties troviamo:

  • Mass
  • Air Viscosity, resistenza dell’atmosfera (il moto di questo tipo di oggetto verrà significativamente influenzato da effetti aerodinamici).

Nei pannelli Stiffness (rigidezza):

  • Tension, regola la resistenza del cloth all’allungamento
  • Compression, regola la resistenza alla compressione
  • Shear, rigidezza generale
  • Bending, parametro legato al numero di pieghe che il tessuto formerà nel movimento.

I quattro parametri appena visti compariranno anche nel pannello Damping relativo allo smorzamento del moto elastico del cloth. Nel pannello Collision imposteremo la qualità delle collisioni con un valore che varia da 1 a 20, da alzare nel caso non si riesca ad eliminare alcune imperfezioni del moto. Nel pannello Object Collision abbiamo il parametro Distance, che indica la distanza minima necessaria per considerare collidenti le superfici di diversi oggetti. Troveremo un parametro Distance anche nel pannello Self Collision, che ovviamente riguarda le collisioni tra diverse parti della stessa superficie. Qui potremo anche aumentare o diminuire l’attrito. I pannelli Cache e Field Weights sono analoghi a quelli incontrati per i Soft Body. Anche tutto ciò che riguarda l’interazione e collisione tra diversi cloth e/o tra cloth e rigid body, funziona esattamente allo stesso modo dei soft body.

Completiamo ora l’esempio della bandiera inserendo nella scena altri due elementi. Il primo è l’asta: un semplice cilindro al quale imparenteremo il cloth come figlio.

Vedrete che avviando l’animazione e muovendo il cilindro, il cloth imparentato ad esso si muoverà obbedendo alla relazione padre > figlio, esibendo in tempo reale gli effetti fisici sulla bandiera di tale movimento. Chiaramente potrete dare al cilindro una fisica di tipo rigid body e attivarne il Collision in modo che il cloth possa interagire con esso, oppure se l’animazione non dovesse prevedere contatti, lasciare il cilindro senza alcuna fisica o animarlo tramite keyframes. Lasciamo il cilindro fisso e privo di fisica, dopodiché inseriamo in scena una forza di tipo Wind (dal menù Add>Force Field nell’header della 3D View). L’elemento wind è rappresentato da 3 cerchi e una freccia, rispettivamente flusso e direzione di tale forza, la cui intensità varierà in modo casuale simulando il comportamento di una corrente di vento. Posizionate il wind come in figura tramite i normali manipolatori.

Le dimensioni ristrette dell’oggetto Wind Force ci indicano già che l’effetto non sarà capace di influenzare il movimento della bandiera (che comunque dipende anche dalla massa, dal numero di facce, e dai parametri adottati per il cloth).

A questo punto potete avviare l’animazione e aumentare (anche notevolmente) il valore Strenght (forza) nel contesto Physics relativo all’oggetto Wind, osservando l’effetto in real time.

Paragrafo successivo
Paragrafo precedente

Torna all’Indice


Nell’augurarti un divertente e produttivo studio di Blender, ti ricordo che puoi supportare questo progetto in due diversi modi: con una piccola donazione (paypal) oppure acquistando la versione PDF (su lulu.com) impaginata in modo professionale e ottimizzata per la visione su Tablet.  



>Acquista l’ebook (PDF) su lulu.com in piena sicurezza con paypal e carte prepagate<