@fps-games/vfx 0.1.1 → 0.3.3

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 (250) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/README.md +41 -0
  3. package/dist/effects/coin-burst/index.js +6 -2
  4. package/dist/effects/comet-trail-flame/index.js +3 -1
  5. package/dist/effects/debris-smoke/index.js +1 -0
  6. package/dist/effects/electric-arc/index.js +1 -0
  7. package/dist/effects/energy-shield/index.js +1 -0
  8. package/dist/effects/explosion/index.js +3 -2
  9. package/dist/effects/hit-flash/index.js +12 -4
  10. package/dist/effects/laser-beam/index.js +14 -2
  11. package/dist/effects/lumber_vehicle_upgrade_aura/index.js +1 -0
  12. package/dist/effects/monster-hit/index.js +2 -1
  13. package/dist/effects/player-upgrade/index.js +5 -3
  14. package/dist/effects/pulse-laser-volley/index.js +14 -4
  15. package/dist/effects/thruster-flame/index.js +3 -1
  16. package/dist/effects/treasure-attention/index.d.ts +54 -0
  17. package/dist/effects/treasure-attention/index.js +535 -0
  18. package/dist/effects/ufo-thread-flame/index.js +1 -0
  19. package/dist/effects/vehicle-upgrade/index.js +4 -1
  20. package/dist/effects/weapon-trail/index.js +8 -3
  21. package/dist/effects/wood_crusher_sawdust/index.d.ts +4 -0
  22. package/dist/effects/wood_cutter_sawdust/index.d.ts +4 -0
  23. package/dist/index.js +85 -17
  24. package/dist/types.d.ts +80 -0
  25. package/index.json +19 -1
  26. package/package.json +9 -4
  27. package/packages/effects/treasure-attention/vfx-params.json +49 -0
  28. package/tooling/vfx-cli.mjs +8 -1
  29. package/docs/AUTHORING_EFFECTS.md +0 -297
  30. package/docs/VFX_LIBRARY_ARCHITECTURE_chatgpt.md +0 -1580
  31. package/docs/VFX_LIBRARY_EXECUTION_PLAN.md +0 -229
  32. package/docs/VFX_LIBRARY_PLAN.md +0 -546
  33. package/docs/vfx-ab/RESULTS.md +0 -35
  34. package/docs/vfx-ab/lumber-order/vehicle-exhaust-smoke/after.png +0 -0
  35. package/docs/vfx-ab/lumber-order/vehicle-exhaust-smoke/before.png +0 -0
  36. package/docs/vfx-ab/lumber-truck/vehicle-exhaust-smoke/after.png +0 -0
  37. package/docs/vfx-ab/lumber-truck/vehicle-exhaust-smoke/before.png +0 -0
  38. package/docs/vfx-integration_chatgpt.md +0 -462
  39. package/docs/weapon-trail-visualization.html +0 -241
  40. package/packages/EffectPackageService.ts +0 -240
  41. package/packages/SceneVfxService.ts +0 -96
  42. package/packages/build.mesh.yellow_build_upgrade_indicator/assets/runtime/simpleMeshEffect.v1.js +0 -333
  43. package/packages/build.mesh.yellow_build_upgrade_indicator/assets/shaders/mesh-effect-preview.frag.glsl +0 -25
  44. package/packages/build.mesh.yellow_build_upgrade_indicator/assets/shaders/mesh-effect-preview.vert.glsl +0 -11
  45. package/packages/build.mesh.yellow_build_upgrade_indicator/assets/textures/effect_jianbian.png +0 -0
  46. package/packages/build.mesh.yellow_build_upgrade_indicator/effect.json +0 -927
  47. package/packages/build.mesh.yellow_build_upgrade_indicator/media/contact-sheet.png +0 -0
  48. package/packages/build.mesh.yellow_build_upgrade_indicator/media/preview.gif +0 -0
  49. package/packages/build.mesh.yellow_build_upgrade_indicator/media/preview.mp4 +0 -0
  50. package/packages/build.mesh.yellow_build_upgrade_indicator/media/preview.webm +0 -0
  51. package/packages/build.mesh.yellow_build_upgrade_indicator/media/thumbnail.png +0 -0
  52. package/packages/build.mesh.yellow_build_upgrade_indicator/metadata/description.json +0 -197
  53. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/03-effect.original.json +0 -895
  54. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/03-normalized-vfx-to-babylon-report.json +0 -241
  55. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/04-preview-overrides.json +0 -542
  56. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/04-preview-tuning-report.json +0 -69
  57. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/asset-map.json +0 -125
  58. package/packages/build.mesh.yellow_build_upgrade_indicator/provenance/lineage.json +0 -44
  59. package/packages/build.particle.golden_upgrade_starburst/assets/runtime/particleEmitter.v1.js +0 -210
  60. package/packages/build.particle.golden_upgrade_starburst/assets/textures/effect_guangdian.png +0 -0
  61. package/packages/build.particle.golden_upgrade_starburst/effect.json +0 -880
  62. package/packages/build.particle.golden_upgrade_starburst/media/contact-sheet.png +0 -0
  63. package/packages/build.particle.golden_upgrade_starburst/media/preview.gif +0 -0
  64. package/packages/build.particle.golden_upgrade_starburst/media/preview.mp4 +0 -0
  65. package/packages/build.particle.golden_upgrade_starburst/media/preview.webm +0 -0
  66. package/packages/build.particle.golden_upgrade_starburst/media/thumbnail.png +0 -0
  67. package/packages/build.particle.golden_upgrade_starburst/metadata/description.json +0 -161
  68. package/packages/build.particle.golden_upgrade_starburst/provenance/03-effect.original.json +0 -762
  69. package/packages/build.particle.golden_upgrade_starburst/provenance/03-normalized-vfx-to-babylon-report.json +0 -260
  70. package/packages/build.particle.golden_upgrade_starburst/provenance/04-preview-overrides.json +0 -436
  71. package/packages/build.particle.golden_upgrade_starburst/provenance/04-preview-tuning-report.json +0 -40
  72. package/packages/build.particle.golden_upgrade_starburst/provenance/asset-map.json +0 -115
  73. package/packages/build.particle.golden_upgrade_starburst/provenance/lineage.json +0 -40
  74. package/packages/build.particle.orange_upgrade_transform_sparks/assets/runtime/particleEmitter.v1.js +0 -210
  75. package/packages/build.particle.orange_upgrade_transform_sparks/assets/textures/b5b27ab1-e740-4398-b407-848fc2b2c897.png +0 -0
  76. package/packages/build.particle.orange_upgrade_transform_sparks/effect.json +0 -887
  77. package/packages/build.particle.orange_upgrade_transform_sparks/media/preview.gif +0 -0
  78. package/packages/build.particle.orange_upgrade_transform_sparks/media/preview.mp4 +0 -0
  79. package/packages/build.particle.orange_upgrade_transform_sparks/media/preview.webm +0 -0
  80. package/packages/build.particle.orange_upgrade_transform_sparks/media/thumbnail.png +0 -0
  81. package/packages/build.particle.orange_upgrade_transform_sparks/metadata/description.json +0 -179
  82. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/03-effect.original.json +0 -859
  83. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/03-normalized-vfx-to-babylon-report.json +0 -260
  84. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/04-preview-overrides.json +0 -478
  85. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/04-preview-tuning-report.json +0 -40
  86. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/asset-map.json +0 -114
  87. package/packages/build.particle.orange_upgrade_transform_sparks/provenance/lineage.json +0 -41
  88. package/packages/build.particle.wood_chip_dust_burst/assets/runtime/particleEmitter.v1.js +0 -210
  89. package/packages/build.particle.wood_chip_dust_burst/assets/textures/effect_yanwu4.png +0 -0
  90. package/packages/build.particle.wood_chip_dust_burst/assets/textures/suipian3.png +0 -0
  91. package/packages/build.particle.wood_chip_dust_burst/effect.json +0 -1400
  92. package/packages/build.particle.wood_chip_dust_burst/media/contact-sheet.png +0 -0
  93. package/packages/build.particle.wood_chip_dust_burst/media/preview.gif +0 -0
  94. package/packages/build.particle.wood_chip_dust_burst/media/preview.mp4 +0 -0
  95. package/packages/build.particle.wood_chip_dust_burst/media/preview.webm +0 -0
  96. package/packages/build.particle.wood_chip_dust_burst/media/thumbnail.png +0 -0
  97. package/packages/build.particle.wood_chip_dust_burst/metadata/description.json +0 -173
  98. package/packages/build.particle.wood_chip_dust_burst/provenance/03-effect.original.json +0 -1277
  99. package/packages/build.particle.wood_chip_dust_burst/provenance/03-normalized-vfx-to-babylon-report.json +0 -329
  100. package/packages/build.particle.wood_chip_dust_burst/provenance/04-preview-overrides.json +0 -749
  101. package/packages/build.particle.wood_chip_dust_burst/provenance/04-preview-tuning-report.json +0 -60
  102. package/packages/build.particle.wood_chip_dust_burst/provenance/asset-map.json +0 -146
  103. package/packages/build.particle.wood_chip_dust_burst/provenance/lineage.json +0 -69
  104. package/packages/effects/building-upgrade/effect.json +0 -6
  105. package/packages/effects/building-upgrade/index.ts +0 -387
  106. package/packages/effects/character-entrance/effect.json +0 -6
  107. package/packages/effects/character-entrance/index.ts +0 -308
  108. package/packages/effects/coin-burst/index.ts +0 -43
  109. package/packages/effects/comet-trail-flame/assets/textures/trail_5x4.webp +0 -0
  110. package/packages/effects/comet-trail-flame/index.ts +0 -106
  111. package/packages/effects/conveyor-upgrade/effect.json +0 -6
  112. package/packages/effects/conveyor-upgrade/index.ts +0 -401
  113. package/packages/effects/debris-smoke/assets/models/rock_debris.glb +0 -0
  114. package/packages/effects/debris-smoke/assets/textures/smoke22.webp +0 -0
  115. package/packages/effects/debris-smoke/index.ts +0 -101
  116. package/packages/effects/door_open_gold_flakes/assets/runtime/goldFlakes.v1.js +0 -397
  117. package/packages/effects/door_open_gold_flakes/door_open_gold_flakes.json +0 -498
  118. package/packages/effects/door_open_gold_flakes/index.ts +0 -11
  119. package/packages/effects/electric-arc/assets/textures/spark_4x4.webp +0 -0
  120. package/packages/effects/electric-arc/index.ts +0 -62
  121. package/packages/effects/energy-shield/effect.json +0 -7
  122. package/packages/effects/energy-shield/index.ts +0 -431
  123. package/packages/effects/explosion/assets/textures/baozha29.webp +0 -0
  124. package/packages/effects/explosion/assets/textures/glow01.webp +0 -0
  125. package/packages/effects/explosion/assets/textures/lizi01.webp +0 -0
  126. package/packages/effects/explosion/assets/textures/xulie_lizibaozha02_5x5.webp +0 -0
  127. package/packages/effects/explosion/index.ts +0 -114
  128. package/packages/effects/ground-tile-upgrade/effect.json +0 -6
  129. package/packages/effects/ground-tile-upgrade/index.ts +0 -410
  130. package/packages/effects/hit-flash/index.ts +0 -69
  131. package/packages/effects/laser-beam/assets/textures/laser_glow.webp +0 -0
  132. package/packages/effects/laser-beam/assets/textures/laser_noise.webp +0 -0
  133. package/packages/effects/laser-beam/index.ts +0 -6
  134. package/packages/effects/laser-beam-factory.ts +0 -135
  135. package/packages/effects/lumber-cart-suction/effect.json +0 -6
  136. package/packages/effects/lumber-cart-suction/index.ts +0 -399
  137. package/packages/effects/lumber-debris-scatter/assets/models/lumber_prop_model.glb +0 -0
  138. package/packages/effects/lumber-debris-scatter/assets/models/lumber_prop_model.glb.versions/.active +0 -1
  139. package/packages/effects/lumber-debris-scatter/assets/models/lumber_prop_model.glb.versions/1781589063890_upload.glb +0 -0
  140. package/packages/effects/lumber-debris-scatter/assets/runtime/solidParticleScatter.v1.js +0 -236
  141. package/packages/effects/lumber-debris-scatter/effect.json +0 -228
  142. package/packages/effects/lumber-debris-scatter/index.ts +0 -780
  143. package/packages/effects/lumber_vehicle_gear_spin/assets/runtime/gearSpin.v1.js +0 -202
  144. package/packages/effects/lumber_vehicle_gear_spin/index.ts +0 -11
  145. package/packages/effects/lumber_vehicle_gear_spin/lumber_vehicle_gear_spin.json +0 -338
  146. package/packages/effects/lumber_vehicle_upgrade_aura/assets/runtime/upgradeAura.v1.js +0 -353
  147. package/packages/effects/lumber_vehicle_upgrade_aura/index.ts +0 -11
  148. package/packages/effects/lumber_vehicle_upgrade_aura/lumber_vehicle_upgrade_aura.json +0 -365
  149. package/packages/effects/lumber_vehicle_wood_chips/assets/runtime/solidParticleScatter.v1.js +0 -310
  150. package/packages/effects/lumber_vehicle_wood_chips/index.ts +0 -11
  151. package/packages/effects/lumber_vehicle_wood_chips/lumber_vehicle_wood_chips.json +0 -335
  152. package/packages/effects/monster-hit/index.ts +0 -128
  153. package/packages/effects/player-upgrade/effect.json +0 -6
  154. package/packages/effects/player-upgrade/index.ts +0 -635
  155. package/packages/effects/pulse-laser-volley/assets/textures/bolt_guangshu.webp +0 -0
  156. package/packages/effects/pulse-laser-volley/index.ts +0 -204
  157. package/packages/effects/resource-collect-sparkles/effect.json +0 -6
  158. package/packages/effects/resource-collect-sparkles/index.ts +0 -254
  159. package/packages/effects/run-footstep-dust/assets/runtime/runFootstepDust.v1.js +0 -215
  160. package/packages/effects/run-footstep-dust/effect.json +0 -183
  161. package/packages/effects/run-footstep-dust/index.ts +0 -377
  162. package/packages/effects/space-shared.ts +0 -120
  163. package/packages/effects/thruster-flame/index.ts +0 -305
  164. package/packages/effects/tree-chop-dust/assets/textures/tree_chop_dust_atlas.png +0 -0
  165. package/packages/effects/tree-chop-dust/effect.json +0 -8
  166. package/packages/effects/tree-chop-dust/index.ts +0 -202
  167. package/packages/effects/tree-leaf-chop-burst/assets/runtime/particleEmitter.v1.js +0 -303
  168. package/packages/effects/tree-leaf-chop-burst/assets/textures/tree_leaf_chop_burst_leaf_atlas.png +0 -0
  169. package/packages/effects/tree-leaf-chop-burst/effect.json +0 -498
  170. package/packages/effects/tree-leaf-chop-burst/index.ts +0 -294
  171. package/packages/effects/tree_chop_dust_burst/assets/runtime/particleEmitter.v1.js +0 -318
  172. package/packages/effects/tree_chop_dust_burst/assets/textures/tree_chop_dust_burst_dust.png +0 -0
  173. package/packages/effects/tree_chop_dust_burst/index.ts +0 -13
  174. package/packages/effects/tree_chop_dust_burst/tree_chop_dust_burst.json +0 -412
  175. package/packages/effects/ufo-thread-flame/assets/textures/flame_flow.webp +0 -0
  176. package/packages/effects/ufo-thread-flame/assets/textures/flame_spike.webp +0 -0
  177. package/packages/effects/ufo-thread-flame/index.ts +0 -152
  178. package/packages/effects/vehicle-exhaust-smoke/assets/textures/vehicle_exhaust_smoke_atlas.png +0 -0
  179. package/packages/effects/vehicle-exhaust-smoke/effect.json +0 -8
  180. package/packages/effects/vehicle-exhaust-smoke/index.ts +0 -298
  181. package/packages/effects/vehicle-upgrade/effect.json +0 -6
  182. package/packages/effects/vehicle-upgrade/index.ts +0 -401
  183. package/packages/effects/weapon-trail/assets/textures/trail_wedge.png +0 -0
  184. package/packages/effects/weapon-trail/index.ts +0 -313
  185. package/packages/effects/wood-crusher-sawdust/assets/runtime/particleEmitter.v1.js +0 -312
  186. package/packages/effects/wood-crusher-sawdust/assets/textures/wood_crusher_sawdust_dust.png +0 -0
  187. package/packages/effects/wood-crusher-sawdust/assets/textures/wood_crusher_sawdust_fiber.png +0 -0
  188. package/packages/effects/wood-crusher-sawdust/index.ts +0 -43
  189. package/packages/effects/wood-crusher-sawdust/wood_crusher_sawdust.json +0 -592
  190. package/packages/effects/wood-cutter-sawdust/assets/runtime/particleEmitter.v1.js +0 -312
  191. package/packages/effects/wood-cutter-sawdust/assets/textures/wood_cutter_sawdust_chip.png +0 -0
  192. package/packages/effects/wood-cutter-sawdust/assets/textures/wood_cutter_sawdust_dust.png +0 -0
  193. package/packages/effects/wood-cutter-sawdust/index.ts +0 -43
  194. package/packages/effects/wood-cutter-sawdust/wood_cutter_sawdust.json +0 -592
  195. package/packages/effects/wood-sawdust-effect-factory.ts +0 -194
  196. package/packages/effects/wood_crusher_sawdust/assets/runtime/particleEmitter.v1.js +0 -318
  197. package/packages/effects/wood_crusher_sawdust/assets/textures/wood_crusher_sawdust_dust.png +0 -0
  198. package/packages/effects/wood_crusher_sawdust/assets/textures/wood_crusher_sawdust_fiber.png +0 -0
  199. package/packages/effects/wood_crusher_sawdust/index.ts +0 -29
  200. package/packages/effects/wood_crusher_sawdust/wood_crusher_sawdust.json +0 -592
  201. package/packages/effects/wood_cutter_sawdust/assets/runtime/particleEmitter.v1.js +0 -318
  202. package/packages/effects/wood_cutter_sawdust/assets/textures/wood_cutter_sawdust_chip.png +0 -0
  203. package/packages/effects/wood_cutter_sawdust/assets/textures/wood_cutter_sawdust_dust.png +0 -0
  204. package/packages/effects/wood_cutter_sawdust/index.ts +0 -29
  205. package/packages/effects/wood_cutter_sawdust/wood_cutter_sawdust.json +0 -592
  206. package/packages/effects/wood_peel_material_test/assets/runtime/woodPeelMaterialTest.v1.js +0 -196
  207. package/packages/effects/wood_peel_material_test/index.ts +0 -11
  208. package/packages/effects/wood_peel_material_test/wood_peel_material_test.json +0 -136
  209. package/packages/env.particle.forest_edge_fog/assets/runtime/particleEmitter.v1.js +0 -210
  210. package/packages/env.particle.forest_edge_fog/assets/textures/f12a23c4-b924-4322-a260-3d982428f1e8.png +0 -0
  211. package/packages/env.particle.forest_edge_fog/assets/textures/yuan.png +0 -0
  212. package/packages/env.particle.forest_edge_fog/effect.json +0 -854
  213. package/packages/env.particle.forest_edge_fog/media/preview.gif +0 -0
  214. package/packages/env.particle.forest_edge_fog/media/preview.mp4 +0 -0
  215. package/packages/env.particle.forest_edge_fog/media/preview.webm +0 -0
  216. package/packages/env.particle.forest_edge_fog/media/thumbnail.png +0 -0
  217. package/packages/env.particle.forest_edge_fog/metadata/description.json +0 -148
  218. package/packages/env.particle.forest_edge_fog/provenance/03-effect.original.json +0 -827
  219. package/packages/env.particle.forest_edge_fog/provenance/03-normalized-vfx-to-babylon-report.json +0 -196
  220. package/packages/env.particle.forest_edge_fog/provenance/04-preview-overrides.json +0 -432
  221. package/packages/env.particle.forest_edge_fog/provenance/04-preview-tuning-report.json +0 -28
  222. package/packages/env.particle.forest_edge_fog/provenance/asset-map.json +0 -124
  223. package/packages/env.particle.forest_edge_fog/provenance/lineage.json +0 -41
  224. package/packages/generation.ts +0 -14
  225. package/packages/index.ts +0 -14
  226. package/packages/legacy-particle-runtime.ts +0 -113
  227. package/packages/manifestRuntimePackage.ts +0 -519
  228. package/packages/registry.ts +0 -85
  229. package/packages/rendering.ts +0 -13
  230. package/packages/resource.particle.viscous_oil_suction/assets/runtime/top_disk_suction/particleEmitter.v1.js +0 -424
  231. package/packages/resource.particle.viscous_oil_suction/assets/textures/Glow ad.png +0 -0
  232. package/packages/resource.particle.viscous_oil_suction/effect.json +0 -1254
  233. package/packages/resource.particle.viscous_oil_suction/media/preview.gif +0 -0
  234. package/packages/resource.particle.viscous_oil_suction/media/preview.mp4 +0 -0
  235. package/packages/resource.particle.viscous_oil_suction/media/preview.webm +0 -0
  236. package/packages/resource.particle.viscous_oil_suction/media/thumbnail.png +0 -0
  237. package/packages/resource.particle.viscous_oil_suction/metadata/description.json +0 -122
  238. package/packages/resource.particle.viscous_oil_suction/provenance/03-effect.original.json +0 -1051
  239. package/packages/resource.particle.viscous_oil_suction/provenance/03-normalized-vfx-to-babylon-report.json +0 -200
  240. package/packages/resource.particle.viscous_oil_suction/provenance/04-preview-overrides.json +0 -581
  241. package/packages/resource.particle.viscous_oil_suction/provenance/04-preview-tuning-report.json +0 -28
  242. package/packages/resource.particle.viscous_oil_suction/provenance/asset-map.json +0 -111
  243. package/packages/resource.particle.viscous_oil_suction/provenance/lineage.json +0 -45
  244. package/packages/types.ts +0 -107
  245. package/tooling/check-dist-runtime.mjs +0 -166
  246. package/tooling/generate-index.mjs +0 -55
  247. package/tooling/test-guardrails.mjs +0 -157
  248. package/tooling/validate-boundary.mjs +0 -92
  249. package/tooling/validate-effects.mjs +0 -304
  250. package/tooling/validate.mjs +0 -53
@@ -1,1051 +0,0 @@
1
- {
2
- "schemaVersion": "vfx-effect-package/1.0",
3
- "id": "world.particle.gas_town_oil_suction",
4
- "name": {
5
- "zh": "吸石油",
6
- "en": "吸石油"
7
- },
8
- "source": {
9
- "engine": "cocos",
10
- "engineVersion": "3.8.7",
11
- "projectPath": "assets/ArtResources/Effect/GasTown_OilSuction",
12
- "rootAsset": "assets/ArtResources/Effect/GasTown_OilSuction/吸石油.prefab",
13
- "sourceId": "29954e7e-d137-4c8b-a730-4f0320cbece8",
14
- "extractedAt": "2026-05-21T12:28:45.255Z",
15
- "extractorVersion": "normalized-vfx-to-babylon/0.1.0"
16
- },
17
- "assets": {
18
- "textures": [
19
- {
20
- "kind": "texture",
21
- "id": "glow_ad",
22
- "packagePath": "assets/textures/Glow ad.png",
23
- "sourcePath": "/Users/admin/Code/FPS/fps-vfx-agent/scaffolds/cocos-vfx-scaffold/assets/ArtResources/Effect/GasTown_OilSuction/Glow ad.png",
24
- "sourceId": "dd44b0a9-0998-4c24-ba2e-d6ac9d1bebb7@6c48a",
25
- "width": 512,
26
- "height": 512
27
- }
28
- ],
29
- "materials": [
30
- {
31
- "kind": "material",
32
- "id": "asset",
33
- "packagePath": "assets/materials/石油.mtl",
34
- "sourcePath": "/Users/admin/Code/FPS/fps-vfx-agent/scaffolds/cocos-vfx-scaffold/assets/ArtResources/Effect/GasTown_OilSuction/石油.mtl",
35
- "sourceId": "4aabf2b0-1d20-4e13-9384-ae47eb8522aa"
36
- }
37
- ],
38
- "shaders": [],
39
- "meshes": [],
40
- "sounds": [],
41
- "scripts": [
42
- {
43
- "kind": "script",
44
- "id": "particle_emitter_oil_suction_v1",
45
- "packagePath": "assets/runtime/gas_town_oil_suction/particleEmitter.v1.js",
46
- "runtimeId": "particleEmitter/oilSuction/v1",
47
- "engine": "babylon",
48
- "moduleFormat": "esm",
49
- "exports": [
50
- "createParticleEmitterRuntime",
51
- "runtimeContract"
52
- ],
53
- "mimeType": "text/javascript"
54
- }
55
- ],
56
- "raw": [
57
- {
58
- "kind": "raw",
59
- "id": "02-normalized-vfx",
60
- "packagePath": "source/02-normalized-vfx.json",
61
- "sourcePath": "/Users/admin/Code/FPS/fps-vfx-agent/vfx-intermediate/cocos-normalized-vfx/gas_town_oil_suction/02-normalized-vfx.json"
62
- },
63
- {
64
- "kind": "raw",
65
- "id": "01-source-dump",
66
- "packagePath": "source/01-source-dump.json",
67
- "sourcePath": "/Users/admin/Code/FPS/fps-vfx-agent/vfx-intermediate/cocos-source-dumps/gas_town_oil_suction/01-source-dump.json"
68
- },
69
- {
70
- "kind": "raw",
71
- "id": "asset",
72
- "packagePath": "source/raw/吸石油.prefab",
73
- "sourcePath": "/Users/admin/Code/FPS/fps-vfx-agent/scaffolds/cocos-vfx-scaffold/assets/ArtResources/Effect/GasTown_OilSuction/吸石油.prefab",
74
- "sourceId": "29954e7e-d137-4c8b-a730-4f0320cbece8"
75
- },
76
- {
77
- "kind": "raw",
78
- "id": "asset.meta",
79
- "packagePath": "source/raw/吸石油.prefab.meta",
80
- "sourcePath": "/Users/admin/Code/FPS/fps-vfx-agent/scaffolds/cocos-vfx-scaffold/assets/ArtResources/Effect/GasTown_OilSuction/吸石油.prefab.meta",
81
- "sourceId": "29954e7e-d137-4c8b-a730-4f0320cbece8"
82
- }
83
- ]
84
- },
85
- "emitters": [
86
- {
87
- "name": "Particle",
88
- "sourceNodeName": "Particle",
89
- "enabled": true,
90
- "blendMode": "STANDARD",
91
- "particleTexturePath": "assets/textures/Glow ad.png",
92
- "materialSourcePath": "assets/materials/石油.mtl",
93
- "billboardMode": "BILLBOARDMODE_STRETCHED_LOCAL",
94
- "stretchedBillboard": {
95
- "velocityScale": 0,
96
- "lengthScale": 2
97
- },
98
- "minScaleY": 4,
99
- "maxScaleY": 4,
100
- "capacity": 1000,
101
- "manualEmitCount": 0,
102
- "emitRate": 800,
103
- "minSize": 1,
104
- "maxSize": 3,
105
- "minLifeTime": 0.2,
106
- "maxLifeTime": 0.5,
107
- "minEmitPower": 5,
108
- "maxEmitPower": 10,
109
- "updateSpeed": 0.01,
110
- "gravity": {
111
- "x": 0,
112
- "y": 0,
113
- "z": 0
114
- },
115
- "velocityOverLifetime": {
116
- "axes": {
117
- "x": [
118
- {
119
- "time": 0,
120
- "value": 0
121
- },
122
- {
123
- "time": 1,
124
- "value": 0
125
- }
126
- ],
127
- "y": [
128
- {
129
- "time": 0,
130
- "value": 0
131
- },
132
- {
133
- "time": 1,
134
- "value": 0
135
- }
136
- ],
137
- "z": [
138
- {
139
- "time": 0,
140
- "value": -5
141
- },
142
- {
143
- "time": 1,
144
- "value": 0
145
- }
146
- ]
147
- },
148
- "speedModifier": {
149
- "mode": "constant",
150
- "min": 1,
151
- "max": 1
152
- },
153
- "space": 0,
154
- "axisRemap": "cocosLocalZToNegativeZ"
155
- },
156
- "transform": {
157
- "position": {
158
- "x": -0.037,
159
- "y": 0,
160
- "z": 0.671
161
- },
162
- "rotation": {
163
- "x": 0,
164
- "y": 0,
165
- "z": 0
166
- },
167
- "scale": {
168
- "x": 0.3,
169
- "y": 0.3,
170
- "z": 0.3
171
- }
172
- },
173
- "shape": {
174
- "sourceType": "Cone",
175
- "sourceEnum": 2,
176
- "radius": 2,
177
- "radiusRange": 1,
178
- "angle": 0.5235987755982988,
179
- "length": 5,
180
- "emitFrom": 3,
181
- "type": "Cone",
182
- "directionScale": -1,
183
- "emitMode": "oilSuctionTopDiskToBottomCenter",
184
- "preserveWorldShapeSize": true,
185
- "direction1": {
186
- "x": 0,
187
- "y": 0,
188
- "z": -1
189
- },
190
- "direction2": {
191
- "x": 0,
192
- "y": 0,
193
- "z": -1
194
- }
195
- },
196
- "oilSuction": {
197
- "topDiskRadius": 2,
198
- "topDiskRadiusRange": 1,
199
- "suctionLength": 5
200
- },
201
- "renderColor": {
202
- "color": {
203
- "r": 0.08464436755094196,
204
- "g": 0.12007689350249905,
205
- "b": 0.1574778931180315,
206
- "a": 1
207
- },
208
- "colorIntensity": 2,
209
- "alphaIntensity": 2
210
- },
211
- "alphaKeys": [
212
- {
213
- "time": 0,
214
- "alpha": 0
215
- },
216
- {
217
- "time": 0.4788732394366197,
218
- "alpha": 1
219
- },
220
- {
221
- "time": 1,
222
- "alpha": 0
223
- }
224
- ],
225
- "colorKeys": [],
226
- "sizeKeys": [
227
- {
228
- "time": 0,
229
- "size": 0.5492424242424242
230
- },
231
- {
232
- "time": 1,
233
- "size": 0
234
- }
235
- ],
236
- "runtime": {
237
- "adapter": "particleEmitter/oilSuction/v1",
238
- "stopAfterSeconds": 999999
239
- },
240
- "ui": {
241
- "groups": [
242
- {
243
- "id": "oilSuction",
244
- "title": "吸石油快捷参数",
245
- "hint": "专用控制 · 不改变通用 Cone 字段",
246
- "mode": "controls",
247
- "params": [
248
- "oilSuction.topDiskRadius",
249
- "oilSuction.topDiskRadiusRange",
250
- "oilSuction.suctionLength"
251
- ]
252
- }
253
- ],
254
- "paramLabels": {
255
- "oilSuction.topDiskRadius": "顶部圆盘半径",
256
- "oilSuction.topDiskRadiusRange": "顶部圆盘采样范围",
257
- "oilSuction.suctionLength": "吸附距离"
258
- },
259
- "paramTips": {
260
- "oilSuction.topDiskRadius": "石油专用采样半径,只影响顶部出生圆盘,不改 Babylon Cone emitter.radius / 通用 gizmo。",
261
- "oilSuction.topDiskRadiusRange": "石油专用采样范围。1=完整圆盘,越小越接近外圈;不改 Babylon Cone emitter.radiusRange。",
262
- "oilSuction.suctionLength": "石油专用顶部圆盘到目标中心点距离,不改 Babylon Cone emitter.length / 通用 gizmo。"
263
- }
264
- },
265
- "source": {
266
- "simulationSpace": 1,
267
- "renderMode": 1,
268
- "velocityScale": 0,
269
- "lengthScale": 2,
270
- "alignSpace": 0,
271
- "normalizedVfxEmitterId": "Particle"
272
- },
273
- "sourceMap": null,
274
- "mapping": [
275
- {
276
- "cocos": "$[3]._capacity",
277
- "babylon": "capacity"
278
- },
279
- {
280
- "cocos": "$[3].rateOverTime",
281
- "babylon": "emitRate"
282
- },
283
- {
284
- "cocos": "$[3].bursts[0].count",
285
- "babylon": "manualEmitCount"
286
- },
287
- {
288
- "cocos": "$[3].startSize",
289
- "babylon": "minSize/maxSize"
290
- },
291
- {
292
- "cocos": "$[3].startLifetime",
293
- "babylon": "minLifeTime/maxLifeTime"
294
- },
295
- {
296
- "cocos": "$[3].startSpeed",
297
- "babylon": "minEmitPower/maxEmitPower"
298
- },
299
- {
300
- "cocos": "$[3].velocityOvertimeModule",
301
- "babylon": "velocityOverLifetime"
302
- },
303
- {
304
- "cocos": "$[3].rotationOverLifetime.z",
305
- "babylon": "minAngularSpeed/maxAngularSpeed"
306
- },
307
- {
308
- "cocos": "$[3].simulationSpeed",
309
- "babylon": "updateSpeed"
310
- },
311
- {
312
- "cocos": "$[3].gravityModifier",
313
- "babylon": "gravity"
314
- },
315
- {
316
- "cocos": "$[3]._renderMode",
317
- "babylon": "billboardMode"
318
- },
319
- {
320
- "cocos": "$[3]._velocityScale",
321
- "babylon": "stretchedBillboard.velocityScale"
322
- },
323
- {
324
- "cocos": "$[3]._lengthScale",
325
- "babylon": "stretchedBillboard.lengthScale"
326
- },
327
- {
328
- "cocos": "$[3]._velocityScale + $[3]._lengthScale + $[3].startSpeed",
329
- "babylon": "minScaleY/maxScaleY"
330
- },
331
- {
332
- "cocos": "$[3].startColor + material._props[0].tintColor",
333
- "babylon": "renderColor.color + renderColor.colorIntensity/renderColor.alphaIntensity -> color1/color2/colorDead"
334
- },
335
- {
336
- "cocos": "$[3]._shapeModule",
337
- "babylon": "shape"
338
- }
339
- ],
340
- "colorMapping": {
341
- "renderFormula": "2.0 * startColor * materialTintColor * texture",
342
- "multiplier": 2,
343
- "alphaMultiplier": 2,
344
- "cocosStartColor": {
345
- "r": 0.16862745098039217,
346
- "g": 0.23921568627450981,
347
- "b": 0.3137254901960784,
348
- "a": 1
349
- },
350
- "cocosMaterialTintColor": {
351
- "r": 0.5019607843137255,
352
- "g": 0.5019607843137255,
353
- "b": 0.5019607843137255,
354
- "a": 1
355
- },
356
- "renderColor": {
357
- "r": 0.08464436755094196,
358
- "g": 0.12007689350249905,
359
- "b": 0.1574778931180315,
360
- "a": 1
361
- },
362
- "babylonColor": {
363
- "r": 0.1692887351018839,
364
- "g": 0.2401537870049981,
365
- "b": 0.314955786236063,
366
- "a": 1
367
- },
368
- "babylonColorDead": {
369
- "r": 0.1692887351018839,
370
- "g": 0.2401537870049981,
371
- "b": 0.314955786236063,
372
- "a": 0
373
- }
374
- },
375
- "cocosSource": {
376
- "source": {
377
- "engine": "cocos",
378
- "componentIndex": 3,
379
- "componentPath": "$[3]",
380
- "nodeIndex": 2,
381
- "rendererIndex": 61,
382
- "componentType": "cc.ParticleSystem"
383
- },
384
- "lifecycle": {
385
- "duration": 1,
386
- "loop": true,
387
- "playOnAwake": true,
388
- "prewarm": false,
389
- "simulationSpeed": 1,
390
- "simulationSpace": 1
391
- },
392
- "transform": {
393
- "position": {
394
- "x": -0.037,
395
- "y": 0,
396
- "z": 0.671
397
- },
398
- "rotation": {
399
- "x": 0,
400
- "y": 0,
401
- "z": 0
402
- },
403
- "scale": {
404
- "x": 0.3,
405
- "y": 0.3,
406
- "z": 0.3
407
- }
408
- },
409
- "emission": {
410
- "capacity": 1000,
411
- "rateOverTime": 800,
412
- "rateOverDistance": 0,
413
- "bursts": []
414
- },
415
- "lifetime": {
416
- "startLifetime": {
417
- "mode": "twoConstants",
418
- "min": 0.2,
419
- "max": 0.5
420
- },
421
- "min": 0.2,
422
- "max": 0.5
423
- },
424
- "size": {
425
- "startSize": {
426
- "mode": "twoConstants",
427
- "min": 1,
428
- "max": 3
429
- },
430
- "min": 1,
431
- "max": 3,
432
- "overLifetime": {
433
- "enabled": true,
434
- "keys": [
435
- {
436
- "time": 0,
437
- "size": 0.5492424242424242
438
- },
439
- {
440
- "time": 1,
441
- "size": 0
442
- }
443
- ],
444
- "separateAxes": false,
445
- "axisKeys": null
446
- }
447
- },
448
- "speed": {
449
- "startSpeed": {
450
- "mode": "twoConstants",
451
- "min": -5,
452
- "max": -10
453
- },
454
- "min": -10,
455
- "max": -5
456
- },
457
- "velocity": {
458
- "overLifetime": {
459
- "enabled": true,
460
- "axes": {
461
- "x": [
462
- {
463
- "time": 0,
464
- "value": 0
465
- },
466
- {
467
- "time": 1,
468
- "value": 0
469
- }
470
- ],
471
- "y": [
472
- {
473
- "time": 0,
474
- "value": 0
475
- },
476
- {
477
- "time": 1,
478
- "value": 0
479
- }
480
- ],
481
- "z": [
482
- {
483
- "time": 0,
484
- "value": 5
485
- },
486
- {
487
- "time": 1,
488
- "value": 0
489
- }
490
- ]
491
- },
492
- "speedModifier": {
493
- "mode": "constant",
494
- "min": 1,
495
- "max": 1
496
- },
497
- "space": 0
498
- }
499
- },
500
- "gravity": {
501
- "modifier": 0,
502
- "vector": {
503
- "x": 0,
504
- "y": 0,
505
- "z": 0
506
- }
507
- },
508
- "shape": {
509
- "enabled": true,
510
- "type": "Cone",
511
- "sourceEnum": 2,
512
- "radius": 2,
513
- "radiusThickness": 1,
514
- "angle": 0.5235987755982988,
515
- "length": 5,
516
- "emitFrom": 3,
517
- "scale": {
518
- "__type__": "cc.Vec3",
519
- "x": 1,
520
- "y": 1,
521
- "z": 1
522
- },
523
- "position": {
524
- "__type__": "cc.Vec3",
525
- "x": 0,
526
- "y": 0,
527
- "z": 0
528
- },
529
- "rotation": {
530
- "__type__": "cc.Vec3",
531
- "x": 0,
532
- "y": 0,
533
- "z": 0
534
- },
535
- "direction1": {
536
- "x": 0,
537
- "y": 0,
538
- "z": -1
539
- },
540
- "direction2": {
541
- "x": 0,
542
- "y": 0,
543
- "z": -1
544
- }
545
- },
546
- "render": {
547
- "mode": 1,
548
- "velocityScale": 0,
549
- "lengthScale": 2,
550
- "alignSpace": 0,
551
- "blendMode": "STANDARD",
552
- "material": {
553
- "uuid": "4aabf2b0-1d20-4e13-9384-ae47eb8522aa",
554
- "path": "assets/ArtResources/Effect/GasTown_OilSuction/石油.mtl",
555
- "techIdx": 1
556
- },
557
- "texture": {
558
- "uuid": "dd44b0a9-0998-4c24-ba2e-d6ac9d1bebb7@6c48a",
559
- "path": "assets/ArtResources/Effect/GasTown_OilSuction/Glow ad.png",
560
- "width": 512,
561
- "height": 512
562
- },
563
- "mesh": null,
564
- "effectAsset": {
565
- "uuid": "d1346436-ac96-4271-b863-1f4fdead95b0",
566
- "name": "particles/builtin-particle",
567
- "classification": "builtin-effect"
568
- }
569
- },
570
- "color": {
571
- "startColor": {
572
- "r": 0.16862745098039217,
573
- "g": 0.23921568627450981,
574
- "b": 0.3137254901960784,
575
- "a": 1
576
- },
577
- "materialTintColor": {
578
- "r": 0.5019607843137255,
579
- "g": 0.5019607843137255,
580
- "b": 0.5019607843137255,
581
- "a": 1
582
- },
583
- "renderFormula": "2.0 * startColor * materialTintColor * texture",
584
- "overLifetime": {
585
- "enabled": true,
586
- "alphaKeys": [
587
- {
588
- "time": 0,
589
- "alpha": 0
590
- },
591
- {
592
- "time": 0.4788732394366197,
593
- "alpha": 1
594
- },
595
- {
596
- "time": 1,
597
- "alpha": 0
598
- }
599
- ],
600
- "colorKeys": []
601
- }
602
- },
603
- "rotation": {
604
- "overLifetime": {
605
- "enabled": false,
606
- "z": {
607
- "mode": "constant",
608
- "min": 0,
609
- "max": 0
610
- }
611
- }
612
- },
613
- "modules": {
614
- "colorOverLifetime": {
615
- "enabled": true,
616
- "sourcePreservedIn": "source/02-normalized-vfx.json"
617
- },
618
- "sizeOvertime": {
619
- "enabled": true,
620
- "sourcePreservedIn": "source/02-normalized-vfx.json"
621
- },
622
- "rotationOvertime": {
623
- "enabled": false,
624
- "sourcePreservedIn": "source/02-normalized-vfx.json"
625
- },
626
- "velocityOvertime": {
627
- "enabled": true,
628
- "sourcePreservedIn": "source/02-normalized-vfx.json"
629
- },
630
- "forceOvertime": {
631
- "enabled": false,
632
- "sourcePreservedIn": "source/02-normalized-vfx.json"
633
- },
634
- "limitVelocityOvertime": {
635
- "enabled": false,
636
- "sourcePreservedIn": "source/02-normalized-vfx.json"
637
- },
638
- "textureAnimation": {
639
- "enabled": false,
640
- "sourcePreservedIn": "source/02-normalized-vfx.json"
641
- },
642
- "noise": {
643
- "enabled": false,
644
- "sourcePreservedIn": "source/02-normalized-vfx.json"
645
- },
646
- "trail": {
647
- "enabled": false,
648
- "sourcePreservedIn": "source/02-normalized-vfx.json"
649
- }
650
- }
651
- }
652
- }
653
- ],
654
- "runtime": {
655
- "space": "world",
656
- "lifecycle": "sustained",
657
- "anchor": {
658
- "defaultBone": null,
659
- "defaultMesh": null,
660
- "defaultOffset": {
661
- "x": 0,
662
- "y": 1,
663
- "z": 0
664
- }
665
- },
666
- "start": [
667
- "Instantiate Babylon particle systems from 03-effect.json emitters"
668
- ],
669
- "update": [
670
- "Apply Babylon tunable parameter overrides"
671
- ],
672
- "stop": [
673
- "Stop and dispose particle systems"
674
- ],
675
- "adapters": [
676
- {
677
- "id": "particleEmitter/oilSuction/v1",
678
- "engine": "babylon",
679
- "entry": "assets/runtime/gas_town_oil_suction/particleEmitter.v1.js",
680
- "moduleFormat": "esm",
681
- "exports": [
682
- "createParticleEmitterRuntime",
683
- "runtimeContract"
684
- ]
685
- }
686
- ]
687
- },
688
- "tunableParams": [
689
- {
690
- "key": "Particle.capacity",
691
- "labelZh": "Particle 容量",
692
- "type": "number",
693
- "default": 1000,
694
- "min": 1,
695
- "max": 3000,
696
- "step": 1,
697
- "target": {
698
- "emitter": "Particle",
699
- "property": "capacity",
700
- "operator": "set"
701
- }
702
- },
703
- {
704
- "key": "Particle.manualEmitCount",
705
- "labelZh": "Particle 一次性爆发数量",
706
- "type": "number",
707
- "default": 0,
708
- "min": 0,
709
- "max": 100,
710
- "step": 1,
711
- "target": {
712
- "emitter": "Particle",
713
- "property": "manualEmitCount",
714
- "operator": "set"
715
- }
716
- },
717
- {
718
- "key": "Particle.emitRate",
719
- "labelZh": "Particle 发射率",
720
- "type": "number",
721
- "default": 800,
722
- "min": 0,
723
- "max": 3200,
724
- "step": 1,
725
- "unit": "particles/s",
726
- "target": {
727
- "emitter": "Particle",
728
- "property": "emitRate",
729
- "operator": "set"
730
- }
731
- },
732
- {
733
- "key": "Particle.minSize",
734
- "labelZh": "Particle 最小尺寸",
735
- "type": "number",
736
- "default": 1,
737
- "min": 0,
738
- "max": 9,
739
- "step": 0.01,
740
- "target": {
741
- "emitter": "Particle",
742
- "property": "minSize",
743
- "operator": "set"
744
- }
745
- },
746
- {
747
- "key": "Particle.maxSize",
748
- "labelZh": "Particle 最大尺寸",
749
- "type": "number",
750
- "default": 3,
751
- "min": 0,
752
- "max": 9,
753
- "step": 0.01,
754
- "target": {
755
- "emitter": "Particle",
756
- "property": "maxSize",
757
- "operator": "set"
758
- }
759
- },
760
- {
761
- "key": "Particle.minLifeTime",
762
- "labelZh": "Particle 最小生命周期",
763
- "type": "number",
764
- "default": 0.2,
765
- "min": 0,
766
- "max": 2,
767
- "step": 0.01,
768
- "unit": "s",
769
- "target": {
770
- "emitter": "Particle",
771
- "property": "minLifeTime",
772
- "operator": "set"
773
- }
774
- },
775
- {
776
- "key": "Particle.maxLifeTime",
777
- "labelZh": "Particle 最大生命周期",
778
- "type": "number",
779
- "default": 0.5,
780
- "min": 0,
781
- "max": 2,
782
- "step": 0.01,
783
- "unit": "s",
784
- "target": {
785
- "emitter": "Particle",
786
- "property": "maxLifeTime",
787
- "operator": "set"
788
- }
789
- },
790
- {
791
- "key": "Particle.minEmitPower",
792
- "labelZh": "Particle 最小发射力",
793
- "type": "number",
794
- "default": 5,
795
- "min": 0,
796
- "max": 30,
797
- "step": 0.01,
798
- "target": {
799
- "emitter": "Particle",
800
- "property": "minEmitPower",
801
- "operator": "set"
802
- }
803
- },
804
- {
805
- "key": "Particle.maxEmitPower",
806
- "labelZh": "Particle 最大发射力",
807
- "type": "number",
808
- "default": 10,
809
- "min": 0,
810
- "max": 30,
811
- "step": 0.01,
812
- "target": {
813
- "emitter": "Particle",
814
- "property": "maxEmitPower",
815
- "operator": "set"
816
- }
817
- },
818
- {
819
- "key": "Particle.updateSpeed",
820
- "labelZh": "Particle 模拟步长",
821
- "type": "number",
822
- "default": 0.01,
823
- "min": 0.0005,
824
- "max": 0.04,
825
- "step": 0.0005,
826
- "target": {
827
- "emitter": "Particle",
828
- "property": "updateSpeed",
829
- "operator": "set"
830
- }
831
- },
832
- {
833
- "key": "Particle.runtime.stopAfterSeconds",
834
- "labelZh": "Particle 播放时长",
835
- "type": "number",
836
- "default": 999999,
837
- "min": 0.1,
838
- "max": 10,
839
- "step": 0.1,
840
- "unit": "s",
841
- "target": {
842
- "emitter": "Particle",
843
- "property": "runtime.stopAfterSeconds",
844
- "operator": "set"
845
- }
846
- },
847
- {
848
- "key": "Particle.gravity",
849
- "labelZh": "Particle 重力",
850
- "type": "vector3",
851
- "default": {
852
- "x": 0,
853
- "y": 0,
854
- "z": 0
855
- },
856
- "target": {
857
- "emitter": "Particle",
858
- "property": "gravity",
859
- "operator": "set"
860
- }
861
- },
862
- {
863
- "key": "Particle.renderColor.color",
864
- "labelZh": "Particle renderColor.color",
865
- "type": "color",
866
- "default": {
867
- "r": 0.08464436755094196,
868
- "g": 0.12007689350249905,
869
- "b": 0.1574778931180315,
870
- "a": 1
871
- },
872
- "target": {
873
- "emitter": "Particle",
874
- "property": "renderColor.color",
875
- "operator": "set"
876
- }
877
- },
878
- {
879
- "key": "Particle.renderColor.colorIntensity",
880
- "labelZh": "Particle renderColor.colorIntensity",
881
- "type": "number",
882
- "default": 2,
883
- "min": 0,
884
- "max": 8,
885
- "step": 0.05,
886
- "target": {
887
- "emitter": "Particle",
888
- "property": "renderColor.colorIntensity",
889
- "operator": "set"
890
- }
891
- },
892
- {
893
- "key": "Particle.renderColor.alphaIntensity",
894
- "labelZh": "Particle renderColor.alphaIntensity",
895
- "type": "number",
896
- "default": 2,
897
- "min": 0,
898
- "max": 8,
899
- "step": 0.05,
900
- "target": {
901
- "emitter": "Particle",
902
- "property": "renderColor.alphaIntensity",
903
- "operator": "set"
904
- }
905
- },
906
- {
907
- "key": "Particle.shape.radius",
908
- "labelZh": "Particle Cone 半径",
909
- "type": "number",
910
- "default": 2,
911
- "min": 0.01,
912
- "max": 10,
913
- "step": 0.01,
914
- "target": {
915
- "emitter": "Particle",
916
- "property": "shape.radius",
917
- "operator": "set"
918
- }
919
- },
920
- {
921
- "key": "Particle.shape.radiusRange",
922
- "labelZh": "Particle Cone 半径范围",
923
- "type": "number",
924
- "default": 1,
925
- "min": 0,
926
- "max": 1,
927
- "step": 0.01,
928
- "target": {
929
- "emitter": "Particle",
930
- "property": "shape.radiusRange",
931
- "operator": "set"
932
- }
933
- },
934
- {
935
- "key": "Particle.shape.length",
936
- "labelZh": "Particle Cone 高度",
937
- "type": "number",
938
- "default": 5,
939
- "min": 0.01,
940
- "max": 20,
941
- "step": 0.05,
942
- "target": {
943
- "emitter": "Particle",
944
- "property": "shape.length",
945
- "operator": "set"
946
- }
947
- },
948
- {
949
- "key": "Particle.oilSuction.topDiskRadius",
950
- "labelZh": "Particle 顶部圆盘半径",
951
- "type": "number",
952
- "default": 2,
953
- "min": 0.01,
954
- "max": 10,
955
- "step": 0.01,
956
- "target": {
957
- "emitter": "Particle",
958
- "property": "oilSuction.topDiskRadius",
959
- "operator": "set"
960
- }
961
- },
962
- {
963
- "key": "Particle.oilSuction.topDiskRadiusRange",
964
- "labelZh": "Particle 顶部圆盘采样范围",
965
- "type": "number",
966
- "default": 1,
967
- "min": 0,
968
- "max": 1,
969
- "step": 0.01,
970
- "target": {
971
- "emitter": "Particle",
972
- "property": "oilSuction.topDiskRadiusRange",
973
- "operator": "set"
974
- }
975
- },
976
- {
977
- "key": "Particle.oilSuction.suctionLength",
978
- "labelZh": "Particle 吸附距离",
979
- "type": "number",
980
- "default": 5,
981
- "min": 0.01,
982
- "max": 20,
983
- "step": 0.05,
984
- "target": {
985
- "emitter": "Particle",
986
- "property": "oilSuction.suctionLength",
987
- "operator": "set"
988
- }
989
- },
990
- {
991
- "key": "Particle.shape.type",
992
- "labelZh": "Particle 发射器形状",
993
- "type": "enum",
994
- "default": "Cone",
995
- "options": [
996
- "Box",
997
- "Sphere",
998
- "Cone",
999
- "SphereDirected",
1000
- "Hemisphere",
1001
- "Mesh",
1002
- "Unknown"
1003
- ],
1004
- "target": {
1005
- "emitter": "Particle",
1006
- "property": "shape.type",
1007
- "operator": "set"
1008
- }
1009
- }
1010
- ],
1011
- "babylon": {
1012
- "driver": "particle",
1013
- "entryFile": "assets/runtime/gas_town_oil_suction/particleEmitter.v1.js",
1014
- "previewConfig": {
1015
- "textureUrl": "assets/textures/Glow ad.png",
1016
- "emitterCount": 1,
1017
- "effectFile": "03-effect.json",
1018
- "normalizedVfx": "source/02-normalized-vfx.json"
1019
- }
1020
- },
1021
- "review": {
1022
- "status": "auto",
1023
- "artistNotes": [
1024
- "Stage 3 auto-built from 02-normalized-vfx.json.",
1025
- "Needs Babylon visual review and Stage 4 tuning before approval."
1026
- ],
1027
- "approvedBy": null,
1028
- "approvedAt": null,
1029
- "history": []
1030
- },
1031
- "recording": null,
1032
- "aiDescription": null,
1033
- "search": {
1034
- "tags": [
1035
- "cocos",
1036
- "particle",
1037
- "stage3",
1038
- "asset"
1039
- ],
1040
- "descriptionZh": "从 Cocos Normalized VFX Spec 自动构建的 Babylon 粒子特效,包含 1 个子发射器。",
1041
- "descriptionEn": "Babylon particle effect built from a Cocos Normalized VFX Spec with 1 emitters.",
1042
- "useCases": [
1043
- "vfx preview",
1044
- "cocos migration",
1045
- "babylon integration"
1046
- ],
1047
- "negativeUseCases": [
1048
- "approved final art without Stage 4 visual tuning"
1049
- ]
1050
- }
1051
- }