@fps-games/vfx 0.3.2 → 0.3.4

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 (234) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +5 -5
  3. package/dist/effects/treasure-attention/index.d.ts +1 -1
  4. package/package.json +6 -5
  5. package/tooling/vfx-cli.mjs +31 -22
  6. package/tooling/vfx-package-resolution.mjs +8 -8
  7. package/docs/AUTHORING_EFFECTS.md +0 -297
  8. package/docs/INTEGRATION.md +0 -194
  9. package/docs/VFX_LIBRARY_ARCHITECTURE_chatgpt.md +0 -1580
  10. package/docs/VFX_LIBRARY_EXECUTION_PLAN.md +0 -229
  11. package/docs/VFX_LIBRARY_PLAN.md +0 -546
  12. package/docs/hit-flash-red-method.md +0 -155
  13. package/docs/treasure_attention_fx_babylonjs_guide.md +0 -901
  14. package/docs/vfx-ab/RESULTS.md +0 -35
  15. package/docs/vfx-ab/lumber-order/vehicle-exhaust-smoke/after.png +0 -0
  16. package/docs/vfx-ab/lumber-order/vehicle-exhaust-smoke/before.png +0 -0
  17. package/docs/vfx-ab/lumber-truck/vehicle-exhaust-smoke/after.png +0 -0
  18. package/docs/vfx-ab/lumber-truck/vehicle-exhaust-smoke/before.png +0 -0
  19. package/docs/vfx-integration_chatgpt.md +0 -462
  20. package/docs/vfx-placement-design.md +0 -164
  21. package/docs/weapon-trail-visualization.html +0 -241
  22. package/packages/EffectPackageService.ts +0 -346
  23. package/packages/SceneVfxService.ts +0 -96
  24. package/packages/build.mesh.yellow_build_upgrade_indicator/assets/runtime/simpleMeshEffect.v1.js +0 -333
  25. package/packages/build.mesh.yellow_build_upgrade_indicator/assets/shaders/mesh-effect-preview.frag.glsl +0 -25
  26. package/packages/build.mesh.yellow_build_upgrade_indicator/assets/shaders/mesh-effect-preview.vert.glsl +0 -11
  27. package/packages/build.mesh.yellow_build_upgrade_indicator/assets/textures/effect_jianbian.png +0 -0
  28. package/packages/build.mesh.yellow_build_upgrade_indicator/effect.json +0 -927
  29. package/packages/build.mesh.yellow_build_upgrade_indicator/media/contact-sheet.png +0 -0
  30. package/packages/build.mesh.yellow_build_upgrade_indicator/media/preview.gif +0 -0
  31. package/packages/build.mesh.yellow_build_upgrade_indicator/media/preview.mp4 +0 -0
  32. package/packages/build.mesh.yellow_build_upgrade_indicator/media/preview.webm +0 -0
  33. package/packages/build.mesh.yellow_build_upgrade_indicator/media/thumbnail.png +0 -0
  34. package/packages/build.mesh.yellow_build_upgrade_indicator/metadata/description.json +0 -197
  35. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/03-effect.original.json +0 -895
  36. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/03-normalized-vfx-to-babylon-report.json +0 -241
  37. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/04-preview-overrides.json +0 -542
  38. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/04-preview-tuning-report.json +0 -69
  39. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/asset-map.json +0 -125
  40. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/lineage.json +0 -44
  41. package/packages/build.particle.golden_upgrade_starburst/assets/runtime/particleEmitter.v1.js +0 -210
  42. package/packages/build.particle.golden_upgrade_starburst/assets/textures/effect_guangdian.png +0 -0
  43. package/packages/build.particle.golden_upgrade_starburst/effect.json +0 -880
  44. package/packages/build.particle.golden_upgrade_starburst/media/contact-sheet.png +0 -0
  45. package/packages/build.particle.golden_upgrade_starburst/media/preview.gif +0 -0
  46. package/packages/build.particle.golden_upgrade_starburst/media/preview.mp4 +0 -0
  47. package/packages/build.particle.golden_upgrade_starburst/media/preview.webm +0 -0
  48. package/packages/build.particle.golden_upgrade_starburst/media/thumbnail.png +0 -0
  49. package/packages/build.particle.golden_upgrade_starburst/metadata/description.json +0 -161
  50. package/packages/build.particle.golden_upgrade_starburst/provenance/03-effect.original.json +0 -762
  51. package/packages/build.particle.golden_upgrade_starburst/provenance/03-normalized-vfx-to-babylon-report.json +0 -260
  52. package/packages/build.particle.golden_upgrade_starburst/provenance/04-preview-overrides.json +0 -436
  53. package/packages/build.particle.golden_upgrade_starburst/provenance/04-preview-tuning-report.json +0 -40
  54. package/packages/build.particle.golden_upgrade_starburst/provenance/asset-map.json +0 -115
  55. package/packages/build.particle.golden_upgrade_starburst/provenance/lineage.json +0 -40
  56. package/packages/build.particle.orange_upgrade_transform_sparks/assets/runtime/particleEmitter.v1.js +0 -210
  57. package/packages/build.particle.orange_upgrade_transform_sparks/assets/textures/b5b27ab1-e740-4398-b407-848fc2b2c897.png +0 -0
  58. package/packages/build.particle.orange_upgrade_transform_sparks/effect.json +0 -887
  59. package/packages/build.particle.orange_upgrade_transform_sparks/media/preview.gif +0 -0
  60. package/packages/build.particle.orange_upgrade_transform_sparks/media/preview.mp4 +0 -0
  61. package/packages/build.particle.orange_upgrade_transform_sparks/media/preview.webm +0 -0
  62. package/packages/build.particle.orange_upgrade_transform_sparks/media/thumbnail.png +0 -0
  63. package/packages/build.particle.orange_upgrade_transform_sparks/metadata/description.json +0 -179
  64. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/03-effect.original.json +0 -859
  65. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/03-normalized-vfx-to-babylon-report.json +0 -260
  66. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/04-preview-overrides.json +0 -478
  67. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/04-preview-tuning-report.json +0 -40
  68. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/asset-map.json +0 -114
  69. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/lineage.json +0 -41
  70. package/packages/build.particle.wood_chip_dust_burst/assets/runtime/particleEmitter.v1.js +0 -210
  71. package/packages/build.particle.wood_chip_dust_burst/assets/textures/effect_yanwu4.png +0 -0
  72. package/packages/build.particle.wood_chip_dust_burst/assets/textures/suipian3.png +0 -0
  73. package/packages/build.particle.wood_chip_dust_burst/effect.json +0 -1400
  74. package/packages/build.particle.wood_chip_dust_burst/media/contact-sheet.png +0 -0
  75. package/packages/build.particle.wood_chip_dust_burst/media/preview.gif +0 -0
  76. package/packages/build.particle.wood_chip_dust_burst/media/preview.mp4 +0 -0
  77. package/packages/build.particle.wood_chip_dust_burst/media/preview.webm +0 -0
  78. package/packages/build.particle.wood_chip_dust_burst/media/thumbnail.png +0 -0
  79. package/packages/build.particle.wood_chip_dust_burst/metadata/description.json +0 -173
  80. package/packages/build.particle.wood_chip_dust_burst/provenance/03-effect.original.json +0 -1277
  81. package/packages/build.particle.wood_chip_dust_burst/provenance/03-normalized-vfx-to-babylon-report.json +0 -329
  82. package/packages/build.particle.wood_chip_dust_burst/provenance/04-preview-overrides.json +0 -749
  83. package/packages/build.particle.wood_chip_dust_burst/provenance/04-preview-tuning-report.json +0 -60
  84. package/packages/build.particle.wood_chip_dust_burst/provenance/asset-map.json +0 -146
  85. package/packages/build.particle.wood_chip_dust_burst/provenance/lineage.json +0 -69
  86. package/packages/effects/building-upgrade/effect.json +0 -6
  87. package/packages/effects/building-upgrade/index.ts +0 -387
  88. package/packages/effects/character-entrance/effect.json +0 -6
  89. package/packages/effects/character-entrance/index.ts +0 -308
  90. package/packages/effects/coin-burst/index.ts +0 -48
  91. package/packages/effects/comet-trail-flame/assets/textures/trail_5x4.webp +0 -0
  92. package/packages/effects/comet-trail-flame/index.ts +0 -107
  93. package/packages/effects/conveyor-upgrade/effect.json +0 -6
  94. package/packages/effects/conveyor-upgrade/index.ts +0 -401
  95. package/packages/effects/debris-smoke/assets/models/rock_debris.glb +0 -0
  96. package/packages/effects/debris-smoke/assets/textures/smoke22.webp +0 -0
  97. package/packages/effects/debris-smoke/index.ts +0 -102
  98. package/packages/effects/door_open_gold_flakes/assets/runtime/goldFlakes.v1.js +0 -397
  99. package/packages/effects/door_open_gold_flakes/door_open_gold_flakes.json +0 -498
  100. package/packages/effects/door_open_gold_flakes/index.ts +0 -11
  101. package/packages/effects/electric-arc/assets/textures/spark_4x4.webp +0 -0
  102. package/packages/effects/electric-arc/index.ts +0 -63
  103. package/packages/effects/energy-shield/effect.json +0 -7
  104. package/packages/effects/energy-shield/index.ts +0 -432
  105. package/packages/effects/explosion/assets/textures/baozha29.webp +0 -0
  106. package/packages/effects/explosion/assets/textures/glow01.webp +0 -0
  107. package/packages/effects/explosion/assets/textures/lizi01.webp +0 -0
  108. package/packages/effects/explosion/assets/textures/xulie_lizibaozha02_5x5.webp +0 -0
  109. package/packages/effects/explosion/index.ts +0 -115
  110. package/packages/effects/ground-tile-upgrade/effect.json +0 -6
  111. package/packages/effects/ground-tile-upgrade/index.ts +0 -410
  112. package/packages/effects/hit-flash/index.ts +0 -77
  113. package/packages/effects/laser-beam/assets/textures/laser_glow.webp +0 -0
  114. package/packages/effects/laser-beam/assets/textures/laser_noise.webp +0 -0
  115. package/packages/effects/laser-beam/index.ts +0 -6
  116. package/packages/effects/laser-beam-factory.ts +0 -146
  117. package/packages/effects/lumber-cart-suction/effect.json +0 -6
  118. package/packages/effects/lumber-cart-suction/index.ts +0 -399
  119. package/packages/effects/lumber-debris-scatter/assets/models/lumber_prop_model.glb +0 -0
  120. package/packages/effects/lumber-debris-scatter/assets/models/lumber_prop_model.glb.versions/.active +0 -1
  121. package/packages/effects/lumber-debris-scatter/assets/models/lumber_prop_model.glb.versions/1781589063890_upload.glb +0 -0
  122. package/packages/effects/lumber-debris-scatter/assets/runtime/solidParticleScatter.v1.js +0 -236
  123. package/packages/effects/lumber-debris-scatter/effect.json +0 -228
  124. package/packages/effects/lumber-debris-scatter/index.ts +0 -780
  125. package/packages/effects/lumber_vehicle_gear_spin/assets/runtime/gearSpin.v1.js +0 -202
  126. package/packages/effects/lumber_vehicle_gear_spin/index.ts +0 -11
  127. package/packages/effects/lumber_vehicle_gear_spin/lumber_vehicle_gear_spin.json +0 -338
  128. package/packages/effects/lumber_vehicle_upgrade_aura/assets/runtime/upgradeAura.v1.js +0 -353
  129. package/packages/effects/lumber_vehicle_upgrade_aura/index.ts +0 -13
  130. package/packages/effects/lumber_vehicle_upgrade_aura/lumber_vehicle_upgrade_aura.json +0 -365
  131. package/packages/effects/lumber_vehicle_wood_chips/assets/runtime/solidParticleScatter.v1.js +0 -310
  132. package/packages/effects/lumber_vehicle_wood_chips/index.ts +0 -11
  133. package/packages/effects/lumber_vehicle_wood_chips/lumber_vehicle_wood_chips.json +0 -335
  134. package/packages/effects/monster-hit/index.ts +0 -129
  135. package/packages/effects/player-upgrade/effect.json +0 -6
  136. package/packages/effects/player-upgrade/index.ts +0 -640
  137. package/packages/effects/pulse-laser-volley/assets/textures/bolt_guangshu.webp +0 -0
  138. package/packages/effects/pulse-laser-volley/index.ts +0 -215
  139. package/packages/effects/resource-collect-sparkles/effect.json +0 -6
  140. package/packages/effects/resource-collect-sparkles/index.ts +0 -254
  141. package/packages/effects/run-footstep-dust/assets/runtime/runFootstepDust.v1.js +0 -215
  142. package/packages/effects/run-footstep-dust/effect.json +0 -183
  143. package/packages/effects/run-footstep-dust/index.ts +0 -377
  144. package/packages/effects/space-shared.ts +0 -120
  145. package/packages/effects/thruster-flame/index.ts +0 -306
  146. package/packages/effects/treasure-attention/effect.json +0 -7
  147. package/packages/effects/treasure-attention/index.ts +0 -630
  148. package/packages/effects/tree-chop-dust/assets/textures/tree_chop_dust_atlas.png +0 -0
  149. package/packages/effects/tree-chop-dust/effect.json +0 -8
  150. package/packages/effects/tree-chop-dust/index.ts +0 -202
  151. package/packages/effects/tree-leaf-chop-burst/assets/runtime/particleEmitter.v1.js +0 -303
  152. package/packages/effects/tree-leaf-chop-burst/assets/textures/tree_leaf_chop_burst_leaf_atlas.png +0 -0
  153. package/packages/effects/tree-leaf-chop-burst/effect.json +0 -498
  154. package/packages/effects/tree-leaf-chop-burst/index.ts +0 -294
  155. package/packages/effects/tree_chop_dust_burst/assets/runtime/particleEmitter.v1.js +0 -318
  156. package/packages/effects/tree_chop_dust_burst/assets/textures/tree_chop_dust_burst_dust.png +0 -0
  157. package/packages/effects/tree_chop_dust_burst/index.ts +0 -13
  158. package/packages/effects/tree_chop_dust_burst/tree_chop_dust_burst.json +0 -412
  159. package/packages/effects/ufo-thread-flame/assets/textures/flame_flow.webp +0 -0
  160. package/packages/effects/ufo-thread-flame/assets/textures/flame_spike.webp +0 -0
  161. package/packages/effects/ufo-thread-flame/index.ts +0 -153
  162. package/packages/effects/vehicle-exhaust-smoke/assets/textures/vehicle_exhaust_smoke_atlas.png +0 -0
  163. package/packages/effects/vehicle-exhaust-smoke/effect.json +0 -8
  164. package/packages/effects/vehicle-exhaust-smoke/index.ts +0 -298
  165. package/packages/effects/vehicle-upgrade/effect.json +0 -6
  166. package/packages/effects/vehicle-upgrade/index.ts +0 -404
  167. package/packages/effects/weapon-trail/assets/textures/trail_wedge.png +0 -0
  168. package/packages/effects/weapon-trail/index.ts +0 -317
  169. package/packages/effects/wood-crusher-sawdust/assets/runtime/particleEmitter.v1.js +0 -312
  170. package/packages/effects/wood-crusher-sawdust/assets/textures/wood_crusher_sawdust_dust.png +0 -0
  171. package/packages/effects/wood-crusher-sawdust/assets/textures/wood_crusher_sawdust_fiber.png +0 -0
  172. package/packages/effects/wood-crusher-sawdust/index.ts +0 -43
  173. package/packages/effects/wood-crusher-sawdust/wood_crusher_sawdust.json +0 -592
  174. package/packages/effects/wood-cutter-sawdust/assets/runtime/particleEmitter.v1.js +0 -312
  175. package/packages/effects/wood-cutter-sawdust/assets/textures/wood_cutter_sawdust_chip.png +0 -0
  176. package/packages/effects/wood-cutter-sawdust/assets/textures/wood_cutter_sawdust_dust.png +0 -0
  177. package/packages/effects/wood-cutter-sawdust/index.ts +0 -43
  178. package/packages/effects/wood-cutter-sawdust/wood_cutter_sawdust.json +0 -592
  179. package/packages/effects/wood-sawdust-effect-factory.ts +0 -194
  180. package/packages/effects/wood_crusher_sawdust/assets/runtime/particleEmitter.v1.js +0 -318
  181. package/packages/effects/wood_crusher_sawdust/assets/textures/wood_crusher_sawdust_dust.png +0 -0
  182. package/packages/effects/wood_crusher_sawdust/assets/textures/wood_crusher_sawdust_fiber.png +0 -0
  183. package/packages/effects/wood_crusher_sawdust/index.ts +0 -29
  184. package/packages/effects/wood_crusher_sawdust/wood_crusher_sawdust.json +0 -592
  185. package/packages/effects/wood_cutter_sawdust/assets/runtime/particleEmitter.v1.js +0 -318
  186. package/packages/effects/wood_cutter_sawdust/assets/textures/wood_cutter_sawdust_chip.png +0 -0
  187. package/packages/effects/wood_cutter_sawdust/assets/textures/wood_cutter_sawdust_dust.png +0 -0
  188. package/packages/effects/wood_cutter_sawdust/index.ts +0 -29
  189. package/packages/effects/wood_cutter_sawdust/wood_cutter_sawdust.json +0 -592
  190. package/packages/effects/wood_peel_material_test/assets/runtime/woodPeelMaterialTest.v1.js +0 -196
  191. package/packages/effects/wood_peel_material_test/index.ts +0 -11
  192. package/packages/effects/wood_peel_material_test/wood_peel_material_test.json +0 -136
  193. package/packages/env.particle.forest_edge_fog/assets/runtime/particleEmitter.v1.js +0 -210
  194. package/packages/env.particle.forest_edge_fog/assets/textures/f12a23c4-b924-4322-a260-3d982428f1e8.png +0 -0
  195. package/packages/env.particle.forest_edge_fog/assets/textures/yuan.png +0 -0
  196. package/packages/env.particle.forest_edge_fog/effect.json +0 -854
  197. package/packages/env.particle.forest_edge_fog/media/preview.gif +0 -0
  198. package/packages/env.particle.forest_edge_fog/media/preview.mp4 +0 -0
  199. package/packages/env.particle.forest_edge_fog/media/preview.webm +0 -0
  200. package/packages/env.particle.forest_edge_fog/media/thumbnail.png +0 -0
  201. package/packages/env.particle.forest_edge_fog/metadata/description.json +0 -148
  202. package/packages/env.particle.forest_edge_fog/provenance/03-effect.original.json +0 -827
  203. package/packages/env.particle.forest_edge_fog/provenance/03-normalized-vfx-to-babylon-report.json +0 -196
  204. package/packages/env.particle.forest_edge_fog/provenance/04-preview-overrides.json +0 -432
  205. package/packages/env.particle.forest_edge_fog/provenance/04-preview-tuning-report.json +0 -28
  206. package/packages/env.particle.forest_edge_fog/provenance/asset-map.json +0 -124
  207. package/packages/env.particle.forest_edge_fog/provenance/lineage.json +0 -41
  208. package/packages/generation.ts +0 -14
  209. package/packages/index.ts +0 -14
  210. package/packages/legacy-particle-runtime.ts +0 -113
  211. package/packages/manifestRuntimePackage.ts +0 -519
  212. package/packages/registry.ts +0 -85
  213. package/packages/rendering.ts +0 -13
  214. package/packages/resource.particle.viscous_oil_suction/assets/runtime/top_disk_suction/particleEmitter.v1.js +0 -424
  215. package/packages/resource.particle.viscous_oil_suction/assets/textures/Glow ad.png +0 -0
  216. package/packages/resource.particle.viscous_oil_suction/effect.json +0 -1254
  217. package/packages/resource.particle.viscous_oil_suction/media/preview.gif +0 -0
  218. package/packages/resource.particle.viscous_oil_suction/media/preview.mp4 +0 -0
  219. package/packages/resource.particle.viscous_oil_suction/media/preview.webm +0 -0
  220. package/packages/resource.particle.viscous_oil_suction/media/thumbnail.png +0 -0
  221. package/packages/resource.particle.viscous_oil_suction/metadata/description.json +0 -122
  222. package/packages/resource.particle.viscous_oil_suction/provenance/03-effect.original.json +0 -1051
  223. package/packages/resource.particle.viscous_oil_suction/provenance/03-normalized-vfx-to-babylon-report.json +0 -200
  224. package/packages/resource.particle.viscous_oil_suction/provenance/04-preview-overrides.json +0 -581
  225. package/packages/resource.particle.viscous_oil_suction/provenance/04-preview-tuning-report.json +0 -28
  226. package/packages/resource.particle.viscous_oil_suction/provenance/asset-map.json +0 -111
  227. package/packages/resource.particle.viscous_oil_suction/provenance/lineage.json +0 -45
  228. package/packages/types.ts +0 -195
  229. package/tooling/check-dist-runtime.mjs +0 -166
  230. package/tooling/generate-index.mjs +0 -55
  231. package/tooling/test-guardrails.mjs +0 -157
  232. package/tooling/validate-boundary.mjs +0 -92
  233. package/tooling/validate-effects.mjs +0 -304
  234. package/tooling/validate.mjs +0 -53
