Come posso creare un materiale per formaggio per pizza elastico e fragile?


21

Voglio creare una pizza realistica e consentire all'utente di interagire con essa.

Quello che voglio:

fotografia di pizza con una fetta sollevata

Cosa ho creato:

screenshot di pizza renderizzata, con una fetta mancante

Ho creato il modello della pizza (8 pezzi) in Blender, quindi l'ho importato in Unity. Il pezzo di pizza sembra molto artificiale, soprattutto perché è "triangolo rigido".

Come posso allungare e rompere il formaggio quando l'utente sposta un pezzo?


1
Modelli migliori, trame migliori e shader migliori. Così semplice.
API-Beast

Vuoi davvero che il formaggio si allunghi e si rompa? Se potessi essere più specifico su quale aspetto vuoi essere più realistico, ciò contribuirebbe a restringere l'ambito della domanda.
MichaelHouse

2
@ Byte56, capisco che posso migliorare la qualità della pizza migliorando il modello, le trame e gli shader, ma mi interessa il formaggio. Sì, voglio che sia estensibile e fragile. Come il vero formaggio.
Peter Burenkov,

6
Personalmente, darei un'occhiata alla simulazione del tessuto in tempo reale e vedrei quanto lontano puoi passare dal tessuto al formaggio modificando i parametri. Tratterei lo strato di formaggio della pizza come una rete separata e utilizzerei un modello a molla / massa per calcolare le deformazioni. Ho già visto sistemi di stoffa in precedenza, che ti hanno permesso di strappare il panno, cosa che vorresti anche per il tuo formaggio. Combina questo con uno shader che si fonde da una consistenza di formaggio solido a una consistenza di formaggio stirato / strappato in base alla forza applicata ai nodi del modello primavera / massa e dovrebbe darti un risultato abbastanza pulito.
Invor

Solo per interpretare l'avvocato del diavolo qui, sei sicuro di aver bisogno di questo tipo di animazione? So che sembra strano chiederlo, ma dovresti vedere dalle risposte già fornite, questo è un effetto abbastanza complesso a cui stai mirando. Ovviamente dipende dal gioco (non so se stai realizzando un simulatore per fare la pizza [conosco persone che pagherebbero un buon prezzo per uno]), ma dovresti chiederti se il lavoro che metterai in questo aggiunge davvero abbastanza per giustificare il tuo sforzo. Anche se hai molto tempo, dedicarlo altrove potrebbe ripagare di più a lungo termine ...
Selali Adobor

Risposte:


28

Il modo semplice

Aggiungi un quad che collega le sezioni adiacenti tra loro. Trama questo con una bella consistenza di formaggio fuso, completa di buchi. Man mano che la fetta viene spostata, il quad viene naturalmente allungato e quindi allunga e inclina la trama.

Questo dovrebbe sembrare ragionevole, anche se non ci sarà alcuna pausa. Cosa fare qui è rendere quella trama animata. Scorri l'animazione in base all'area dei quadratini (o solo alla distanza tra le sezioni) anziché al tempo. Man mano che viene tirato più lontano appariranno più buchi a causa dell'avanzamento dell'animazione.

Alla fine, quando viene raggiunta una soglia di distanza, dividere il quadruplo in due, restringere programmaticamente i due quadrupli nella direzione delle loro fette attaccate per ridurli un po 'e continuare a riprodurre l'animazione che mostra lo scatto. Blocca l'animazione alla fine.

Per un po 'più di dinamica, puoi collegare il quad alle due sezioni usando un giunto in un motore fisico.

The Hard Way

Usa un motore fisico per il corpo molle o scrivine uno. Definisci una sezione di tessuto tra le fette e tessila con il formaggio. Consentire al motore fisico di modellare la dinamica dello stretching e dello snap del materiale.

Questo è un metodo molto più intenso, ma più generalmente applicabile. Potrebbe anche essere molto incontrollabile, ma potrebbe essere un effetto complessivamente più convincente.


3
Suggerirei totalmente il primo approccio.
jhocking

