@galacean/effects-specification 0.0.1

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.
Files changed (49) hide show
  1. package/README.md +28 -0
  2. package/dist/fallback/camera.d.ts +2 -0
  3. package/dist/fallback/filter.d.ts +2 -0
  4. package/dist/fallback/index.d.ts +12 -0
  5. package/dist/fallback/interact.d.ts +2 -0
  6. package/dist/fallback/migration.d.ts +5 -0
  7. package/dist/fallback/particle.d.ts +2 -0
  8. package/dist/fallback/sprite.d.ts +3 -0
  9. package/dist/fallback/utils.d.ts +29 -0
  10. package/dist/fallback.js +1664 -0
  11. package/dist/fallback.js.map +1 -0
  12. package/dist/fallback.mjs +1639 -0
  13. package/dist/fallback.mjs.map +1 -0
  14. package/dist/index.js +689 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/index.mjs +674 -0
  17. package/dist/index.mjs.map +1 -0
  18. package/dist/src/binary.d.ts +60 -0
  19. package/dist/src/composition.d.ts +111 -0
  20. package/dist/src/constants.d.ts +11 -0
  21. package/dist/src/image.d.ts +123 -0
  22. package/dist/src/index.d.ts +22 -0
  23. package/dist/src/item/base-item.d.ts +110 -0
  24. package/dist/src/item/camera-item.d.ts +69 -0
  25. package/dist/src/item/composition-item.d.ts +56 -0
  26. package/dist/src/item/filter-item.d.ts +99 -0
  27. package/dist/src/item/interact-item.d.ts +85 -0
  28. package/dist/src/item/model/binary.d.ts +85 -0
  29. package/dist/src/item/model/camera.d.ts +33 -0
  30. package/dist/src/item/model/index.d.ts +35 -0
  31. package/dist/src/item/model/light.d.ts +72 -0
  32. package/dist/src/item/model/material.d.ts +84 -0
  33. package/dist/src/item/model/mesh.d.ts +69 -0
  34. package/dist/src/item/model/render.d.ts +41 -0
  35. package/dist/src/item/model/skybox.d.ts +50 -0
  36. package/dist/src/item/model/tree.d.ts +65 -0
  37. package/dist/src/item/null-item.d.ts +46 -0
  38. package/dist/src/item/particle-item.d.ts +412 -0
  39. package/dist/src/item/particle-shape.d.ts +212 -0
  40. package/dist/src/item/plugin-item.d.ts +46 -0
  41. package/dist/src/item/spine-item.d.ts +93 -0
  42. package/dist/src/item/sprite-item.d.ts +71 -0
  43. package/dist/src/item/text-item.d.ts +172 -0
  44. package/dist/src/item.d.ts +17 -0
  45. package/dist/src/numberExpression.d.ts +279 -0
  46. package/dist/src/scene.d.ts +92 -0
  47. package/dist/src/text.d.ts +183 -0
  48. package/dist/src/type.d.ts +643 -0
  49. package/package.json +67 -0
