Strumento Effetti (FX)

Lo strumento Effetti (FX) consente agli utenti di creare effetti visivi dinamici con un solo clic di un pulsante, contribuendo a dare vita alle storie. Lo strumento include una libreria di effetti particellari predefiniti e l'abilità di creare effetti particellari personalizzati.

In precedenza, lo strumento Effetti (FX) era disponibile esclusivamente per gli abbonati Pro. Con il lancio del nuovo motore per il tavolo di gioco di Roll20, lo strumento è stato migliorato e reso disponibile per fornire accesso a effetti predefiniti a tutti gli utenti, indipendentemente dall'abbonamento. Gli abbonati Pro mantengono l'accesso all'abilità di creare e modificare effetti personalizzati.

 

Effetti personalizzati

Gli effetti personalizzati consentono di creare un numero maggiore di modelli di emissione di particelle rispetto al numero limitato di effetti integrati. Gli abbonati Pro possono creare e modificare effetti personalizzati. Se un creatore della partita dispone di un abbonamento Pro, gli effetti personalizzati saranno disponibili per tutti i giocatori, che potranno visualizzarli e utilizzarli nel gioco.

Per creare un Effetto personalizzato, prima selezioni lo Strumento Effetti (icona della bacchetta) dalla barra degli strumenti sinistra, poi selezioni l'opzione "+Effetto personalizzato" nel menu. Si aprirà una finestra di dialogo, simile alla finestra di dialogo Macro, in cui potrà modificare diversi attributi disponibili nell'effetto predefinito o aggiungere proprietà/attributi aggiuntivi indicati di seguito in questo articolo. Queste informazioni devono essere in un formato JSON, se il formato non è corretto non le permetterà di salvare il suo nuovo Effetto personalizzato. Se non sa esattamente cosa sia JSON, può iniziare con il formato generale del codice predefinito e cambiare solo i numeri. Può anche aggiungere snippet di codice per ulteriori proprietà, spiegate più avanti nell'articolo.

Proprietà degli effetti personalizzati

Queste proprietà (attributi dei modelli di emissione delle particelle) sono condivise tra la nostra funzione Effetti personalizzati Classic Tabletop e il nuovo motore per il tavolo di gioco.

angolo
Questo è l'angolo con cui le particelle vengono espulse dal punto di generazione (il cursore). L'angolo è misurato in gradi a partire da 0 che punta verso destra, quindi 90 è dritto in basso, 180 è a sinistra, 270 è dritto in alto. Se inserisci -1 per questo valore, il sistema ti chiederà di "mirarlo" ogni volta che lo usi. Questo è utile quando desidera sparare un effetto in una direzione diversa ogni volta che lo utilizza.

angoloRandom

Quanto le particelle si diffondono dall'angolo originale verso entrambi i lati. Un AngoloRandom di 45 risulterà in un arco di fuoco di 90 gradi centrato sull'angolo originale.

durata
Questa è la durata dell'effetto, anche se il mouse viene tenuto premuto. Questo viene principalmente utilizzato con effetti mirati e per gli effetti onDeath, poiché il mouse non può essere tenuto premuto, quindi dureranno per la durata specificata. La durata massima in questi casi è di 50, che corrisponde a circa 2 secondi. Può essere utile anche se si desidera che l'effetto sia solo una singola esplosione di particelle, come negli effetti Bomba e Nova in cui la durata è solo di 10. Se imposta la durata su -1, l'effetto durerà fino a quando terrà premuto il pulsante del mouse, altrimenti l'effetto si interromperà al termine della durata, anche se terrà premuto il pulsante.

emissionRate
Questa è una misura della velocità con cui le particelle vengono create e sparate dall'origine. Questo attributo è strettamente legato all'attributo maxParticles, perché se questo limite viene raggiunto, il sistema smetterà di creare particelle, quindi si assicuri di impostare un valore massimo sufficiente a sostenere il suo tasso di emissione.

gravità
Questo attributo è l'unico che ha 2 "sotto-attributi", x e y. Queste 2 opzioni sono disponibili perché puoi far sì che la "gravità" funzioni in qualsiasi direzione. Non puoi utilizzare il valore 0 per nessuno di questi attributi, quindi utilizza 0,01 per "nessuna gravità". X e Y accettano entrambi i valori positivi e negativi, un valore positivo di Y tirerebbe le particelle verso il basso, mentre un valore negativo le tirerebbe verso l'alto; funziona allo stesso modo con X, sinistra e destra.

