Proiettare una texture solo su una parte del modello 3D?

Discussioni su qualunque linguaggio di programmazione o engine
Rispondi
Avatar utente
Paperpaint
Membro attivo
Messaggi: 375
Iscritto il: 02/01/2014, 16:19
Specialità: Visionario lol
Uso: GameMaker 8.1
Contatta:

Proiettare una texture solo su una parte del modello 3D?

Messaggio da Paperpaint »

Salve, è una domanda riguardante Unity.

Siccome le espressioni di questo gioco saranno per così dire 'piatte' avevo bisogno di sapere come proiettare la bocca, gli occhi etc e farli animare.
proprio come in Grim Fandango se ci avete giocato.

Il mio prof di 3D aveva detto di fare un doppio strato, solo che non ho proprio capito a cosa si riferisse...

Qualcuno che utilizzi un software 3D, sà dirmi come posso fare a realizzare una cosa simile?

Grazie. :cappa:

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Proiettare una texture solo su una parte del modello 3D?

Messaggio da Jak »

Puoi separare le varie parti della testa in delle mesh più piccole che usano texture diverse.
La tecnica degli "strati" sta nell'avere diverse mesh identiche una sopra l'altra con texture semitrasparenti, è un po lo stesso concetto di disegnare uno sprite 2D sopra un'altro solamente che è applicato in 3D (con lo stesso identico procedimento).
Puoi anche sfruttare il multitexture per avere un'effetto identico, praticamente il concetto è lo stesso solo che avere più mesh identiche con una texture diversa hai più texture sulal stessa mesh e gli definisci come vengono formati gli "strati"
Tutto questo solo se hai bisogno di COMBINAZIONI di parti della faccia per ottenere le espressioni.
La via più semplice che ti consiglio è in realtà avere N texture per N espressioni e cambiare in realtime quella che utilizzi. Ti basta sfogliare il manuale di unity per sapere come fare (anche se probabilmente dovrai avere un materiale per texture se vuoi farti la vita facile senza pensare troppo ai dettagli, ma basta organizzare bene le cartelle e non avrai comunque problemi)
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Paperpaint
Membro attivo
Messaggi: 375
Iscritto il: 02/01/2014, 16:19
Specialità: Visionario lol
Uso: GameMaker 8.1
Contatta:

Re: Proiettare una texture solo su una parte del modello 3D?

Messaggio da Paperpaint »

Jak ha scritto:Puoi separare le varie parti della testa in delle mesh più piccole che usano texture diverse.
La tecnica degli "strati" sta nell'avere diverse mesh identiche una sopra l'altra con texture semitrasparenti, è un po lo stesso concetto di disegnare uno sprite 2D sopra un'altro solamente che è applicato in 3D (con lo stesso identico procedimento).
Puoi anche sfruttare il multitexture per avere un'effetto identico, praticamente il concetto è lo stesso solo che avere più mesh identiche con una texture diversa hai più texture sulal stessa mesh e gli definisci come vengono formati gli "strati"
Tutto questo solo se hai bisogno di COMBINAZIONI di parti della faccia per ottenere le espressioni.
La via più semplice che ti consiglio è in realtà avere N texture per N espressioni e cambiare in realtime quella che utilizzi. Ti basta sfogliare il manuale di unity per sapere come fare (anche se probabilmente dovrai avere un materiale per texture se vuoi farti la vita facile senza pensare troppo ai dettagli, ma basta organizzare bene le cartelle e non avrai comunque problemi)
Quindi in Grim Fandango hanno fatto 'N textures per N espressioni'?
Perché si vede che la texture non è proiettata su una mesh a parte.

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Proiettare una texture solo su una parte del modello 3D?

Messaggio da Jak »

Paperpaint ha scritto:Quindi in Grim Fandango hanno fatto 'N textures per N espressioni'?
Perché si vede che la texture non è proiettata su una mesh a parte.
Penso proprio di si, è una tecnica tanto semplice quanto comune proprio per questo motivo, Una volta era semplice e leggera e quindi stra-abusata, dopotutto un cambio di texture non è nemmeno da considerarsi una tecnica vera e propria.
Comunque il proiettare su una mesh a parte non si nota, anzi non ha alcuna effettiva differenza di posizionamento o che, viene disegnata "sopra" solo per il semplice fatto che è disegnata dopo. E' a tutti gli effetti renderizzare lo stesso modello (una faccia in questo caso) con texture diverse.
Comunque ci sono anche altri modi, tutti tanto semplici da non definirsi ne tecniche ne trucchi ne niente ma mere banalità. Con unity potresti usare i texture array o dovrebbe esserci la possibilità di avere animazioni di texture (come le usano per gli sprite 2D insomma) con la stessa strategia ti basta indicare quale frame di animazione usare, ogni frame equivale ad un'espressione. Nella pratica è equivalente ad un cambio di texture ma se ti trovi comodo a sfruttare ciò che già esiste meglio.
Un'altra è quella di avere una texture gigante con tante espressioni dentro e shiftare le UV del modello. Però è inutilmente più complessa (per quanto poco) e sei limitato nella risoluzione delle texture.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti