DISTRUGGERE DELLE COLONNE IN XSI

Guardando il video tutorial di Michele71 mi sono chiesto come poter realizzare una scena simile con i Rigid Body (RB) in XSI. Inizio ponendo un parallelepipedo rendendolo "Passive RB" e una forza di gravità.

distruggere delle colonne in xsi 857208 001

Modello la prima colonna, la rendo un "Active RB", premo "Play" in modo tale che grazie alla forza di gravità si posizioni perfettamente sul piano d'appoggio; una volta trovata la posizione corretta della colonna sul piano clicco su "Simulate -> Modify -> RB -> Set Initial State", oppure dallo stesso menù posso direttamente togliere la qualità di RB con "Remove RB".

distruggere delle colonne in xsi 857208 002

Copio la colonna ancora intera e la sposto lungo l'asse X.

distruggere delle colonne in xsi 857208 003

Modello ora il mio proiettile, lo trasformo in "Active RB" e nel tab "Dynamics Initial State" modifico la velocità lineare lungo l'asse X per farlo muovere verso le colonne e la velocità angolare sull'asse Z per farlo ruotare su se stesso.

distruggere delle colonne in xsi 857208 004

Per fare meglio i test sulla traiettoria, ma mi servirà anche in seguito per controllare la distruzione delle colonne, ho selezionato l'opzione "Caching" in "Simulate -> Modify -> RB -> Edit Simulation Properties"; con questa opzione attivata potrò controllare la traiettoria frame per frame. Come è possibile notare dalle 3 immagini seguenti per ora il proiettile attraversa le colonne senza produrre nessun effetto perché, dopo averle posizionate, ho applicato alle colonne il "Remove RB".

distruggere delle colonne in xsi 857208 005

distruggere delle colonne in xsi 857208 006

distruggere delle colonne in xsi 857208 007

Una volta impostata la traiettoria e individuati i frame di contatto tra il proiettile e le colonne (nel mio caso sono i frame 4/5/6/7), bisogna  frammentare le colonne. Per fare questo nel menù a sinistra c'è il tool "Model -> Create -> Poly.Mesh -> Shatter", in base alle impostazioni del numero di frammenti/distanza/rotazione del piano potrete ottenere effetti diversi di frammentazione del vostro oggetto; ora se guardo nell'Explorer in scena ho le 3 colonne intere nascoste e le tre colonne frammentate composte da oggetti diversi.

distruggere delle colonne in xsi 857208 008

distruggere delle colonne in xsi 857208 009

Ora vado a animare la visibilità in viewport e in render delle colonne intere: mi posiziono al frame immediatamente prima del contatto tra la prima colonna e il proiettile e seleziono le key relative al "View Visibility" e "Render Visibility"della prima colonna, mi posiziono al frame successivo, nascondo la colonna (sia in viewport che in render) e seleziono di nuovo le key,ripeto gli stessi step nei frame successivi per le altre 2 colonne in modo tale che al passaggio del proiettile le colonne intere scompaiono.

distruggere delle colonne in xsi 857208 010

distruggere delle colonne in xsi 857208 011

Il passo successivo è similare al precedente, ma con l'effetto inverso: le colonne frammentate dovranno rimanere invisibili (in viewport e in render) fino al momento del contatto e poi apparire prendendo quindi il posto di quelle intere via via che il proiettile le attraversa. Seleziono tutti frammenti della prima colonna, mi posiziono al frame in cui il proiettile sta per sbatterci contro, li rendo invisibili e clicco sulle key corrispondenti, mi posiziono al frame successivo, rendo i frammenti visibili e clicco di nuovo sulle key corrispondenti, quindi ripeto gli stessi step x le altre 2 colonne frammentate.

distruggere delle colonne in xsi 857208 012

distruggere delle colonne in xsi 857208 013

A questo punto se clicco su "Play" al passaggio del proiettile le colonne si frammentano, ma i frammenti rimangono tutti al loro posto e quindi non avrò effetti visibili se non una sfera che attraversa dei cilindri :D Perché la mia sfera che è un "Active RB" interagisca con i frammenti delle colonne, anche questi ultimi dovranno essere dei RB ;)

Il problema che si presenta ora è la scelta tra "Passive" e "Active", se fossero degli "Active RB" i frammenti inizierebbero a cadere sul piano già dal primo frame; quindi la soluzione è quella di rendere tutti i frammenti dei "Passivi RB" e animare questo parametro nel momento del contatto (in maniera simile a quanto fatto per i parametri di visibilità). Naturalmente il procedimento è da ripetere per tutte e 3 le colonne

distruggere delle colonne in xsi 857208 014

distruggere delle colonne in xsi 857208 015

Ora è tutto pronto per mandare la simulazione, ma tra il frame 8 e il 9 della simulazione mi accorgo di un problema non indifferente! Il mio proiettile ha poca velocità e poca massa per poter buttare giù la prima colonna e passarle attraverso, la seconda colonna viene danneggiata dai frammenti della prima e la terza invece sembra venir giù per solidarietà con le altre 2 :D ... Se andassi a modificare ora uno dei 2 parametri (velocità/massa) della sfera mi cambierebbe il punto e il momento di impatto, sarei costretto a rivedere molte cose della simulaizone e delle animazioni finora create.

distruggere delle colonne in xsi 857208 016

Una possibile soluzione è quella di rendere la sfera un "Passive RB" che segue una traiettoria impostata dall'animazione, Il primo passo è quello di disattivare i RB che si frappongono al proiettile: seleziono tutti i frammenti e seleziono l'opzione "Mute" nel pannello "Dynamics" tab "RB properties".

distruggere delle colonne in xsi 857208 017

Di nuovo sono tornato alla simulazione di partenza per cui la mia sfera attraversa senza effetti visibili le colonne. Seleziono la sfera e clicco nel menù a sinistra "Animate -> Tools -> Plot -> All Trasformations"; Ora la sfera fa lo stesso movimento di prima ma non più come RB con una velocità lineare e una angolare, ma come un oggetto a cui sono stati animati i valori di posizione e rotazione (come si può vedere nel "Animation Editor")

distruggere delle colonne in xsi 857208 018

distruggere delle colonne in xsi 857208 019

Ora non mi resta che riattivare le proprietà di RB ai frammenti (deselezionando l'opzione "Mute"), far diventare il proiettile un "Passive RB" e premere "Play"

distruggere delle colonne in xsi 857208 020


---
Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui