In questo tutorial, realizzato con la versione 3.3 di Blender, vedremo come realizzare l'animazione che state vedendo a video: alcuni globuli rossi che si muovono all'interno di un vaso sanguigno.



Trascrizione del video

Salve a tutti!

In questo tutorial, realizzato con la versione 3.3 di Blender, vedremo come realizzare l'animazione che state vedendo a video: alcuni globuli rossi che si muovono all'interno di un vaso sanguigno.

Si tratta di un tutorial di base, per il quale sono richieste alcune conoscenze elementari di modellazione e, possibilmente, dei sistemi particellari in Blender.

Iniziamo con la modellazione del vaso sanguigno, in una scena completamente vuota.

Per prima cosa, in una vita Top, possibilmente ortogonale, inseriamo una curva Bezier, che modelliamo aggiungendo e spostando un paio di punti di controllo in Edit Mode.

Questa curva rappresenta il percorso del vaso sanguigno e, per i nostri scopi, possiamo mantenerci sul piano 2D (ed ecco perché sto inquadrando la scena dall'alto, con vista ortogonale).

Dopo aver modellato il percorso, torniamo in Object Mode e inseriamo un cerchio Bezier nella scena: questo rappresenterà, invece, il profilo del percorso, che manterremo circolare; perturberemo le pareti interne del percorso in seguito, con il modificatore Displace.

Per impostare il cerchio Bezier come profilo della Curva Bezier (che, a proposito, rinominiamo in Vessel Path, per chiarezza), dobbiamo selezionare proprio Vessel Path, aprire la scheda Object Data, all'interno dell'editor Properties, quindi accedere alla sezione Geometry Bevel Object e specificare, come oggetto Bevel, il cerchio Bezier creato poco fa.

Nel caso il profilo dovesse essere troppo grande o troppo piccolo, potremo ridimensionarlo semplicemente scalando il cerchio Bezier; come anticipato, non c'è bisogno di modificare il profilo del cerchio Bezier in Edit Mode, perché il profilo circolare va più che bene.

Nel mio caso, il vaso sanguigno appare invisibile quando inquadrato dall'interno: ciò è dovuto al fatto che l'opzione Background Culling è attivata, nel menù Viewport Shading. Questa opzione nasconde le facce che non hanno le normali rivolte verso l'osservatore; è un'opzione che può essere utile in alcuni casi, ma non in questo, per cui la disattivo.

Facciamo una copia del percorso (con SHIFT+D e Invio), chiamandola ad esempio Path Copy, nascondendola temporaneamente; questa copia ci servirà per due motivi:

  • per sicurezza, come copia del percorso, perché a breve lo trasformeremo da Curve a Mesh;

  • e come copia della curva originale, così da utilizzarla in un secondo momento come percorso da far seguire ai globuli rossi.

Il percorso va trasformato in Mesh perché in questo modo potremo applicargli un modificatore Displace, che perturberà le pareti del vaso sanguigno, rendendole visivamente più interessanti.

La conversione può essere effettuata con click destro e Convert To Mesh, ma voglio farvi notare una cosa: nel mio caso, i vertici del profilo circolare sono molto più densi dei segmenti che compongono il percorso.

Dal momento che preferisco avere facce il più possibile quadrate, annullo l'operazione di conversione (CTRL+Z in Object Mode), dopodiché inserisco dei punti di controllo intermedi lì dove i punti di controllo originali sono troppo distanti e presentano delle maniglie troppo lunghe, che producono appunto delle facce rettangolari.

Effettuo quindi la conversione in Mesh, come detto precedentemente, con click destro e Convert To Mesh.

Aggiungo quindi un modificatore Displace all'oggetto, impostando in particolare una Texture Clouds con scala bassa, per introdurre molte distorsioni.

L'effetto, comunque, è deludente: ciò è dovuto al fatto che la mesh ottenuta dalla conversione è poco "densa", ossia presenta pochi vertici e facce da deformare; per risolvere questo problema, fornisco un modificatore Subdivision Surface, con almeno 2 suddivisioni, all'oggetto.

Il modificatore Subdivision Surface va spostato sopra al modificatore Displace: l'ordine è importante, perché prima la mesh viene suddivisa con Subdivision Surface e dopo viene perturbata con Displace.

Modifichiamo quindi i valori di Size della Texture e di Strength del modificatore Displace fino ad arrivare ad un risultato che ci aggrada; eventualmente, possiamo provare anche Textures diverse per Displace o possiamo aggiungere anche un modificatore Smooth come ultimo modificatore della pila, per ammorbidire un po' le perturbazioni e terminare la fase di modellazione del vaso sanguigno.

Terminato questo lavoro, forniamo un materiale al vaso sanguigno; nel mio caso, per ottenere il look che avete visto nell'anteprima del tutorial, utilizzo un materiale Velvet rosso, perché questo materiale riflette la luce in maniera particolare: il risultato, in questo caso, non deve essere fotorealistico, per cui va bene un look più soft, sfumato.

Ad ogni modo, per avere un'anteprima del risultato, dobbiamo prima fare due operazioni: portare a nero lo sfondo dell'universo virtuale (da World Background RGB Color) e inserire almeno un paio di fonti di luce di tipo Point Light all'interno del vaso sanguigno.

L'inserimento delle Point Light può avvenire facilmente da una vista Top Ortho; vi consiglio di inserire le fonti di luce in prossimità delle curve e di crearne, inizialmente, una sola, da duplicare mediante ALT+D, per ottenere delle copie linkate, che copieranno i parametri della prima: ciò può essere utile perché inizialmente non conosceremo l'intensità da dare alle fonti di luce e dovremo andare per tentativi, ma con la copia linkata potremo modificare intensità e colore di una sola fonte di luce e trovare le stesse impostazioni applicate anche alle copie linkate.

Posizioniamo una copia linkata della fonte di luce anche all'ingresso del vaso sanguigno, altrimenti all'inizio i nostri globuli rossi saranno troppo scuri.

Possiamo visualizzare l'anteprima del rendering con Z Rendered, nella 3D Viewport, così da impostare i parametri delle luci fino ad arrivare al risultato desiderato.

In questa fase possiamo anche inserire e posizionare la telecamera che utilizzeremo, in seguito, per il rendering; in particolare, in Object Mode, inseriamo un oggetto Camera nella scena con SHIFT+A e Camera, quindi posizioniamoci nella 3D Viewport in modo da definire l'inquadratura iniziale della sequenza, poi apriamo la casella di ricerca di Blender (che nel mio caso posso richiamare con la barra spazio) e cerchiamo la voce Align Camera to View (lo shortcut è CTRL ALT NUMPAD 0).

Sistemiamo meglio la telecamera ed eventualmente cambiamone la lunghezza focale, all'interno della scheda Object Data, ad esempio abbassandone il valore, così da ottenere un'inquadratura più ampia, grandangolare.

Terminata anche la fase di definizione di materiali, luci e telecamera, torniamo alla modalità di visualizzazione Solid della scena 3D e spostiamoci in un punto vuoto della stessa, per modellare il prototipo di globulo rosso.

La modellazione di questo oggetto può avvenire in diversi modi, c'è davvero l'imbarazzo della scelta; nel mio caso, sto creando una UV Sphere, schiacciandola ai poli, ma non solo: sto eliminando i vertici dei poli e sto riempiendo gli anelli vuoti che si sono andati a creare con GRID FILL in Edit Mode.

Sto effettuando queste operazioni perché intendo fornire un modificatore Displace anche al globulo rosso... prima, però, ne cambio l'ombreggiatura, in Object Mode, in Shaded, perché l'ombreggiatura Flat di default è troppo sfaccettata!

Modello ancora un po' il globulo rosso, appiattendolo in prossimità dei poli; effettuo queste operazioni selezionando i vertici che voglio modellare per poi spostarli o scalarli lungo l'asse Z (verticale), fino ad arrivare al risultato desiderato.

Per quanto riguarda la perturbazione della geometria, bisogna effettuare le stesse operazioni fatte con il vaso sanguigno, ossia aggiungere e impostare i modificatori Subdivision Surface e Displace, con la differenza che questa volta basterà, probabilmente, una sola suddivisione per Subdivision Surface.

Nel caso le deformazioni introdotte da Displace non dovessero essere ben evidenti (o, al contrario, dovessero risultare troppo forti), anche variando di parecchio il parametro Size della Texture utilizzata, allora provate ad applicare le trasformazioni di scala all'oggetto con CTRL+A e Apply Scale, specialmente se ridimensionate l'oggetto. Questa considerazione vale anche per il vaso sanguigno, in effetti.

Terminata la fase di modellazione, forniamo un Materiale a questo prototipo di globulo rosso; in questa fase, spostiamo temporaneamente il prototipo di globulo rosso all'interno del vaso sanguigno, in un punto ben illuminato, così da avere un'anteprima dell'effetto finale, in modalità di visualizzazione Rendered.

Questa volta, opto per un Material Principled BSDF, con colore rosso un po' scuro e Roughness intorno a 0.6, per fornire un leggero riflesso speculare all'oggetto.

Terminata questa fase, riportiamo il globulo rosso al di fuori del vaso sanguigno e torniamo in modalità di visualizzazione Solid, per dedicarci alla creazione del sistema particellare che emetterà i globuli rossi.

Per emettere i globuli rossi come particelle di un sistema particellare, per prima cosa ci serve un oggetto emettitore.

Nel nostro caso, un Plane andrà benissimo, per cui inseriamone uno nella scena e, soprattutto, orientiamo la sua faccia superiore in modo tale da puntare verso l'ingresso del vaso sanguigno, perché è quella la direzione verso la quale vorremo emettere i globuli rossi.

Per associare un sistema particellare al Plane appena creato, apriamo la scheda Particle Properties dell'oggetto e facciamo click sul pulsante +.

Di default, il sistema particellare appena creato sarà di tipo Emitter, che è quello che ci serve.

Non vogliamo creare moltissime particelle, ma vogliamo assicurarci che queste siano ovviamente copie del prototipo di globulo rosso, che abbiano rotazione casuale, che vengano emesse per tutta la durata dell'animazione e che siano presenti fino alla fine dell'animazione; quest'ultimo punto va precisato perché, come vedremo, le particelle hanno una durata di vita, che imposteremo in maniera adeguata.

Per quanto riguarda il numero di particelle, faremo delle prove man mano che valuteremo l'animazione, ma direi di impostarle, per il momento, a 100, nel campo Number della scheda del sistema particellare.

Per quanto riguarda la durata dell'animazione, sto lasciando i 250 frames di default di Blender (equivalenti a 10 secondi di filmato a 25 frame al secondo), per cui possiamo impostare:

  • Frame Start 0

  • End Frame 250

  • Lifetime 250

Per far sì che le nuove particelle siano istanze del prototipo di globulo rosso, apriamo la scheda Render del sistema particellare e cambiamo il campo Render As da Halo a Object, quindi specifichiamo il globulo rosso come Instance Object, più in basso.

Avviando adesso l'animazione, noteremo alcune cose da sistemare nelle particelle generate:

  • non hanno una dimensione adeguata;

  • cadono nel vuoto;

  • hanno tutti lo stesso orientamento;

  • non vengono proiettati verso il vaso sanguigno.

Risolveremo tutti questi problemi uno ad uno, iniziando dal più semplice: togliere la gravità.

Apriamo la scheda Field Weights del sistema particellare e portiamo a 0.0 il valore di Gravity: adesso le particelle non cadranno più nel vuoto, come possiamo constatare posizionandoci al frame 1 della Timeline e avviando nuovamente l'animazione.

La dimensione delle particelle può essere modificata dalla scheda Render del sistema particellare, variando il parametro Scale. Non sono sicuro che i globuli rossi possano avere dimensioni diverse, per cui lascio a 0.0 il valore di Scale Random, che introduce appunto delle variazioni casuali nelle dimensioni degli oggetti.

Da notare, comunque, che possiamo ancora modificare il prototipo di globulo rosso, sia in modalità Object che Edit, osservando le modifiche anche nelle particelle, in quanto queste sono istanze di quel prototipo.

Per quanto riguarda la rotazione delle particelle, possiamo impostarne una casuale iniziale attivando, innanzitutto, la sezione Rotation del sistema particellare, ed impostando successivamente un valore maggiore 0.0 nel campo Randomize all'interno di questa scheda.

Possiamo osservare la generazione delle particelle con orientamento casuale tornando al primo frame della Timeline ed avviando l'animazione.

Resta l'ultimo punto da risolvere: far muovere le particelle lungo il vaso sanguigno.

Vi ricordate della copia del vaso sanguigno, chiamata Path Copy, di tipo Bezier Circle, nascosta e sovrapposta al vaso sanguigno (il quale è stato trasformato in Mesh)? Bene, è giunto il momento di utilizzarla come percorso delle particelle.

Selezioniamo proprio Path Copy, apriamo la scheda Physics nell'editor Properties ed aggiungiamo un Force Field.

Cambiamo il tipo di Force Field da Force a Curve Guide; non noteremo nulla di particolare, anche per via del fatto che l'oggetto è attualmente invisibile, per cui rendiamolo nuovamente visibile e cerchiamo, all'ingresso del vaso sanguigno, un cerchio tratteggiato.

Questo cerchio indica la zona di influenza del sistema particellare: le particelle risentiranno dell'effetto del Force Field quando si troveranno in quest'area.

Dobbiamo quindi avvicinare il Plane a quest'area e, soprattutto, ingrandirla, per far sì che includa le particelle generate; per effettuare questa operazione, variamo il valore del parametro Minimum Distance nella scheda del Force Field.

Torniamo al frame 1 della Timeline ed avviamo l'animazione per osservare il risultato.

Nel caso le particelle dovessero seguire un tragitto diverso da quello della curva percorso, la ragione potrebbe risiedere nel fatto che le curve Bezier hanno un inizio e una fine: probabilmente, quello che noi consideriamo come ingresso del vaso sanguigno è, in realtà, il punto finale della curva!

Per risolvere questo problema, passiamo in Edit Mode, selezioniamo tutti i punti di controllo della curva ed invertiamone la direzione cercando, nella casella di ricerca di Blender, il comando Switch Direction.

Torniamo in Object Mode, riposizioniamoci al frame 1 dell'animazione e clicchiamo sul pulsante Play, per osservare il risultato ottenuto.

Se il risultato è quello desiderato, nascondiamo nuovamente l'oggetto Path Copy.

Adesso possiamo anche osservare l'anteprima dell'animazione dal punto di vista della telecamera virtuale ed eventualmente cambiare il numero di globuli rossi da far generare al nostro sistema particellare o altri parametri, come ad esempio l'intensità dell'effetto Displacement o le dimensioni, in base alle nostre esigenze.

Infine, possiamo animare il movimento della telecamera virtuale all'interno della scena; ciò può essere fatto facilmente osservando la scena da una vista Top Ortho e inserendo dei keyframe per la posizione e la rotazione della telecamera all'interno del vaso sanguigno, in base all'animazione che vogliamo ottenere, verificando il risultato dal punto di vista della telecamera nella 3D View...

… e notiamo che c'è un problema! Spostando infatti la telecamera così da farle percorrere buona parte del vaso sanguigno nei 250 frames dell'animazione, non vedremo mai le particelle, perché resteranno dietro di noi!

Ci sono più modi per risolvere questo problema; uno di questi consiste nel far emettere le particelle prima dell'inizio dell'animazione, impostando ad esempio -100 nel campo Frame Start del sistema particellare, ma attenzione: in questo caso, il valore di Lifetime dovrà essere 350, altrimenti le particelle scompariranno al frame 150 della Timeline!

Dopo aver effettuato queste modifiche, riesaminiamo l'animazione nella 3D Viewport per assicurarci che tutto sia OK, questa volta; al termine, potremo avviare il rendering dell'animazione.

Prima di chiudere questo tutorial, una piccola osservazione sul caching del sistema particellare e su alcuni problemi che potrebbero presentarsi in fase di rendering, soprattutto dopo aver fatto vari rendering intermedi, per visualizzare lo stato della scena in vari momenti prima di procedere al rendering finale dell'animazione.

In questi casi, infatti, potreste veder comparire una linea rossa nella parte bassa della timeline, che sta ad indicare che Blender ha calcolato e messo in memoria cache l'animazione fino a quel punto.

La cosa peggiore è che a volte, dopo diversi rendering, questa linea potrebbe essere visibile a tratti, come sto mostrando a video.

Il problema è che, in questo caso, Blender avrebbe pronti alcuni fotogrammi corretti, come li vogliamo noi, mentre altri fotogrammi verrebbero calcolati in altri modi, producendo risultati errati: in certi frame potreste vedere le particelle al posto giusto, mentre in altri potreste vederle in configurazioni errate o non vederle affatto!

Quello che bisogna fare, prima di avviare il rendering dell'animazione, è: tornare al primo frame dell'animazione; accedere alla scheda Cache del Particle System emettitore, dove troveremo le informazioni sui frames presenti in memoria; cliccare sul simbolo + per aggiungere una nuova cache (che inizialmente sarà vuota) e, successivamente, cliccare sul simbolo -, per eliminare la cache precedente; infine, cliccare sul pulsante Bake per far calcolare e mettere in memoria Cache l'intera simulazione particellare corretta.

A questo punto la barra rossa dovrebbe coprire l'intera Timeline, ad indicare che tutti i fotogrammi sono stati calcolati e messi correttamente in memoria.

Avviando adesso il rendering dell'animazione da Render - Animation), non dovremmo avere brutte sorprese nel file o nei file prodotti... ma, come ultimissima annotazione, vi ricordo di attivare il Denoise per il Rendering, in Render Properties: con questi materiali e questa illuminazione è utilissimo e vi consentirà di renderizzare l'animazione con un numero ridotto di Samples che, nel mio caso, sono appena 100.

Ricapitolando, in questo tutorial:

  • abbiamo visto come modellare il percorso del vaso sanguigno e i globuli rossi;

  • abbiamo fornito un Materiale di base agli oggetti e una semplice illuminazione alla scena;

  • abbiamo visto come generare le istanze dei globuli rossi tramite un Particle System;

  • abbiamo visto come far seguire, ai globuli rossi, il percorso all'interno del vaso sanguigno.

Spero che questo tutorial vi sia stato utile! 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