Salve a tutti, volevo chiedervi un consiglio per ottimizzare meglio gli sprite.
Ho fatto un' animazione di un personaggio che si carica un grosso oggetto sulla schiena.
Il problema è che non so se è meglio caricare tutti i frames in uno sprite, dal momento che la risoluzione del riquadro (canvas) verrebbe molto grande visto che deve riprendere tutta la scena, oppure creare per ogni frame uno sprite ma con il riquadro di ciascuno ridotto all'osso. Quale dei due metodi è meglio in termini di prestazioni?
Frames in sprite differenti o canvas più grande?
- celeste orsa
- Newbie
- Messaggi: 10
- Iscritto il: 02/11/2018, 17:11
- Specialità: Grafico Compositore
- Uso: GM:Studio 2
- Contatta:
- civic71
- GMI Advanced
- Messaggi: 2210
- Iscritto il: 23/10/2003, 17:31
- Specialità: Risotto con zucchine
- Uso: GM:Studio 1.4 Pro
- Località: Jesolo (venezia)
- Contatta:
Re: Frames in sprite differenti o canvas più grande?
Potrebbe essere più scomodo programmare l' animazione di molti sprite. Ma anche utilizzare degli enormi frame, non mi piace affatto!
L'ideale è l'utilizzo dell animazione scheletrica tramite programmi come Spine.
Nel mio caso, non avendo Spine, mi sono creato un programmino apposito seppur molto molto più limitato, denominato Piccolo Animatore : viewtopic.php?f=23&t=13996&sid=ceecabcd ... 799524ea74 . Tramite esso utilizzerei uno sprite per ogni parte del corpo che compongono il personaggio ( testa, braccia, gambe e torace) utilizzando così piccoli frames. Ed uno sprite che contiene l'oggetto enorme. Poi tramite il programma animerei il tutto e salverei l'animazione in un file.txt : essa conterrà solo numeri relativi ai vari sprite e frame per la loro posizione , rotazione , size ed altro. Tale animazione insieme agli sprite verranno poi importati su GMS come descritto nel manuale del mio programma.
L'ideale è l'utilizzo dell animazione scheletrica tramite programmi come Spine.
Nel mio caso, non avendo Spine, mi sono creato un programmino apposito seppur molto molto più limitato, denominato Piccolo Animatore : viewtopic.php?f=23&t=13996&sid=ceecabcd ... 799524ea74 . Tramite esso utilizzerei uno sprite per ogni parte del corpo che compongono il personaggio ( testa, braccia, gambe e torace) utilizzando così piccoli frames. Ed uno sprite che contiene l'oggetto enorme. Poi tramite il programma animerei il tutto e salverei l'animazione in un file.txt : essa conterrà solo numeri relativi ai vari sprite e frame per la loro posizione , rotazione , size ed altro. Tale animazione insieme agli sprite verranno poi importati su GMS come descritto nel manuale del mio programma.
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Frames in sprite differenti o canvas più grande?
Sono sicuro che Game Maker di default croppa le texture rimuovendo i bordi trasparenti. Non so come si comporta se uno sprite ha più frame, ma se è fatto intelligentemente dovrebbe croppare ogni frame separatamente.celeste orsa ha scritto:Salve a tutti, volevo chiedervi un consiglio per ottimizzare meglio gli sprite.
Ho fatto un' animazione di un personaggio che si carica un grosso oggetto sulla schiena.
Il problema è che non so se è meglio caricare tutti i frames in uno sprite, dal momento che la risoluzione del riquadro (canvas) verrebbe molto grande visto che deve riprendere tutta la scena, oppure creare per ogni frame uno sprite ma con il riquadro di ciascuno ridotto all'osso. Quale dei due metodi è meglio in termini di prestazioni?
Ultima modifica di Alv il 05/12/2020, 16:43, modificato 1 volta in totale.
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Frames in sprite differenti o canvas più grande?
C'è un trucco per verificarlo. E' una questione hardware: GM usa la scheda video, le texture vengono renderizzate su dei poligoni rettangolari. Se la texture è tagliata, si vede in condizioni particolari. Mi sono tolto la curiosità realizzando un semplice progetto in GMS.
Questo è uno sprite di prova:
Basta disegnare i frame col filtro bilineare attivo, scalandoli di un fattore (per esempio di un fattore 10):
Se confronti il rettangolo coi bordi smussati in alto a sinistra con quello in alto a destra, si nota la differenza. Se i bordi sono netti, vuol dire che la texture è tagliata.
Responso: Game Maker ottimizza automaticamente i frame. Ogni frame viene ottimizzato indipendentemente dagli altri frame dello stesso sprite.
Questo è uno sprite di prova:
Basta disegnare i frame col filtro bilineare attivo, scalandoli di un fattore (per esempio di un fattore 10):
Se confronti il rettangolo coi bordi smussati in alto a sinistra con quello in alto a destra, si nota la differenza. Se i bordi sono netti, vuol dire che la texture è tagliata.
Responso: Game Maker ottimizza automaticamente i frame. Ogni frame viene ottimizzato indipendentemente dagli altri frame dello stesso sprite.
Ultima modifica di Alv il 03/01/2021, 20:34, modificato 5 volte in totale.
- celeste orsa
- Newbie
- Messaggi: 10
- Iscritto il: 02/11/2018, 17:11
- Specialità: Grafico Compositore
- Uso: GM:Studio 2
- Contatta:
Re: Frames in sprite differenti o canvas più grande?
Grazie del consiglio, ma ho già realizzato qualche animazione con "Dragon Bones", e non sono rimasto tanto soddisfatto dei movimenti troppo meccanici... ma per quello immagino che sia dovuto solo alla mia inesperienza con tali programmi... inoltre ho già disegnato le animazioni che mi servono e mi trovo bene con il metodo che sto usando. Complimenti comunque per il tuo programma!civic71 ha scritto: L'ideale è l'utilizzo dell animazione scheletrica tramite programmi come Spine.
.
Quindi credo sia meglio usare un unico sprite per massimizzare le prestazioni. Grazie mi è stato molto utile il tuo aiuto per chiarirmi le idee.Alv ha scritto: Responso: Game Maker ottimizza automaticamente i frame. Ogni frame viene ottimizzato indipendentemente dagli altri frame dello stesso sprite.
.
Chi c’è in linea
Visitano il forum: Bing [Bot] e 146 ospiti