Herramienta de efectos (FX)

La herramienta Efectos (FX) permite a los usuarios crear efectos visuales dinámicos con solo hacer clic en un botón para ayudar a dar vida a las historias. La herramienta incluye una biblioteca de efectos de partículas preconstruida y la posibilidad de crear efectos de partículas personalizados.

Anteriormente, la herramienta Efectos (FX) solo estaba disponible para los suscriptores Pro. Con el lanzamiento del nuevo motor de mesa de Roll20, la herramienta se mejoró y se puso a disposición de todos los usuarios, independientemente de su suscripción, para proporcionarles acceso a efectos predefinidos. Los suscriptores Pro mantienen el acceso a la función de crear y modificar efectos personalizados.

 

Efectos personalizados

Los efectos personalizados le permiten crear más patrones de emisión de partículas que los pocos efectos incorporados. Los suscriptores Pro pueden crear y editar efectos personalizados. Si un creador de juegos tiene una suscripción Pro, los efectos personalizados estarán disponibles para que todos los jugadores los vean y utilicen en el juego.

Para crear su propio efecto personalizado, seleccione primero la herramienta Efectos (icono de la varita mágica) en la barra de herramientas de la izquierda y, a continuación, seleccione la opción "+Efecto personalizado" en el menú. Se abrirá un cuadro de diálogo, muy parecido al de macros, en el que podrá modificar diferentes atributos disponibles en el efecto predeterminado o añadir propiedades/atributos adicionales a los que se hace referencia más adelante en este artículo. Esta información debe estar en formato JSON, si el formato es incorrecto no le dejará guardar su nuevo Efecto personalizado. Si no sabe exactamente qué es JSON, empiece con el formato general del código predeterminado y limítese a cambiar los números. También puede añadir fragmentos de código para propiedades adicionales que se explican más adelante en el artículo.

Propiedades de efectos personalizados

Estas propiedades (atributos de los patrones de emisión de partículas) se comparten entre nuestra función de efectos personalizados Classic Tabletop y el nuevo motor Tabletop.

Ángulo
Este es el ángulo en el que las partículas se expulsan desde el punto de aparición (su cursor). El ángulo se mide en grados, comenzando desde 0 apuntando hacia la derecha, por lo que 90 es hacia abajo, 180 es hacia la izquierda, 270 es hacia arriba. Si ingresas -1 para este valor, el sistema te pedirá que lo "apuntes" cada vez que lo uses. Esto resulta útil cuando desea disparar un efecto en una dirección diferente cada vez que lo utiliza.

angleRandom

Cuánto se extienden las partículas desde el ángulo original hacia ambos lados. Un ánguloRandom de 45 daría como resultado un arco de fuego de 90 grados centrado en el ángulo original.

duración
Este es el tiempo que durará el efecto, incluso si se mantiene pulsado el ratón. Esto se usa principalmente con efectos dirigidos y para efectos al morir (si no se establece o es -1, se establecerá automáticamente en 25), ya que el mouse no se puede mantener presionado, por lo que durarán durante la duración establecida. La duración máxima en estos casos es de 50, que equivale aproximadamente a 2 segundos. También puede ser útil si quieres que el efecto sea simplemente una ráfaga única de partículas, como en los efectos de Bomba y Nova donde la duración es solo de 10. Si ajusta la duración a -1, el efecto durará mientras mantenga pulsado el botón del ratón; de lo contrario, el efecto se detendrá una vez finalizada la duración aunque mantenga pulsado el botón.

emissionRate
Es una medida de la rapidez con la que se crean y disparan las partículas desde el origen. Este atributo está estrechamente relacionado con el atributo maxParticles porque si se alcanza ese límite el sistema dejará de crear partículas, así que asegúrese de que establece el max lo suficientemente alto como para soportar su tasa de emisión.

gravedad
Este atributo es el único que tiene 2 "subatributos", x e y. Tiene estas 2 opciones porque puedes hacer que la "gravedad" funcione en cualquier dirección. No puedes usar el valor 0 para ninguno de estos atributos, así que usa 0.01 para "sin gravedad". Tanto X como Y aceptan valores positivos y negativos, un valor positivo de Y tiraría de las partículas hacia abajo mientras que un valor negativo tiraría de las partículas hacia arriba y funciona de la misma manera con X e izquierda y derecha.

