KrdaxDrkrun KrdaxDrkrun

The Official Particle Forge Help Thread

The Official Particle Forge Help Thread

After several people have asked me about using Particle Forge, I gave both of them an enormous annotated version of the wiki page for it.

I have decided to create a central thread for questions people might have and for this enormous post.

 

PARTICLE FORGE ANNOTATED GUIDE:

 

I shall start from the beginning, in the off chance that you are doing it wrong.

1, download particle forge from the downloads section on the Sins site. (If you fail this, I will shoot myself)

2, unzip it on to your desktop. DO NOT PUT IT INTO YOUR SINS DIRECTORY!

3, copy the following from your Sins directory into the Particle Forge 3 folder: Particle, textures, textureanimations, pipeline effects, and mesh.

4, go into the Entrenchment folder and copy and merge the contents of the appropriate(above) Entrenchment folders.

5, repeat with Diplomacy.

6, copy the 3d3fx.dll or something like that, (I am doing this from memory, so don't sue me) from the main sins directory into the PF 3 folder.

7, start particle forge.

I have copied the contents of the sins wiki in order to better remember the things contained therein. I shall annotate these things for better understandings.

You should see a black screen in the middle with two axes, green and red. Green is y, and red is x.

Drag the window to the right until you see the control window.

Zoom out a little with the scroll wheel(There is no other way to zoom in/out) and rotate the screen with the right mouse button. You should see the blue, red, and green axes. Green = y, red = x, and blue = z. Z aligns itself with the way the particle effect is facing, e.g., a muzzle will face along the Z axis.

Right click the thing that says emitter and add a new point-type emitter.

You should see this in the pane: (my notes will look like this in parenthesis)

It's a good idea to know what you want to make beforehand, and practice definitely makes perfect, so good luck.

 

  • Design
    • Enabled: Provides a quick way to disable an emitter without erasing it. (turns on and off the emitter)
    • Name: Use this to rename the emitter for clarity. (Name your emitters. A good way to keep track of what your emitters are. Do not name them things like Point, point, ring, Ring, Sphere, sphere. You will get very peculiar errors if you do. (Bailknight did it, bad Bailknight))
    • Type: Cannot be changed. Displays whether the emitter is a point, sphere, or ring. (Stupid, really, you shouldn't care about this.)
  • Emitter
    • EmitCount.IsInfinite: Allows the emitter to ignore EmitCount.Max & emit an unlimited number of particles. (True or false, do you want this emitter to emit an infinite number of particles as long as it is alive?)
    • EmitCount.Max: Sets the maximum number of particles to emit. (If the above is false, then you can have a set number of particles.)
    • ImitIntervals.HasInterval: Enables the following ImitIntervals values, allowing particle creation in periodic bursts. (This is very complicated, and does not seem as straightforward as it looks. True or false, do you want your emitter to release particles in spurts?)
    • ImitIntervals.RunDuration: Number of seconds to emit particles. (If you want to use it, and the above is false, how long do you want each interval to emit particles for? This is dependent on the emitRate and the emitCount)
    • ImitIntervals.WaitDuration: Number of seconds to wait before emitting particles again. (Just as it says, how long do you want it to wait in between spurts?)
    • EmitRate: Number of particles emitted per second. (Exactly as it sounds. If you have an infinite emitcount, it will just release whatever number you put in here, e.g. 10 particles per sec, for the lifetime of the emitter. If you have a set emitcount, it will release the number of particles you have set for the amount of time you tell it. e.g. 10 particles per sec with 100 particles will last for 10 secs)
    • Position: Position of the emitter's center in x,y,z coordinates. (in that order, x,y,z, the origin of the emitter is placed on the axes. Negative to move it negatively along those axes)
    • Rotation.Cross: ? (These don't ever work the way I want them to, but they theoretically rotate around different rotational axes. Cross rotates the emitter around the Z? I think.)
    • Rotation.Forward: ? (Rotates the emitter around the Y?)
    • Rotation.Up: ? (Rotates the emitter around the X? Type in 180 in one of the above in order to flip your emitter around.)
    • Texture.Primary: The texture file that gives the particle its appearance. (Get a .tga or .dds file and put it in. The emitter will emit particles of this texture.)
    • Texture.Secondary: Secondary texture file, used only when the GsExhaust shader is selected. (As it says, with the pipeline effect gsExhaust, this secondary texture will be tiled over the previous texture.)
    • TextureAnimation.FPS: If a texture animation is selected below, the number of frames per second the animation is played at. (Don't mess with this unless you want to use a Textureanim. Set this to 0 for static textureanimations)
    • TextureAnimation.Name: A texture animation file. (The name of the .textureanimation file to use)
    • TextureAnimation.SpawnType: If a texture animation is selected above, whether it plays sequentially from the first frame (FirstFrame), sequentially from a random start frame (SequentialFrames), or randomly from a random start frame (RandomFrames). ((Or is FirstFrame playing randomly from the first frame & SequentialFrames playing sequentially from the first frame??? Need clarification!)) (See, this is confusing, because the Wiki don't know what they are doing and they use parenthesis to declare it. The last statement was not mine. This just defines whether the texanim plays from the first frame, a random frame, or sequential frames. First frame plays the slides in order at the above speed. Random plays them without order at the above speed. Sequential frames plays them in order, but starts on sequential frames from previous particles. e.g. the first particle will start and play on frame 1, the second on frame 2, etc.)
    • Time.Duration: Number of seconds the emitter lasts. (This will cut your emitter short)
    • Time.IsInfinite: Allows the emitter to ignore Time.Duration and last forever. (Do you want it to be cut short? True or false)
    • Time.Start: Number of seconds to delay the start of the emitter. (exactly as they said it. If you want an emitter to wait 5 seconds before beginning, put it here.)
  • The following differ between emitter types.
    • Point

      • Emitter:Point
        • AngleVariance: How many degrees a particle's velocity can vary from the emitter's forward direction. (How the particle's direction is restricted. To lock a particle's direction, set this to 0. e.g. if you want a bullet or a stream of particles)

       

      Sphere

      • Emitter:Sphere
        • RadiusX/Y/Z - Min/+ Max: The minimum and maximum radius in which particles will spawn. Using equal minimums and maximums forms a thin shell, while using minimums of 0 forms a full sphere. (Yep)
        • SpawnAngle.Latitudinal/Longitudinal - Min/+ Max: Controls in what angles of the sphere particles will spawn. Values in degrees. This is where you would form, for example, a half-sphere by restricting one set to 0 through 180 degrees, while permitting the other set to be a full 0 through 360. (Yep)
        • Speed.AzimuthalTangential/PolarTangential: Gives particles velocity away from the center of the sphere, on the equatorial (azimuthal) or polar planes. (I wish that these had more randomness. But they do what they say.)

       

      Ring

      • Emitter:Ring
        • RadiusX/Y - Min/+ Max: The X & Y radii allow creation of rings that have a wider or longer radius -- ovals. The Min and Max specify the inner & outer rings that the particles will spawn between. (yep.)
        • ScaleStartSpeedsByRadius: (Even I, the great Krdax, have no idea what the heck this does.)
        • SpawnAngle - Min/+ Max: Degrees between which particles can spawn. (Kinda like the sphere spawn angle and the angle variance)
        • SpawnControl.IsAngleRandom: (Sets the spawn angle to random or organized. If false, the particles will spawn around the ring in order along a number of points specified below.)
        • SpawnControl.NonRandomLoopParticleCount: (Set this to define the level of detail that you want your controlled ring to have.)
        • SpawnDirectionIsParallelToPlane: (Set this to the non-default if you want your particle directions to not follow an outward force from the ring origin.)
        • SpawnHeight - Min/+ Max: Used to turn the ring into a cylinder of specified (Max minus Min) length. (yep)
        • Speed.AlongNormal/Tangent: Gives particles velocity away from the center of the ring, either in the direction normal (perpendicular) or tangent (same) to the ring's plane. (yep.)

       

  • Particle
    • Billboard.Anchor: Controls how the 2D particles are anchored. (Wow, this is one of the most important things. No description? There are many different choices, but it anchors the particles by the selection, center is default, for example, if I set this to bottom right corner, it would emit and rotate the particles by that corner)
    • Billboard.Facing: Controls the direction the 2D particles face. (Even more important, three choices, Parallel, Perpendicular and Camera. Parallel locks the texture onto the 3D plane, for example, puts the texture down flat. Perpendicular locks the 2D particle along one axis, but leaves it camera-facing for the rest. This is used for bullets, sparks, etc. that require a specific direction. The default, camera, locks the particle to always follow the camera.)
    • Color: The color of the particle in RGB. This will also filter the colors of the primary texture. (filters the first texture by the mentioned color. Only the first, not the second. Pick the color that you want)
    • IsAttachedToEmitter: Uncertain of the importance of this parameter. (Wow, this one is very important. It tells sins whether or not the particle is attached to the emitter. For example, smoke in bailknight's graphical mod, or a missile trail or something. If the emitter is moving in Sins space, will all of the particles move at the same relative speed?)
    • Lifetime: Number of seconds each particle lasts. (Starts once emitted, each particle lasts for the specified time.)
    • Mass: ? Probably only needed when using Force affectors. (Yep.)
    • Rotation.Direction: Controls which direction(s) the particle can rotate. (Rotates the individual particle without regards to orientation or emitter rotation.)
    • Rotation.Enabled: Enables or disables rotation. (Do you want rotation? true or false)
    • Rotation.Speed - Min and Rotation.Speed + Max: Particles will rotate at a speed between the minimum and maximum. Values in degrees per second. (exactly)
    • Rotation.Start - Min and Rotation.Start + Max: Particles will start out rotated at an angle between the minimum and maximum. Values in degrees. (This will define the starting rotation of the particle. Set the min to 0 and the max to 360 if you want randomly rotated particles. Don't touch this if your billboard is set to perpendicular as it will mess it up.)
    • Shader: How the particle is rendered. In most cases, leave it at ParticleAdditive. To prevent particles from being influenced by the background light, use ParticleNotAdditive. When using non-additive rendering, make sure the texture uses transparency or you will end up with a rectangular particle. To achieve a higher-contrast "glowy" particle, you can use GsExhaust. Note that this shader requires a secondary texture and diminishes the filtering effect of the Color value above. (Exactly. ParticleAdditive is the default, and will not stack alpha values, but will ignore black and the darker the texture, the darker the particle. ParticleNotAdditive makes the particle display black and gray and things. It will display the entire texture, but it will not stack. The GSExhaust makes an additive particle with the secondary texture. If you want this emitter to emit meshes, set this to ParticleMeshOld)
    • Size - Width and Size + Height: The dimensions of the 2D particle. (The size in sins units. I think...)
    • Speed Linear - Min and Speed Linear + Max: Particles will spawn with a velocity between the minimum and maximum (relative to the emitter). (If you want random velocity, greatly vary your values.)
  • ParticleMesh data: Used when a particle effect also consists of a mesh, such as in a missile travel effect.
    • FileName: Name of the .mesh file. (If you set the Shader to particleMeshOld, you can select a mesh to emit.)
    • RotationAxis: (Advanced setting, don't mess with this unless you really know what you are getting in to. It changes how the mesh rotates in relation to its individual axis.)
    • RotationAxisType: (This changes its relative axis to something else, another advanced setting.)

 And that is emitters. Once you have emitters, you can assign things to them called affectors. Affectors will apply forces or fade particles. You must attach an emitter to an affector in order for it to effect it. Right click on the affectors to attach emitters.

I shall explain.

The properties below are present in all affector types.

  • Design
    • Enabled: Provides a quick way to disable an affector without erasing it. (You can turn them on and off for debug purposes.)
    • Name: Use this to rename the affector for clarity. (useless for affectors)
    • Type: Cannot be changed. Displays which of the below types the affector is. (duh.)
  • Affector
    • Attached: (I believe this only effects certain affectors, but it refers to the above isAttached modifier.)
    • OnlyAfter.Enabled: Enables or disables OnlyAfter.Time. (Do you want the particle effect to wait before applying this affector? true or false)
    • OnlyAfter.Time: Start affecting particles after they are this many seconds old. (Exactly as it appears.)
    • OnlyBefore.Enabled: Enables or disables OnlyBefore.Time. (Do you want the affector to be cut short? true or false)
    • OnlyBefore.Time: Stop affecting particles after they are this many seconds old. (Yep)
    • Time.Duration: How many seconds the affector lasts. (The duration of the affector. It's not redundant, see below.)
    • Time.IsInfinite: Ignores Time.Duration if set to True. (Default true)
    • Time.Start: Number of seconds to delay the start of the affector. (Delays the actual start of the affector. The difference between this and the onlyafter and the onlybefore modifiers is that the time.start is relative to the particle effect time, and the onlyafter and onlybefore are relative to the affected particle's lifetime.)

 These are unique to each type of affector.

Color Oscillator (Changes the color and/or alpha of the particle relative to its spawn and lifetime, this overrules fade.)

  • Affector:ColorOscillator
    • Alpha.Begin/End: Opacity values to cycle between. Values can range from 1.00 to 0.00. (The transparency from start of the cycle to finish)
    • Color.Begin/End: Colors to cycle between in RGB. (Color from start of the cycle to finish)
    • TransitionPeriod: Seconds for one cycle. (The amount of seconds in one cycle.)

 

Drag (drags on particle movement relative to the particle effect.)

  • Affector:Drag
    • DragCoefficient: (How much to drag by. 1 is complete stop, 0.2 is a little drag)

 

Fade (One of the more important affectors, fades a particle in or out at its spawn and/or death) Edit Fade section

  • Affector:Fade
    • FadeIn.Enabled: Enables or disables FadeIn.Time. (Do you want it to fade in?)
    • FadeIn.Time: Seconds it takes the particle to fade in. This value can be larger than the Lifetime value. (yep)
    • FadeOut.Enabled: Enables or disables FadeOut.Time. (Do you want it to fade out?)
    • FadeOut.Time: Seconds it takes the particle to fade out. Uses the particle's end of lifetime as the end of the fade, NOT the start of the fade. This value can be larger than the Lifetime value. (Yep)

 

Jitter (Random noise generation on a particle's individual movement)Edit Jitter section

  • Affector:Jitter
    • Force: (How much jitter)
    • UseCommonForceDirection: (Do you want all particles to jitter together(true)? Or separately?(false))

 

Kill Particles Near Point (Particles entering the threshold are instantly removed) Edit Kill Particles Near Point section

  • Affector:KillParticlesNearPoint
    • DistanceThreshold: (The distance from the origin that affected particles are removed)
    • Point: (Where the origin of the threshold is.)

 

Linear Force In Direction (Forces particles in the direction specified.(Useful for particles that need to be moved in a strange direction that they are not facing.))Edit Linear Force In Direction section

  • Affector:LinearForceInDirection
    • Direction: (The direction to apply the force)
    • Force - Min/+ Max: (The force to apply. Apparently it is not random.)

 

Linear Force To Point (Pulls affected particles in to the point with the specified force)Edit Linear Force To Point section

  • Affector:LinearForceToPoint
    • Force - Min/+ Max: (The amount of force to apply. Can be negative to force particles away.)
    • Point: (The origin of the pull or push.)

 

Linear Inflate (An affector that effects the size of particles at a constant rate.) Edit Linear Inflate section

  • Affector:LinearInflate
    • InflateRate.Height/Width: Increase of the particle's dimensions in distance-units per second. To decrease size, use negative values. (Exactly as it appears.)

 

Linear Bounded Inflate (It doesn't work) Edit Linear Bounded Inflate section

  • Affector:LinearBoundedInflate
    • Height/Width - Min/+ Max: ???

 

Rotate About Axis (Rotates attached particles around a specified ring)Edit Rotate About Axis section

  • Affector:RotateAboutAxis
    • Axis: (the axis that the ring is oriented to.)
    • Origin: (the origin of the ring.)
    • Radius: (The radius of the ring.)
    • Speed: (The speed at which particles will gather/rotate around the ring. For some reason the speed is proportional to the size of the radius. Beware, 1000 speed could crash your computer if the radius is too small.)

 

Size Oscillator (Cycles the size of the particle between the values. Pulsating particles. This will override linearinflate affector) Edit Size Oscillator section

  • Affector:SizeOscillator
    • SizeX/Y.Begin/End: Particle dimensions to cycle between. (Specify the start size and the end size of each cycle)
    • TransitionPeriod: Seconds in one cycle. (yep)

 

Global Properties (These are accessed by selecting global properties on the side pane)

  • HasInfiniteTime: If true, the particle lasts forever. If false, the particle effect dies after TotalLifeTime seconds. (exactly)
  • Length: Only needed for long weapon travel effects. Used to kill the particle when it collides at the given length (rather than the center axis). If left '0' for long weapon projectile effects, the projectile will look like it is going through the target! Value needed is the distance from the center axis to the impact-end of the particle. (used for impact boxes)
  • TotalLifeTime: Number of seconds the particle effect lasts. Ignored if HasInfiniteTime is true. (yep.)

 

As a special note, the key f5 will make your life easy. f5 restarts the particle effect.

 

This video will detail installation and usage of Particle Forge:

http://www.youtube.com/watch?v=MxWqJwyZuY4

 

This video is of my thought processes and explanations while I make an effect that looks like something Bailknight would make:

http://www.youtube.com/watch?v=GIU6j2W3oBk

 

I don't ever stream, but when I do, I do Particle Forge:

http://www.twitch.tv/xrekkegtavun

 

Post below with questions, and I will make an effort to update this post with clarifications and answer them.

Happy Forging.

 

621,721 views 134 replies | Pinned
Reply #76 Top

Krdax (or anyone)...

Is there some way to preview a particle effect without loading the game?

I've tried in PF but don't see anything comprehensible going on--just blobs and boxes.  Am I missing something there?

Also...

I'm using the Flair_TecRefineryPuff in the game as a base for a smoky exhaust from the rear of the damaged Kol model's exhaust.

I'd like to have to smoke go straight out behind the model (instead of down at an angle) and have it be blackish as opposed to green.  I've tried changing values and it seems to do absolutely nothing.

Can you give me help there?

Reply #77 Top

Quoting Sinperium, reply 76
I've tried in PF but don't see anything comprehensible going on--just blobs and boxes. Am I missing something there?

Yes, it's a common mistake.  You need to copy your particle, pipeline effects, texture animations, and textures folders to the particle forge folder so that it has all of the resources it needs to properly display everything.  The boxes are it's way of saying image missing.

Follow steps 3, 4, and 5 in the OP.  Though Krdax also has the mesh folder and that step 6 in there.  I don't have those and mine works fine, though I don't mess with it enough to know if those are really important to have.

Reply #78 Top

Hmm--I have done that but I will re-check it.  PF has been unreliable for me all along.

So on a simpler note, what would I change in the file to make the smoke tail out behind the model and shift it towards a black brown color?

Reply #79 Top

adjust the movement down at the bottom to a higher number, and make sure that the angle variance in the middle is at 0.

Click on the emitter texture color tab and then select the web color tab. Go select the color that you like.

 

If you need a step-by-step instructional experience, I will take the time to set up my stream and then stream the solution to you.

Reply #80 Top

Ok.  I have 16 blinking orbs plus two other effects on a model but when I added the 9th blinking red eye, only some display and the rest disappeared.

Is there a limit on how many point effects a mesh can have?

Reply #81 Top

no, I don't think so...

there is an engine limit to the number of particles, but that's around 10000...

 

post your effect here please.

Reply #82 Top

*see below*

(The effect I added is just a blinking red orb based on the Vasari mine effect)

 

Reply #83 Top

I'm re-checking the mesh one point at a time here to see what's happening--argh,

Reply #84 Top

Ok...apparently, there is a limit of ten flairs to a mesh. This is definitely the issue. I separately named each effect and added them sequentially one at a time between tests and then interchanged them.

The first ten flairs get counted and the rest are ignored.

I have two meshes that are added as flairs so I will try adding flairs in those meshes to display where I need them and see how that goes.

Reply #85 Top

oh

for most ships

I would go with ONE flair that contains particles scattered strategically through the particle file that are positioned where I would have put the flairs originally.

I was under the impression that THAT was what you were doing XD.

sorry

Reply #86 Top

I haven't combined too many different ones yet.  I was going to but realized I really liked each eye "blinking" independently--it looks much more sinister--rather than 19 of them blinking exactly together.  Since this is the only ship for the faction with effects, I figure I can handle the extravagance.

Reply #87 Top

Stagger the EmitterStartTimes for each emitter

that way they don't blink at the same time XD.

Reply #88 Top

I just have to figure how to add emitters together.

Reply #89 Top

COPY AND PASTE

+1 Loading…
Reply #90 Top

I did and it broke it.  Look at the Vasari Phase Mine mesh orb effect (not the gravity mine).

I've added emmiters to some effects before with out too much problem but this would require 38 emitters as a single effect.  I am sure there is a built in limit on how much can be there--any idea what the limits are?

Reply #91 Top

for rebellion

20 emitters

for trinity and below

10 emitters

 

+1 Loading…
Reply #92 Top

Thanks--that's what I needed.

 

Reply #94 Top

SIGH

I have had NO internet access as of late, and I am currently rather lucky to be able to get on right now...

But I assure you all that I will try to answer any questions that may show up on this thread...

 

And for anyone who cares, I have finished around 400 of the Rebellion Particles for my new graphical mod... :D

Reply #95 Top

Hey CP is your particle forge thread that got stickied current with the latest version of Particle Forge? 

 

Been reading thru forums and I guess im kinda confused as to what the process is with the latest version of rebellion installed. 

 

I used it once just fine changed a particle around to my liking and now all the sudden it will not open PF anymore :(  Program starts and just gives me a blank PF icon on my taskbar and never loads. 

 

cheers,

 

 

Haiyooo

Reply #96 Top

My particle forge just sits in my taskbar (win 7) and never opens.  I have tried the following:

-Removing .Net framework 4 and just using framework 3.5.1

-Completely reinstalled forgetools 3 in the appdata/local/ironclad games folder, with textures, texture anims, mesh, particles, pipeline efects folders

-Tried doing the same as above but putting the particle forge folder in some arbitrary location

-updated to win 7 sp1 (just for the hell of it)

-running the particle forge from the folder that comes in the rebellion install

 

And still...jack shit, I am getting so fed up with this and it worked 2 months ago flawlessly.  Any ideas?

 

Reply #97 Top

Quoting Makon86, reply 97
-Removing .Net framework 4 and just using framework 3.5.1

I could be making this up, but I seem to vaguely remember someone saying with Rebellion you needed a later version, which I'm guessing is 4.5. 

Reply #98 Top

Quoting GoaFan77, reply 98
Quoting Makon86, reply 97-Removing .Net framework 4 and just using framework 3.5.1

I could be making this up, but I seem to vaguely remember someone saying with Rebellion you needed a later version, which I'm guessing is 4.5. 

 

Hmm, I'll look into that, thanks for the suggestion!

Reply #99 Top

Hey all, my particle forge works and ive been copying everything as it should.


My forge keeps telling "Entrencement has detected files from a previous beta installation, please uninstall Sins and Entrenchement via Impulse and reinstall both"

 

I am using the Steam version of Rebellion, is this a problem?

Reply #100 Top

Are you using the Particle Forge included with Rebellion in the Reb install dir?

If so, it looks like a bug, it shouldn't be a problem if you can ignore it. Maybe report it to the devs.