Condividi tramite


Effetti particella

Dai razzi d'artificio che emettono fumo alle bolle che escono dalla bocca di un pesce, le particelle sono un ottimo modo per aggiungere effetti speciali ai contenuti di Minecraft: Bedrock Edition.

Immagine che mostra Alex tenere in mano una bacchetta da cui fuoriescono scintille

In questo tutorial imparerai quanto segue:

  • Come creare effetti particella personalizzati in Minecraft: Bedrock Edition.
  • Come creare un nuovo effetto particella da utilizzare in una mappa o in un add-on.

Requisiti

Prima di iniziare questo tutorial, ti consigliamo di completare i seguenti passaggi:

Introduzione

Casi d'uso delle particelle

Le particelle sono uno strumento efficace per potenziare l'esperienza visiva di una mappa o di un add-on. Si possono usare nelle entità per ottenere effetti ambientali come il fumo di scarico, attacchi come gli incantesimi magici e altre animazioni. Le particelle possono essere utilizzate anche per gli effetti ambientali nelle mappe, ad esempio le foglie cadenti. Puoi utilizzare le particelle anche per posizionare una semplice grafica 2D nel tuo mondo. Inoltre le particelle sono in genere più performanti delle entità personalizzate, perché sono simulate interamente lato client.

Denominazione e posizione

Bedrock utilizza un formato JSON personalizzato per i suoi effetti particella. I file sono memorizzati nella cartella particles del tuo pacchetto di risorse. Analogamente ai modelli e alle entità, le particelle sono indicate dal loro identificatore, quindi puoi salvare il file in qualunque sottocartella all'interno della cartella particles senza doverti preoccupare di farvi riferimento.

L'identificatore della particelle è specificato nella parte superiore del file JSON. Esattamente come con le entità, dovrebbe consistere in un namespace e in un nome, ad esempio compass:colored_smoke.

    "description": {
    "identifier": "compass:colored_smoke",
    },

Unità

Tutti i valori degli effetti particella utilizzano metri (blocchi) e secondi come unità. La velocità è espressa in metri al secondo (m/s) e l'accelerazione in m/s al secondo (m/s²). Le rotazioni usano i gradi, sia per le rotazioni che per le funzioni trigonometriche.

Snowstorm

In questa guida utilizzeremo Snowstorm per creare gli effetti particella. Snowstorm si può utilizzare come app web o come estensione di VSCode. Ci permette di vedere in diretta un'anteprima dell'effetto particella mentre modifichiamo i parametri. L'app web può essere utile per i principianti, ma quando si lavora su un progetto che prevede una serie di effetti particella, l'estensione di VSCode offre un flusso di lavoro più veloce.

Interfaccia

Quando apri Snowstorm, vedrai una sezione di anteprima in 3D, una barra laterale, la barra dei menu e la barra delle espressioni sotto al menu.

Interfaccia di Snowstorm

La barra laterale è un elenco di tutti i diversi parametri e impostazioni che compongono la particella. Molti dei campi supportano Molang. Ciò significa che puoi inserire numeri statici, ma se vuoi avere un maggiore controllo sul valore, puoi anche usare espressioni matematiche usando il linguaggio Molang. Passa il mouse su ciascun campo per visualizzare una descrizione dell'operazione.

Se ti ritrovi con un'espressione Molang molto complessa, puoi anche modificarla nella barra delle espressioni, proprio sotto il menu.

Barra delle espressioni in Snowstorm

La barra del menu è il luogo in cui puoi importare ed esportare file nell'app web, caricare esempi o controllare i riferimenti.

Sotto la barra delle espressioni puoi vedere la schermata di anteprima. Puoi navigare nello spazio 3D usando il pulsante sinistro e destro del mouse, oppure la rotellina del mouse, e puoi usare i pulsanti in basso per avviare o mettere in pausa l'anteprima. Nell'angolo in basso a destra, vedrai i fotogrammi al secondo e il numero attuale di particelle nella scena.

