@galacean/effects-core 2.0.3 → 2.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/comp-vfx-item.d.ts +2 -2
- package/dist/components/component.d.ts +27 -18
- package/dist/components/effect-component.d.ts +1 -1
- package/dist/components/post-process-volume.d.ts +1 -1
- package/dist/components/renderer-component.d.ts +2 -13
- package/dist/composition/scene-ticking.d.ts +26 -0
- package/dist/composition.d.ts +3 -3
- package/dist/index.js +347 -226
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +347 -227
- package/dist/index.mjs.map +1 -1
- package/dist/plugins/cal/calculate-item.d.ts +8 -0
- package/dist/plugins/cal/calculate-vfx-item.d.ts +50 -0
- package/dist/plugins/cal/playable-graph.d.ts +90 -0
- package/dist/plugins/camera/camera-controller-node.d.ts +1 -1
- package/dist/plugins/interact/interact-item.d.ts +2 -2
- package/dist/plugins/particle/particle-system-renderer.d.ts +2 -2
- package/dist/plugins/particle/particle-system.d.ts +2 -2
- package/dist/plugins/particle/particle-vfx-item.d.ts +11 -1
- package/dist/plugins/sprite/sprite-item.d.ts +2 -2
- package/dist/plugins/text/text-item.d.ts +1 -1
- package/dist/plugins/timeline/track.d.ts +54 -1
- package/dist/ticker.d.ts +1 -0
- package/dist/vfx-item.d.ts +4 -2
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { Euler, Vector3 } from '@galacean/effects-math/es/core/index';
|
|
2
2
|
import type { ValueGetter } from '../../math';
|
|
3
|
+
import { TrackAsset } from '../timeline/track';
|
|
4
|
+
import type { TimelineAsset } from './timeline-asset';
|
|
3
5
|
/**
|
|
4
6
|
* 基础位移属性数据
|
|
5
7
|
*/
|
|
@@ -16,3 +18,9 @@ export type ItemLinearVelOverLifetime = {
|
|
|
16
18
|
z?: ValueGetter<number>;
|
|
17
19
|
enabled?: boolean;
|
|
18
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* @since 2.0.0
|
|
23
|
+
*/
|
|
24
|
+
export declare class ObjectBindingTrack extends TrackAsset {
|
|
25
|
+
create(timelineAsset: TimelineAsset): void;
|
|
26
|
+
}
|
|
@@ -2,10 +2,54 @@ import { Vector3 } from '@galacean/effects-math/es/core/vector3';
|
|
|
2
2
|
import type { Quaternion } from '@galacean/effects-math/es/core/quaternion';
|
|
3
3
|
import * as spec from '@galacean/effects-specification';
|
|
4
4
|
import type { ValueGetter } from '../../math';
|
|
5
|
+
import { AnimationPlayable } from './animation-playable';
|
|
6
|
+
import type { ItemBasicTransform, ItemLinearVelOverLifetime } from './calculate-item';
|
|
5
7
|
import type { FrameContext, PlayableGraph } from './playable-graph';
|
|
6
8
|
import { Playable, PlayableAsset } from './playable-graph';
|
|
7
9
|
import { EffectsObject } from '../../effects-object';
|
|
8
10
|
import { VFXItem } from '../../vfx-item';
|
|
11
|
+
/**
|
|
12
|
+
* @since 2.0.0
|
|
13
|
+
*/
|
|
14
|
+
export declare class TransformAnimationPlayable extends AnimationPlayable {
|
|
15
|
+
originalTransform: ItemBasicTransform;
|
|
16
|
+
protected sizeSeparateAxes: boolean;
|
|
17
|
+
protected sizeXOverLifetime: ValueGetter<number>;
|
|
18
|
+
protected sizeYOverLifetime: ValueGetter<number>;
|
|
19
|
+
protected sizeZOverLifetime: ValueGetter<number>;
|
|
20
|
+
protected rotationOverLifetime: {
|
|
21
|
+
asRotation?: boolean;
|
|
22
|
+
separateAxes?: boolean;
|
|
23
|
+
enabled?: boolean;
|
|
24
|
+
x?: ValueGetter<number>;
|
|
25
|
+
y?: ValueGetter<number>;
|
|
26
|
+
z?: ValueGetter<number>;
|
|
27
|
+
};
|
|
28
|
+
gravityModifier: ValueGetter<number>;
|
|
29
|
+
orbitalVelOverLifetime: {
|
|
30
|
+
x?: ValueGetter<number>;
|
|
31
|
+
y?: ValueGetter<number>;
|
|
32
|
+
z?: ValueGetter<number>;
|
|
33
|
+
center: [x: number, y: number, z: number];
|
|
34
|
+
asRotation?: boolean;
|
|
35
|
+
enabled?: boolean;
|
|
36
|
+
};
|
|
37
|
+
speedOverLifetime?: ValueGetter<number>;
|
|
38
|
+
linearVelOverLifetime: ItemLinearVelOverLifetime;
|
|
39
|
+
positionOverLifetime: spec.PositionOverLifetime;
|
|
40
|
+
gravity: Vector3;
|
|
41
|
+
direction: Vector3;
|
|
42
|
+
startSpeed: number;
|
|
43
|
+
data: TransformPlayableAssetData;
|
|
44
|
+
private velocity;
|
|
45
|
+
private binding;
|
|
46
|
+
start(): void;
|
|
47
|
+
processFrame(context: FrameContext): void;
|
|
48
|
+
/**
|
|
49
|
+
* 应用时间轴K帧数据到对象
|
|
50
|
+
*/
|
|
51
|
+
private sampleAnimation;
|
|
52
|
+
}
|
|
9
53
|
export declare class TransformPlayableAsset extends PlayableAsset {
|
|
10
54
|
transformAnimationData: TransformPlayableAssetData;
|
|
11
55
|
createPlayable(graph: PlayableGraph): Playable;
|
|
@@ -25,6 +69,12 @@ export interface TransformPlayableAssetData extends spec.EffectsObjectData {
|
|
|
25
69
|
*/
|
|
26
70
|
positionOverLifetime?: spec.PositionOverLifetime;
|
|
27
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* @since 2.0.0
|
|
74
|
+
*/
|
|
75
|
+
export declare class ActivationPlayable extends Playable {
|
|
76
|
+
processFrame(context: FrameContext): void;
|
|
77
|
+
}
|
|
28
78
|
export declare class ActivationPlayableAsset extends PlayableAsset {
|
|
29
79
|
createPlayable(graph: PlayableGraph): Playable;
|
|
30
80
|
}
|
|
@@ -1,4 +1,94 @@
|
|
|
1
1
|
import { EffectsObject } from '../../effects-object';
|
|
2
|
+
import type { Disposable } from '../../utils';
|
|
3
|
+
/**
|
|
4
|
+
* 动画图,负责更新所有的动画节点
|
|
5
|
+
* @since 2.0.0
|
|
6
|
+
*/
|
|
7
|
+
export declare class PlayableGraph {
|
|
8
|
+
private playableOutputs;
|
|
9
|
+
private playables;
|
|
10
|
+
evaluate(dt: number): void;
|
|
11
|
+
connect(source: Playable, sourceOutputPort: number, destination: Playable, destinationInputPort: number): void;
|
|
12
|
+
addOutput(output: PlayableOutput): void;
|
|
13
|
+
addPlayable(playable: Playable): void;
|
|
14
|
+
private processFrameWithRoot;
|
|
15
|
+
private prepareFrameWithRoot;
|
|
16
|
+
private updatePlayableTime;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 动画图可播放节点对象
|
|
20
|
+
* @since 2.0.0
|
|
21
|
+
*/
|
|
22
|
+
export declare class Playable implements Disposable {
|
|
23
|
+
onPlayablePlayFlag: boolean;
|
|
24
|
+
onPlayablePauseFlag: boolean;
|
|
25
|
+
overrideTimeNextEvaluation: boolean;
|
|
26
|
+
private destroyed;
|
|
27
|
+
private inputs;
|
|
28
|
+
private inputOuputPorts;
|
|
29
|
+
private inputWeight;
|
|
30
|
+
private outputs;
|
|
31
|
+
private playState;
|
|
32
|
+
private traversalMode;
|
|
33
|
+
/**
|
|
34
|
+
* 当前本地播放的时间
|
|
35
|
+
*/
|
|
36
|
+
protected time: number;
|
|
37
|
+
constructor(graph: PlayableGraph, inputCount?: number);
|
|
38
|
+
play(): void;
|
|
39
|
+
pause(): void;
|
|
40
|
+
connectInput(inputPort: number, sourcePlayable: Playable, sourceOutputPort: number, weight?: number): void;
|
|
41
|
+
addInput(sourcePlayable: Playable, sourceOutputPort: number, weight?: number): void;
|
|
42
|
+
getInputCount(): number;
|
|
43
|
+
getInputs(): Playable[];
|
|
44
|
+
getInput(index: number): Playable;
|
|
45
|
+
getOutputCount(): number;
|
|
46
|
+
getOutputs(): Playable[];
|
|
47
|
+
getOutput(index: number): Playable;
|
|
48
|
+
getInputWeight(inputIndex: number): number;
|
|
49
|
+
setInputWeight(playable: Playable, weight: number): void;
|
|
50
|
+
setInputWeight(inputIndex: number, weight: number): void;
|
|
51
|
+
setTime(time: number): void;
|
|
52
|
+
getTime(): number;
|
|
53
|
+
getPlayState(): PlayState;
|
|
54
|
+
setTraversalMode(mode: PlayableTraversalMode): void;
|
|
55
|
+
getTraversalMode(): PlayableTraversalMode;
|
|
56
|
+
onPlayablePlay(context: FrameContext): void;
|
|
57
|
+
onPlayablePause(context: FrameContext): void;
|
|
58
|
+
prepareFrame(context: FrameContext): void;
|
|
59
|
+
processFrame(context: FrameContext): void;
|
|
60
|
+
onPlayableDestroy(): void;
|
|
61
|
+
dispose(): void;
|
|
62
|
+
private setOutput;
|
|
63
|
+
private setInput;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 动画图输出节点对象,将动画数据采样到绑定的元素属性上
|
|
67
|
+
* @since 2.0.0
|
|
68
|
+
*/
|
|
69
|
+
export declare class PlayableOutput {
|
|
70
|
+
/**
|
|
71
|
+
* 绑定到的动画 item
|
|
72
|
+
*/
|
|
73
|
+
userData: object;
|
|
74
|
+
/**
|
|
75
|
+
* 源 playable 对象
|
|
76
|
+
*/
|
|
77
|
+
sourcePlayable: Playable;
|
|
78
|
+
context: FrameContext;
|
|
79
|
+
/**
|
|
80
|
+
* 当前本地播放的时间
|
|
81
|
+
*/
|
|
82
|
+
protected time: number;
|
|
83
|
+
private sourceOutputPort;
|
|
84
|
+
constructor();
|
|
85
|
+
setSourcePlayeble(playable: Playable, port?: number): void;
|
|
86
|
+
getSourceOutputPort(): number;
|
|
87
|
+
setUserData(value: object): void;
|
|
88
|
+
getUserData(): object;
|
|
89
|
+
prepareFrame(): void;
|
|
90
|
+
processFrame(): void;
|
|
91
|
+
}
|
|
2
92
|
export declare abstract class PlayableAsset extends EffectsObject {
|
|
3
93
|
abstract createPlayable(graph: PlayableGraph): Playable;
|
|
4
94
|
}
|
|
@@ -27,8 +27,8 @@ export declare class InteractComponent extends RendererComponent {
|
|
|
27
27
|
private hasBeenAddedToComposition;
|
|
28
28
|
set interactive(enable: boolean);
|
|
29
29
|
get interactive(): boolean;
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
onStart(): void;
|
|
31
|
+
onUpdate(dt: number): void;
|
|
32
32
|
render(renderer: Renderer): void;
|
|
33
33
|
onDestroy(): void;
|
|
34
34
|
endDragTarget(): void;
|
|
@@ -15,8 +15,8 @@ export declare class ParticleSystemRenderer extends RendererComponent {
|
|
|
15
15
|
particleMesh: ParticleMesh;
|
|
16
16
|
private trailMesh?;
|
|
17
17
|
constructor(engine: Engine, particleMeshProps?: ParticleMeshProps, trailMeshProps?: TrailMeshProps);
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
onStart(): void;
|
|
19
|
+
onUpdate(dt: number): void;
|
|
20
20
|
render(renderer: Renderer): void;
|
|
21
21
|
reset(): void;
|
|
22
22
|
updateTime(now: number, delta: number): void;
|
|
@@ -166,10 +166,10 @@ export declare class ParticleSystem extends Component {
|
|
|
166
166
|
setOpacity(opacity: number): void;
|
|
167
167
|
setParentTransform(transform: Transform): void;
|
|
168
168
|
getTextures(): Texture[];
|
|
169
|
-
|
|
169
|
+
startEmit(): void;
|
|
170
170
|
stop(): void;
|
|
171
171
|
reset(): void;
|
|
172
|
-
|
|
172
|
+
update(delta: number): void;
|
|
173
173
|
onDestroy(): void;
|
|
174
174
|
getParticleBoxes(): {
|
|
175
175
|
center: Vector3;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
import type { PlayableGraph } from '../cal/playable-graph';
|
|
1
|
+
import type { FrameContext, PlayableGraph } from '../cal/playable-graph';
|
|
2
2
|
import { Playable, PlayableAsset } from '../cal/playable-graph';
|
|
3
|
+
import { ParticleSystem } from './particle-system';
|
|
4
|
+
/**
|
|
5
|
+
* @since 2.0.0
|
|
6
|
+
*/
|
|
7
|
+
export declare class ParticleBehaviourPlayable extends Playable {
|
|
8
|
+
lastTime: number;
|
|
9
|
+
particleSystem: ParticleSystem;
|
|
10
|
+
start(context: FrameContext): void;
|
|
11
|
+
processFrame(context: FrameContext): void;
|
|
12
|
+
}
|
|
3
13
|
export declare class ParticleBehaviourPlayableAsset extends PlayableAsset {
|
|
4
14
|
createPlayable(graph: PlayableGraph): Playable;
|
|
5
15
|
}
|
|
@@ -129,8 +129,8 @@ export declare class SpriteComponent extends RendererComponent {
|
|
|
129
129
|
*/
|
|
130
130
|
setTexture(texture: Texture): void;
|
|
131
131
|
render(renderer: Renderer): void;
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
onStart(): void;
|
|
133
|
+
onUpdate(dt: number): void;
|
|
134
134
|
onDestroy(): void;
|
|
135
135
|
private getItemInitData;
|
|
136
136
|
private setItem;
|
|
@@ -19,7 +19,7 @@ export declare class TextComponent extends SpriteComponent {
|
|
|
19
19
|
*/
|
|
20
20
|
lineCount: number;
|
|
21
21
|
constructor(engine: Engine, props?: spec.TextContent);
|
|
22
|
-
|
|
22
|
+
onUpdate(dt: number): void;
|
|
23
23
|
fromData(data: SpriteItemProps): void;
|
|
24
24
|
updateWithOptions(options: spec.TextContentOptions): void;
|
|
25
25
|
updateTexture(flipY?: boolean): void;
|
|
@@ -1,5 +1,52 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EndBehavior } from '@galacean/effects-specification';
|
|
2
|
+
import type { PlayableGraph } from '../cal/playable-graph';
|
|
3
|
+
import { Playable, PlayableAsset, PlayableOutput } from '../cal/playable-graph';
|
|
2
4
|
import { ParticleSystem } from '../particle/particle-system';
|
|
5
|
+
import type { Constructor } from '../../utils';
|
|
6
|
+
/**
|
|
7
|
+
* @since 2.0.0
|
|
8
|
+
*/
|
|
9
|
+
export declare class TimelineClip {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
start: number;
|
|
13
|
+
duration: number;
|
|
14
|
+
asset: PlayableAsset;
|
|
15
|
+
endBehavior: EndBehavior;
|
|
16
|
+
constructor();
|
|
17
|
+
toLocalTime(time: number): number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @since 2.0.0
|
|
21
|
+
*/
|
|
22
|
+
export declare class TrackAsset extends PlayableAsset {
|
|
23
|
+
name: string;
|
|
24
|
+
binding: object;
|
|
25
|
+
trackType: TrackType;
|
|
26
|
+
private clipSeed;
|
|
27
|
+
private clips;
|
|
28
|
+
protected children: TrackAsset[];
|
|
29
|
+
/**
|
|
30
|
+
* 重写该方法以获取自定义对象绑定
|
|
31
|
+
*/
|
|
32
|
+
resolveBinding(parentBinding: object): object;
|
|
33
|
+
/**
|
|
34
|
+
* 重写该方法以创建自定义混合器
|
|
35
|
+
*/
|
|
36
|
+
createTrackMixer(graph: PlayableGraph): Playable;
|
|
37
|
+
createOutput(): PlayableOutput;
|
|
38
|
+
createPlayableGraph(graph: PlayableGraph, runtimeClips: RuntimeClip[]): Playable;
|
|
39
|
+
createMixerPlayableGraph(graph: PlayableGraph, runtimeClips: RuntimeClip[]): Playable;
|
|
40
|
+
compileClips(graph: PlayableGraph, timelineClips: TimelineClip[], runtimeClips: RuntimeClip[]): Playable;
|
|
41
|
+
createPlayable(graph: PlayableGraph): Playable;
|
|
42
|
+
getChildTracks(): TrackAsset[];
|
|
43
|
+
addChild(child: TrackAsset): void;
|
|
44
|
+
createClip<T extends PlayableAsset>(classConstructor: Constructor<T>, name?: string): TimelineClip;
|
|
45
|
+
getClips(): TimelineClip[];
|
|
46
|
+
findClip(name: string): TimelineClip | undefined;
|
|
47
|
+
addClip(clip: TimelineClip): void;
|
|
48
|
+
private createClipPlayable;
|
|
49
|
+
}
|
|
3
50
|
export declare enum TrackType {
|
|
4
51
|
MasterTrack = 0,
|
|
5
52
|
ObjectTrack = 1
|
|
@@ -14,3 +61,9 @@ export declare class RuntimeClip {
|
|
|
14
61
|
set enable(value: boolean);
|
|
15
62
|
evaluateAt(localTime: number): void;
|
|
16
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* @since 2.0.0
|
|
66
|
+
*/
|
|
67
|
+
export interface TimelineClipData {
|
|
68
|
+
asset: PlayableAsset;
|
|
69
|
+
}
|
package/dist/ticker.d.ts
CHANGED
package/dist/vfx-item.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Vector3 } from '@galacean/effects-math/es/core/vector3';
|
|
|
2
2
|
import * as spec from '@galacean/effects-specification';
|
|
3
3
|
import type { VFXItemData } from './asset-loader';
|
|
4
4
|
import type { Component } from './components';
|
|
5
|
-
import { RendererComponent
|
|
5
|
+
import { RendererComponent } from './components';
|
|
6
6
|
import type { Composition } from './composition';
|
|
7
7
|
import { EffectsObject } from './effects-object';
|
|
8
8
|
import type { Engine } from './engine';
|
|
@@ -76,8 +76,8 @@ export declare class VFXItem extends EffectsObject implements Disposable {
|
|
|
76
76
|
reusable: boolean;
|
|
77
77
|
type: spec.ItemType;
|
|
78
78
|
props: VFXItemProps;
|
|
79
|
+
isDuringPlay: boolean;
|
|
79
80
|
components: Component[];
|
|
80
|
-
itemBehaviours: Behaviour[];
|
|
81
81
|
rendererComponents: RendererComponent[];
|
|
82
82
|
/**
|
|
83
83
|
* 元素可见性,该值的改变会触发 `handleVisibleChanged` 回调
|
|
@@ -89,6 +89,7 @@ export declare class VFXItem extends EffectsObject implements Disposable {
|
|
|
89
89
|
*/
|
|
90
90
|
private speed;
|
|
91
91
|
private listIndex;
|
|
92
|
+
private isEnabled;
|
|
92
93
|
private eventProcessor;
|
|
93
94
|
static isComposition(item: VFXItem): boolean;
|
|
94
95
|
static isSprite(item: VFXItem): boolean;
|
|
@@ -97,6 +98,7 @@ export declare class VFXItem extends EffectsObject implements Disposable {
|
|
|
97
98
|
static isTree(item: VFXItem): boolean;
|
|
98
99
|
static isCamera(item: VFXItem): boolean;
|
|
99
100
|
static isExtraCamera(item: VFXItem): boolean;
|
|
101
|
+
static isAncestor(ancestorCandidate: VFXItem, descendantCandidate: VFXItem): boolean;
|
|
100
102
|
constructor(engine: Engine, props?: VFXItemProps);
|
|
101
103
|
/**
|
|
102
104
|
* 返回元素创建的数据
|