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