Blockland Forums > Modification Help
Solved Animated fire not showing up in game
Biqus:
I made animated fire for my server and it shows up in the emitter list but when i try to put it on a brick nothing happens
--- Code: ---datablock particleData(AnimFlameFrame1)
{
textureName = "./frames/flame1.png";
};
datablock particleData(AnimFlameFrame2)
{
textureName = "./frames/flame2.png";
};
datablock particleData(AnimFlameFrame3)
{
textureName = "./frames/flame3.png";
};
datablock particleData(AnimFlameFrame4)
{
textureName = "./frames/flame4.png";
};
datablock particleData(AnimFlameFrame5)
{
textureName = "./frames/flame5.png";
};
datablock particleData(AnimFlameFrame6)
{
textureName = "./frames/flame6.png";
};
datablock particleData(AnimFlameFrame7)
{
textureName = "./frames/flame7.png";
};
datablock particleData(AnimFlameFrame8)
{
textureName = "./frames/flame8.png";
};
datablock particleData(AnimFlameFrame9)
{
textureName = "./frames/flame9.png";
};
datablock particleData(AnimFlameFrame10)
{
textureName = "./frames/flame10.png";
};
datablock particleData(AnimFlameFrame11)
{
textureName = "./frames/flame11.png";
};
datablock particleData(AnimFlameFrame12)
{
textureName = "./frames/flame12.png";
};
datablock particleData(AnimFlameFrame13)
{
textureName = "./frames/flame13.png";
};
datablock particleData(AnimFlameFrame14)
{
textureName = "./frames/flame14.png";
};
datablock particleData(AnimFlameFrame15)
{
textureName = "./frames/flame15.png";
};
datablock particleData(AnimFlameFrame16)
{
textureName = "./frames/flame16.png";
};
datablock particleData(AnimFlameFrame17)
{
textureName = "./frames/flame17.png";
};
datablock ParticleData(flameAniParticle) {
dragCoefficient = 0.0;
gravityCoefficient = 0.0;
inheritedVelFactor = 0.0;
windCoefficient = 0.0;
constantAcceleration = 0.0;
lifetimeMS = 566;
lifetimeVarianceMS = 0;
useInvAlpha = false;
textureName = "./frames/flame1.png";
animTexName[0] = "./frames/flame1.png";
animTexName[1] = "./frames/flame2.png";
animTexName[2] = "./frames/flame3.png";
animTexName[3] = "./frames/flame4.png";
animTexName[4] = "./frames/flame5.png";
animTexName[5] = "./frames/flame6.png";
animTexName[6] = "./frames/flame7.png";
animTexName[7] = "./frames/flame8.png";
animTexName[8] = "./frames/flame9.png";
animTexName[9] = "./frames/flame10.png";
animTexName[10] = "./frames/flame11.png";
animTexName[11] = "./frames/flame12.png";
animTexName[12] = "./frames/flame13.png";
animTexName[13] = "./frames/flame14.png";
animTexName[14] = "./frames/flame15.png";
animTexName[15] = "./frames/flame16.png";
animTexName[16] = "./frames/flame17.png";
animateTexture = true;
framesPerSec = 30;
colors[0] = "1 1 1 0.7";
colors[1] = "1 1 1 0.7";
sizes[0] = 1.0;
sizes[1] = 1.1;
times[0] = 0.0;
times[1] = 1.0;
};
datablock ParticleEmitterData(flameAniEmitter)
{
ejectionPeriodMS = 566;
periodVarianceMS = 0;
ejectionVelocity = 0.0;
ejectionOffset = 0.0;
velocityVariance = 0.0;
thetaMin = 0;
thetaMax = 0;
phiReferenceVel = 0;
phiVariance = 0;
overrideAdvance = false;
orientParticles = true;
lifeTimeMS = 100; //Usless
particles = "flameAniParticle";
uiName = "Flame Animated";
};
--- End code ---
Edit: If you use orientparticles = true then you need to put a velocity or the particles wont show up
Masterlegodude:
Animated particles are difficult in Torque, but you don't need multiple particle datablocks if you're using the 'animateTexture' method
A way i've worked out animated particles is by referencing multiple particles in the emitter data
--- Code: ---datablock ParticleData(shieldArcs1Particle)
{
dragCoefficient = 5.0;
gravityCoefficient = -0.0;
inheritedVelFactor = 0.0;
constantAcceleration = 0.0;
lifetimeMS = 50;
lifetimeVarianceMS = 0;
useInvAlpha = false;
textureName = "./electric_arcs1";
colors[0] = "1 0.9 0.4 1";
colors[1] = "1 0.9 0.4 1";
colors[2] = "1 0.9 0.4 1";
colors[3] = "1 0.9 0.4 1";
sizes[0] = 1;
sizes[1] = 1;
sizes[2] = 1;
sizes[3] = 1;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 0.7;
times[3] = 1.0;
};
datablock ParticleData(shieldArcs2Particle : shieldArcs1Particle)
{
lifetimeMS = shieldArcs1Particle.lifetimeMS;
textureName = "./electric_arcs2";
};
datablock ParticleData(shieldArcs3Particle : shieldArcs1Particle)
{
lifetimeMS = shieldArcs1Particle.lifetimeMS;
textureName = "./electric_arcs3";
};
datablock ParticleData(shieldArcs4Particle : shieldArcs1Particle)
{
lifetimeMS = shieldArcs1Particle.lifetimeMS;
textureName = "./electric_arcs4";
};
datablock ParticleEmitterData(shieldArcsEmitter)
{
ejectionPeriodMS = 10;
periodVarianceMS = 0;
ejectionVelocity = 0;
ejectionOffset = 0;
velocityVariance = 0;
thetaMin = 89;
thetaMax = 90;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvance = false;
particles = "shieldArcs1Particle" TAB "shieldArcs2Particle" TAB "shieldArcs3Particle" TAB "shieldArcs4Particle";
};
--- End code ---
Biqus:
--- Quote from: Masterlegodude on July 13, 2021, 02:46:39 PM ---
--- End quote ---
I tried to do it your way but, it put this error
It did get added to the emitter list when i changed it to use only a few of the frames but the fire still didnt appear
Masterlegodude:
So fix what the error said was the problem and shorten the names of your particle datablocks so you can fit them in the emitter, try something like "animFlame#", or just "flame#"
Biqus:
Nevermind masterlegodude for some reason orientparticles = true will break your particle emitter and cause it to not emit anything at all but thank you for trying to help me