Importazione ed esportazione

Se utilizzi l'app web, i file devono essere importati ed esportati tramite il menu File. Puoi anche passare alla scheda Codice nell'angolo in alto a destra per visualizzare in anteprima il file generato.

Scheda Codice in Snowstorm

Se utilizzi texture personalizzate, queste devono essere caricate singolarmente nella sezione Texture della barra laterale.

Selezione delle texture in Snowstorm

Se utilizzi l'estensione di VSCode, crea un nuovo file con nome <name>.particle.json nella cartella delle particelle e VSCode lo aprirà automaticamente con l'editor di Snowstorm. Puoi anche fare clic su Apri codice nell'angolo in alto a destra per visualizzare in anteprima il codice generato in una nuova scheda e potrai persino modificare il codice direttamente qui.

Creare un effetto particella

In questa guida creeremo passo dopo passo un effetto fumo colorato. Innanzitutto, apri Snowstorm e individua la sezione metadati nella barra laterale. Digita l'identificatore dell'effetto particella - useremo compass:colored_smoke.

Identificatore in Snowstorm

Emettitore

Risultato finale della particella creata

Ora modificheremo l'emettitore. L'emettitore è l'elemento centrale dell'effetto particella, il responsabile della generazione di particelle. Per prima cosa, dobbiamo aprire la sezione Frequenza e stabilire quante particelle vengono generate. Lasceremo l'impostazione della modalità su Stabile, il che significa che l'emettitore genererà costantemente particelle e imposteremo la frequenza su 30 e il massimo a 100. Ciò significa che l'emettitore genererà 30 particelle al secondo nel corso della sua vita, purché nel mondo non esistano più di 100 particelle generate da questo emettitore.

Frequenza dell'emettitore in Snowstorm

Quindi definiamo la durata dell'emettitore. Vogliamo riprodurre questo effetto particella solo una volta, ma se hai bisogno di un emettitore costante, puoi anche impostarlo in loop. Imposteremo anche il Tempo attivo su 2, il che significa che l'emettitore genererà particelle per due secondi.

Durata dell'emettitore in Snowstorm

Per impostazione predefinita, le particelle vengono generate in un solo punto al centro dell'emettitore. Questo va bene per il nostro effetto particella, quindi non dobbiamo modificare nulla nella sezione Forma.

Dimensione delle particelle

Passeremo ora alle impostazioni delle particelle e configureremo quelle dell'aspetto. Tutte le particelle sono un piano 2D a cui è applicata una texture. Nelle impostazioni delle dimensioni, possiamo definire la larghezza e l'altezza di questo piano, dove ogni valore è il raggio. Ciò significa che impostando le dimensioni su 1 per 1 la renderebbe grande 2 per 2 blocchi. In questo esempio useremo 0,25 per 0,25.

Dimensione delle particelle in Snowstorm

Movimento e fisica delle particelle

Il passo successivo è definire come si muovono le particelle. Nella sezione Movimento, lasceremo la modalità Direzione impostata su Verso l'esterno. Per gli emettitori di punti, ciò significa sempre che le particelle si diffondono in tutte le direzioni uniformemente.

Movimento delle particelle in Snowstorm

Ora che la particella ha una direzione iniziale, modifichiamo la velocità. Nella sezione Movimento, imposteremo la Velocità su math.random(2, 4). Questa è una semplice espressione matematica che avrà sempre come risultato un numero decimale casuale tra 2 e 4. La velocità viene calcolata solo una volta quando viene generata la particella, quindi ora ciascuna delle nostre particelle avrà una velocità iniziale casuale.

L' Accelerazione definisce le forze che agiscono sulla particella dopo che è stata generata. Ad esempio, per simulare la gravità sulla terra, occorre impostare il valore medio (asse Y) su -9.8. Per il nostro fumo, useremo 0, 3, 0 come accelerazione per ottenere un lento movimento verso l'alto.

