Control Point (particles): Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(12 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{LanguageBar}}
{{back|Category:Particle System}}
{{toc-right}}
{{toc-right}}


In [[:Category:Particle System|particles]], a '''Control Point''' is a [[Vector]] [[variable]] that enables external values, like locations or colours, to be passed into a particle system.
'''Control Points''' are used to pass data into and between [[:Category:Particle System|particle systems]]. A system can have up to 64, each of which can store the following:


* Each system can have up to 64 CPs, but the first, 0, is reserved as the system's [[origin]].
* An [[ParticleAttachment t|attachment type]]
* CP 0 (<code>vecOrigin</code>) and 1 (<code>vecStart</code>) are defined when dispatching from the server. Be aware of this when choosing which CPs to use in your system.
* An attachment point
* Children inherit the CPs of their parent, but can override them internally.
* An [[Vector|origin]]
* A [[matrix3x4 t|matrix]] (usually for rotation)
* An associated [[entity]]
 
The meanings of these values are flexible however, and "cheats" such storing an [[RGB]] colour in the origin value are supported.
 
Particle systems inherit the control points of their parents.
 
{{note|Control Points 0 (<code>vecOrigin</code>) and 1 (<code>vecStart</code>) are defined when dispatching from the server. Be aware of this when choosing which CPs to use in your system.}}
 
{{note|In order to use an [[info_target]] as a control point in a map, it needs to have the '''Transmit to Client''' spawnflag set.{{confirm}}}}


== Defining ==
== Defining ==
Line 11: Line 23:
=== Within a particle system ===
=== Within a particle system ===


Use one of these Operator functions:
Use one of these Operators:


; [[Set Control Point Positions]]
* [[Set Control Point Positions]]
: Simple hard-coding function that allows you to define the position and movement parent of each CP.
* [[Set Control Point To Particles' Center]]
: {{todo|The final value is "Control Point to offset positions from"...}}
* [[Set Control Point To Player]]
; [[Set Control Point To Particles' Center]]
* [[Set child control points from particle positions]]
: {{todo}}
* [[Movement Match Particle Velocities]]
; [[Set Control Point To Player]]
: Moves the CP by the local player's [[GetAbsOrigin()|world origin]]. {{todo|Behaviour in multiplayer.}}
; [[Set child control points from particle positions]]
: Allows a system to directly modify the CPs of its children. Sets the child CPs to the locations of certain particles.


=== In a map ===
=== In a map ===


Fill in the fields of the [[info_particle_system]] used to spawn the system.
Fill in the fields of the [[info particle system]] used to spawn the system. CP0 is the origin of the entity.


=== In code ===
=== In code ===
Line 38: Line 46:


<div style="display:inline-block;width:49%;vertical-align:top;">
<div style="display:inline-block;width:49%;vertical-align:top;">
=== Functions ===
=== Mapping functions ===
; Operators
; Operators
: [[Remap Control Point to Scalar]]
: [[Remap Control Point to Scalar]]
Line 50: Line 58:


<div style="display:inline-block;width:49%;vertical-align:top;">
<div style="display:inline-block;width:49%;vertical-align:top;">
=== Targets ===
=== Potential targets ===
<div style="display:inline-block;width:49%;vertical-align:top;">
<div style="display:inline-block;width:49%;vertical-align:top;">
; Scalar
; Scalar
Line 73: Line 81:
</div>
</div>


== Other ==
=== Other ===


These sample values from CPs rather than remapping their literal values:
These sample values from CPs rather than remapping their literal values:

Latest revision as of 23:14, 2 September 2024

English (en)中文 (zh)Translate (Translate)
Category:Particle System

Control Points are used to pass data into and between particle systems. A system can have up to 64, each of which can store the following:

The meanings of these values are flexible however, and "cheats" such storing an RGB colour in the origin value are supported.

Particle systems inherit the control points of their parents.

Note.pngNote:Control Points 0 (vecOrigin) and 1 (vecStart) are defined when dispatching from the server. Be aware of this when choosing which CPs to use in your system.
Note.pngNote:In order to use an info_target as a control point in a map, it needs to have the Transmit to Client spawnflag set.[confirm]

Defining

Within a particle system

Use one of these Operators:

In a map

Fill in the fields of the info particle system used to spawn the system. CP0 is the origin of the entity.

In code

See Particles In Code#Control points.

In a QC

Confirm:It is not possible to configure control points when compiling a model.

However, see the Position on Model Random initializer.

Mapping to other values

Mapping functions

Operators
Remap Control Point to Scalar
Remap Distance to Control Point to Scalar
Remap Distance Between Two Control Points to Scalar
Initializers
Remap Control Point to Vector
Note.pngNote:There is no 'CP to Vector' operator, just this initializer. The reasons for this omission are not clear.
Remap Control Point to Scalar
Remap Initial Distance to Control Point to Scalar

Potential targets

Scalar
Lifespan
Creation time
Radius
Roll speed
Alpha
Alpha alternate
Sequence number
Sequence number 1
Trail length
Particle ID
Yaw
Vector
Position
Roll
RGB Colour (normalised)

Other

These sample values from CPs rather than remapping their literal values:

Spawning children at control points

By default, child systems spawn at their parent's origin. To change this, use one of the "Position" Initializers with a reference to the appropriate CP number.