lifeSpan
lifeSpan define cuánto tiempo, en una medida de tiempo, durará una partícula antes de desaparecer. Este atributo, combinado con la velocidad, decidirá hasta dónde volará la partícula antes de ser destruida.

lifeSpanRandom

Cuánta variación hay en el periodo de vida de las partículas individuales.
Si un efecto tiene un periodo de vida de 10 y un lifeSpanRandom de 5 las partículas estarán vivas durante un periodo de 5-15.

maxParticles
maxParticles define el número total de partículas, para ese efecto específico, que puede haber en el tablero a la vez. Una vez alcanzado este máximo, las partículas dejarán de generarse hasta que algunas de las ya existentes lleguen al final de su "vida".

size
size define el tamaño relativo de las partículas que se crean.

sizeRandom

Cuánta variación de tamaño hay en las partículas del efecto.
Si un efecto tiene un tamaño de 10 y un tamañoRandom de 5 las partículas tendrán un tamaño de 5-15.

speed
speed define la velocidad a la que las partículas se alejarán del origen.

velocidadRandom

Cuánta variación de velocidad hay en las partículas del efecto.
Si un efecto tiene una velocidad de 10 y un tamañoRandom de 5 las partículas tendrán una velocidad de 5-15.

startColour / endColour
start/endColour define el color de la partícula cuando se crea y justo antes de destruirse, respectivamente, utilizando una matriz [Rojo, Verde, Azul, Alfa]. Los colores, RGB, utilizan valores entre 0 y 255 y el canal Alfa es un decimal entre 0 y 1. Si estás buscando un color específico, puedes buscar "selector de color hexadecimal" en tu motor de búsqueda favorito y eso te dará los números que estás buscando. Los colores se desvanecerán desde el valor de inicio hasta el valor final a lo largo de su vida útil. Dado que todas las partículas están apiladas unas encima de otras al principio, los colores tienden a ser mucho más claros, convirtiéndose en una bola blanca, de lo que esperas, por lo que querrás usar colores más oscuros al menos en el bloque de startColour. Hay un montón de ejemplos de colores al final de esta página, si busca inspiración.

startColour / endColour Aleatorio

Los aleatorios de inicio y fin determinan cuánta diferencia hay en el color de las partículas al principio y al final de su vida útil. Ejemplo:

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

un efecto con estos valores oscilará entre un RGBA de

[158, 35, 0, 0,75] a
[255, 35, 0, 1]

dando como resultado una gama de colores más variada para las partículas de su efecto.

onDeath
Este es el único valor que acepta una cadena, así que asegúrese si lo utiliza de envolver el valor entre "comillas" o no le dejará guardar. Esto se utiliza, al igual que en el efecto Ráfaga, para generar un efecto adicional tan pronto como el original termine. El efecto Ráfaga es básicamente el efecto Quemar con "enMuerte": "explosión", por lo que el efecto Quemar dura hasta que sueltes el mouse, después de lo cual generará el efecto Explosión en la misma ubicación. El efecto que se genera en la secuencia enMuerte no puede ser un efecto "apuntado" y debe tener una duración. Si tiene un -1 en cualquiera de estos, se le asignará un valor predeterminado o no funcionará como se pretende. Esto también sólo funciona para otros FX personalizados, si varios FX tienen el mismo nombre al que usted hace referencia sólo seleccionará el primero de la lista.

Propiedades de efectos personalizados añadidas con el último motor VTT

Estas propiedades adicionales (atributos de los patrones de emisión de partículas) no están disponibles en los juegos que utilizan el VTT heredado.

sizeGradient
Los gradientes de tamaño permiten que las partículas del efecto crezcan y se encojan a lo largo de su vida útil. "gradiente" se utiliza para denotar en qué punto de la vida útil debe estar el tamaño "factor", que es un multiplicador del tamaño base de la partícula. En el siguiente ejemplo, las partículas del efecto comenzarían con un tamaño del 75% y luego crecerían hasta alcanzar el tamaño normal durante el primer 20% de la vida útil de la partícula y luego crecerían hasta 1,5 veces su tamaño base durante el resto de su vida útil.

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

emitRateGradients
Los Gradientes de Tasa de Emisión definen cómo cambia la tasa de emisión del efecto a lo largo de la duración del mismo, de forma similar al sizeGradient que cambia el tamaño de las partículas a lo largo de la duración de las partículas individuales. En el ejemplo siguiente, el efecto dispararía una ráfaga de partículas al principio y luego iría disminuyendo a lo largo de su duración.

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