@@ -1,927 +0,0 @@
1
- {
2
- "schemaVersion": "vfx-effect-package/1.0",
3
- "id": "build.mesh.yellow_build_upgrade_indicator",
4
- "name": {
5
- "zh": "黄色建造升级指示器",
6
- "en": "Yellow Build Upgrade Indicator"
7
- },
8
- "source": {
9
- "engine": "cocos",
10
- "engineVersion": "3.8.7",
11
- "projectPath": "assets/ArtResources/Effect/Effect_Build_Up1/prefab",
12
- "rootAsset": "assets/ArtResources/Effect/Effect_Build_Up1/prefab/Effect_Build_Up1.prefab",
13
- "sourceId": "f4b9b9eb-a0d0-43aa-ae18-8b702f2d2dec",
14
- "extractedAt": "2026-05-18T12:18:03.841Z",
15
- "extractorVersion": "normalized-vfx-to-babylon/0.1.0",
16
- "canonicalSource": "gcs",
17
- "sourceArchivePrefix": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator/source/cocos",
18
- "legacyId": "world.particle.effect_build_up1_4bianxing",
19
- "previousIds": [
20
- "world.particle.effect_build_up1_4bianxing"
21
- ]
22
- },
23
- "assets": {
24
- "textures": [
25
- {
26
- "kind": "texture",
27
- "id": "effect_jianbian",
28
- "packagePath": "assets/textures/effect_jianbian.png",
29
- "sourcePath": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator/source/cocos/assets/ArtResources/Effect/Effect_Build_Up1/tex/effect_jianbian.png",
30
- "sourceId": "7244622b-eea2-422c-943d-bcad63903058@6c48a",
31
- "width": 256,
32
- "height": 256
33
- }
34
- ],
35
- "materials": [],
36
- "meshes": [],
37
- "shaders": [
38
- {
39
- "kind": "shader",
40
- "id": "mesh_effect_preview_vertex",
41
- "packagePath": "assets/shaders/mesh-effect-preview.vert.glsl",
42
- "mimeType": "text/x-glsl"
43
- },
44
- {
45
- "kind": "shader",
46
- "id": "mesh_effect_preview_fragment",
47
- "packagePath": "assets/shaders/mesh-effect-preview.frag.glsl",
48
- "mimeType": "text/x-glsl"
49
- }
50
- ],
51
- "sounds": [],
52
- "scripts": [
53
- {
54
- "kind": "script",
55
- "id": "simple_mesh_effect_v1",
56
- "packagePath": "assets/runtime/simpleMeshEffect.v1.js",
57
- "runtimeId": "simpleMeshEffect/v1",
58
- "engine": "babylon",
59
- "moduleFormat": "esm",
60
- "exports": [
61
- "createSimpleMeshEffectRuntime",
62
- "runtimeContract"
63
- ],
64
- "mimeType": "text/javascript"
65
- }
66
- ],
67
- "raw": [
68
- {
69
- "kind": "raw",
70
- "id": "02-normalized-vfx",
71
- "packagePath": "source/02-normalized-vfx.json",
72
- "sourcePath": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator/source/02-normalized-vfx.json"
73
- },
74
- {
75
- "kind": "raw",
76
- "id": "01-source-dump",
77
- "packagePath": "source/01-source-dump.json",
78
- "sourcePath": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator/source/01-source-dump.json"
79
- },
80
- {
81
- "kind": "raw",
82
- "id": "effect_build_up1",
83
- "packagePath": "source/raw/Effect_Build_Up1.prefab",
84
- "sourcePath": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator/source/cocos/assets/ArtResources/Effect/Effect_Build_Up1/prefab/Effect_Build_Up1.prefab",
85
- "sourceId": "f4b9b9eb-a0d0-43aa-ae18-8b702f2d2dec"
86
- },
87
- {
88
- "kind": "raw",
89
- "id": "effect_build_up1.meta",
90
- "packagePath": "source/raw/Effect_Build_Up1.prefab.meta",
91
- "sourcePath": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator/source/cocos/assets/ArtResources/Effect/Effect_Build_Up1/prefab/Effect_Build_Up1.prefab.meta",
92
- "sourceId": "f4b9b9eb-a0d0-43aa-ae18-8b702f2d2dec"
93
- }
94
- ]
95
- },
96
- "emitters": [
97
- {
98
- "name": "effect_4bianxing",
99
- "sourceNodeName": "effect_4bianxing",
100
- "enabled": true,
101
- "blendMode": "ADD",
102
- "particleTexturePath": "assets/textures/effect_jianbian.png",
103
- "shader": {
104
- "id": "mesh_effect_preview",
105
- "vertexShaderPath": "assets/shaders/mesh-effect-preview.vert.glsl",
106
- "fragmentShaderPath": "assets/shaders/mesh-effect-preview.frag.glsl",
107
- "uniforms": [
108
- "worldViewProjection",
109
- "tintColor",
110
- "meshMinY",
111
- "meshMaxY",
112
- "revealY",
113
- "fadeSoftness",
114
- "globalAlpha"
115
- ],
116
- "samplers": [
117
- "diffuseSampler"
118
- ]
119
- },
120
- "meshEffect": {
121
- "mode": "simple",
122
- "shape": "box",
123
- "size": {
124
- "x": 4.25,
125
- "y": 8.128,
126
- "z": 4.191
127
- },
128
- "offset": {
129
- "x": 0,
130
- "y": 0,
131
- "z": 0
132
- },
133
- "tintColor": {
134
- "r": 1,
135
- "g": 1,
136
- "b": 1,
137
- "a": 0.8470588235294118
138
- },
139
- "fadeSoftness": 0.24,
140
- "boundsAxis": "localY",
141
- "shaderId": "mesh_effect_preview",
142
- "tintColorIntensity": 2
143
- },
144
- "meshScaleKeys": {
145
- "x": [
146
- {
147
- "time": 0,
148
- "scale": 7.125
149
- },
150
- {
151
- "time": 1,
152
- "scale": 7.125
153
- }
154
- ],
155
- "y": [
156
- {
157
- "time": 0,
158
- "scale": 0.06060606060606061
159
- },
160
- {
161
- "time": 0.1902439024390244,
162
- "scale": 8
163
- },
164
- {
165
- "time": 1,
166
- "scale": 8
167
- }
168
- ],
169
- "z": [
170
- {
171
- "time": 0,
172
- "scale": 4.125
173
- },
174
- {
175
- "time": 1,
176
- "scale": 4.125
177
- }
178
- ],
179
- "sourceAxes": "cocos x/z/y",
180
- "nodeScale": {
181
- "x": 0.95,
182
- "y": 0.55,
183
- "z": 1
184
- }
185
- },
186
- "capacity": 100,
187
- "manualEmitCount": 1,
188
- "emitRate": 0,
189
- "minSize": 1,
190
- "maxSize": 1,
191
- "minLifeTime": 1,
192
- "maxLifeTime": 1,
193
- "minEmitPower": 0,
194
- "maxEmitPower": 0,
195
- "updateSpeed": 0.01,
196
- "gravity": {
197
- "x": 0,
198
- "y": 0,
199
- "z": 0
200
- },
201
- "shape": {
202
- "type": "Unknown",
203
- "sourceType": "Unknown"
204
- },
205
- "alphaKeys": [
206
- {
207
- "time": 0,
208
- "alpha": 0
209
- },
210
- {
211
- "time": 0.18779342723004694,
212
- "alpha": 1
213
- },
214
- {
215
- "time": 0.5187793427230046,
216
- "alpha": 0.19607843137254902
217
- },
218
- {
219
- "time": 0.8286384976525821,
220
- "alpha": 0.0784313725490196
221
- },
222
- {
223
- "time": 0.9953051643192489,
224
- "alpha": 0
225
- }
226
- ],
227
- "colorKeys": [
228
- {
229
- "time": 0,
230
- "color": {
231
- "r": 1,
232
- "g": 1,
233
- "b": 1,
234
- "a": 1
235
- }
236
- },
237
- {
238
- "time": 0.3802816901408451,
239
- "color": {
240
- "r": 1,
241
- "g": 0.5215686274509804,
242
- "b": 0,
243
- "a": 1
244
- }
245
- },
246
- {
247
- "time": 0.4577464788732394,
248
- "color": {
249
- "r": 1,
250
- "g": 0.3215686274509804,
251
- "b": 0,
252
- "a": 1
253
- }
254
- }
255
- ],
256
- "sizeKeys": [
257
- {
258
- "time": 0,
259
- "size": 0
260
- },
261
- {
262
- "time": 1,
263
- "size": 1
264
- }
265
- ],
266
- "source": {
267
- "simulationSpace": 1,
268
- "renderMode": 4,
269
- "alignSpace": 1,
270
- "normalizedVfxEmitterId": "effect_4bianxing"
271
- },
272
- "sourceMap": null,
273
- "mapping": [
274
- {
275
- "cocos": "$[127]._capacity",
276
- "babylon": "capacity"
277
- },
278
- {
279
- "cocos": "$[127].rateOverTime",
280
- "babylon": "emitRate"
281
- },
282
- {
283
- "cocos": "$[127].bursts[0].count",
284
- "babylon": "manualEmitCount"
285
- },
286
- {
287
- "cocos": "$[127].startSize",
288
- "babylon": "minSize/maxSize"
289
- },
290
- {
291
- "cocos": "$[127].startLifetime",
292
- "babylon": "minLifeTime/maxLifeTime"
293
- },
294
- {
295
- "cocos": "$[127].startSpeed",
296
- "babylon": "minEmitPower/maxEmitPower"
297
- },
298
- {
299
- "cocos": "$[127].simulationSpeed",
300
- "babylon": "updateSpeed"
301
- },
302
- {
303
- "cocos": "$[127].gravityModifier",
304
- "babylon": "gravity"
305
- },
306
- {
307
- "cocos": "$[127].startColor + material._props[0].tintColor",
308
- "babylon": "meshEffect.tintColor"
309
- },
310
- {
311
- "cocos": "$[127]._shapeModule",
312
- "babylon": "shape"
313
- }
314
- ],
315
- "colorMapping": {
316
- "renderFormula": "2.0 * startColor * materialTintColor * texture",
317
- "multiplier": 2,
318
- "cocosStartColor": {
319
- "r": 1,
320
- "g": 1,
321
- "b": 1,
322
- "a": 1
323
- },
324
- "cocosMaterialTintColor": {
325
- "r": 1,
326
- "g": 1,
327
- "b": 1,
328
- "a": 0.4235294117647059
329
- },
330
- "babylonColor1": {
331
- "r": 2,
332
- "g": 2,
333
- "b": 2,
334
- "a": 0.8470588235294118
335
- }
336
- },
337
- "cocosSource": {
338
- "source": {
339
- "engine": "cocos",
340
- "componentIndex": 127,
341
- "componentPath": "$[127]",
342
- "nodeIndex": 126,
343
- "rendererIndex": 192,
344
- "componentType": "cc.ParticleSystem"
345
- },
346
- "lifecycle": {
347
- "duration": 1,
348
- "loop": false,
349
- "playOnAwake": true,
350
- "prewarm": false,
351
- "simulationSpeed": 1,
352
- "simulationSpace": 1
353
- },
354
- "transform": {
355
- "position": {
356
- "x": 0,
357
- "y": 0,
358
- "z": 0
359
- },
360
- "rotation": {
361
- "x": -89.99999999999999,
362
- "y": 0,
363
- "z": 0
364
- },
365
- "scale": {
366
- "x": 0.95,
367
- "y": 0.55,
368
- "z": 1
369
- }
370
- },
371
- "emission": {
372
- "capacity": 100,
373
- "rateOverTime": 0,
374
- "rateOverDistance": 0,
375
- "bursts": [
376
- {
377
- "count": 1
378
- }
379
- ]
380
- },
381
- "lifetime": {
382
- "startLifetime": {
383
- "mode": "constant",
384
- "min": 1,
385
- "max": 1
386
- },
387
- "min": 1,
388
- "max": 1
389
- },
390
- "size": {
391
- "startSize": {
392
- "mode": "constant",
393
- "min": 1,
394
- "max": 1
395
- },
396
- "min": 1,
397
- "max": 1,
398
- "overLifetime": {
399
- "enabled": true,
400
- "keys": [
401
- {
402
- "time": 0,
403
- "size": 0
404
- },
405
- {
406
- "time": 1,
407
- "size": 1
408
- }
409
- ],
410
- "separateAxes": true,
411
- "axisKeys": {
412
- "x": [
413
- {
414
- "time": 0,
415
- "value": 7.5
416
- },
417
- {
418
- "time": 1,
419
- "value": 7.5
420
- }
421
- ],
422
- "y": [
423
- {
424
- "time": 0,
425
- "value": 7.5
426
- },
427
- {
428
- "time": 1,
429
- "value": 7.5
430
- }
431
- ],
432
- "z": [
433
- {
434
- "time": 0,
435
- "value": 0.06060606060606061
436
- },
437
- {
438
- "time": 0.1902439024390244,
439
- "value": 8
440
- },
441
- {
442
- "time": 1,
443
- "value": 8
444
- }
445
- ]
446
- }
447
- }
448
- },
449
- "speed": {
450
- "startSpeed": {
451
- "mode": "constant",
452
- "min": 0,
453
- "max": 0
454
- },
455
- "min": 0,
456
- "max": 0
457
- },
458
- "gravity": {
459
- "modifier": 0,
460
- "vector": {
461
- "x": 0,
462
- "y": 0,
463
- "z": 0
464
- }
465
- },
466
- "shape": {
467
- "enabled": false,
468
- "type": "Unknown"
469
- },
470
- "render": {
471
- "mode": 4,
472
- "alignSpace": 1,
473
- "blendMode": "ADD",
474
- "material": {
475
- "uuid": "9d3f74bd-bbf0-4862-9d06-24a50d6d3979",
476
- "path": "assets/ArtResources/Effect/Effect_Build_Up1/mat/4bianxing.mtl",
477
- "techIdx": 0
478
- },
479
- "texture": {
480
- "uuid": "7244622b-eea2-422c-943d-bcad63903058@6c48a",
481
- "path": "assets/ArtResources/Effect/Effect_Build_Up1/tex/effect_jianbian.png",
482
- "width": 256,
483
- "height": 256
484
- },
485
- "mesh": {
486
- "uuid": "c5e579de-452e-4f95-a49c-5f5e22bfa551@46540",
487
- "path": "assets/ArtResources/Effect/Effect_Build_Up1/mod/effect_4bianxing.FBX",
488
- "sourcePath": "assets/ArtResources/Effect/Effect_Build_Up1/mod/effect_4bianxing.FBX",
489
- "importer": "fbx",
490
- "subImporter": "gltf-mesh",
491
- "name": "Box001.mesh",
492
- "triangleCount": 10
493
- },
494
- "effectAsset": {
495
- "uuid": "d1346436-ac96-4271-b863-1f4fdead95b0",
496
- "name": "particles/builtin-particle",
497
- "classification": "builtin-effect"
498
- },
499
- "runtime": {
500
- "adapter": "particleEmitter/v1"
501
- }
502
- },
503
- "color": {
504
- "startColor": {
505
- "r": 1,
506
- "g": 1,
507
- "b": 1,
508
- "a": 1
509
- },
510
- "materialTintColor": {
511
- "r": 1,
512
- "g": 1,
513
- "b": 1,
514
- "a": 0.4235294117647059
515
- },
516
- "renderFormula": "2.0 * startColor * materialTintColor * texture",
517
- "overLifetime": {
518
- "enabled": true,
519
- "alphaKeys": [
520
- {
521
- "time": 0,
522
- "alpha": 0
523
- },
524
- {
525
- "time": 0.18779342723004694,
526
- "alpha": 1
527
- },
528
- {
529
- "time": 0.5187793427230046,
530
- "alpha": 0.19607843137254902
531
- },
532
- {
533
- "time": 0.8286384976525821,
534
- "alpha": 0.0784313725490196
535
- },
536
- {
537
- "time": 0.9953051643192489,
538
- "alpha": 0
539
- }
540
- ],
541
- "colorKeys": [
542
- {
543
- "time": 0,
544
- "color": {
545
- "r": 1,
546
- "g": 1,
547
- "b": 1,
548
- "a": 1
549
- }
550
- },
551
- {
552
- "time": 0.3802816901408451,
553
- "color": {
554
- "r": 1,
555
- "g": 0.5215686274509804,
556
- "b": 0,
557
- "a": 1
558
- }
559
- },
560
- {
561
- "time": 0.4577464788732394,
562
- "color": {
563
- "r": 1,
564
- "g": 0.3215686274509804,
565
- "b": 0,
566
- "a": 1
567
- }
568
- }
569
- ]
570
- }
571
- },
572
- "rotation": {
573
- "overLifetime": {
574
- "enabled": false,
575
- "z": {
576
- "mode": "constant",
577
- "min": 0,
578
- "max": 0
579
- }
580
- }
581
- },
582
- "modules": {
583
- "colorOverLifetime": {
584
- "enabled": true,
585
- "sourcePreservedIn": "source/02-normalized-vfx.json"
586
- },
587
- "sizeOvertime": {
588
- "enabled": true,
589
- "sourcePreservedIn": "source/02-normalized-vfx.json"
590
- },
591
- "rotationOvertime": {
592
- "enabled": false,
593
- "sourcePreservedIn": "source/02-normalized-vfx.json"
594
- },
595
- "velocityOvertime": {
596
- "enabled": false,
597
- "sourcePreservedIn": "source/02-normalized-vfx.json"
598
- },
599
- "forceOvertime": {
600
- "enabled": false,
601
- "sourcePreservedIn": "source/02-normalized-vfx.json"
602
- },
603
- "limitVelocityOvertime": {
604
- "enabled": false,
605
- "sourcePreservedIn": "source/02-normalized-vfx.json"
606
- },
607
- "textureAnimation": {
608
- "enabled": false,
609
- "sourcePreservedIn": "source/02-normalized-vfx.json"
610
- },
611
- "noise": {
612
- "enabled": false,
613
- "sourcePreservedIn": "source/02-normalized-vfx.json"
614
- },
615
- "trail": {
616
- "enabled": false,
617
- "sourcePreservedIn": "source/02-normalized-vfx.json"
618
- }
619
- }
620
- },
621
- "runtime": {
622
- "adapter": "simpleMeshEffect/v1",
623
- "stopAfterSeconds": 1
624
- }
625
- }
626
- ],
627
- "runtime": {
628
- "space": "world",
629
- "lifecycle": "one_shot",
630
- "anchor": {
631
- "defaultBone": null,
632
- "defaultMesh": null,
633
- "defaultOffset": {
634
- "x": 0,
635
- "y": 1,
636
- "z": 0
637
- }
638
- },
639
- "start": [
640
- "Instantiate Babylon runtime for effect_4bianxing"
641
- ],
642
- "update": [
643
- "Apply Babylon tunable parameter overrides"
644
- ],
645
- "stop": [
646
- "Stop and dispose runtime resources"
647
- ],
648
- "adapters": [
649
- {
650
- "id": "simpleMeshEffect/v1",
651
- "engine": "babylon",
652
- "entry": "assets/runtime/simpleMeshEffect.v1.js",
653
- "moduleFormat": "esm",
654
- "exports": [
655
- "createSimpleMeshEffectRuntime",
656
- "runtimeContract"
657
- ]
658
- }
659
- ]
660
- },
661
- "tunableParams": [
662
- {
663
- "key": "effect_4bianxing.runtime.stopAfterSeconds",
664
- "labelZh": "effect_4bianxing 播放时长",
665
- "type": "number",
666
- "default": 1,
667
- "min": 0.1,
668
- "max": 10,
669
- "step": 0.1,
670
- "unit": "s",
671
- "target": {
672
- "emitter": "effect_4bianxing",
673
- "property": "runtime.stopAfterSeconds",
674
- "operator": "set"
675
- }
676
- },
677
- {
678
- "key": "effect_4bianxing.updateSpeed",
679
- "labelZh": "effect_4bianxing 播放速度",
680
- "type": "number",
681
- "default": 0.01,
682
- "min": 0.0005,
683
- "max": 0.04,
684
- "step": 0.0005,
685
- "target": {
686
- "emitter": "effect_4bianxing",
687
- "property": "updateSpeed",
688
- "operator": "set"
689
- }
690
- },
691
- {
692
- "key": "effect_4bianxing.blendMode",
693
- "labelZh": "effect_4bianxing material.alphaMode",
694
- "type": "enum",
695
- "default": "ADD",
696
- "options": [
697
- "STANDARD",
698
- "ADD",
699
- "MULTIPLY",
700
- "ONEONE"
701
- ],
702
- "target": {
703
- "emitter": "effect_4bianxing",
704
- "property": "blendMode",
705
- "operator": "set"
706
- }
707
- },
708
- {
709
- "key": "effect_4bianxing.meshEffect.shape",
710
- "labelZh": "effect_4bianxing meshEffect.shape",
711
- "type": "enum",
712
- "default": "box",
713
- "options": [
714
- "box",
715
- "cylinder"
716
- ],
717
- "target": {
718
- "emitter": "effect_4bianxing",
719
- "property": "meshEffect.shape",
720
- "operator": "set"
721
- }
722
- },
723
- {
724
- "key": "effect_4bianxing.meshEffect.size.x",
725
- "labelZh": "effect_4bianxing mesh.size.x",
726
- "type": "number",
727
- "default": 7.239,
728
- "min": 0.1,
729
- "max": 20,
730
- "step": 0.05,
731
- "target": {
732
- "emitter": "effect_4bianxing",
733
- "property": "meshEffect.size.x",
734
- "operator": "set"
735
- }
736
- },
737
- {
738
- "key": "effect_4bianxing.meshEffect.size.y",
739
- "labelZh": "effect_4bianxing mesh.size.y",
740
- "type": "number",
741
- "default": 8.128,
742
- "min": 0.1,
743
- "max": 30,
744
- "step": 0.05,
745
- "target": {
746
- "emitter": "effect_4bianxing",
747
- "property": "meshEffect.size.y",
748
- "operator": "set"
749
- }
750
- },
751
- {
752
- "key": "effect_4bianxing.meshEffect.size.z",
753
- "labelZh": "effect_4bianxing mesh.size.z",
754
- "type": "number",
755
- "default": 4.191,
756
- "min": 0.1,
757
- "max": 20,
758
- "step": 0.05,
759
- "target": {
760
- "emitter": "effect_4bianxing",
761
- "property": "meshEffect.size.z",
762
- "operator": "set"
763
- }
764
- },
765
- {
766
- "key": "effect_4bianxing.meshEffect.offset.x",
767
- "labelZh": "effect_4bianxing transform.position.x",
768
- "type": "number",
769
- "default": 0,
770
- "min": -20,
771
- "max": 20,
772
- "step": 0.05,
773
- "target": {
774
- "emitter": "effect_4bianxing",
775
- "property": "meshEffect.offset.x",
776
- "operator": "set"
777
- }
778
- },
779
- {
780
- "key": "effect_4bianxing.meshEffect.offset.y",
781
- "labelZh": "effect_4bianxing transform.position.y",
782
- "type": "number",
783
- "default": 0.65,
784
- "min": -20,
785
- "max": 20,
786
- "step": 0.05,
787
- "target": {
788
- "emitter": "effect_4bianxing",
789
- "property": "meshEffect.offset.y",
790
- "operator": "set"
791
- }
792
- },
793
- {
794
- "key": "effect_4bianxing.meshEffect.offset.z",
795
- "labelZh": "effect_4bianxing transform.position.z",
796
- "type": "number",
797
- "default": 0,
798
- "min": -20,
799
- "max": 20,
800
- "step": 0.05,
801
- "target": {
802
- "emitter": "effect_4bianxing",
803
- "property": "meshEffect.offset.z",
804
- "operator": "set"
805
- }
806
- },
807
- {
808
- "key": "effect_4bianxing.meshEffect.fadeSoftness",
809
- "labelZh": "effect_4bianxing shader.fadeSoftness",
810
- "type": "number",
811
- "default": 0.24,
812
- "min": 0.03,
813
- "max": 1,
814
- "step": 0.01,
815
- "target": {
816
- "emitter": "effect_4bianxing",
817
- "property": "meshEffect.fadeSoftness",
818
- "operator": "set"
819
- }
820
- },
821
- {
822
- "key": "effect_4bianxing.meshEffect.tintColorIntensity",
823
- "labelZh": "effect_4bianxing shader.tintColor.rgb intensity",
824
- "type": "number",
825
- "default": 2,
826
- "min": 0,
827
- "max": 8,
828
- "step": 0.05,
829
- "target": {
830
- "emitter": "effect_4bianxing",
831
- "property": "meshEffect.tintColorIntensity",
832
- "operator": "set"
833
- }
834
- },
835
- {
836
- "key": "effect_4bianxing.meshEffect.tintColor",
837
- "labelZh": "effect_4bianxing shader.tintColor",
838
- "type": "color",
839
- "default": {
840
- "r": 1,
841
- "g": 1,
842
- "b": 1,
843
- "a": 0.8470588235294118
844
- },
845
- "target": {
846
- "emitter": "effect_4bianxing",
847
- "property": "meshEffect.tintColor",
848
- "operator": "set"
849
- }
850
- }
851
- ],
852
- "babylon": {
853
- "driver": "particle",
854
- "entryFile": "apps/vfx_asset_library/frontend/src/runtime/drivers/particleDriver.ts",
855
- "previewConfig": {
856
- "textureUrl": "assets/textures/b5b27ab1-e740-4398-b407-848fc2b2c897.png",
857
- "emitterCount": 3,
858
- "effectFile": "effect.json",
859
- "normalizedVfx": "source/02-normalized-vfx.json"
860
- }
861
- },
862
- "review": {
863
- "status": "tweaked",
864
- "artistNotes": [
865
- "Stage 3 auto-built from 02-normalized-vfx.json.",
866
- "Needs Babylon visual review and Stage 4 tuning before approval."
867
- ],
868
- "approvedBy": null,
869
- "approvedAt": null,
870
- "history": [
871
- {
872
- "at": "2026-05-18T14:10:54.557Z",
873
- "from": "auto",
874
- "to": "tweaked",
875
- "note": "Stage 4 static preview tuning."
876
- }
877
- ]
878
- },
879
- "recording": {
880
- "provider": "browser-mediarecorder",
881
- "recordedAt": "2026-05-18T14:10:54.886Z",
882
- "mimeType": "video/webm;codecs=vp9",
883
- "durationSec": 3,
884
- "fps": 30,
885
- "media": {
886
- "previewVideo": "media/preview.webm",
887
- "previewWebm": "media/preview.webm",
888
- "previewMp4": "media/preview.mp4",
889
- "previewGif": "media/preview.gif",
890
- "thumbnail": "media/thumbnail.png",
891
- "contactSheet": "media/contact-sheet.png",
892
- "gcsUri": null
893
- }
894
- },
895
- "aiDescription": null,
896
- "search": {
897
- "tags": [
898
- "cocos",
899
- "particle",
900
- "stage3",
901
- "effect_build_up1"
902
- ],
903
- "descriptionZh": "从 Cocos Normalized VFX Spec 自动构建的 Babylon 粒子特效,包含 3 个子发射器。",
904
- "descriptionEn": "Babylon particle effect built from a Cocos Normalized VFX Spec with 3 emitters.",
905
- "useCases": [
906
- "vfx preview",
907
- "cocos migration",
908
- "babylon integration"
909
- ],
910
- "negativeUseCases": [
911
- "approved final art without Stage 4 visual tuning"
912
- ]
913
- },
914
- "descriptionZh": "从 Effect_Build_Up1 拆分出的单 emitter 特效:effect_4bianxing。",
915
- "descriptionEn": "Single-emitter split from Effect_Build_Up1: effect_4bianxing.",
916
- "metadata": {
917
- "splitFrom": {
918
- "packageId": "world.particle.effect_build_up1",
919
- "packageDir": "vfx-intermediate/cocos-babylon-packages/effect_build_up1",
920
- "emitter": "effect_4bianxing"
921
- }
922
- },
923
- "gcsPrefix": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator",
924
- "sourceArchivePrefix": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator/source",
925
- "fullProvenancePrefix": "gs://fps-vfx-library/packages/build.mesh.yellow_build_upgrade_indicator/provenance",
926
- "renamedAt": "2026-05-18T14:18:42.375Z"
927
- }