Home / Xpresso / Xpresso Anonymous / Softbody


Thinking Particles Softbodies

Questo non ha niente a che fare con i corpi morbidi di Dynamics. In Dynamics i punti fanno in modo che la maglia si comporti come il tessuto mentre in TP non c'è alcun collegamento fra i punti, solo tra i punti di una maglia, solo tra i punti deformati e la maglia di default.
Gestiamo una geometria di default e una geometria che è deformata dalle azioni di una particella. L'effetto morbido è generato applicando una forza alle particelle che prova a spostarli dalla posizione di default definita alla geometria di default. Potete pensare a questo come una palla in fondo a uno stampo. Se calciate la palla sposterà ma resterà sempre nella parte più bassa dello stampo.

Inizieremo con una semplice scena che contiene due piani identici chiamati default e Corpo Morbido. Il default è reso invisibile poiché vogliamo vedere la maglia deformata alla fine.
Ora dobbiamo creare una particella per ogni vertice (Info) del Corpo Morbido.
Per controllare Corpo Morbido più facilmente creeremo il tag Xpresso su di esso e renderemo tutti i parametri necessari disponibili come proprietà (Info) .

Prima di creare il setup dovreste pensare a quello che volete ottenere e quello che volete controllare.

Nel nostro caso vogliamo i seguenti controlli (tipo dati tra parentesi):

  • Abilita/Disabilita (Bool)
  • Gruppo Particelle (Link)
  • Default Geometria (Link)
  • Tempo di creazione particelle (Tempo)
  • Tempo di vita particelle (Tempo)
  • Flessibilità del corpo morbido (Float)
    Ricorda il nome delle porte (Info)

Il setup sarà formato da tre parti principali

  • L'emissione delle particelle e l'inizializzazione delle informazioni necessarie
  • Correzione delle particelle elastiche alla loro posizione di default
  • Collegando la maglia del corpo morbido dalle particelle alle particelle emettitore che abbiamo molti nodi di generatore disponibili.

In questo avremo bisogno di PNascita perchè è più flessibile.
Prima di tutto abbiamo bisogno del numero delle particelle. Questo dipende dal numero di vertici della geometria (Info) . Il nodo punto può darci queste informazioni. Connetti la porta input del nodo punto alla porta Default Geometria del XGruppo e l' output Conta Punti a porta input Colpo di PNascita. Perchè Colpo? Vogliamo tutte le particelle create in un singolo frame non in tutto il periodo di tempo. Per questo collegheremo il nodo PNascita in Colpo.

Un'altra parte è il controllo di inizio e di durata. La durata può essere collegata semplicemente a PNascita ma all'inizio ha bisogno di qualche accorgimento. Con un Nodo Confronto possiamo determinare se il tempo di animazione corrente uguaglia l'inizio e permette PNascita di attivarsi. Siccome c'è un controllo di Attivazione con la porta Abilita per permettere il controllo le dobbiamo attivare una booleana (AND) per assicurarsi il permesso di attivazione. scena / documentazione scena
Una parte principale manca ancora e assegnamento della posizione delle particelle. Per questo abbiamo bisogno di un secondo nodo Punto e di un nodo PDefinisciDati. Il secondo nodo di punto è necessario perché non si può utilizzare lo stesso nodo per due diversi usi. Il primo nodo Punto è utilizzato solo una volta quando il nodo PNascita ha bisogno di sapere quante particelle saranno emesse, mentre il secondo nodo è utilizzato per quanto spesso ci siano le particelle e i punti. Informazioni base su nodo PNascita (Info) . Impostare il nodo Punto per valutare deformazione, in caso abbiamo una maglia animata, si assicura anche che sia impostato su Coordinate Globali (Info) poiché la posizione delle particelle è sempre una posizione globale. PDefinisciDati avrà bisogno di un collegamento con la porta Nascita di PNascita per sapere con quale particella deve funzionare. L'indice del punto è controllato da Numero Nascite il quale vi dà l'indice della particella attualmente attiva. Questo somiglia moltissimo alla variabile For Next loop. scena documentazione scena
Come potete vedere il setup diviene più grande ed agiremo su questo. Selezionate i nodi che determinano la partenza e convertiteli a un singolo XGruppo selezionando Convertire a XGruppo dal menu di scelta rapida. Commutare la visualizzazione in Standard ed attivare il nome porte. Rinominando il gruppo con un nome che assicuri che sapremo in seguito che cosa fa.
Commutate il modo visualizzazione per questo gruppo a standard e permettete i nomi della porta. Rinominando il gruppo con un nome che assicuri che sapremo in seguito che cosa fa. scena
Vediamo se funziona. Il controllare è permesso dai parametri del tag Xpresso e assicurarsi l'oggetto sia referenziato nel collegamento. La durata delle particella dovrebbe essere impostata con la lunghezza del vostro documento e lo start time dovrebbe essere 1 (secondo Frame). Premere play siete stati auspicabilmente ricompensati da una piccola croce bianca per ogni vertice del piano di default.

Adesso che le particelle sono posizionate, cosa dobbiamo fare? Prima di tutto abbiamo bisogno che stiano sul posto e come al solito esistono diversi modi per farlo. La prima opzione sarebbe di memorizzare la posizione corrente e utilizzarla come un riferimento, un altro sarebbe di utilizzare sempre le posizioni dei vertici degli oggetti. Usiamo la seconda opzione, poiché ci permetterà di correggere lo spostamento/deformazione della maglia. Poiché questa parte è completamente seperata dalla prima ripuliremo la nostra area di lavoro per far spazio agli alti nodi. Selezionate semplicemente tutti i vostri nodi e create uno Xgruppo. Commutate ancora il modo visualizzazione a Standard. scena

