The Run-Away

Marvelous Designer

Vestito

L’abito che la protagonista indossa durante la sfilata è stato realizzato con una Cloth Simulation in Marvelous Designer, software che permette la creazione e la simulazione di abiti 3D.

L’abito scelto è un vestito lungo, stretto in vita da una cintura e caratterizzato da una scollatura halter che lascia la schiena nuda.

Workflow

La procedura per la creazione di un abito in MD parte dalla definizione della forma 2D del vestito: prendendo come riferimento la silhouette del personaggio, si creano una serie di poligoni. In particolare, per creare quest’abito, sono stati realizzati separatamente quattro elementi principali: il girocollo, il corpetto, la cintura e la gonna. Per tutti questi elementi la realizzazione è stata simile.

Nella vista 2D, usando l’asse Y come riferimento per la simmetria, abbiamo modellato un poligono della forma desiderata. È stato poi creato il corrispettivo simmetrico e il tutto è stato duplicato per ottenere anche le parti posteriori. In questo modo, ogni elemento si compone di quattro poligoni, due per la parte frontale e due per il retro. Sempre nella vista 2D, con gli strumenti di Sewing, i vari lati sono stati cuciti. Infine, nello spazio 3D, i poligoni sono stati posizionati correttamente in prossimità del corpo. A questo punto abbiamo realizzato una prima simulazione; grazie allo strumento Grab, nella vista 3D, le varie parti del tessuto sono state riposizionate e spostate, per farle muovere correttamente in simulazione. In alcuni casi sono stati necessari degli aggiustamenti direttamente sul modello 2D di partenza.

Modellazione

Il primo elemento a essere stato creato è il girocollo, realizzato semplicemente con dei rettangoli, così come la cintura. Siamo poi passati alla parte di corpetto. In questo caso, a differenza di tutti gli altri elementi, abbiamo modellato dei poligoni diversi per la parte posteriore, in modo tale da lasciare la schiena nuda.

Una volta ottenuta la forma definitiva del corpetto, il modello è stato allungato sull’asse Y (muovendo l’ultima fila di vertici). In questo modo abbiamo “aggiunto” una maggiore quantità di tessuto, così da creare delle pieghe nel momento della cucitura con la cintura.

Per la gonna, infine, sono stati realizzati dei quarti di circonferenza. L’angolo retto è stato trasformato in una curva convessa per poter essere cucito alla cintura. Per creare le pieghe tra la gonna e la cintura abbiamo fatto in modo che i due segmenti da cucire avessero diverse lunghezze: il segmento della cintura è più corto rispetto al segmento della gonna; in questo modo il tessuto si arriccia.

Vestito con sew prima della simulazione
Vestito con sew prima della simulazione

Tessuti

La gonna e il corpetto sono stati realizzati con un tessuto che simula la seta. Abbiamo usato il preset Silk Chiffon, già presente in MD, modificando poi alcuni parametri:

  • Stretch-Weft/Warp, Shear: parametri che regolano la resistenza elastica alla deformazioni verticale, orizzontale e diagonale. I parametri sono stati aumentati per rendere il tessuto meno elastico, così da creare più pieghe.

  • Density: parametro che regola il peso del tessuto per metro quadro. Il parametro è stato abbassato per ottenere un tessuto più leggero e svolazzante.

  • Thickness: parametro che regola lo spessore del tessuto. È stato abbassato.

Parametri Vestito

La cintura e il girocollo invece sono realizzati con un tessuto molto più rigido e meno sensibile alle deformazioni date dai movimenti. In questo caso il preset di partenza è stato Cotton – Heavy – Twill. I parametri modificati sono:

  • Density: aumentata, per creare un tessuto più pesante.

  • Thickness: aumentata, per creare un tessuto più spesso.

Parametri Colletto

Steam