lifeSpan
lifeSpan definisce quanto tempo, in una misura di tempo, durerà una particella prima di scomparire. Questo attributo, combinato con la velocità, deciderà quanto lontano volerà la particella prima di essere distrutta.

durata della vitaRandom

Quanta variazione c'è nella durata di vita delle singole particelle.
Se un effetto ha una durata di vita di 10 e un lifeSpanRandom di 5, le particelle saranno vive per un arco di tempo di 5-15.

maxParticelle
maxParticelle definisce il numero totale di particelle, per quell'effetto specifico, che possono essere presenti sul tabellone in una sola volta. Una volta raggiunto questo massimo, le particelle smetteranno di essere generate fino a quando alcune delle particelle già esistenti non raggiungeranno la fine della loro 'vita'.

dimensione
La dimensione definisce la dimensione relativa delle particelle che vengono create.

sizeRandom

Quanta variazione di dimensione c'è nelle particelle dell'effetto.
Se un effetto ha una dimensione di 10 e una dimensioneRandom di 5, le particelle avranno una dimensione di 5-15.

velocità
definisce la velocità con cui le particelle si allontanano dall'origine.

velocitàRandom

Quanta variazione di velocità c'è nelle particelle dell'effetto.
Se un effetto ha una velocità di 10 e una dimensioneRandom di 5, le particelle avranno una velocità di 5-15.

startColour / endColour
start/endColour definisce il colore della particella quando viene creata e subito prima di essere distrutta, rispettivamente, utilizzando un array [Red, Green, Blue, Alpha]. I colori RGB utilizzano valori compresi tra 0 e 255 e il canale Alfa è un decimale compreso tra 0 e 1. Se stai cercando un colore specifico, puoi cercare "selettore di colore esadecimale" nel tuo motore di ricerca preferito e otterrai i numeri che stai cercando. I colori sfumeranno dal valore di inizio al valore di fine nel corso della loro durata. Poiché tutte le particelle sono sovrapposte all'inizio, i colori tendono ad essere molto più chiari, trasformandosi in una palla bianca, di quanto ti aspetti, quindi vorrai utilizzare colori più scuri almeno nel blocco startColour. Ci sono molti esempi di colori alla fine di questa pagina, se sta cercando ispirazione.

startColour / endColour Casuale

I randomi di inizio e fine determinano la differenza di colore delle particelle all'inizio e alla fine della loro durata di vita. Esempio:

startColour: [220, 35, 0, 1],
startColourRandom: [62, 0, 0, 0.25]

un effetto con questi valori andrà da un RGBA di

Da [158, 35, 0, 0.75] a
[255, 35, 0, 1]

con il risultato di una gamma di colori più varia per le particelle del suo effetto.

onDeath
Questo è l'unico valore che accetta una stringa, quindi si assicuri di avvolgere il valore tra "virgolette" o non le permetterà di salvare. Questo viene utilizzato, come nell'effetto Burst, per generare un effetto aggiuntivo non appena quello originale finisce. L'effetto Burst è fondamentalmente solo l'effetto Burn con "suMorte": "esplosione", quindi l'effetto Burn dura finché non lasci il mouse, dopodiché genererà l'effetto Esplosione nella stessa posizione. L'effetto che viene generato nella sequenza suMorte non può essere un effetto "mirato" e deve avere una durata. Se ha un -1 per uno dei due, verrà impostato un valore predefinito o non funzionerà come previsto. Questo funziona anche solo per altri FX personalizzati, se più FX hanno lo stesso nome a cui lei fa riferimento, selezionerà solo il primo dell'elenco.

Proprietà degli effetti personalizzati aggiunte con l'ultimo motore VTT

Queste proprietà aggiuntive (attributo dei modelli di emissione delle particelle) non sono disponibili nei giochi che utilizzano il VTT classico.

