# 粒子行为控制器

粒子行为控制器(Behaviour)负责在粒子生命周期中更新粒子属性。目前提供了粒子透明度、颜色、作用力、重力、缩放等属性的行为控制器。此外,除了内置的行为控制器开发者可以根据实际需求扩展行为控制器。

# 粒子透明度控制器

粒子透明度控制器(AlphaBehaviour)负责更新粒子透明度。

import { AlphaBehaviour } from '@tx3d/particlesystem';

// 为发射器添加透明度控制器
emitter.addBehaviour( new AlphaBehaviour( {

    easing: 'easeLinear',     // 能量缓动函数,可选
    energy: [ 0, 0.75, 1.0 ], // 能量值数组
    value: [ 0.15, 1.0, 1.0 ] // 透明值数组

} ) );
1
2
3
4
5
6
7
8
9
10

提示

AlphaBehaviour初始化参数,详见NumberBehaviourParameters

# 粒子颜色控制器

粒子颜色控制器(ColorBehaviour)负责更新粒子颜色。

import { ColorBehaviour } from '@tx3d/particlesystem';

// 为发射器添加颜色控制器
emitter.addBehaviour( new ColorBehaviour( {

    easing: 'easeLinear',                       // 能量缓动函数,可选
    energy: [ 0, 0.75, 1.0 ],                   // 能量值数组
    value:  [ '#660066', '#669966', '#66ff66' ] // 颜色值数组

} ) );
1
2
3
4
5
6
7
8
9
10

提示

ColorBehaviour初始化参数,详见ColorBehaviourParameters

# 粒子作用力控制器

粒子作用力控制器(ForceBehaviour)负责更新粒子加速度。

import { ForceBehaviour } from '@tx3d/particlesystem';

// 为发射器添加作用力控制器
emitter.addBehaviour( new ForceBehaviour( {

    easing: 'easeLinear',                               // 能量缓动函数,可选
    energy: [ 0.0, 1.0 ],                               // 能量值数组
    value: [ [ 0.0, -50.0, 0.0 ], [ 0.0, 0.0, 0.0 ] ]   // 作用力值数组

} ) );
1
2
3
4
5
6
7
8
9
10

提示

ForceBehaviour初始化参数,详见Vector3BehaviourParameters

# 粒子重力控制器

粒子重力控制器(GravityBehaviour)负责更新粒子加速度。

import { GravityBehaviour } from '@tx3d/particlesystem';

// 为发射器添加重力控制器
emitter.addBehaviour( new GravityBehaviour( {

    easing: 'easeLinear',   // 能量缓动函数,可选
    energy: [ 0.0, 1.0 ],   // 能量值数组
    value: [ 9.8, 9.8 ]     // 重力值数组

} ) );
1
2
3
4
5
6
7
8
9
10

提示

GravityBehaviour初始化参数,详见NumberBehaviourParameters

# 粒子缩放控制器

粒子缩放控制器(ScaleBehaviour)负责更新粒子缩放量。

import { ScaleBehaviour } from '@tx3d/particlesystem';

// 为发射器添加缩放控制器
emitter.addBehaviour( new ScaleBehaviour( {

    easing: 'easeLinear',           // 能量缓动函数,可选
    energy: [ 0, 0.15, 0.25, 1.0 ], // 能量值数组
    value: [ 0.5, 1, 2, 3 ]         // 缩放值数组

} ) );
1
2
3
4
5
6
7
8
9
10

提示

ScaleBehaviour初始化参数,详见NumberBehaviourParameters

注意

1.以上行为控制器初始化参数的能量值数组与属性值数组需要一一对应;
2.粒子的能量值随着“年龄”的增长逐渐衰减,出生时能量值为1.0,死亡时能量值为0.0
3.以上行为控制器可以通过设置easing参数实现不同的能量缓动效果,有关缓动的详细使用请参考"缓动函数"

# 粒子吸引行为控制器

粒子吸引行为控制器(AttractionBehaviour)通过控制粒子加速实现粒子被吸引到某一目标点,如下图所示:

avatar

import { AttractionBehaviour } from '@tx3d/particlesystem';

// 为发射器添加吸引行为控制器
emitter.addBehaviour( new AttractionBehaviour( {

    target: [ 20, 0.0, 50 ],    // 目标点坐标
    radius: 1000.0,             // 半径
    force: 100.0,               // 作用力缩放因子
    worldSpace: false           // 是否在世界空间变换

} ) );
1
2
3
4
5
6
7
8
9
10
11

提示

AttractionBehaviour初始化参数,详见AttractionBehaviourParameters

# 粒子随机漂移行为控制器

粒子随机漂移行为控制器(DriftBehaviour)通过控制粒子加速度实现粒子随机漂移效果。

import { DriftBehaviour } from '@tx3d/particlesystem';

// 为发射器添加随机漂移行为控制器
emitter.addBehaviour( new DriftBehaviour( {

    force: [ 10, 0.0, 5 ],  // 三个方向的基础随机力
    interval: 0.03,         // 更新时间间隔,单位:秒
    worldSpace: false       // 是否在世界空间变换

} ) );
1
2
3
4
5
6
7
8
9
10

提示

DriftBehaviour初始化参数,详见DriftBehaviourParameters

# 粒子弹簧行为控制器

粒子弹簧行为控制器(SpringBehaviour)通过控制粒子速度实现粒子弹簧运动效果。

import { SpringBehaviour } from '@tx3d/particlesystem';

// 为发射器添加弹簧行为控制器
emitter.addBehaviour( new SpringBehaviour( {

    target: [ 0.0, 0.0, 0.0 ],  // 目标点坐标
    spring: 0.1,                // 弹力因子
    worldSpace: false           // 是否在世界空间变换

} ) );
1
2
3
4
5
6
7
8
9
10

提示

SpringBehaviour初始化参数,详见SpringBehaviourParameters

Last Updated: 6/16/2023, 4:26:47 PM