Attraverso gli strumenti di Steam, è stato possibile restringere e allungare parti di tessuto come se l’abito venisse stirato con un ferro a vapore. Abbiamo usato lo Stream Brush con un valore negativo (restrizione del tessuto) in prossimità delle cuciture tra corpetto e girocollo, così da restringere l’abito e renderlo più aderente al corpo.

Per le cuciture tra corpetto e fascia, invece, abbiamo usato valori positivi, in modo da allargare il tessuto del corpetto e simulare meglio l’effetto della cintura.

Tack on avatar

A questo punto, per perfezionare l’effetto della cintura, questa è stata fissata al body attraverso il Tack on avatar, che permette di fissare parti di tessuto al personaggio. Attraverso questo strumento, sul tessuto viene creato un vertice che viene collegato a un punto sul body.

Creando più vertici sulla cintura, siamo riusciti a renderla aderente al body e tenerla fissa sulla vita del personaggio. In questo modo la cintura sembra stringere sia il tessuto del corpetto sia quello della gonna.

Vestito Finito

Simulazione

Per ottenere una buona simulazione statica, il parametro principale che abbiamo regolato è stata la Particle Distance, valore che regola la distanza media tra i punti interni che compongono l’indumento. Più è bassa e più i punti sono vicini tra loro. Questo permette di ottenere simulazioni più accurate ma aumenta i tempi di calcolo.

Abbiamo cercato di bilanciare i due aspetti, diminuendo la Particle Distance in modo adeguato: partendo da un valore di default di 20 (mm), il tessuto della gonna è stato portato a 12 mm, il corpetto a 8, mentre cintura e girocollo a 10.

L’animazione è stata registrata/ripresa usando il preset di Marvelous Designer, Animation (stable) che, avendo un alto livello di simulation quality, permette di ottenere una buona simulazione anche durante i movimenti.

Guanti

I guanti sono stati realizzati in un file separato rispetto a quello del vestito, esclusivamente per poter diminuire lo Skin Offset del personaggio, da 3 mm (valore di default usato anche per il vestito) a 1,5 mm.

Si tratta di un parametro che regola la distanza tra la superficie del body e il tessuto; questa distanza vale per l’intero corpo e non è possibile assegnare diversi offset. Avevamo bisogno di un guanto molto aderente al braccio e 3 mm di offset erano esagerati. Dall’altro lato però, 1,5 mm di skin offset per il vestito era un valore troppo basso che ci portava ad avere un vestito molto aderente, e l’effetto non era quello cercato; per questo abbiamo scelto di separare guanti e vestito.

La procedura di creazione è uguale a quella illustrata per il vestito: partendo dalla vista 2D abbiamo creato la parte frontale del guanto, cercando di restare aderenti in determinati punti (dita, polso e gomito). Sull’avanbraccio, invece, abbiamo lasciato più spazio, così da creare delle pieghe. Il poligono è stato poi duplicato per creare la parte posteriore e le due mesh cucite.

Il tessuto usato è lo stesso del vestito. Abbiamo impostato una Particle Distance molto bassa (3mm), perché trattandosi di un indumento molto aderente volevamo un effetto preciso.

Cartamodello Guanti
Cartamodello Guanti

Da MD a Blender

Una volta che entrambe le animazioni sono state registrate correttamente, per utilizzarle in Blender sono stati esportati i due capi nel formato alembic (OGAWA). Abbiamo regolato la scala di esportazione (m) e abbiamo esportato i capi in modalità Weld. In questo modo, le cuciture sono diventate effettive e hanno dato vita a un unico poligono. Una volta aperti in Blender, gli indumenti sono rimasti perfettamente parentati al body rispetto al quale sono stati creati.

Shading in Blender

Per lo Shading del vestito abbiamo utilizzato dei materiali procedurali scaricati da Blender Kit. La gonna è in seta e i guanti in tulle.

I brillantini utilizzati per il girocollo e la cintura, invece, sono stati creati a partire dal nodo Voronoi Texture stilizzato poi grazie a un Color Ramp.