In questo momento, l'accelerazione renderà la nostra particella esponenzialmente più veloce. Per farla rallentare dopo un po' e contenerla in un solo spazio, aggiungeremo la resistenza dell'aria. Puoi immaginarla come aria densa che rallenta dolcemente l'accelerazione quando la particella raggiunge la sua velocità terminale. Per il momento impostiamo questo valore su 2.

Per variare un po' la resistenza dell'aria, rendiamo casuale questo valore. L'espressione della resistenza dell'aria viene valutata una volta ogni fotogramma, quindi l'uso della funzione matematica casuale non vale in questo caso, perché i valori casuali si annullerebbero a vicenda prima ancora che te ne accorga. Useremo invece una variabile integrata. A ogni particella e a ogni emettitore vengono assegnate automaticamente 4 variabili casuali che non cambieranno nel corso della durata. Le variabili contengono un numero casuale tra 0 e 1. Quindi, per ottenere un valore di resistenza dell'aria casuale tra 2 e 3, imposteremo il valore su 2 + variable.particle_random_1.

Durata delle particelle

Ora vogliamo definire per quanto tempo le particelle esistono nel mondo. Per ottenere un effetto di dissolvenza lenta, renderemo nuovamente casuale questo numero. Dal momento che il valore Età massima viene valutato solo una volta quando la particella si genera, possiamo ottenere questo risultato impostando il suo valore su math.random(1, 3).

Durata delle particelle in Snowstorm

Texture

Puoi creare una tua texture per la particella e salvarla nella cartella textures del pacchetto di risorse. Per semplicità, in questo esempio useremo lo sprite di particelle predefinito di Minecraft. Per fare riferimento a questa texture, digita texture/particella/particelle nel campo Percorso della sezione Struttura. La texture verrà caricata automaticamente e comparirà nel gioco anche se non è nel tuo pacchetto di texture attuale, dal momento che verrà impostata automaticamente sulla versione di base della texture.

Texture delle particelle e opzioni di animazione in Snowstorm

La texture delle particelle che useremo è la particella di fumo più grande. Dal momento che vogliamo animare la texture in modo da passare gradualmente a dimensioni delle particelle di fumo più piccole, impostiamo la Modalità UV su Animata.

L'intera mappa delle texture, che include le texture per tutte le particelle, ha una risoluzione di 128 x 128 pixel. La maggior parte dei singoli pezzi sullo sprite ha una dimensione di 8 x 8 pixel. Tuttavia questi valori aumentano di un fattore pari a 2. Così le Dimensioni della texture finirà per essere di 16 x 16 pixel e le restanti opzioni si baseranno su queste dimensioni.

Il pixel iniziale della particella di fumo più grande è di 56 pixel in orizzontale, aumentato di un fattore pari a 2 a 112. Poiché le texture in questo contesto sono 16 per 16, dividendo 112 per 16 darà 7, che è il valore del campo Inizio UV. In alternativa puoi contare il numero di texture che appaiono prima della texture con cui vuoi iniziare (ci sono 7 texture che compaiono prima della particella di fumo più grande). Tuttavia, contare le texture a mano può essere più difficile se c'è molto spazio vuoto.

Poiché l'animazione prevede l'utilizzo di texture di fumo più piccole, il Passaggio UV sarà impostato su -1 per 0. Ciò significa che si sposterà a sinistra di 16 pixel in orizzontale (in base alle dimensioni della texture) fino alla texture precedente e non cambierà in verticale. Imposteremo anche il valore Fotogrammi massimi su 7. L'animazione avrà otto fotogrammi dato che ci sono 8 texture; il primo viene conteggiato come "fotogramma 0", quindi l'ultimo è il fotogramma 7.

In questo caso, vogliamo distribuire equamente tutti i fotogrammi per tutta la durata della particella. Quindi lasceremo il campo Fotogrammi al secondo vuoto, il campo Loop deselezionato, ma selezioneremo il campo Allunga per tutta la vita. Ora abbiamo una texture animata funzionante.