sizeGradient
I gradienti di dimensione consentono alle particelle dell'effetto di crescere e ridursi nel corso della vita della particella. "gradiente" viene utilizzato per indicare in quale punto dell'arco di vita la dimensione dovrebbe trovarsi "fattore", che è un moltiplicatore per la dimensione di base della particella. Nell'esempio seguente, le particelle nell'effetto inizieranno con una dimensione del 75%, poi cresceranno fino alla dimensione normale nel primo 20% della durata di vita della particella, quindi cresceranno fino a 1,5 volte la dimensione di base nel resto della vita.

[
{ "gradient": 0, "factor": 0.75 },
{ "gradient": 0.2, "factor": 1 },
{ "gradient": 1, "factor": 1.5 }
]

emitRateGradients
Gli Emit Rate Gradients definiscono come il tasso di emissione dell'effetto cambia nel corso della durata dell'effetto, in modo simile al sizeGradient che cambia la dimensione delle particelle nel corso della durata delle singole particelle. Nell'esempio seguente, l'effetto sparerà una raffica di particelle all'inizio e poi si affievolirà nel corso della sua durata.

[
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.25, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
]

velocityGradients
I gradienti di velocità definiscono il modo in cui le particelle cambiano la loro velocità nel corso della loro vita.
Nell'esempio precedente, le particelle sparerebbero molto più velocemente della loro velocità di base e poi rallenterebbero rapidamente fino al 20% della velocità di base nel primo 60% della sua vita, per poi rallentare fino a fermarsi nel restante 40%.