velocityGradients
Los gradientes de velocidad definen la forma en que las partículas cambian su velocidad a lo largo de su vida útil.
En el ejemplo anterior, las partículas saldrían disparadas mucho más rápido que su velocidad base y luego se ralentizarían rápidamente hasta alcanzar el 20% de la velocidad base durante el primer 60% de su vida útil, para luego frenarse hasta detenerse durante el 40% restante.

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

rulerType

Esto define lo que la interfaz de puntería presenta como y soporta

  • 'cono'
  • 'línea'
  • 'haz'

additionalEmissinRatePerPixel
Esta propiedad se utiliza junto con el tipo de regla y denota cuánto más rápido debe producir partículas el efecto cuanto mayor sea el alcance del mismo.

scaleX
Determina cuánto más anchas deben ser las partículas, es un multiplicador del tamaño base.

scaleY
Determina cuánto más altas deben ser las partículas, es un multiplicador del tamaño base.

alignParticles
Esto fuerza la alineación de cada partícula para que coincida con el ángulo en el que fue disparada.

rotationSpeed
Determina la velocidad a la que deben girar las partículas, por defecto es sin giro.

emitterSize
Determina el tamaño de la caja emisora. Tendrá el doble de valor que un cuadrado.
Un valor de 5 daría como resultado una caja emisora de 10x10 píxeles.

isPointToPoint

Determina si el Efecto debe moverse desde el inicio hasta el final mientras dispara partículas a lo largo de la trayectoria, sólo utilizable con Efectos dirigidos.

subEmisores

subEmisores tiene una lista de emisores.

  • tipo - 0 es para cuando quiera un subEmisor unido a una partícula, 1 indica que aparecerá al final del ciclo de vida de una partícula
  • heredarDirección - Establece la dirección +Y del subemisor igual a la dirección en la que la partícula se dirige/se dirigía verdadero o falso
  • inheritedVelocityAmount - determina cuánta velocidad de las partículas existentes debe añadirse a las partículas emisoras
  • emitterNames - otros emisores a los que puede dirigirse por su nombre. Esto elegirá aleatoriamente uno de estos emisores cuando se ejecute en una partícula
{
"emitters": [{
"type": 1,
"inheritDirection": false,
"inheritedVelocityAmount": 0,
"emitterNames": ["pooling"]
}]
}

baseEffect

Nombre de un efecto existente en el que basar un nuevo efecto. Obtendrá todas las propiedades del baseEffect y podrá anular adicionalmente otras propiedades para añadir efectos personalizados. Por ejemplo, nuestro efecto "Cohete" se basa en nuestro efecto "Misil" con una explosión adicional alMorir.

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

Efectos incorporados

Efecto Avance

Haz

{
"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 },
{ "gradient": 1, "factor": 1.5 }
],
"lifeSpan": 25,
"lifeSpanRandom": 5,
"speed": 5,
"speedRandom": 2,
"velocityGradients": [
{ "gradient": 0, "factor": 2 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
],
"angle": 270,
"angleRandom": 70,
"emissionRate": 250,
"duration": 10
}

Aliento

{
"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"
}

burbujeante

{
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
}

Quemar

{
"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
}

Ráfg.

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

 

Explotar

{
"name": "tool_fx_explode",
"maxParticles": 500,
"alignParticles": true,
"size": 60,
"sizeRandom": 10,
"duration": 20,
"sharpnessRandom": 10,
"sharpness": 20,
"lifeSpan": 20,
"lifeSpanRandom": 5,
"speed": 7,
"velocityGradients": [
{ "gradient": 0, "factor": 3 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradiente": 1, "factor": 0 }
],
"velocidadAleatoria": 0,
"ángulo": 0,
"ánguloAleatorio": 360,
"tasaDeEmisión": 200,
"gradientesDeTasaDeEmisión": [
{ "gradiente": 0, "factor": 1 },
{ "gradient": 0.25, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
]
}

Brillo

{
"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
}

Misil

{
"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
}

Estrella nueva

{
"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
}

Agrupación

{
"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 }
]
}

Cohete

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

Escudo

{
"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
}

Brillo
 

{
"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
}

Salpicadura (mejorada)

{
"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"]
}]
}
}
¿Fue útil este artículo?
Usuarios a los que les pareció útil: 64 de 91