In questo tutorial vedremo come riempire un contenitore con degli oggetti sfruttando la simulazione Rigid Body di Blender.



Trascrizione del video

Salve a tutti!

In questo tutorial vedremo come riempire un contenitore con degli oggetti sfruttando la simulazione Rigid Body di Blender.

Sto registrando questo tutorial con la versione 3.3 di Blender e, per mostrarvi un esempio pratico, utilizzerò uno dei miei assets, ma non è necessario averlo: potete guardare il tutorial ed imparare anche senza quel particolare modello! L'importante è comprendere la tecnica, che può rivelarsi utile per posizionare molti oggetti in maniera casuale ma credibile, non solo all'interno di contenitori ma anche su superfici: i princìpi sono gli stessi e potrete applicarli a pillole, caramelle, monete d'oro o altro ancora!

Il modello 3D che sto utilizzando è composto, in realtà, da più oggetti, imparentati tra loro.

Il coperchio non ci serve, per cui possiamo nasconderlo o rimuoverlo, come sto facendo io.

Abbiamo quindi 3 oggetti: il contenitore, l'etichetta e un oggetto che rappresenta, in realtà, tutte le pillole presenti, che sono state quindi fuse in un unico oggetto; possiamo esaminarle meglio nascondendo temporaneamente il contenitore e l'etichetta.

Per realizzare la simulazione dobbiamo isolare una pillola e fornirle un componente fisico di tipo Rigid Body, per poi duplicare il prototipo della pillola ed avviare la simulazione della caduta.

Con l'oggetto Pills selezionato, quindi, passo in modalità Edit, quindi seleziono una pillola: operazione che effettuo posizionando il mouse su un vertice di una pillola e premendo, successivamente, L, per "Linked", così da selezionare tutti gli elementi collegati a quello vicino al cursore del mouse.

Inverto quindi la selezione ed elimino tutte le altre pillole con X e Vertices.

Tornando in modalità Object, noto che l'Origin dell'oggetto "Pills" non è posizionata al centro dell'unica pillola superstite; rimedio subito con click destro e Set Origin e Origin to Geometry.

Mi assicuro inoltre che le trasformazioni di scala siano applicate: è facile verificarlo, in quanto i valori di Scale XYZ dell'oggetto, nella scheda Transform, valgono tutte 1, per cui qui non dobbiamo fare altro (altrimenti avremmo dovuto applicarle con CTRL+A e Apply Scale).

Adesso rendo nuovamente visibile il contenitore perché voglio verificare che la pillola sia posizionata in modo tale da poter passare attraverso l'apertura del contenitore, in quanto cercherò di far cadere le pillole al suo interno, dall'alto.

In effetti, in questa posizione la pillola non può cadere all'interno del contenitore, per cui la sposto manualmente in modo da posizionarla, nella vista superiore, all'interno dell'apertura.

La linea tratteggiata che collega la pillola al contenitore indica che la pillola è figlia del contenitore; ciò potrebbe costituire un problema, con le copie della pillola e la simulazione fisica, per cui scollego i due oggetti, mantenendo comunque la posizione e le altre caratteristiche della pillola, in questo modo: seleziono la pillola, premo ALT+P e scelgo Clear and keep transform dal menù Clear Parent.

La pillola è ora un oggetto separato.

Prima di realizzarne le copie, devo fornire alla pillola il componente di simulazione Rigid Body, così da ritrovarlo già pronto nelle copie che realizzerò in seguito.

Il Rigid Body va aggiunto semplicemente cliccando su Rigid Body nella scheda Physics Properties, come ho appena mostrato.

Il Rigid Body appena creato sarà, di default, di tipo Active; ciò va benissimo, perché l'oggetto deve reagire alla gravità.

Per osservare, già in questo momento, la simulazione fisica, portiamo il frame dell'animazione a 1, nella Timeline, quindi premiamo Play: la pillola cade e attraversa il contenitore, in quanto questo non fa ancora parte della simulazione fisica della scena.

