REACTOR. CORPI DEFORMABILI: CLOTH e DEFORMABLE MESH.
![]()
II
corpi deformabili sono quelli che variano la propia geometria al passare del
tempo, durante la simulazione.
In generale occorre prima creare la mesh o la spline che definisce la forma
base dell'oggetto, poi applicare un modificatore speciale. Successivamete è
possibile definire ulteriori propietà fisiche per questi oggetti.
Esistono
4 oggetti deformabili in Reactor:
- Cloth: tessuto (mesh bidimensionale deformabile)
- Soft Body: mesh chiusa deformabile.
- Rope: corda (catena di vertici unidimensionale deformabile)
- Deforming Mesh: mesh deformabile i cui vertici sono stati già animati.
Come i corpi rigidi, i corpi defomabili devono essere inseriti in un Collector per essere considerati nella simulazione. i corpi deformabili hanno ognuno un propio Collector, quindi non occorre inserirli nel RBCollector, che è dedicato infatti alla gestione dei corpi rigidi.
Possono essere stabiliti dei vincoli per limitare il loro movimento.
Questi corpi sono più complessi rispetto ai corpi rigidi, quindi il tempo
di simulazione per questi è maggiore.
CLOTH.
![]()
Crea unoggetto mesh che rappresenta il telo di stoffa. La segmentazione influisce sul comportamento del tessuto: tenderà a piegarsi lungo segmenti contigui (comportamento anisotropico), oppure si allungherà maggiormente se la mesh è maggiormente segmentata. La soluzione migliore è realizzare una topologia a trinagoli (triangolazione Delaunay), in modo che il tessuto si comporta nello stesso modo in tutte le direzioni (comportamento isotropico).
Creiamo
nella scena un pezzo di stoffa con un piano e un ClothCollector.
Per
potere rendere il piano valido per il ClothCollector occorre aggiungere un modificatore
ReactorCloth.
I
parametri del ClothCollector sono questi:

INTERNAL
STEPS.
Popihè i corpi deformabili sono più complessi da simulare, in
genere è necessario aggiungere dei passi di simulazione in più
per aumentare la stabilità del sistema. Gli Internal Steps indicano quanti
passi ulteriori di simulazoine vengono calcolati per ongi SubStep ordinario
di simulazione.
La precisione della simulazione in generale è definita dal numero di
SubSteps, mentre quella riguardanti gli oggetti appartenenti al ClothCollector
hanno una precisione di simulazione definita da SubSteps x Internal Steps.
Il
piano, dato che dovrà deformarsi come un tessuto, dovrà essere
sufficientemente segmentato. Conviene distribuire una segmentazione con un pattern
il meno regolare possibile. A volte però saremo costretti a tenerci la
segmentazione quadrangolare della superficie. Niente paura: il tessuto si comporterà
in maniera decorosa ugualmente.
A qualcuno potrebbe venire in mente di applicare un modificatore Tessellate
prima del ReactorCloth.
Be',
questo metodo rende instabile il sistema. Il metodo migliore è creare
una superficie NURBS e segmentarla utilizzando il metodo Delaunay, che sparpaglia
dei triangoli sulla superficie.
Per realizzare questo si fa così:
- Crea la superficie NURBS.

Vai
al pannello Modify e apri la tendina Surface Approximation.
Clicca
su Advanced Propeties e nella finestra che si apre scegli la voce Delaunay.
A
questo punto la superficie cambia tipo di segmentazione.
Certo,
per come stiamo messi questo pezzo di stoffa si comporta più o meno come
una tavola di legno. Aumentiamo la segmentazione riducendo il parametro Edge.