Dettaglio dell'abito
Dettaglio dell'abito e dei materiali

Cloth Sim in Blender

Inizialmente, il vestito era stato creato in Blender, sfruttando la Cloth Simulation del software. L’abito ottenuto era simile a quello che è poi stato creato in Marvelous Designer anche se la qualità era inferiore. Il motivo principale per cui abbiamo deciso di cambiare software è stata la difficoltà nel parentare gli indumenti al corpo durante la fase di animazione. Utilizzando il comando Parent to bone, l’abito seguiva correttamente il body per tutta la durata dell’animazione, ma nelle parti in cui avrebbe dovuto essere più aderente al corpo (cintura e girocollo principalmente) la collision non veniva calcolata correttamente e il vestito penetrava il body.

Lo stesso discorso vale soprattutto per i guanti, particolarmente aderenti, che in nessun modo siamo riusciti a simulare in modo soddisfacente all’interno di Blender. Proprio per questo abbiamo deciso di spostarci in Marvelous Designer. Visto il buon risultato ottenuto con i guanti, abbiamo deciso di sfruttare il software anche per il vestito, rimodellandolo da capo.

Confronto Blender e MD
Blender (sinistra) e Marvelous Designer (destra)

Rigid Body Sims

Manette

Per le manette nella scena della prigione si è deciso di sperimentare con le Rigid Body Simulation. Ogni anello è stato impostato come Active, con una massa di 0.1kg. Siccome gli anelli hanno una geometria relativamente complessa e si devono intersecare gli uni con gli altri la Collision Shape è stata impostata come mesh.

Il problema più grande di queste simulazioni è il Margin che ogni oggetto deve avere. Utilizzando le manette di dimensioni reali, questo margin, per far sì che gli anelli non si compenetrassero, avrebbe dovuto essere impostato al minimo, quindi a qualche frazione di millimetro. Tuttavia, con questa impostazione Blender non riesce a gestire correttamente le collisioni, risultando in una simulazione rotta.

Per risolvere siamo stati costretti ad aumentare drasticamente la dimensione delle manette (di 10 volte per la precisione) e di conseguenza del personaggio. Con un Margin di 2cm la simulazione risulta molto stabile.

Settings delle manette

Per permettere l’interazione tra il polso e le manette sono state modellate due semplici strutture costituite da cilindri di tipo passive, parentati alle ossa dell’avambraccio, e un piano per evitare che la catena compenetrasse con il corpo.

Settings delle manette

Abbiamo scalato i modelli per via del modo in cui Blender gestisce le simulazioni rigide ma questo ha comportato ulteriori complicazioni. Rispetto alle altre simulazioni, le Rigid Body dipendono dalla dimensione della scena in cui si trovano. Dunque ci era impossibile linkare il personaggio ingrandito con le manette funzionanti nella scena della prigione a dimensioni normali e ri-scalarlo alla grandezza originaria, cosa possibile con qualsiasi altro tipo di simulazione. Perciò siamo stati costretti a effettuare l’operazione inversa, ovvero ingrandire di 10 volte anche la prigione.

Il risultato finale è assolutamente soddisfacente, ma abbiamo scoperto una grave limitazione del software.

Giornali

Per i giornali all’inizio del corto è stato utilizzato un tipico metodo alla Ian Hubert: un insieme di piani, su cui è stata proiettata la texture di un giornale, sono stati suddivisi e gli è stata assegnata una Soft Body Simulation. I piani vengono spinti da un elemento Wind e un elemento Turbolence. Il pavimento e i palazzi sono stati impostati come Collison.

Link

Progetto realizzato da
Sofia Bonfanti
Alessio Brioschi
Olivia Manara

Corso di Computer Animation
Docenti Edie Miglio e Francesco Cattoglio
A.A. 2021/2022
Design della Comunicazione, Politecnico di Milano