Ci siamo dimenticati due cose del primo setup. Che cosa fare? Riscrivete tutto il materiale e fate nuovi screenshots e scene? No! Perché? Avverrà piuttosto spesso cioè, quindi occorre sapere modificare setup già terminati. Che cosa manca? Potrebbe non sembrare molto importante ma in seguito renderebbe il setup più o meno inutile. È il gruppo di particelle che non viene assegnato. I gruppi di particelle sono necessari per avere particelle separate le une dalle altre. Senza loro sarebbe molto duro se non impossibile da differenziare quale particella dovrebbe essere utilizzata in quale modo.

a seconda cosa che manca è un modo per memorizzare il collegamento fra particelle e vertici, proprio adesso abbiamo un grappolo semplice di particelle ma non sappiano dove sono posizionate.

Tirate prima di tutto un collegamento alla porta del XGruppo esterno al quadrato blu sinistro superiore del Xgruppo appena creato e create una porta di collegamento con esso. Commutate ora il modo visualizzazione di questo Xgruppo a Schermo Intero. Il nuovo nodo PGruppo viene collegato a PNascita->Nascita Particelle e alla porta di collegamento dall'esterno che abbiamo appena creato.
La seconda parte è un po' più complessa. Avremo bisogno delle impostazioni di Thinking Particles settaggi (disponibile o nel menu Plugins o nel menu personalizzato dell'editor Xpresso). Nel manager Canali (Info) creare un canale intero. Per impostare questo numero trascinate un filo aggiuntivo nella porta Originate Num del nodo PNascita e rilasciatelo sul rettangolo blu sinistro superiore del nodo PDefinisciDati. Il nostro canale appena creato è disponibile come una porta.

Dopo che la correzione è stata resa la visualizzazione a standard. scena


Ora per l'elasticità del nostro Softbody, avremo bisogno delle particelle per seguire la maglia di default in un modo flessibile. Il nostro candidato principale a fare questo è il nodo PSeguiPosizione. Sposterà una particella in una certa posizione, non velocemente ma lentamente. Può essere impostato a Velocità Costante o Accelerazione. Utilizzeremo Accelerazione perchè Velocità Costante non andrebbe bene in questo caso. L'opzione Accelerazione imposta la forza con cui la particella è spinta alla posizione. Il 100% non ci darà alcuna elasticità. Per adattare il nostro valore dell'elasticità a questo intervallo utilizziamo un nodo Math con valore della flessibilità da 1 perciò invertendo l'intervallo.

Per accedere avremo bisogno di un nodo PPass. Il Gruppo di Particelle di cui abbiamo bisogno è determinato collegando il Gruppo di Particelle alla porta di collegamento del gruppo esterno Xpresso alla porta input corrispondente del nodo PGroppo.

Avremo bisogno del numero della particella che può essere ottenuto con POttieniDati. Questo numero si alimenta un nodo Punto per scegliere il vertice corretto dell'oggetto di default (assicuratevi di collegare il nodo Punto alla porta di collegamento Defaul e commutare il nodo per deformare la meshes).

La posizione che otteniamo dal nodo Punto per ogni particella è utilizzata per impostare Segui Posizione.

In questo modo ci assicuriamo che ogni particella seguirà il vertice a cui è stato assegnato.

Con il nodo Math impostato su Sottrai e con un valore di uno nel primo campo possiamo adattare l'intervallo di flessibilità.

Ora un valore di 0 di flessibilità porterà a un Softbody completamente rigido mentre i valori tra 0 e 1 lo rendono flessibile. scena
Se spostate l'Oggetto Default mentre l'animazione sta giocando potete vedere come le particelle lo seguono.

Ora per l'ultima parte, assegneremo la maglia Softbody alle nostre particelle.

Per il setup abbiamo bisogno dei un nodo PPass e POttieniDati. Da POttieniDati abbiamo bisogno della posizione della particella come pure del Numero. I parametri sono quindi alimentati da un nodo Punto. La porta input dei nodi Oggetto viene collegata a un nuovo nodo Oggetto che creiamo trascinando l'oggetto Softbody nell'editor Xpresso. Commutare il riferimento del nodo Oggetto a Posizione Iniziale assicura che continui a lavorare anche se spostiamo il tag a un oggetto diverso che vogliamo utilizzare come un softbody. scena

Ora il Softbody sta realmente lavorando, ma non del tutto. Dobbiamo influire sul Softbody in qualche modo per vedere come può reagire.
Un modo per fare questo è utilizzare altre particelle. Avremmo bisogno di un emettitore per fare in modo che le particelle si scontrino.

Penso che abbiamo abbastanza materiale per una complessa Xpressions e utilizzeremo alcuni presets di Tinking Particles.
Nel menù Libreria Oggetti si troveranno gli emettitori Base TP e Collisione Particelle TP. Muovere l'emettitore di -300 sull'asse z. Avremmo bisogno di un Gruppo Particelle separate dalle particelle Softbody. In Thinking Particles Settaggi create due gruppi sotto Tutti Gruppi e rinominateli in base alla funzione.
Assegnare un gruppo al presets. Il gruppo proiettile è per l'emettitore e il present collisione, mentre il gruppo Softbody è per il setup Softbody e per preset collisione. scena

Si può movimentare la scena su aggiungendo un vento predefinito con forza alta e setting di turbolenza.
Nell'ultima scena sono state fatte delle modifiche alla velocità dell'emettitore e della grandezza della particella . filmato


Torna a Xpresso Anonymous