@@ -0,0 +1,643 @@
1
+ import type { FixedVec3Expression, vec2, vec3, GradientColor, ShapePoints, ShapeSplits, FixedNumberExpression } from './numberExpression';
2
+ /**
3
+ * 播放器版本
4
+ */
5
+ export interface PlayerVersion {
6
+ /**
7
+ * Web端版本号
8
+ */
9
+ web: string;
10
+ /**
11
+ * Native端版本号
12
+ */
13
+ native: string;
14
+ }
15
+ /*********************************************/
16
+ /*********************************************/
17
+ /**
18
+ * 模型属性
19
+ */
20
+ export interface GLTF {
21
+ /**
22
+ * 模型序号
23
+ */
24
+ id: number;
25
+ /**
26
+ * 模型地址
27
+ */
28
+ url: string;
29
+ /**
30
+ * 是否复用
31
+ */
32
+ reuse: boolean;
33
+ }
34
+ /**
35
+ * 形状属性
36
+ */
37
+ export interface Shape {
38
+ /**
39
+ * 形状 ID
40
+ */
41
+ id: number;
42
+ /**
43
+ * 形状数据
44
+ */
45
+ shape: number[];
46
+ }
47
+ /**
48
+ * 插件参数
49
+ */
50
+ export interface Plugin {
51
+ /**
52
+ * 插件类型
53
+ */
54
+ type: PluginType;
55
+ /**
56
+ * 插件版本
57
+ */
58
+ version: string;
59
+ }
60
+ /*********************************************/
61
+ /*********************************************/
62
+ /**
63
+ * 大小变化属性
64
+ */
65
+ export interface SizeOverLifetime {
66
+ /**
67
+ * 分轴变化开关
68
+ */
69
+ separateAxes?: boolean;
70
+ /**
71
+ * 整体大小变化信息(非分轴模式)
72
+ */
73
+ size?: FixedNumberExpression;
74
+ /**
75
+ * x轴大小变化信息(分轴模式)
76
+ */
77
+ x?: FixedNumberExpression;
78
+ /**
79
+ * y轴大小变化信息(分轴模式)
80
+ */
81
+ y?: FixedNumberExpression;
82
+ /**
83
+ * z轴大小变化信息(分轴模式)
84
+ */
85
+ z?: FixedNumberExpression;
86
+ }
87
+ /**
88
+ * 旋转变化属性
89
+ */
90
+ export interface RotationOverLifetime {
91
+ /**
92
+ * 分轴变化开关
93
+ */
94
+ separateAxes?: boolean;
95
+ /**
96
+ * 角度模式
97
+ */
98
+ asRotation?: boolean;
99
+ /**
100
+ * x 轴旋转函数
101
+ */
102
+ x?: FixedNumberExpression;
103
+ /**
104
+ * y 轴旋转函数
105
+ */
106
+ y?: FixedNumberExpression;
107
+ /**
108
+ * z 轴旋转函数(不分轴时,变化 z)
109
+ */
110
+ z?: FixedNumberExpression;
111
+ }
112
+ /**
113
+ * 位置变化属性
114
+ */
115
+ export interface PositionOverLifetime {
116
+ /**
117
+ * 路程模式
118
+ */
119
+ asMovement?: boolean;
120
+ /**
121
+ * x轴位置变化信息
122
+ */
123
+ linearX?: FixedNumberExpression;
124
+ /**
125
+ * y轴位置变化信息
126
+ */
127
+ linearY?: FixedNumberExpression;
128
+ /**
129
+ * z轴位置变化信息
130
+ */
131
+ linearZ?: FixedNumberExpression;
132
+ /**
133
+ * 环绕模式
134
+ */
135
+ asRotation?: boolean;
136
+ /**
137
+ * x轴环绕角度变化信息
138
+ */
139
+ orbitalX?: FixedNumberExpression;
140
+ /**
141
+ * y轴环绕角度变化信息
142
+ */
143
+ orbitalY?: FixedNumberExpression;
144
+ /**
145
+ * z轴环绕角度变化信息
146
+ */
147
+ orbitalZ?: FixedNumberExpression;
148
+ /**
149
+ * 环绕中心信息
150
+ */
151
+ orbCenter?: vec3;
152
+ /**
153
+ * 路径
154
+ * @default [0,0,0]
155
+ */
156
+ path?: FixedVec3Expression;
157
+ /**
158
+ * 初速度方向
159
+ */
160
+ direction?: vec3;
161
+ /**
162
+ * 增加一个初速度,匀速直线运动,direction 为运动方向
163
+ * @default 0
164
+ */
165
+ startSpeed?: number;
166
+ /**
167
+ * 速度变化信息
168
+ * @default [ValueType.ConstantNumber, 0]
169
+ */
170
+ speedOverLifetime?: FixedNumberExpression;
171
+ /**
172
+ * 增加一个重力
173
+ * gravity 为重力方向,gravityModifier 为重力大小
174
+ * @default 0
175
+ */
176
+ gravity?: vec3;
177
+ /**
178
+ * 重力变化信息
179
+ */
180
+ gravityOverLifetime?: FixedNumberExpression;
181
+ }
182
+ /**
183
+ * 颜色变化属性
184
+ */
185
+ export interface ColorOverLifetime {
186
+ /**
187
+ * 颜色属性
188
+ */
189
+ color?: GradientColor;
190
+ /**
191
+ * 透明度属性变化值
192
+ */
193
+ opacity?: FixedNumberExpression;
194
+ }
195
+ /**
196
+ * 雪碧图/帧动画属性
197
+ */
198
+ export interface TextureSheetAnimation {
199
+ /**
200
+ * 雪碧图行数
201
+ */
202
+ row: number;
203
+ /**
204
+ * 雪碧图列数
205
+ */
206
+ col: number;
207
+ /**
208
+ * 帧动画总帧数
209
+ * 默认 row * col
210
+ */
211
+ total?: number;
212
+ /**
213
+ * 帧动画开关
214
+ */
215
+ animate: boolean;
216
+ }
217
+ /**
218
+ * 精灵图坐标属性
219
+ */
220
+ export declare type SplitParameter = [
221
+ /**
222
+ * 起点[归一化坐标]
223
+ */
224
+ sx: number,
225
+ /**
226
+ * 起点[归一化坐标]
227
+ */
228
+ sy: number,
229
+ /**
230
+ * 宽度[归一化距离]
231
+ */
232
+ width: number,
233
+ /**
234
+ * 宽度[归一化距离]
235
+ */
236
+ height: number,
237
+ /**
238
+ * 是否翻转 uv 90 度
239
+ */
240
+ flip: 0 | 1
241
+ ];
242
+ /*********************************************/
243
+ /*********************************************/
244
+ /**
245
+ * 渲染等级
246
+ */
247
+ export declare enum RenderLevel {
248
+ S = "S",
249
+ APlus = "A+",
250
+ A = "A",
251
+ BPlus = "B+",
252
+ B = "B"
253
+ }
254
+ /**
255
+ * 混合模式
256
+ */
257
+ export declare enum BlendingMode {
258
+ /**
259
+ * 普通混合模式
260
+ */
261
+ ALPHA = 0,
262
+ /**
263
+ * 叠加混合模式
264
+ */
265
+ ADD = 1,
266
+ /**
267
+ * 相乘混合模式
268
+ */
269
+ MULTIPLY = 2,
270
+ /**
271
+ * 亮度混合模式
272
+ */
273
+ BRIGHTNESS = 3,
274
+ /**
275
+ * 减色混合模式
276
+ */
277
+ SUBTRACTION = 4,
278
+ /**
279
+ * 强光混合模式
280
+ */
281
+ STRONG_LIGHT = 5,
282
+ /**
283
+ * 弱光混合模式
284
+ */
285
+ WEAK_LIGHT = 6,
286
+ /**
287
+ * 亮度叠加混合模式
288
+ */
289
+ SUPERPOSITION = 7
290
+ }
291
+ /**
292
+ * 单双面模式
293
+ */
294
+ export declare enum SideMode {
295
+ /**
296
+ * 双面模式
297
+ */
298
+ DOUBLE = 1032,
299
+ /**
300
+ * 正面模式
301
+ */
302
+ FRONT = 1028,
303
+ /**
304
+ * 背面模式
305
+ */
306
+ BACK = 1029
307
+ }
308
+ /**
309
+ * 蒙版模式
310
+ */
311
+ export declare enum MaskMode {
312
+ /**
313
+ * 无蒙版
314
+ */
315
+ NONE = 0,
316
+ /**
317
+ * 蒙版
318
+ */
319
+ MASK = 1,
320
+ /**
321
+ * 被遮挡
322
+ */
323
+ OBSCURED = 2,
324
+ /**
325
+ * 被反向遮挡
326
+ */
327
+ REVERSE_OBSCURED = 3
328
+ }
329
+ /**
330
+ * 发射器形状
331
+ */
332
+ export declare enum ShapeType {
333
+ /**
334
+ * 没有类型
335
+ */
336
+ NONE = 0,
337
+ /**
338
+ * 圆球
339
+ */
340
+ SPHERE = 1,
341
+ /**
342
+ * 圆锥
343
+ */
344
+ CONE = 2,
345
+ /**
346
+ * 半球
347
+ */
348
+ HEMISPHERE = 3,
349
+ /**
350
+ * 圆
351
+ */
352
+ CIRCLE = 4,
353
+ /**
354
+ * 圆环
355
+ */
356
+ DONUT = 5,
357
+ /**
358
+ * 矩形
359
+ */
360
+ RECTANGLE = 6,
361
+ /**
362
+ * 矩形框
363
+ */
364
+ RECTANGLE_EDGE = 7,
365
+ /**
366
+ * 直线
367
+ */
368
+ EDGE = 8,
369
+ /**
370
+ * 贴图
371
+ */
372
+ TEXTURE = 9
373
+ }
374
+ /**
375
+ * 插件类型
376
+ */
377
+ export declare enum PluginType {
378
+ /**
379
+ * 陀螺仪
380
+ */
381
+ GYROSCOPE = 0,
382
+ /**
383
+ * Spine
384
+ */
385
+ SPINE = 1
386
+ }
387
+ /**
388
+ * 交互类型
389
+ */
390
+ export declare enum InteractType {
391
+ /**
392
+ * 点击
393
+ */
394
+ CLICK = 0,
395
+ /**
396
+ * 消息
397
+ * 前端收到 onMessageItem 回调
398
+ */
399
+ MESSAGE = 1,
400
+ /**
401
+ * 拖拽
402
+ */
403
+ DRAG = 2
404
+ }
405
+ /**
406
+ * 交互行为
407
+ */
408
+ export declare enum InteractBehavior {
409
+ /**
410
+ * 无
411
+ */
412
+ NONE = 0,
413
+ /**
414
+ * 通知
415
+ */
416
+ NOTIFY = 1,
417
+ /**
418
+ * 重置播放器
419
+ */
420
+ RESUME_PLAYER = 2,
421
+ /**
422
+ * 清除元素
423
+ */
424
+ REMOVE = 3,
425
+ /**
426
+ * 暂停播放器
427
+ */
428
+ PAUSE = 4
429
+ }
430
+ /**
431
+ * 基础渲染属性
432
+ */
433
+ export interface RendererOptions {
434
+ /**
435
+ * 渲染模式
436
+ */
437
+ renderMode?: RenderMode;
438
+ /**
439
+ * 混合模式
440
+ * @default BlendingMode.ALPHA
441
+ */
442
+ blending?: BlendingMode;
443
+ /**
444
+ * 单双面模式
445
+ */
446
+ side?: SideMode;
447
+ /**
448
+ * 是否写入深度缓存
449
+ * @default false
450
+ */
451
+ occlusion?: boolean;
452
+ /**
453
+ * 透明像素是否写入深度缓存,occlusion 为 true 时生效
454
+ * @default false
455
+ */
456
+ transparentOcclusion?: boolean;
457
+ /**
458
+ * 贴图,索引到 scene 中的 images 数组
459
+ */
460
+ texture?: number;
461
+ /**
462
+ * 蒙版模式
463
+ * @default none
464
+ */
465
+ maskMode?: MaskMode;
466
+ /**
467
+ * 蒙版形状,索引到 scene 的 shapes 中
468
+ */
469
+ shape?: number | ShapeGeometry;
470
+ /**
471
+ * 旋转中心
472
+ */
473
+ particleOrigin?: ParticleOrigin;
474
+ /**
475
+ * 锚点
476
+ */
477
+ anchor?: vec2;
478
+ }
479
+ /**
480
+ * 元素类型
481
+ */
482
+ export declare enum ItemType {
483
+ /**
484
+ * 错误元素
485
+ */
486
+ base = "0",
487
+ /**
488
+ * 图层元素
489
+ */
490
+ sprite = "1",
491
+ /**
492
+ * 粒子元素
493
+ */
494
+ particle = "2",
495
+ /**
496
+ * 空节点元素
497
+ */
498
+ null = "3",
499
+ /**
500
+ * 交互元素
501
+ */
502
+ interact = "4",
503
+ /**
504
+ * 插件元素
505
+ */
506
+ plugin = "5",
507
+ /**
508
+ * 相机元素
509
+ */
510
+ camera = "6",
511
+ /**
512
+ * 预合成元素
513
+ */
514
+ composition = "7",
515
+ /**
516
+ * 滤镜图层
517
+ */
518
+ filter = "8",
519
+ /**
520
+ * Spine 元素
521
+ */
522
+ spine = "spine",
523
+ /**
524
+ * Mesh 元素
525
+ */
526
+ mesh = "mesh",
527
+ /**
528
+ * 节点树元素
529
+ */
530
+ tree = "tree",
531
+ /**
532
+ * 文本元素
533
+ */
534
+ text = "text",
535
+ /**
536
+ * 灯光元素
537
+ */
538
+ light = "light",
539
+ /**
540
+ * 天空盒元素
541
+ */
542
+ skybox = "skybox"
543
+ }
544
+ /**
545
+ * 渲染模式
546
+ */
547
+ export declare enum RenderMode {
548
+ /**
549
+ * 广告牌模式
550
+ */
551
+ BILLBOARD = 0,
552
+ /**
553
+ * 网格模式
554
+ */
555
+ MESH = 1,
556
+ /**
557
+ * 垂直广告牌模式
558
+ */
559
+ VERTICAL_BILLBOARD = 2,
560
+ /**
561
+ * 水平广告牌模式
562
+ */
563
+ HORIZONTAL_BILLBOARD = 3
564
+ }
565
+ /**
566
+ * 变换中心
567
+ */
568
+ export declare enum ParticleOrigin {
569
+ /**
570
+ * 水平和垂直中点
571
+ */
572
+ PARTICLE_ORIGIN_CENTER = 0,
573
+ /**
574
+ * 水平左侧 垂直顶部
575
+ */
576
+ PARTICLE_ORIGIN_LEFT_TOP = 1,
577
+ /**
578
+ * 水平左侧 垂直中间
579
+ */
580
+ PARTICLE_ORIGIN_LEFT_CENTER = 2,
581
+ /**
582
+ * 水平左侧 垂直底部
583
+ */
584
+ PARTICLE_ORIGIN_LEFT_BOTTOM = 3,
585
+ /**
586
+ * 水平中间 垂直顶部
587
+ */
588
+ PARTICLE_ORIGIN_CENTER_TOP = 4,
589
+ /**
590
+ * 水平中间 垂直底部
591
+ */
592
+ PARTICLE_ORIGIN_CENTER_BOTTOM = 5,
593
+ /**
594
+ * 水平右侧 垂直顶部
595
+ */
596
+ PARTICLE_ORIGIN_RIGHT_TOP = 6,
597
+ /**
598
+ * 水平右侧 垂直中间
599
+ */
600
+ PARTICLE_ORIGIN_RIGHT_CENTER = 7,
601
+ /**
602
+ * 水平右侧 垂直底部
603
+ */
604
+ PARTICLE_ORIGIN_RIGHT_BOTTOM = 8
605
+ }
606
+ /**
607
+ * 陀螺仪插件属性
608
+ */
609
+ export interface PluginGyroscopeTarget {
610
+ /**
611
+ * 名称
612
+ */
613
+ name: string;
614
+ /**
615
+ * x轴最小值
616
+ */
617
+ xMin: number;
618
+ /**
619
+ * x轴最大值
620
+ */
621
+ xMax: number;
622
+ /**
623
+ * y轴最小值
624
+ */
625
+ yMin: number;
626
+ /**
627
+ * y轴最大值
628
+ */
629
+ yMax: number;
630
+ }
631
+ /**
632
+ * 二维蒙版形状属性
633
+ */
634
+ export interface ShapeGeometry {
635
+ /**
636
+ * 贝塞尔点信息[顶点信息 前向控制点 后向控制点]
637
+ */
638
+ p: ShapePoints;
639
+ /**
640
+ * 差值信息
641
+ */
642
+ s: ShapeSplits;
643
+ }
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@galacean/effects-specification",
3
+ "version": "0.0.1",
4
+ "description": "Galacean Effects JSON Specification",
5
+ "module": "./dist/index.mjs",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/src/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.mjs",
14
+ "require": "./dist/index.js",
15
+ "types": "./dist/src/index.d.ts"
16
+ },
17
+ "./dist/fallback": {
18
+ "import": "./dist/fallback.mjs",
19
+ "require": "./dist/fallback.js",
20
+ "types": "./dist/fallback/index.d.ts"
21
+ }
22
+ },
23
+ "scripts": {
24
+ "prebuild": "npm run clean:all",
25
+ "build": "npm run build:dist",
26
+ "build:dist": "rollup -c",
27
+ "lint": "eslint {src,fallback,test} --ext .ts,.mjs",
28
+ "lint:fix": "eslint {src,fallback,test} --fix --quiet --ext .ts,.mjs",
29
+ "check:ts": "tsc -b tsconfig.check.json",
30
+ "clean:all": "npm run clean:dist",
31
+ "clean:dist": "rimraf dist/**",
32
+ "test": "rollup -c --watch --test",
33
+ "prepare": "husky install",
34
+ "prepublishOnly": "npm run build"
35
+ },
36
+ "devDependencies": {
37
+ "@commitlint/cli": "^13.2.1",
38
+ "@commitlint/config-conventional": "^13.2.0",
39
+ "@rollup/plugin-commonjs": "^21.0.3",
40
+ "@rollup/plugin-node-resolve": "^13.1.3",
41
+ "@rollup/plugin-typescript": "^8.3.1",
42
+ "@types/chai": "^4.3.0",
43
+ "@types/chai-spies": "^1.0.0",
44
+ "@types/mocha": "^10.0.1",
45
+ "@types/node": "^17.0.21",
46
+ "@typescript-eslint/eslint-plugin": "^5.26.0",
47
+ "@typescript-eslint/parser": "^5.26.0",
48
+ "chai": "^4.3.6",
49
+ "chai-spies": "^1.0.0",
50
+ "eslint": "^8.13.0",
51
+ "eslint-plugin-promise": "^6.1.1",
52
+ "husky": "^7.0.4",
53
+ "lint-staged": "^11.2.6",
54
+ "mocha": "^10.2.0",
55
+ "rimraf": "^3.0.2",
56
+ "rollup": "^2.70.1",
57
+ "rollup-plugin-livereload": "^2.0.5",
58
+ "rollup-plugin-serve": "^1.1.0",
59
+ "typescript": "^4.6.2"
60
+ },
61
+ "author": "Ant Group CO., Ltd.",
62
+ "license": "MIT",
63
+ "publishConfig": {
64
+ "access": "public",
65
+ "registry": "https://registry.npmjs.org"
66
+ }
67
+ }