6
Per lo meno, trascorri qualche ora a provare il primo approccio (potresti facilmente usare più quad) prima di passare qualche ... err ... mesi a scrivere un motore fisico ...
corsiKa

3
Così affamato di vedere il risultato! Ti preghiamo di aggiornarci quando lo finisci.
John Moses,

2
Per un momento ho pensato di leggere "Usa un motore per formaggi a pasta molle" e ho pensato, wow, la gente scriverà motori per qualsiasi cosa.
Thomas,

2
Unity ha un motore fisico in tessuto integrato che supporta lo stretching e lo strappo, quindi il modo più difficile potrebbe non essere così difficile. Anche se sarà molto più costoso dal punto di vista computazionale.
Ethan Worley,

2

Utilizzando un'animazione preimpostata:

Quindi crea un'animazione preimpostata in un software di modellazione 3D come Maya / Blender che ha caratteristiche come corpi morbidi e tessuti che possono fare un buon lavoro simulando lo strappo della pizza. Esporta sia la trama della pizza che l'animazione del modello su Unity (probabilmente come un insieme di modelli .obj o simili).

L'animazione del modello rappresenterà il formaggio che viene allungato e strappato usando molti molti triangoli, che puoi caricare come un insieme di tri-mesh in Unity. Sono una raccolta di molti stati della maglia, ognuno dei quali rappresenta la pizza al formaggio in diverse posizioni di stiramento. In base a dove l'utente posiziona la fetta di pizza, passerai a quello "stato mesh" e visualizzerai quei triangoli.

Ci sono alcuni problemi ovviamente. L'interazione dell'utente è un po 'limitata. Se il formaggio è già un po 'strappato, non puoi tornare allo stato "non coltivato" per quella zona di formaggio. Se l'animazione preimpostata rimuove la sezione 1 e quindi 2, l'utente sarà costretto a rimuovere le sezioni in quell'ordine. La dimensione dei dati esportati può diventare piuttosto grande, in base alla granularità della mesh e alla durata dell'animazione di strappo.

Ma può sembrare molto realistico se l'artista del modello fa un buon lavoro durante la creazione dell'animazione preimpostata. E non devi implementare un simulatore del corpo molle.

Utilizzando Unity:

Nel caso in cui tu sia interessato, Unity implementa il proprio tessuto Skinned e i componenti del tessuto Interactive . Il panno interattivo supporta lo strappo. Ma il supporto per loro è limitato a poche piattaforme, per ultimo ho controllato.

Usando te:

Alla fine, puoi sempre implementare il tuo simulatore soft-body. Ecco un documento di ricerca di esempio che è piuttosto popolare. È molto divertente :). In bocca al lupo.


1

@Le risposte di OriginalDaemon sono buone! Penso che ci sia una via di mezzo che potrebbe ottenere risultati migliori rispetto al primo approccio e richiederà un ragionevole sforzo (forse a differenza dell'approccio "The Hard Way").

Quello che suggerisco è in realtà modellare la "rete" del formaggio, mi assomiglia molto alle stalattiti. Modella alcuni pezzi di formaggio elastico. Posizionali casualmente sui bordi del triangolo di prelibatezza e ridimensionali su 0 y-axise quando il triangolo viene rimosso dai suoi compartimenti, ridimensionali lentamente sull'asse y di nuovo alla dimensione necessaria.

Potrebbe essere necessario scegliere un altro asse anziché yse si prevede di allontanare leggermente il triangolo. Ad ogni modo, ritengo che sebbene una trama piatta sia molto più semplice ed economica, la modellazione del formaggio potrebbe risultare più realistica per il primo piano sebbene una trama possa funzionare anche. Se scegli una trama, potresti usare più di un livello per ottenere una sensazione più realistica. Inoltre, non dimenticare di aggiungere un po 'di vapore forse per enfatizzare il calore della pizza nello scatto.

Un'altra cosa che ho notato è che sembra che i peperoni siano solo una trama in questo momento. Definirei la possibilità di modellarlo o aggiungere alcuni dettagli in quell'area al modello esistente. Potresti farlo scivolare giù con il formaggio elastico per un realismo extra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.