[botta&risposta]render di effetti particellari via codice

Tutorial, videotutorials ed esempi creati da noi
Rispondi
Filo
GMI Honor
Messaggi: 6097
Iscritto il: 09/08/2008, 14:31
Contatta:

[botta&risposta]render di effetti particellari via codice

Messaggio da Filo »

ultimamente mi sta balenando in mente di fare una versione light di nightstrike2, gioco altamente spettacolare, che però rallenta moltissimo grazie alla presenza di effetti particellari molto pesanti (grazie mille effetti particellari molto pesanti)
e siccome so cosa significa perdere una competizione perchè il proprio gioco è laggoso ho pensato a un metodo di renderizzare codesti effetti.
prima di tutto dovete dichiarare i vari codici per inizializzare le particelle e gli emettitori, poi eseguire l'effetto desiderato su sfondo nero e registrare uno screenshot frame per frame.
in seguito create un'immagine animata tramite l'editor di sprite di GM e la centrate come serve.
infine, passo molto importante: dovete creare un'alpha mask, quindi (spero abbiate renderizzato con sfondo nero) fate sprite_set_alpha_from_sprite(sprite_origine,alpha_mask).
per creare un'alpha mask non serve fare altro che duplicare lo sprite origine, desaturarlo (fare bianco e nero) poi aggiustare la luminosità con lo strumento intensity (agendo solo sulla prima barra che regola la luminosità)
per semplificare tutto il primo lungo passo ho creato questa utility (editabile)

ISTRUZIONI:
create un file txt in cui dichiarare sistema particellare, particelle ed emettitore simile a questo

Codice: Seleziona tutto

global.sistema_particellare=part_system_create()
global.particella=part_type_create(global.sistema_particellare)
global.emettitore=part_emitter_create(eccetera eccetera)
create un secondo file txt in cui posizionate l'emettitore e attivate l'effetto

Codice: Seleziona tutto

part_emitter_position(blablabla)
part_emitter_burst(blablabla)
n.b.: potete posizionare l'emettitore dove volete, però consiglio di metterlo al centro della room (room_width/2 room_height/2)
inoltre non usate part_emitter_stream perchè non si ferma mai, quindi non riuscirete a fare finire il render
poi aprite il programma:
caricate i due file txt (è una procedura guidata, non potete sbagliare), indicate la variabile del sistema particellare
poi vi chiederà altre cose (sono semplici ;) )
e se siete apposto fate cominciare il render (oppure se avete sbagliato qualcosa rifate daccapo)

il tutto è corredato di esempi che spiegano come creare i file txt
non voglio credito se renderizzate qualcosa però non potete distribuire il codice senza il mio permesso

il programma per renderizzare lo trovate quì http://www.box.net/shared/v9rm1zcf82

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 66 ospiti