Per far sì che il contenitore raccolga la pillola, dobbiamo fornirgli un componente Rigid Body, come fatto per la pillola, ma questa volta dobbiamo cambiarne subito il tipo in Passive, perché non deve cadere nel vuoto, ma limitarsi ad interagire con gli altri oggetti.

Per avviare la simulazione fisica con le modifiche appena impostate, dobbiamo tornare al primo fotogramma dell'animazione, nella Timeline, e cliccare nuovamente sul pulsante Play.

Notiamo subito che la pillola cade e, in un certo senso, interagisce con il contenitore, ma in un modo che non ci aspettavamo: si blocca sull'apertura, sospesa nel vuoto, come se l'apertura fosse chiusa.

Ciò è dovuto al fatto che la forma utilizzata da Blender per calcolare le collisioni del contenitore, nella scheda del Rigid Body, è quella di default, ossia Convex Hull: una scatola chiusa, utilizzata per semplificare i calcoli del motore della simulazione fisica.

Per risolvere questo problema, cambio il valore del parametro Shape da Convex Hull a Mesh: Blender adesso approssimerà la forma delle collisioni a quella del contenitore.

Come potete intuire, questa modalità è piuttosto avida di risorse di calcolo e andrebbe usata con parsimonia; in questo caso, la scena non è molto complessa, per cui va bene, ma in altre situazioni potrete valutare se utilizzare le altre opzioni disponibili nel menù Shape del Rigid Body.

Per quanto riguarda la pillola è possibile scegliere, ad esempio, la forma Capsule, che la approssima molto bene... ad ogni modo, qui sto lasciando l'opzione di default, ovvero Convex Hull.

Torniamo quindi al primo frame della Timeline, clicchiamo su Play e diamo un'occhiata al risultato: questa volta la pillola cade all'interno del contenitore e rimbalza un paio di volte sul fondo, prima di fermarsi.

Da notare che la simulazione inizia a rallentare nel momento in cui la pillola tocca il fondo del contenitore: ciò è dovuto appunto al fatto che Blender sta calcolando le collisioni.

Quando aggiungeremo le altre pillole, la simulazione procederà molto più lentamente, in quanto aumenteranno, ovviamente, i calcoli da effettuare.

Torniamo al primo frame della simulazione.

Vogliamo ottenere una serie di pillole, poste una sopra l'altra, da far cadere all'interno del contenitore, lasciando a Blender il compito di far arrivare tutte le varie pillole ad una posizione finale, dopo aver calcolato le collisioni con le pareti del contenitore e tra una pillola e l'altra.

Ottenere le varie copie della pillola è, in realtà, piuttosto semplice: è sufficiente aggiungere un modificatore Array alla pillola, impostando l'offset a 0 per gli assi X e Y ed impostandolo invece a 2 per l'asse Z relativo.