Questa è la migliore superficie che si possa utilizzare per simulare tessuti. Tuttavia si possono ottenere buoni risultati anche con le segmentazioni quadrangolari a cui siamo più abituati.
Teniamoci
il piano segmentato così:
Creiamo
la simulazione di un tessuto che scivola sopra a una sfera e cade su un piano.
La sfera e il piano devono essere associati a un RBCollector, mentre il piano
del tessuto a un CCollector.
I
parametri del ReactorCloth sono questi:
MASS.
Massa della stoffa. influenza le collisioni con gli altri oggetti e il suo allungamento
(all'aumentare di Mass l'allungamento possibile si riduce).
FRICTION.
Coefficiente di frizione della superfici del tessuto. Al diminuire del valore
il tessuto scivola meglio sopra la superfici.
REL
DENSITY.
Questo parametro definisce la densità del tessuto (1= densità
dell'acqua). Il parametro è utile se il tessuto viene fatto galleggiare
o affondare nell'acqua.
AIR
RESISTANCE.
Resistenza dell'aria. E' un indice della quantità di energia che il tesuto
perde mentre si muove.
SIMPLE
FORCE MODEL.
Modello standard di simulazione delle forze che agiscono sul tessuto.
STIFFNESS.
Rigidità del tessuto.
DAMPING.
Indica quanto velocemente il tessuto dissipa energia mentre cambia forma.
COMPLEX
FORCE MODEL.
Modello più accurato per la simulazione del tessuto.
STRETCH.
Resistenza all'allungamento.
BEND.
Resistenza al piegamento.
SHEAR.
Resistenza allo strappo.
DAMPING.
Indica quanto velocemente il tessuto dissipa energia mentre cambia forma.
FOLD
STIFFNESS.
Resistenza alla formazione di pieghe.
UNIFORM
MODEL.
Aggiunge pieghe uniformemente su tutta la superficie del modello, indipendentemente
dalla topologia.
SPATIAL
MODEL.
E' un modello più accurato per il calcolo delle pieghe. Si utilizza quando
si utilizzano pezzi di stoffa complessi, come vestiti.
STIFFNESS.
Rigidità dela piega.
DISTANCE.
Grado di rigidità delle pieghe per unità di area.
SPREAD
ANGLE.
Indica la quantità di pieghe da aggiungere alle zone del tessuto non
piatte considerando l'angolo formato dalle normali dei poligoni adiacenti. Se
il valore è 0 il Fold Stiffness è applicato solo alle parti piatte
del tessuto.
SPLIT
ANGLE.
Indica la concentrazione di rigidità lungo i segmenti della mesh.
AVOID
SELF-INTERSECTIONS.
Il tessuto non si interseca con se stesso durante la simulazione.
CONSTRAIN
DEFORMATION.
Limite all'allungamento del tessuto.
START
WITH CURRENT STATE.
Il tessuto inizia la simulazione usando lo stato corrente. Per fare in modo
che lo stato corrente diventi quello iniziale questa è la procedura:
- Aprire la finestra Preview Window e avviare la simulazione fino al punto in
cui si desidera avere lo stato iniziale.

- Va qui:
A questo punto il frame corrente su cui ci si trova (generalmente 0) viene aggiornato a questo stato della simulazione nella vista di Max, e la simulazione può essere fatta partire di nuovo, cominciando da qui.
CLEAR
KEYFRAMES.
Le chiavi di animazione del tessuto vengon memorizzate a parte, e non insieme
alle restanti chiavi di simulazione. Per cancellarle utilizza questo comando.
USE
SOFT SELECTION.
Permette di utilizzare il Soft Selection per smussare la transizione tra i vertici
keyframed e quelli simulati. Lo tratteremo più avanti.
CONSTRAINTS.
In questa tendina si trovano i parametri per definire dei vincoli sul tessuto.

Quando
si lavora con i corpi deformabili occorre specificare i vertici della superficie
che si desiderano vincolare; i tipi di vincoli applicabili sono i 4 qui sopra.
I corpi deformabili possono essere vincolati soltanto a punti nello spazio World,
a corpi rigidi o a Deforming Mesh (le vediamo dopo). Esiste però una
scappatoia:
-
Simulare un pezzo di stoffa.
- Dopo il completamento della simulazione, rimuove la stoffa dal CCollector
e aggiungerlo a un DeformingMesh Collector (vediamo dopo cos'è). A questo
punto è possibile attaccare un altro corpo deformabile al primo pezzo
di stoffa.
Vediamo come funzionano i 4 tipi di vincoli.
FIX
VERTICES.
Fissa i vertici selezionati nella loro posizione corrente.
KEYFRAME
VERTICES.
Il voncoo permette ai vertici selezionati di seguire la loro animazione corrente
in 3DStudio, trascurando la simulazione.
ATTACH
TO RIGID BODY.
I vertici selezionati vengono linkati a un corpo rigido.
ATTACH
TO DEFMESH
I vertici selezionati seguono una Deforming Mesh.
I
veritici di interesse devono essere selezionati a questo livello:
Dopo avere effettuato la selezione si può uscire dal livello Vertex: questa resterà memorizzata e i vincoli si applicheranno ad essa.
Caso di vincolo Keyframe Vertices:
Definiamo
una animazione del pezzo di stoffa prima della simulazione.
Selezioniamo
i vertici di interesse e applichiamo il vincolo Keyframe Vertices. In questo
caso i vertici selezionati seguono l'animazione 3dsmax, mentre i restanti fanno
riferimento soltanto alla simulazione.
![]()
Caso di vincolo Attach To Rigid Body:
Definiamo
nella scena un corpo rigido a cui attaccare il pezzo di stoffa.
Al
corpo rigido è assegnata Mass= 0 e una animazione predefinita che lo
sposta orizzontalmente.
Scendiamo al livello Vertex (senza ancora selezionare i vertici) e applichiamo
un vincolo Attach To Rigid Body.
Sopra
apparirà in alto questa tendina:
Con il pulsante NONE si seleziona il corpo rigido a cui linkare la selezione di vertici. Ricordati di uscire prima dal livello Vertex altrimenti perderai la selezoine creata.
DO
NOT AFFECT RIGID BODY.
Quando è attivo il corpo defomabile linkato non influenza il comportamento
del corpo rigido. Quindi i vertici seguiranno il corpo rigido ma nessuna forza
sarà applicata a questo.
IGNORE
COLLISIONS.
Attivala per trascurare le collisioni fra il corpo rigido e quello deformabile.
Seleziona
i vertici da vincolare.
Esci
dal livello Vertex e avvia la simulazione.
ATTENZIONE!!
Il corpo rigido deve avere attivata l'opzione UNYELDING nella tendina Properties
del Reactor.
In
questo modo verrà considerato nella simulazione mantenendo però
la sua animazione 3dsmax.
![]()
Non
occorre invece attivarla nel caso in cui desideriamo che il corpo rigido venga
sottoposto alla simulazione al 100%.
![]()
OGGETTI DEFORMABLE MESH.
![]()
Indtroduciamo gli oggetti Deformable Mesh analizzando il caso del vincolo Attach to DefMesh per gli oggetti Cloth.
Uan Deforming Mesh è una mesh i cui vertici sono già animati. E' ilc aso di un modelloche simuove in base all'animazione dello scheletro cui è attaccato tramite un modificatore Skin oppure Physique.
Le Deforming Mesh non vengon influenzate dalla collisioni con gli altri oggetti Reactor, mentre invece questi risentono della collisione con la Deforming Mesh. Quindi un omino con un vestito nonsi accorge del vestito.....ma il vestito si accorge dell'omino!
Le eforming Mesh non hanno bisogno di avere assegnati dei modificatori reactor particolari o delle propietà fisiche; basta inserire la mesh deformabile all'interno di un Deforming Mesh Collector per considerarla nella simulazione. Essa continuerà a muoversi in base alla sua animazione preesistente.
Per gli oggetti Cloth il vincolo Attach To DefMesh costringe i vertici a seguire la superficie di un corpo deformabile (es.: personaggio con applicato un modificatore Physique o Skin). Si utilizza soprattutto per simulare vestiti.
Seleziona
i vertici e imposta il vicolo. Selezionandolo in alto apparirà questa
tendina:
Da qui si seleziona la mesh che si deforma.
Durante la simulazione i vertici vincolati saranno costretti a mantenere la loro posizione relativa alla superficie della mesh.
Ad
esempio creiamo un cilindro animato tramite uno scheletro, e mettiamo intorno
al cilindro una gonnella, creata tramite l'estrusione di un cerchio.
Nel
tempo pieghiamo il cilindro così:

A
questo punto il cilindro deve essere gestito, durante la simulazione, dal Deformable
Mesh Collector. Pre crearlo vai qui:

I
suoi parametri sono più o meno come quelli degli altri Collector:
FREEZE.
Quando è attivo la mesh deformante resta immobile durante la simulazione.
E' utile ad esempio per adattare vestiti intorno al modello dalla Preview Window,
prima di usare il comando Update Max.
Applichiamo
un ReactorCloth alla gonna e impostiamo un vincolo DeformableMesh, scegliendo
come mesh deformabile il cilindro appunto.
I vertici vincolati sono questi:
I
vertici selezionati si muoveranno rigidamente con la superficie, mentre gli
altri si adatteranno in base alla collisione tessuto/cilindro.
In
generale è possibile scendere al livello Vertex e selezionare differenti
insiemi di vertici. Per ognuno di questi insiemi si può definire un vincolo
differente. Si ottiene un errore si si prova a vincolare uno stesso vertice
utilizzando due vincoli differenti.

![]()
Torniamo alla questione del comando USE SOFT SELECTION.
I vincoli applicati ai corpi deformabili specificano quali vertici del corpo devono seguire una animazione specificata, mentre il resto della superficie possiede una animazione completamente simulata. A volte però si nota il confine tra queste zona con animazione vincolata e quelle con animazione simulata; per risolvere questo esiste il parametro Use Soft Selection, che permette di smussare la transizione fra queste zone.
Ad
esempio riprendiamo il cilindro con la gonnella: il cilindro si piega e i vertici
in cima alla gonnella seguono la superficie. In quesot caso la simulazione non
produce una superficie in qui si nota un confine netto fra le due superifi vincolata
e simulata, ma vediamo ugualmente per questo caso come funziona il Soft Selection.

Applichiamo
al cloth un modificatore MeshSelect PRIMA del modificaotre ReactorCloth.
Scendi
al livello Vertex e seleziona i vertici simulati al 100%, cioè che non
risentiranno dei vincoli stabiliti nella tendina Constraints.
Attiva
il SoftSelection e stabilisci il gradiente.
Poi
attiva l'opzione USE SOFT SELECTION fra i parametri del ReactorCloth.
Non
occorre ridefinire la simulazione. I vertici rossi seguiranno la simulazione
già definita al 100%, mentre quelli nel gradiente la seguiranno in percentuale
minore. Quelli blu invece rimarranno nella loro posizione originale.
Con
Use Soft Selection disattivo, anche se rimane la selezione di vertici al livello
Mesh Select il cloth si comporta come se questa non esistesse.
La
famosa smussatura fra le due zone di cui parlavamo prima ovviamente nonla otteniamo
così. Occorrerà selezionare come rossi i vertici già vincolati
e regolare il gradiente del Soft Selection.

![]()