[
{ "gradient": 0, "factor": 3 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
]

rulerType

Questo definisce come si presenta e supporta l'interfaccia di puntamento

  • 'cono'
  • 'linea'
  • 'fascio'

additionalEmissinRatePerPixel
Questa proprietà viene utilizzata in combinazione con il Tipo di righello e indica quanto più velocemente l'effetto deve produrre le particelle quanto più lunga è la portata dell'effetto.

scaleX
Determina quanto devono essere più larghe le particelle, è un moltiplicatore della dimensione di base.

scaleY
Determina quanto devono essere più alte le particelle, è un moltiplicatore della dimensione di base.

alignParticles
Questo forza l'allineamento di ogni particella affinché corrisponda all'angolo in cui è stata sparata.

rotationSpeed
Determina la velocità di rotazione delle particelle, il valore predefinito è nessuna rotazione.

emitterSize
Determina la dimensione della scatola dell'emettitore. Il valore sarà doppio rispetto a quello di un quadrato.
Un valore di 5 si tradurrebbe in una casella di emettitore di 10x10 pixel.

isPointToPoint

Determina se l'Effetto deve spostarsi dall'inizio alla fine mentre spara particelle lungo il percorso, utilizzabile solo con gli Effetti mirati.

subemittenti

subEmettitori ha un elenco di emettitori.

  • tipo - 0 è per quando desidera un subEmittente collegato a una particella, 1 indica che si riprodurrà alla fine del ciclo di vita di una particella
  • ereditaDirezione - Imposta la direzione +Y del subemettitore uguale alla direzione in cui la particella si sta dirigendo, vero o falso.
  • inheritedVelocityAmount - determina quanta velocità delle particelle esistenti deve essere aggiunta alle particelle dell'emettitore.
  • emitterNames - altri emettitori che lei potrebbe indirizzare per nome. Questo sceglierà in modo casuale uno di questi emettitori, quando viene eseguito su una particella.
{
"emitters": [{
"type": 1,
"inheritDirection": false,
"inheritedVelocityAmount": 0,
"emitterNames": ["pooling"]
}]
}

baseEffetto

Nome di un effetto esistente su cui basare un nuovo effetto. Ottiene tutte le proprietà del baseEffect e può inoltre sovrascrivere altre proprietà per aggiungere effetti personalizzati. Per esempio, il nostro effetto "Razzo" si basa sull'effetto "Missile" con un'esplosione aggiuntiva in caso di morte.

{
"name": "Rocket",
"baseEffect": "missile",
"onDeath": "explode",
}

Effetti integrati

Effetto Anteprima

Raggio

{
"name": "tool_fx_beam",
"maxParticles": 500,
"scaleX": 2,
"scaleY": 3,
"alignParticles": true,
"size": 60,
"sizeGradients": [
{ "gradient": 0, "factor": 0 },
{ "gradient": 0.3, "additionalGradientPerPixel": -0.0002, "factor": 1 },
{ "gradient": 0.8, "factor": 1.2 }
],
"sizeRandom": 0,
"lifeSpan": 15,
"lifeSpanRandom": 0,
"emissionRate": 4,
"additionalEmissionRatePerPixel": 0.02,
"emitterSize": 1,
"speed": 0,
"additionalSpeedPerPixel": 0.07,
"speedRandom": 0,
"angle": -1,
"angleRandom": 1,
"duration": 25,
"rulerType": "beam"
}

Bomba

{
"name": "tool_fx_bomb",
"maxParticles": 500,
"alignParticles": true,
"size": 30,
"sizeRandom": 10,
"sizeGradients": [
{ "gradient": 0, "factor": 0 },
{ "gradient": 0.3, "additionalGradientPerPixel": -0.0002, "factor": 0.5 },
{ "gradient": 0.8, "factor": 2 },
{ "gradiente": 1, "fattore": 1.5 }
],
"durata": 25,
"durataCasuale": 5,
"velocità": 5,
"velocitàCasuale": 2,
"gradientiVelocità": [
{ "gradiente": 0, "fattore": 2 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
],
"angle": 270,
"angleRandom": 70,
"emissionRate": 250,
"duration": 10
}

Soffio

{
"name": "tool_fx_breath",
"alignParticles": true,
"maxParticles": 500,
"size": 10,
"sizeRandom": 5,
"sizeGradients": [
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.2, "factor": 0, "additionalFactorPerPixel": 0.0125 },
{ "gradient": 0.7, "factor": 0, "additionalFactorPerPixel": 0.025 },
{ "gradient": 1, "factor": 1 }
],
"lifeSpan": 25,
"lifeSpanRandom": 2,
"emissionRate": 120,
"additionalEmissionRatePerPixel": 0.143,
"emitRateGradients": [
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.25, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
],
"speed": -1,
"additionalSpeedPerPixel": 0.04,
"velocityGradients": [
{ "gradient": 0, "factor": 3 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
],
"speedRandom": 0,
"angle": -1,
"angleRandom": 15,
"duration": 25,
"rulerType": "cone"
}

Ribollimento

{
name: 'tool_fx_bubbling',
maxParticles: 200,
size: 8,
sizeRandom: 3,
sizeGradients: [
{ gradient: 0, factor: 0.5 },
{ gradient: 0.2, factor: 1 }
],
lifeSpan: 60,
lifeSpanRandom: 5,
speed: 0.5,
speedRandom: 2,
gravity: { x: 0, y: 0, z: -0.01 },
angle: 0,
angleRandom: 180,
emissionRate: 5
}

Bruciatura


"name": "tool_fx_burn",
"maxParticles": 100,
"size": 70,
"sizeGradients": [
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.5, "factor": 2 },
{ "gradient": 1, "factor": 4 }
],
"sizeRandom": 15,
"lifeSpan": 10,
"lifeSpanRandom": 3,
"speed": 3,
"angle": 0,
"emissionRate": 12
}

Deflagrazione


"name": "tool_fx_burst",
"maxParticles": 100,
"size": 35,
"sizeRandom": 15,
"lifeSpan": 10,
"lifeSpanRandom": 3,
"speed": 3,
"angle": 0,
"emissionRate": 12,
"onDeath": "explode"
}

 

Esplosione


"name": "tool_fx_explode",
"maxParticles": 500,
"alignParticles": true,
"size": 60,
"sizeRandom": 10,
"duration": 20,
"sharpnessRandom": 10,
"nitidezza": 20,
"durata": 20,
"durataCasuale": 5,
"velocità": 7,
"gradientiVelocità": [
{ "gradiente": 0, "fattore": 3 },
{ "gradiente": 0.6, "fattore": 0.2 },
{ "gradiente": 1, "fattore": 0 }
],
"velocitàCasuale": 0,
"angolo": 0,
"angoloCasuale": 360,
"tassoDiEmissione": 200,
"gradientiTassoDiEmissione": [
{ "gradiente": 0, "fattore": 1 },
{ "gradient": 0.25, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
]
}

Incandescenza