Non ho idea di quante pillole possano entrare nel contenitore (non le ho contate, all'inizio del video), per cui proverò con 40 pillole, digitando questo numero nel parametro Count del modificatore Array.

Non possiamo applicare la simulazione adesso, perché questo è ancora un modificatore, che non è stato ancora applicato, per cui tutte le pillole sono ancora istanze, non oggetti separati.

Applico quindi il modificatore cliccando su Apply, nella sua scheda.

Le pillole fanno ancora parte di un unico oggetto, comunque: si tratta di geometrie che dobbiamo rendere indipendenti.

È sufficiente, a tal proposito, passare in Edit Mode, selezionare tutte le geometrie presenti, premere P e scegliere By loose parts nel menù Separate che apparirà a video.

In questo modo, come suggerisce il tooltip, otterremo un oggetto per ciascuna isola, ossia per ciascuna geometria separata.

Torniamo in Object mode e notiamo che tutte le nuove pillole sono, in effetti, oggetti separati, come è visibile anche nell'Outliner.

Questi oggetti sono tutti provvisti del componente Rigid Body così come l'abbiamo impostato per la prima pillola, la quale ha quindi fatto da prototipo per tutte le altre...

… tuttavia, possiamo notare anche che l'Origin di ciascuna copia è rimasta lì dove si trovava l'Origin della prima pillola!

Questo problema può essere risolto facilmente, comunque: selezioniamo una delle copie (per renderla oggetto attivo), dopodiché selezioniamo tutte le altre copie (io lo sto facendo con il tasto B e il mouse), facciamo click destro sulla selezione e scegliamo Set Origin e Origin to Geometry dal menù Object Context che apparirà a video.

Adesso tutte le pillole sono oggetti separati, con le Origins impostate correttamente, e sono tutte provviste del componente Rigid Body correttamente impostato.

Possiamo quindi posizionarci al primo frame della Timeline e avviare la simulazione cliccando sul pulsante Play.

La simulazione, in questo caso, richiederà diversi minuti, per cui vi mostro subito il risultato.

In effetti, forse 40 pillole erano poche, per questo contenitore!

Ad ogni modo, possiamo dare un'occhiata alla disposizione delle pillole interrompendo in vari momenti la riproduzione dell'animazione.

Andiamo all'ultimo frame dell'animazione e nascondiamo temporaneamente il contenitore e l'etichetta: le pillole si trovano in una posizione di riposo plausibile (senza spazi vuoti e senza compenetrazioni), per cui i frame dell'animazione sono sufficienti per ottenere un buon risultato.

L'animazione è interessante, ma il tutorial non è ancora concluso: se volessimo esportare il risultato di questa simulazione fisica, con le pillole disposte all'interno del contenitore così come si trovano all'ultimo frame dell'animazione, dovremmo rendere permanente, in qualche modo, la simulazione fisica.

Questa operazione NON va fatta rimuovendo il componente Rigid Body dalla scheda Physics delle pillole e non va fatta nemmeno fondendo le pillole tra di loro o con il contenitore: queste operazioni ci farebbero perdere la simulazione fisica e dovremmo rifarla da capo!

Posizioniamoci invece al fotogramma che vogliamo rendere definitivo (ad esempio l'ultimo), quindi selezioniamo una pillola (così da avere almeno un oggetto attivo nella selezione), dopodiché selezioniamo tutte le pillole; per effettuare questa selezione, sto utilizzando il tasto B e il mouse.

Con tutte le pillole selezionate (di cui una attiva), cerchiamo Apply Transformation nella casella di ricerca di Blender (che nel mio caso posso richiamare con la barra spazio) e scegliamo, tra le possibili voci che appariranno, quella della sezione Rigid Body, in quanto vogliamo applicare, appunto, le trasformazioni del Rigid Body.

Non abbiamo ancora finito: apriamo nuovamente la casella di ricerca e iniziamo a scrivere Remove Rigid Body, in quanto adesso vogliamo rimuovere il componente Rigid Body da tutte le pillole selezionate, per cui selezioniamo proprio l'operazione Object - Rigid Body - Remove.

Adesso la simulazione è permanente: spostandoci tra i vari fotogrammi della Timeline, notiamo che le pillole non si muovono più e non hanno più il componente fisico di tipo Rigid Body.

A questo punto, quindi, questo oggetto può essere esportato per essere utilizzato in altri scenari.

Le pillole sono singole mesh, ciascuna con l'Origin al centro della sua geometria, per cui sta a voi decidere se lasciarle così come sono o raggrupparle, imparentarle o anche fonderle insieme; scegliete in base alle vostre esigenze.

Per questo tutorial è tutto! A presto!

🇺🇸 Sitemap - 🇮🇹 Sitemap - 🇪🇸 Mapa del sitio - 🇧🇷 Mapa do site - 🇫🇷 Plan du site - 🇩🇪 Sitemap - 🇷🇺 Карта сайта - 🇨🇳 网站地图 - 🇯🇵 サイトマップ - 🇰🇷 사이트맵


Questo sito ha il solo scopo di mostrare alcuni dei miei lavori senza alcuna intenzione promozionale. Si prega di notare che attualmente non sto cercando (né risponderò a) richieste di lavori personalizzati, consulenze o altre collaborazioni lavorative, di qualsiasi tipo.


INFORMATIVA ESTESA SULL'UTILIZZO DEI COOKIES