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. Nel nostro caso vogliamo i seguenti controlli (tipo dati tra parentesi):
|
|
Il setup sarà formato da tre parti principali
In questo avremo bisogno di PNascita perchè è più flessibile. |
|
| 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. scenaSe 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. |
![]() |