User Tools

Site Tools


gamedev:deigde:editors:particleemitter

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
gamedev:deigde:editors:particleemitter [2020/04/02 10:19] – [Property Curves] dragonlordgamedev:deigde:editors:particleemitter [2020/04/02 12:38] – [Type] dragonlord
Line 18: Line 18:
 ====== Property Curves ====== ====== Property Curves ======
  
-This view shows the selected property curve. See [[gamedev:deigde:editors:widgetbeziercurve|Bezier Curve Editor]] for usage.+This view shows the selected **Property Curves**. See [[gamedev:deigde:editors:widgetbeziercurve|Bezier Curve Editor]] for usage.
  
 +Each property has multiple curves that can be defined. Defined curves are marked with a plus sign, undefined curves with a minus sign.
 +
 +The **Value** curve is used to calculate the property value at the time a particle is cast. The input of the curve is the **Controller Value** parameter from the **Type -> Parameters** panel. The output is used as parameter value.
 +
 +The **Spread** curve is used to calculate the spread applied to the property value at the time a particle is cast. The input of the curve is the **Controller Spread** parameter from the **Type -> Parameters** panel. The output is added to the cast value (which can be from the above curve).
 +
 +The **Progress** curve is used to calculate the property value of a cast particle relative to its lifetime. When particles are cast they are assigned a life-time (property value hence it can be dynamic). The input of the curve is the relative elapsed time since the particle has been cast (0 input value) and when it will die (1 input value). The output value is used as parameter value for the particle. If progress curve is used the value and spread curve are not used.
 +
 +The **Beam** curve is used only if the particle type is of **Beam** type. The input of the curve is the relative distance of the particle along the beam (0 input value at start, 1 input value at end). The output value is used as parameter value for the particle. If beam curve is used the progress, value and spread curve are not used.
 ====== Type ====== ====== Type ======
  
Line 30: Line 39:
 The **Emit Burst** determines if the particle emitter emits a burst of particles. If enabled the preview particle emitter is restarted after **Lifetime** seconds. If disabled if casts particles continuously. The **Emit Burst** determines if the particle emitter emits a burst of particles. If enabled the preview particle emitter is restarted after **Lifetime** seconds. If disabled if casts particles continuously.
  
 +The **Type** parameter is the display name of the type. Use the button next to it to show a context menu to add and remove types.
 +
 +The **Skin** parameter defines the **Skin** resource to use for particles of this type.
 +
 +The **Model** parameter defines an optional **Model** resource. If used particles are cast using the model geometry as source depending on the cast from value used. The model itself is not visible and can be used to cast particles from irregular shapes. If the model is not used particles are cast from the emitter position.
 +
 +The **Model Skin** parameter defines the **Skin** resource to use for the cast model. This allows to modify casting behavior in greater detail using [[gamedev:skinproperties|Skin Texture Properties]].
 +
 +The **Cast From** parameter defines how particles are cast from the cast model if used. Supported are **Vertex** to cast from model vertices, **Face** to cast from model surface or **Volume** to cast from enclosed model volume. Particles are evenly distributed across the potential source locations.
 +
 +The **Simulation Type** parameter defines what type of particles are cast. Supported are the tapes **Particle**, **Ribbon** and **Beam**.
 +
 +The **Particle** cast individual particles vanishing after their lifespan elapses.
 +
 +The **Ribbon** type creates one ribbon geometry composing of all cast particles in the order they have been cast. The particles thus define a path the ribbon follows. Ribbon type is typically used for trails or tracers.
 +
 +The **Interval As Distance** is used by ribbon types. By default the interval parameter defines the time span in seconds between casting particles. If this parameter is enabled the interval parameter is changed to define the distance in meters between casting particles. This is used to make ribbons trailing behind moving objects. If the object is not moving and this parameter is disabled particles will be generated in regular intervals at the same location which can cause troubles. If enabled new particles will only be cast if the object moves a certain distance.
 +
 +The **Physics Size** parameter defines the radius of the collision sphere assigned to each particle. The physics size is usually 50% of the visual particle size.
 +
 +
 +<WRAP clear/>
 +
 +====== Controllers ======
 +
 +{{ :gamedev:deigde:editors:editor_pemitter_controller.png?nolink|Controller panel}}
 +
 +Controllers are used by game programmers to adjust the particle emitter. In general the artist defines the controller ranges but game programmers can overrule them to make their live easier. This does not interfere with the particle parameters. The output of the controller is the **Value** linearly mapped from the range **Minimum Value -> Maximum Value** to the range **0 -> 1**.
 +
 +Controllers are typically accessed by the game developer using the unique **Controller Name** (case sensitive). This allows to mix and match different animators with differing controller setups (count, ordering and ranges) as long as the required names are present.
 +
 +The controller list is an ordered list. For this reason controllers are shown with their index number too. Game developers can use this index number as an alternative to controller names.
 +
 +The **Clamp value to range** check box determines if the input value is clamped to the controller range or wraps around if going past the range.
  
 +The **Freeze controller value** is used only for preview purpose to stop a controller from updating its value dynamically.
 <WRAP clear/> <WRAP clear/>
  
gamedev/deigde/editors/particleemitter.txt · Last modified: 2020/04/05 00:28 by dragonlord