"name": "tool_fx_glow",
"maxParticles": 250,
"size": 140,
"sizeRandom": 0,
"lifeSpan": 10,
"lifeSpanRandom": 0,
"emissionRate": 1,
"speed": 0,
"speedRandom": 0,
"angle": 0,
"rotationSpeed": 2,
"emitterSize": 0.5
}

Proiettile


"name: "tool_fx_missile",
"maxParticles": 350,
"size": 7,
"sizeRandom": 3,
"lifeSpan": 7,
"lifeSpanRandom": 5,
"emissionRate": 50,
"speed": 7,
"speedRandom": 5,
"angle": -1,
"rulerType": 'line',
"duration": 25,
"isPointToPoint": true
}

Nova

{
"name": "tool_fx_nova",
"maxParticles": 500,
"alignParticles": true,
"scaleX": 2,
"size": 25,
"sizeRandom": 0,
"sizeGradients": [
{ "gradient": 0, "factor": 0.5 },
{ "gradient": 0.2, "factor": 0.75 },
{ "gradient": 0.7, "factor": 1 },
{ "gradient": 1, "factor": 2 }
],
"lifeSpan": 30,
"lifeSpanRandom": 0,
"emissionRate": 1000,
"speed": 7,
"speedRandom": 0,
"angle": 0,
"angleRandom": 180,
"duration": 5
}

Zampillo


"name": "tool_fx_pooling",
"type: "tool_fx_click",
"blendMode": 4,
"angle": 0,
"angleRandom": 359,
"duration": 10,
"emissionRate": 1,
"lifeSpan": 20,
"lifeSpanRandom": 0,
"maxParticles": 1,
"size": 15,
"sizeRandom": 5,
"speed": 0,
"speedRandom": 0,
"rotationSpeed": 0,
"sizeGradients": [
{ "gradient": 0, "factor": 0.01 },
{ "gradient": 0.1, "factor": 2 },
{ "gradient": 0.7, "factor": 2.5 },
{ "gradient": 1, "factor": 0.01 }
]
}

Razzo

{
"name": "Rocket",
"baseEffect": "missile",
"onDeath": "explode"
}

Scudo


"name": "tool_fx_shield",
"maxParticles": 250,
"size": 140,
"sizeRandom": 0,
"lifeSpan": 10,
"lifeSpanRandom": 0,
"emissionRate": 5,
"speed": 0,
"speedRandom": 0,
"angle": 0,
"blendMode": ParticleSystem.BLENDMODE_ADD,
"rotationSpeed": 2,
"emitterSize": 0.5
}

Scintillio
 

{
"name: "tool_fx_sparkle",
"maxParticles": 150,
"size": 30,
"sizeRandom": 3,
"sizeGradients": [
{ "gradient": 0, "factor": 0.75 },
{ "gradient": 0.2, "factor": 1 },
{ "gradient": 0.7, "factor": 1.5 },
{ "gradient": 1, "factor": 0.5 }
],
"lifeSpan": 20,
"lifeSpanRandom": 5,
"emissionRate": 7,
"speed": 4,
"speedRandom": 2,
"angle": 0,
"angleRandom": 0,
"gravity": { x: 0.0, y: 0.0, z: -10.0 },
"blendMode": ParticleSystem.BLENDMODE_ADD,
"rotationSpeed": 1,
"emitterSize": 0.5
}

Splatter (migliorato)


"name": "tool_fx_splatter",
"type": "tool_fx_aimed",
"alignParticles": true,
"angle": 15,
"angleRandom": 15,
"blendMode": 4,
"duration": 25,
"emissionRate": 20,
"lifeSpan": 10,
"lifeSpanRandom": 0,
"maxParticles": 50,
"rulerType": 'line',
"size": 35,
"sizeRandom": 10,
"speed": 20,
"speedRandom": 1,
"sizeGradients": [
{ "gradient": 0, "factor": 0.5 },
{ "gradient": 1, "factor": 1 }
],
"subEmitters": {
"emitters": [{
"type": 1,
"inheritDirection": false,
"inheritedVelocityAmount": 0,
"emitterNames": ["pooling"]
}]
}
}
Questo articolo ti è stato utile?
Utenti che ritengono sia utile: 64 su 91