Game Development Community

how to make a particle texture

by lzlatt · in Arcane FX (Public) · 08/28/2012 (12:28 am) · 11 replies

i want to make an underwater explosion effect but i dont know how to make a true water texture to use in the particle system .please help me with the procedure.

#1
08/28/2012 (3:02 am)
Depending on what effect you're actually after, the process should be pretty standard across the board. Simply create a new image with a transparent background and paint your texture in. Any noise should work to start with. Take a noise brush and add white to the image, and you'll have a basic particle. Have a look at the current art in ~game/art/shapes/particles for an example.
#2
08/28/2012 (4:29 am)
thank you very much!
i want to make the effect about the underwater explosion ,which inclouds the water plume ,the water dome and the water slick.could you give me some good advice to bulid a better effect?
#3
08/28/2012 (9:43 am)
You mean an explosion that starts underwater but pushes the water above the surface?

That's more to do with the particle editor, rather than particle data. The description above is just for making the particle, but you'll have to go into the particle editor and 'play around' with it to get the end result that you're after. I'm probably not the best person to help you with that, as every time I play with the particle editor something goes horribly wrong. :(

What I can do is point you to this document and that should be a step in the right direction for you. Sorry I can't be of more help.
#4
08/28/2012 (11:02 am)
Check out the RocketLauncher (or it might have been the GrenadeLauncher) water explosion -- it sort of does what you describe. Use it as an example and tweak away.
#5
08/28/2012 (4:46 pm)
Dan webb,thank you all the same.it's very helpful!
#6
08/28/2012 (5:07 pm)
Thank you very much!
Michael,could you give me a link to "the RocketLauncher water explosion",i couldn't find where it is.
#7
08/20/2013 (2:16 am)
Does the particle system in t3d support particle frames image ?

mrbubblewand.files.wordpress.com/2009/10/fire_002.png
loewald.com/waterboy/shrapnel_example.jpg
#8
08/28/2013 (12:49 pm)
Yep, there you go:

datablock ParticleData(BaseP)
{
   canSaveDynamicFields = "1";
   Enabled = "1";
   dragCoefficient = "0";
   windCoefficient = "0";
   gravityCoefficient = "-1.00366";
   inheritedVelFactor = "0";
   constantAcceleration = "-0.416667";
   lifetimeMS = "120";
   lifetimeVarianceMS = "20";
   spinSpeed = "0";
   spinRandomMin = "0";
   spinRandomMax = "1";
   useInvAlpha = "0";
   
   animTexName = "art/shapes/particles/YourTexture";
   animateTexture = "1";
   framesPerSec = "30";
   animTexFrames = "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15";
   animTexTiling = "1 1";
   
   textureCoords[0] = "0.0 0.0";
   textureCoords[1] = "0.0 0.25";
   textureCoords[2] = "0.25 0.25";
   textureCoords[3] = "0.25 0.0";
   
   Colors[0] = "1 1 1 1";
   Colors[1] = "1 1 1 1";
   Colors[2] = "1 1 1 1";
   Colors[3] = "1 1 1 1";
   sizes[0] = "0.7";
   sizes[1] = "0.4";
   sizes[2] = "0.2";
   sizes[3] = "0.0946103";
   times[0] = "0";
   times[1] = "0.294118";
   times[2] = "0.6";
   times[3] = "1";
   textureName = "art/shapes/particles/YourTexture";
};

datablock ParticleData(BFHP1 : BaseP)
{   
   textureCoords[0] = "0.0 0.25";
   textureCoords[1] = "0.0 0.5";
   textureCoords[2] = "0.25 0.5";
   textureCoords[3] = "0.25 0.25";
};

datablock ParticleData(BFHP2 : BaseP)
{   
   textureCoords[0] = "0.0 0.5";
   textureCoords[1] = "0.0 0.75";
   textureCoords[2] = "0.25 0.75";
   textureCoords[3] = "0.25 0.5";
};

datablock ParticleData(BFHP3 : BaseP)
{   
   textureCoords[0] = "0.0 0.75";
   textureCoords[1] = "0.0 1.0";
   textureCoords[2] = "0.25 1.0";
   textureCoords[3] = "0.25 0.75";
};

datablock ParticleData(BFHP4 : BaseP)
{   
   textureCoords[0] = "0.25 0.75";
   textureCoords[1] = "0.25 1.0";
   textureCoords[2] = "0.5 1.0";
   textureCoords[3] = "0.5 0.75";
};

datablock ParticleData(BFHP5 : BaseP)
{  
   textureCoords[0] = "0.25 0.5";
   textureCoords[1] = "0.25 0.75";
   textureCoords[2] = "0.5 0.75";
   textureCoords[3] = "0.5 0.5";
};

datablock ParticleData(BFHP6 : BaseP)
{  
   textureCoords[0] = "0.25 0.25";
   textureCoords[1] = "0.25 0.5";
   textureCoords[2] = "0.5 0.5";
   textureCoords[3] = "0.5 0.25";
};

datablock ParticleData(BFHP7 : BaseP)
{   
   textureCoords[0] = "0.25 0.0";
   textureCoords[1] = "0.25 0.25";
   textureCoords[2] = "0.5 0.25";
   textureCoords[3] = "0.5 0.0";
};

datablock ParticleData(BFHP8 : BaseP)
{   
   textureCoords[0] = "0.5 0.0";
   textureCoords[1] = "0.5 0.25";
   textureCoords[2] = "0.75 0.25";
   textureCoords[3] = "0.75 0.0";
};

datablock ParticleData(BFHP9 : BaseP)
{   
   textureCoords[0] = "0.5 0.25";
   textureCoords[1] = "0.5 0.5";
   textureCoords[2] = "0.75 0.5";
   textureCoords[3] = "0.75 0.25";
};

datablock ParticleData(BFHP10 : BaseP)
{  
   textureCoords[0] = "0.5 0.5";
   textureCoords[1] = "0.5 0.75";
   textureCoords[2] = "0.75 0.75";
   textureCoords[3] = "0.75 0.5";
};

datablock ParticleData(BFHP11 : BaseP)
{   
   textureCoords[0] = "0.5 0.75";
   textureCoords[1] = "0.5 1.0";
   textureCoords[2] = "0.75 1.0";
   textureCoords[3] = "0.75 0.75";
};
#9
08/28/2013 (12:51 pm)
...
datablock ParticleData(BFHP12 : BaseP)
{   
   textureCoords[0] = "0.75 0.75";
   textureCoords[1] = "0.75 1.0";
   textureCoords[2] = "1.0 1.0";
   textureCoords[3] = "1.0 0.75";
};

datablock ParticleData(BFHP13 : BaseP)
{   
   textureCoords[0] = "0.75 0.5";
   textureCoords[1] = "0.75 0.75";
   textureCoords[2] = "1.0 0.75";
   textureCoords[3] = "1.0 0.5";
};

datablock ParticleData(BFHP14 : BaseP)
{  
   textureCoords[0] = "0.75 0.25";
   textureCoords[1] = "0.75 0.5";
   textureCoords[2] = "1.0 0.5";
   textureCoords[3] = "1.0 0.25";
};

datablock ParticleData(BFHP15 : BaseP)
{   
   textureCoords[0] = "0.75 0.0";
   textureCoords[1] = "0.75 0.25";
   textureCoords[2] = "1.0 0.25";
   textureCoords[3] = "1.0 0.0";
};

datablock ParticleEmitterData(YourEmitterWhichCombinesThisStuff)
{
    ejectionPeriodMS = 11; //beshe 22
    periodVarianceMS = 0;
    ejectionOffset = 0;
    ejectionVelocity = 1;
    velocityVariance = 0.0;
    thetaMin = 20;
    thetaMax = 20;
    phiReferenceVel = 0; //360 za da se varti
    phiVariance = 0.0;
    particles = "BaseP BFHP1 BFHP2 BFHP3 BFHP4 BFHP5 BFHP6 BFHP7 BFHP8 BFHP9 BFHP10 BFHP11 BFHP12 BFHP3 BFHP14 BFHP15";
    //particles = "BaseP";
    orientParticles = "0";
    orientOnVelocity = "0";
    
    blendStyle = "ADDITIVE";
    srcBlendFactor = "SRC_ALPHA";
    dstBlendFactor = "ONE";
};
#10
08/28/2013 (5:58 pm)
Thank You
#11
09/03/2013 (6:30 am)
thank you