Saltearse al contenido

Particulas

Descripcion general

El sistema de particulas de Hytale utiliza dos tipos de archivos que trabajan juntos: los sistemas de particulas (.particlesystem) componen una o mas referencias de spawners en un efecto completo, y los spawners de particulas (.particlespawner) definen el comportamiento individual del emisor — tasa de emision, velocidad, tiempo de vida, textura, animacion de color, atractores y colision. Los archivos JSON de sistemas de particulas tambien pueden usar la extension .json para efectos complejos con multiples spawners. El motor los carga en tiempo de ejecucion para producir efectos visuales para interacciones de bloques, impactos de combate, clima, habilidades de NPCs y objetos desplegables.

Ubicacion de archivos

Assets/Server/Particles/
Block/
Block_Top_Glow.particlesystem
Block_Top_Glow_Alpha.particlespawner
Clay/
Block_Break_Clay.particlesystem
Block_Hit_Clay.particlesystem
Crystal/
Stone/
Wood/
Combat/
Deployables/
Healing_Totem/
Totem_Heal_Simple_Test.json
Slowness_Totem/
Drop/
Dust_Sparkles_Fine.particlesystem
Dust_Sparkles_Fine.particlespawner
Explosion/
Item/
Memories/
NPC/
Projectile/
Spell/
Status_Effect/
Weapon/
Weather/
_Example/

Esquema

Sistema de particulas (.particlesystem / .json)

CampoTipoRequeridoPredeterminadoDescripcion
SpawnersSpawnerRef[]SiArreglo de referencias a spawners que componen este efecto de particulas.
LifeSpannumberNoDuracion total en segundos antes de que el sistema completo sea destruido. Omitir para efectos de duracion infinita.
CullDistancenumberNoDistancia en bloques mas alla de la cual el sistema de particulas no se renderiza.
BoundingRadiusnumberNoRadio utilizado para el culling de frustum.
IsImportantbooleanNofalseCuando es true, el sistema nunca es eliminado por el presupuesto de particulas.

SpawnerRef

CampoTipoRequeridoPredeterminadoDescripcion
SpawnerIdstringSiID del spawner de particulas a usar. Se resuelve a un archivo .particlespawner por nombre.
PositionOffsetVector3No{0,0,0}Desplazamiento de posicion desde el origen del sistema. Solo los ejes especificados se sobreescriben.
FixedRotationbooleanNotrueCuando es false, las particulas rotan con la entidad emisora.
StartDelaynumberNo0Segundos a esperar antes de que este spawner comience a emitir.
WaveDelayMinMaxNoRango de retraso aleatorio entre ondas de emision.

Spawner de particulas (.particlespawner)

CampoTipoRequeridoPredeterminadoDescripcion
RenderModestringNoModo de renderizado: "Erosion", "Additive", "AlphaBlend", etc.
EmitOffsetVector3MinMaxNoRango de desplazamiento aleatorio para la posicion de aparicion de particulas en cada eje.
ParticleRotationInfluencestringNoComo se calcula la rotacion de particulas: "Billboard" (mira a la camara), "Velocity", etc.
LinearFilteringbooleanNofalseUsar filtrado bilineal de texturas en lugar de vecino mas cercano.
LightInfluencenumberNo1.0Cuanto afecta la iluminacion de la escena al color de las particulas (0 = sin iluminacion, 1 = completamente iluminado).
MaxConcurrentParticlesnumberNo0Numero maximo de particulas vivas. 0 significa ilimitado.
ParticleLifeSpanMinMaxNoRango aleatorio para el tiempo de vida individual de particulas en segundos.
ParticleRotateWithSpawnerbooleanNofalseSi las particulas heredan la rotacion del spawner.
SpawnRateMinMaxNoMilisegundos entre emisiones de particulas (aleatorio dentro del rango).
InitialVelocityVelocityConfigNoVelocidad inicial en coordenadas esfericas.
AttractorsAttractor[]No[]Atractores puntuales que atraen particulas.
ParticleParticleConfigSiTextura, keyframes de animacion y estado inicial.
ParticleCollisionobjectNoConfiguracion de colision para particulas que impactan bloques.

VelocityConfig

CampoTipoRequeridoPredeterminadoDescripcion
YawMinMaxNoRango aleatorio de angulo de guiñada en grados.
PitchMinMaxNoRango aleatorio de angulo de cabeceo en grados.
SpeedMinMaxNoRango aleatorio de velocidad en bloques por segundo.

Attractor

CampoTipoRequeridoPredeterminadoDescripcion
PositionVector3SiPosicion del atractor relativa al spawner.
RadialAxisVector3NoEje para la aceleracion radial.
RadiusnumberNo0Radio de influencia del atractor.
RadialAccelerationnumberNo0Fuerza radial hacia adentro (negativa) o hacia afuera (positiva).
RadialTangentAccelerationnumberNo0Fuerza tangencial perpendicular a la direccion radial.
LinearAccelerationVector3NoAceleracion lineal constante (por ejemplo, gravedad).

ParticleConfig

CampoTipoRequeridoPredeterminadoDescripcion
TexturestringSiRuta a la imagen de textura de la particula.
FrameSize{ Width, Height }NoTamaño de un fotograma individual en una textura de hoja de sprites.
ScaleRatioConstraintstringNo"OneToOne" bloquea la escala X e Y juntas.
AnimationobjectNoMapa de keyframes donde las claves son porcentajes del tiempo de vida ("0", "50", "100").
InitialAnimationFrameobjectNoValores iniciales para rotacion, escala, opacidad e indice de fotograma.

Keyframe de animacion

Cada clave en el objeto Animation es un porcentaje del tiempo de vida (0-100). Valores en cada keyframe:

CampoTipoDescripcion
FrameIndexMinMaxRango de indice de fotograma de la hoja de sprites.
Scale{ X: MinMax, Y: MinMax }Escala en este punto de la vida de la particula.
Rotation{ X: MinMax, Y: MinMax, Z: MinMax }Rotacion en grados.
OpacitynumberOpacidad de 0 (invisible) a 1 (completamente opaco).
ColorstringTinte de color hexadecimal en este keyframe.

MinMax

CampoTipoDescripcion
MinnumberValor minimo del rango aleatorio.
MaxnumberValor maximo del rango aleatorio.

Ejemplos

Sistema de particulas simple (Assets/Server/Particles/Dust_Sparkles_Fine.particlesystem):

{
"Spawners": [
{
"SpawnerId": "Dust_Sparkles_Fine",
"FixedRotation": true,
"WaveDelay": { "Min": 4, "Max": 36 }
},
{ "SpawnerId": "Dust_Sparkles_Fine" },
{ "SpawnerId": "Dust_Sparkles_Fine" }
],
"CullDistance": 30
}

Efecto multi-spawner con retrasos (Assets/Server/Particles/Deployables/Healing_Totem/Totem_Heal_Simple_Test.json):

{
"Spawners": [
{ "SpawnerId": "Totem_Heal_Ground_Line", "PositionOffset": { "Z": 0 }, "FixedRotation": false, "StartDelay": 1.2 },
{ "SpawnerId": "Totem_Heal_Uhr", "PositionOffset": { "Y": 0.1 }, "StartDelay": 0.8 },
{ "SpawnerId": "Totem_Heal_Ground_Constant", "PositionOffset": { "Z": 0 }, "FixedRotation": false, "StartDelay": 0.5 },
{ "SpawnerId": "Totem_Heal_Sparks_Constant", "PositionOffset": { "Y": 0.5 }, "StartDelay": 0.5 }
],
"LifeSpan": 9,
"CullDistance": 100
}

Paginas relacionadas