Colore

Ora vogliamo applicare dei colori casuali alle particelle. La texture di base è bianca, un ottimo punto di partenza per colorare le particelle.

Colore delle particelle in Snowstorm

Useremo una gamma di colori diversi e ogni particella sceglierà un valore casuale. Per prima cosa, apri la sezione Colore e luce e seleziona la modalità Gradiente. Configuriamo un bell'arcobaleno semplice. Puoi aggiungere un punto di colore usando l'icona +, spostarlo e cambiare il colore di ogni punto.

L'intervallo di colori predefinito è compreso tra 0 e 1. Ciò significa che ora possiamo semplicemente usare un'altra delle nostre variabili casuali integrate per scegliere un colore casuale. Inseriamo variable.particle_random_2 nel campo Interpolante. Ora, ogni particella verrà generata in un colore casuale dal gradiente.

In Snowstorm il risultato finale dovrebbe essere simile a questo:

Risultato finale della particella creata in Snowstorm

Uso dell'effetto particella nel gioco

Ci sono tre modi principali per riprodurre gli effetti particella nel gioco:

Comandi

Questo è il modo più semplice per testare un effetto. Usa il comando /particle per evocare nel mondo un emettitore di particelle.

Nota

Poiché gli effetti particella sono interamente lato client e i comandi vengono eseguiti lato server, il server non è a conoscenza degli effetti particella. Ciò significa che non riceverai un messaggio di errore se provi a riprodurre un effetto particella che non esiste.

Ecco un esempio di comando: Le tre tilde alla fine del comando indicano la posizione, in questo caso la posizione esatta in cui è stato eseguito il comando, quindi la posizione dei piedi del giocatore o il centro del blocco di comando che esegue il comando.

/particle compass:colored_smoke ~ ~ ~

Animazioni

Le particelle possono essere riprodotte anche nelle animazioni delle entità. Si tratta di un processo a due fasi. Innanzitutto devi collegare l'effetto particella al file di entità client e assegnargli un nome breve. Poi puoi usare il nome breve in un'animazione.

Aggiungilo al file di entità client all'interno dell'oggetto descrizione:

"particle_effects": {
    "smoke": "compass:colored_smoke"
}

I fotogrammi chiave dell'effetto particella possono essere aggiunti a un'animazione in Blockbench. Fai clic sul pulsante Effetti animati sopra la cronologia e aggiungi un fotogramma chiave al canale Particella. Ora inserisci il nome breve (come definito nel file di entità client) nell'input Effetto del pannello dei fotogrammi chiave.

Puoi anche specificare un localizzatore nel file di entità in cui apparirà l'effetto particella. Puoi anche assegnare una variabile nell'input Script che può essere successivamente utilizzata all'interno dell'effetto particella.

Esempio:

variable.custom_size = 3.14;

Controller di animazione

Gli effetti particella possono essere riprodotti anche dai controller di animazione. Per fare ciò, prima aggiungi l'effetto particella al file di entità client, come descritto in precedenza. Aggiungi quindi uno o più effetti particella a uno stato specifico del controller di animazione, come illustrato in questo esempio:

"particle_effects": [
    {
        "effect": "smoke"
    }
]

E adesso?

Congratulazioni, sei arrivato alla fine dell'articolo! Hai imparato come creare un effetto particella personalizzato, come configurare l'emettitore, come cambiare la fisica, come usare una texture animata e come colorarla.

La creazione di effetti particella è tutta una questione di tentativi ed errori, di combinare impostazioni diverse e utilizzare espressioni Molang per potenziare i parametri. Per saperne di più, ti invitiamo a dare un'occhiata alle particelle di esempio e osservarne la configurazione per imparare come si possono usare diversi valori ed espressioni per creare gli effetti. E, cosa più importante, gioca con tutti i parametri, divertirti e vedi cosa riesci a inventare.