evomeme 0.1.9 → 0.1.10-beta.13

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 (477) hide show
  1. package/README.md +2 -0
  2. package/dist/canvas-public/app.js +509 -5999
  3. package/dist/canvas-public/assets/presets/catalog.json +47 -0
  4. package/dist/canvas-public/assets/presets/tiles/A_01_CaoDi.png +0 -0
  5. package/dist/canvas-public/assets/presets/tiles/A_02_ShaMo.png +0 -0
  6. package/dist/canvas-public/assets/presets/tiles/A_03_TianKong.png +0 -0
  7. package/dist/canvas-public/assets/presets/tiles/A_04_ShuiBo.png +0 -0
  8. package/dist/canvas-public/assets/presets/tiles/A_05_HaiMian.png +0 -0
  9. package/dist/canvas-public/assets/presets/tiles/A_06_MuDiBan.png +0 -0
  10. package/dist/canvas-public/assets/presets/tiles/A_07_ShiZhuan.png +0 -0
  11. package/dist/canvas-public/assets/presets/tiles/A_08_AnRongYan.png +0 -0
  12. package/dist/canvas-public/assets/presets/tiles/A_09_QingTaiShi.png +0 -0
  13. package/dist/canvas-public/assets/presets/tiles/A_10_ShenHai.png +0 -0
  14. package/dist/canvas-public/assets/presets/tiles/A_11_HuiYanShi.png +0 -0
  15. package/dist/canvas-public/assets/presets/tiles/A_12_HongTu.png +0 -0
  16. package/dist/canvas-public/assets/presets/tiles/A_13_GengDi.png +0 -0
  17. package/dist/canvas-public/assets/presets/tiles/A_14_HuoShanYan.png +0 -0
  18. package/dist/canvas-public/assets/presets/tiles/A_15_NiTu.png +0 -0
  19. package/dist/canvas-public/assets/presets/tiles/A_16_HuangSha.png +0 -0
  20. package/dist/canvas-public/assets/presets/tiles/A_17_CongLin.png +0 -0
  21. package/dist/canvas-public/assets/presets/tiles/A_18_ZiYanShi.png +0 -0
  22. package/dist/canvas-public/assets/presets/tiles/A_19_MoGuTu.png +0 -0
  23. package/dist/canvas-public/assets/presets/tiles/A_20_HuaDian.png +0 -0
  24. package/dist/canvas-public/assets/presets/tiles/A_21_HaiLang.png +0 -0
  25. package/dist/canvas-public/assets/presets/tiles/A_22_GanTu.png +0 -0
  26. package/dist/canvas-public/assets/presets/tiles/A_23_QingTaiShiBan.png +0 -0
  27. package/dist/canvas-public/assets/presets/tiles/A_24_XingKong.png +0 -0
  28. package/dist/canvas-public/assets/presets/tiles/A_25_MoFaFuWen.png +0 -0
  29. package/dist/canvas-public/assets/presets/tiles/A_26_ShiTuYeDi.png +0 -0
  30. package/dist/canvas-public/assets/presets/tiles/A_27_LanZhuan.png +0 -0
  31. package/dist/canvas-public/assets/presets/tiles/A_28_HongZhuan.png +0 -0
  32. package/dist/canvas-public/assets/presets/tiles/A_29_YueQiu.png +0 -0
  33. package/dist/canvas-public/assets/presets/tiles/A_30_JinShuGe.png +0 -0
  34. package/dist/canvas-public/assets/presets/tiles/A_31_JinShuJingGai.png +0 -0
  35. package/dist/canvas-public/assets/presets/tiles/A_32_ShuZiChuang.png +0 -0
  36. package/dist/canvas-public/canvas/actions.js +144 -0
  37. package/dist/canvas-public/canvas/camera.js +28 -0
  38. package/dist/canvas-public/canvas/chrome.js +14 -0
  39. package/dist/canvas-public/canvas/data.js +123 -0
  40. package/dist/canvas-public/canvas/dependencies.js +19 -0
  41. package/dist/canvas-public/canvas/interactions.js +544 -0
  42. package/dist/canvas-public/canvas/panel-resize.js +5 -0
  43. package/dist/canvas-public/canvas/renderer.js +297 -0
  44. package/dist/canvas-public/canvas/selection.js +62 -0
  45. package/dist/canvas-public/canvas/serialization.js +118 -0
  46. package/dist/canvas-public/canvas/sync.js +202 -0
  47. package/dist/canvas-public/core/api.js +32 -0
  48. package/dist/canvas-public/core/feature-registry.js +29 -0
  49. package/dist/canvas-public/core/feature-state.js +228 -0
  50. package/dist/canvas-public/core/layout.js +133 -0
  51. package/dist/canvas-public/core/operations.js +38 -0
  52. package/dist/canvas-public/core/project.js +203 -0
  53. package/dist/canvas-public/core/state.js +27 -0
  54. package/dist/canvas-public/dialogs/context-menu.js +118 -0
  55. package/dist/canvas-public/elements/base.js +100 -0
  56. package/dist/canvas-public/elements/connections.js +105 -0
  57. package/dist/canvas-public/elements/drag.js +53 -0
  58. package/dist/canvas-public/elements/image.js +259 -0
  59. package/dist/canvas-public/elements/loading-recovery.js +5 -0
  60. package/dist/canvas-public/elements/loading.js +21 -0
  61. package/dist/canvas-public/elements/map.js +64 -0
  62. package/dist/canvas-public/elements/registry.js +58 -0
  63. package/dist/canvas-public/elements/replacement.js +78 -0
  64. package/dist/canvas-public/elements/resize.js +210 -0
  65. package/dist/canvas-public/elements/task-pipeline.js +235 -0
  66. package/dist/canvas-public/elements/types.js +21 -0
  67. package/dist/canvas-public/elements/ui.js +14 -0
  68. package/dist/canvas-public/elements/video.js +64 -0
  69. package/dist/canvas-public/features/assets/local-assets.js +72 -0
  70. package/dist/canvas-public/features/assets/official-assets.js +539 -0
  71. package/dist/canvas-public/features/editing/canvas-size.js +532 -0
  72. package/dist/canvas-public/features/editing/color-key.js +471 -0
  73. package/dist/canvas-public/features/editing/cutout.js +20 -0
  74. package/dist/canvas-public/features/editing/interactive-image-editing.js +982 -0
  75. package/dist/canvas-public/features/editing/layer-decomposition.js +45 -0
  76. package/dist/canvas-public/features/editing/manual-split.js +115 -0
  77. package/dist/canvas-public/features/editing/perfect-pixel.js +299 -0
  78. package/dist/canvas-public/features/editing/scroll-preview.js +130 -0
  79. package/dist/canvas-public/features/editing/scroll-seam-elimination.js +71 -0
  80. package/dist/canvas-public/features/editing/seam-elimination.js +46 -0
  81. package/dist/canvas-public/features/editing/smart-split.js +49 -0
  82. package/dist/canvas-public/features/editing/source-preview.js +43 -0
  83. package/dist/canvas-public/features/editing/video-cycle.js +49 -0
  84. package/dist/canvas-public/features/editing/video-frames.js +35 -0
  85. package/dist/canvas-public/features/frame-editor/frame-editing.js +755 -0
  86. package/dist/canvas-public/features/frame-editor/frame-model.js +63 -0
  87. package/dist/canvas-public/features/frame-editor/playback.js +83 -0
  88. package/dist/canvas-public/features/frame-editor/preview.js +151 -0
  89. package/dist/canvas-public/features/generation/animation.js +272 -0
  90. package/dist/canvas-public/features/generation/asset-batch.js +102 -0
  91. package/dist/canvas-public/features/generation/direction.js +163 -0
  92. package/dist/canvas-public/features/generation/fields.js +73 -0
  93. package/dist/canvas-public/features/generation/game-ui.js +64 -0
  94. package/dist/canvas-public/features/generation/image.js +96 -0
  95. package/dist/canvas-public/features/generation/scroll-image.js +157 -0
  96. package/dist/canvas-public/features/generation/seamless-tile.js +52 -0
  97. package/dist/canvas-public/features/generation/tile-transition-atlas.js +79 -0
  98. package/dist/canvas-public/features/generation/video.js +105 -0
  99. package/dist/canvas-public/features/map/creation.js +73 -0
  100. package/dist/canvas-public/features/map/tile-map-editor.js +2520 -0
  101. package/dist/canvas-public/features/registry.js +59 -0
  102. package/dist/canvas-public/index.html +84 -259
  103. package/dist/canvas-public/inspector/controls.js +49 -0
  104. package/dist/canvas-public/inspector/frame-preview.js +11 -0
  105. package/dist/canvas-public/inspector/inspector.js +190 -0
  106. package/dist/canvas-public/inspector/media-inspector.js +517 -0
  107. package/dist/canvas-public/inspector/media-preview.js +56 -0
  108. package/dist/canvas-public/inspector/number-stepper.js +96 -0
  109. package/dist/canvas-public/inspector/resize.js +88 -0
  110. package/dist/canvas-public/inspector/scroll-preview.js +11 -0
  111. package/dist/canvas-public/inspector/ui-inspector.js +14 -0
  112. package/dist/canvas-public/language/en-US.js +1059 -0
  113. package/dist/canvas-public/language/index.js +91 -0
  114. package/dist/canvas-public/language/zh-CN.js +1059 -0
  115. package/dist/canvas-public/map/export.js +10 -0
  116. package/dist/canvas-public/map/inspector.js +8 -0
  117. package/dist/canvas-public/map/model.js +409 -0
  118. package/dist/canvas-public/map/tile-map-editor.js +2 -0
  119. package/dist/canvas-public/media/metadata.js +183 -0
  120. package/dist/canvas-public/media/support.js +183 -0
  121. package/dist/canvas-public/styles/base.css +49 -0
  122. package/dist/canvas-public/styles/canvas.css +127 -0
  123. package/dist/canvas-public/styles/controls.css +203 -0
  124. package/dist/canvas-public/styles/dialogs.css +521 -0
  125. package/dist/canvas-public/styles/feature-form.css +409 -0
  126. package/dist/canvas-public/styles/inspector.css +441 -0
  127. package/dist/canvas-public/styles/layout.css +344 -0
  128. package/dist/canvas-public/styles/map.css +11 -0
  129. package/dist/canvas-public/styles/nodes.css +636 -0
  130. package/dist/canvas-public/styles.css +9 -2247
  131. package/dist/canvas-public/ui/controls.js +222 -0
  132. package/dist/canvas-public/ui/elements.js +9 -0
  133. package/dist/canvas-public/ui/feature-controller.js +296 -0
  134. package/dist/canvas-public/ui/feature-form.js +402 -0
  135. package/dist/canvas-public/ui/settings.js +84 -0
  136. package/dist/canvas-public/ui/toolbar.js +55 -0
  137. package/dist/canvas-public/vendor/pixi-tilemap.js +126 -0
  138. package/dist/canvas-public/vendor/pixi.min.js +2340 -0
  139. package/dist/canvas-public/workers/color-key-worker.js +289 -0
  140. package/dist/image-workers/perfect-pixel/perfect-pixel-core.js +441 -0
  141. package/dist/image-workers/perfect-pixel/perfect-pixel-worker.cjs +10 -0
  142. package/dist/index.js +46710 -12400
  143. package/dist/skills/en-US/evomeme-canvas/SKILL.md +52 -0
  144. package/dist/skills/en-US/evomeme-canvas/agents/openai.yaml +7 -0
  145. package/dist/skills/en-US/evomeme-cloud-fs/SKILL.md +203 -0
  146. package/dist/skills/en-US/evomeme-cloud-fs/agents/openai.yaml +7 -0
  147. package/dist/skills/en-US/evomeme-cover/SKILL.md +131 -0
  148. package/dist/skills/en-US/evomeme-cover/agents/openai.yaml +7 -0
  149. package/dist/skills/en-US/evomeme-game-maker/SKILL.md +288 -0
  150. package/dist/skills/en-US/evomeme-game-maker/agents/openai.yaml +4 -0
  151. package/dist/skills/en-US/evomeme-login/SKILL.md +97 -0
  152. package/dist/skills/en-US/evomeme-login/agents/openai.yaml +7 -0
  153. package/dist/skills/en-US/evomeme-mcp/SKILL.md +71 -0
  154. package/dist/skills/en-US/evomeme-mcp/agents/openai.yaml +7 -0
  155. package/dist/skills/en-US/evomeme-mcp/references/troubleshooting.md +55 -0
  156. package/dist/skills/en-US/evomeme-native-bridge-sdk/SKILL.md +286 -0
  157. package/dist/skills/en-US/evomeme-native-bridge-sdk/agents/openai.yaml +8 -0
  158. package/dist/skills/en-US/evomeme-tos-upload/SKILL.md +47 -0
  159. package/dist/skills/en-US/evomeme-tos-upload/agents/openai.yaml +5 -0
  160. package/dist/skills/en-US/evomeme-ui/SKILL.md +123 -0
  161. package/dist/skills/en-US/evomeme-ui/agents/openai.yaml +4 -0
  162. package/dist/skills/en-US/evomeme-ui/references/host-layout.md +69 -0
  163. package/dist/skills/en-US/game-art/SKILL.md +121 -0
  164. package/dist/skills/en-US/game-art/agents/openai.yaml +8 -0
  165. package/dist/skills/en-US/game-asset-align/SKILL.md +47 -0
  166. package/dist/skills/en-US/game-asset-align/agents/openai.yaml +8 -0
  167. package/dist/skills/en-US/game-asset-align/references/alignment-contract.md +61 -0
  168. package/dist/skills/en-US/game-asset-align/references/blender-scene-pipeline.md +35 -0
  169. package/dist/skills/en-US/game-asset-align/references/canonical-package.md +26 -0
  170. package/dist/skills/en-US/game-asset-align/references/engine-capabilities.md +14 -0
  171. package/dist/skills/en-US/game-asset-align/references/lightweight-review.md +34 -0
  172. package/dist/skills/en-US/game-asset-align/references/repair-policy.md +30 -0
  173. package/dist/skills/en-US/game-asset-align/references/tool-contract.md +69 -0
  174. package/dist/skills/en-US/game-asset-align/references/visual-review.md +26 -0
  175. package/dist/skills/en-US/game-asset-batch-generator/SKILL.md +117 -0
  176. package/dist/skills/en-US/game-asset-batch-generator/agents/openai.yaml +7 -0
  177. package/dist/skills/en-US/game-asset-image-generator/SKILL.md +86 -0
  178. package/dist/skills/en-US/game-asset-image-generator/agents/openai.yaml +7 -0
  179. package/dist/skills/en-US/game-asset-image-generator/references/background.md +34 -0
  180. package/dist/skills/en-US/game-asset-image-generator/references/static-game-assets.md +38 -0
  181. package/dist/skills/en-US/game-asset-mesh-generator/SKILL.md +35 -0
  182. package/dist/skills/en-US/game-asset-mesh-generator/agents/openai.yaml +7 -0
  183. package/dist/skills/en-US/game-asset-mesh-generator/references/animation-presets.md +313 -0
  184. package/dist/skills/en-US/game-asset-mesh-generator/references/generation-contracts.md +131 -0
  185. package/dist/skills/en-US/game-asset-mesh-generator/references/image-generator-workflows.md +65 -0
  186. package/dist/skills/en-US/game-asset-mesh-generator/references/postprocess-contracts.md +187 -0
  187. package/dist/skills/en-US/game-asset-mesh-generator/references/threejs-integration.md +113 -0
  188. package/dist/skills/en-US/game-asset-mesh-generator/references/tool-reference.md +67 -0
  189. package/dist/skills/en-US/game-audio/SKILL.md +121 -0
  190. package/dist/skills/en-US/game-audio/agents/openai.yaml +4 -0
  191. package/{skills → dist/skills/en-US}/game-audio/references/bgm-cdn.md +7 -11
  192. package/{skills → dist/skills/en-US}/game-audio/references/sfx-cdn.md +6 -4
  193. package/dist/skills/en-US/game-character-view-generator/SKILL.md +110 -0
  194. package/dist/skills/en-US/game-character-view-generator/agents/openai.yaml +7 -0
  195. package/dist/skills/en-US/game-demo/SKILL.md +103 -0
  196. package/dist/skills/en-US/game-demo/agents/openai.yaml +7 -0
  197. package/dist/skills/en-US/game-image-layer-decomposer/SKILL.md +99 -0
  198. package/dist/skills/en-US/game-image-layer-decomposer/agents/openai.yaml +7 -0
  199. package/dist/skills/en-US/game-image-splitter/SKILL.md +114 -0
  200. package/dist/skills/en-US/game-image-splitter/agents/openai.yaml +7 -0
  201. package/dist/skills/en-US/game-maker/SKILL.md +111 -0
  202. package/dist/skills/en-US/game-maker/agents/openai.yaml +4 -0
  203. package/dist/skills/en-US/game-perfect-pixel/SKILL.md +123 -0
  204. package/dist/skills/en-US/game-perfect-pixel/agents/openai.yaml +7 -0
  205. package/dist/skills/en-US/game-scroll-generator/SKILL.md +110 -0
  206. package/dist/skills/en-US/game-scroll-generator/agents/openai.yaml +7 -0
  207. package/dist/skills/en-US/game-test/SKILL.md +58 -0
  208. package/dist/skills/en-US/game-test/agents/openai.yaml +7 -0
  209. package/dist/skills/en-US/game-tile-generator/SKILL.md +152 -0
  210. package/dist/skills/en-US/game-tile-generator/agents/openai.yaml +7 -0
  211. package/dist/skills/en-US/game-ui/SKILL.md +177 -0
  212. package/dist/skills/en-US/game-ui/agents/openai.yaml +4 -0
  213. package/dist/skills/en-US/game-ui-generator/SKILL.md +82 -0
  214. package/dist/skills/en-US/game-ui-generator/agents/openai.yaml +7 -0
  215. package/dist/skills/en-US/game-ui-generator/references/component-patterns.md +65 -0
  216. package/dist/skills/en-US/game-ui-generator/references/runtime-integration.md +45 -0
  217. package/dist/skills/en-US/game-video-cycle/SKILL.md +98 -0
  218. package/dist/skills/en-US/game-video-cycle/agents/openai.yaml +7 -0
  219. package/dist/skills/en-US/game-video-generator/SKILL.md +78 -0
  220. package/dist/skills/en-US/game-video-generator/agents/openai.yaml +7 -0
  221. package/dist/skills/en-US/godot-3d-game/SKILL.md +41 -0
  222. package/dist/skills/en-US/godot-3d-game/agents/openai.yaml +8 -0
  223. package/dist/skills/en-US/godot-3d-game/references/alignment-gates.md +26 -0
  224. package/dist/skills/en-US/godot-3d-game/references/appearance-alignment.md +54 -0
  225. package/dist/skills/en-US/godot-3d-game/references/build-and-qa.md +22 -0
  226. package/dist/skills/en-US/godot-3d-game/references/canonical-asset-runtime.md +27 -0
  227. package/dist/skills/en-US/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
  228. package/dist/skills/en-US/godot-3d-game/references/physics-colliders.md +13 -0
  229. package/dist/skills/en-US/godot-3d-game/references/project-structure.md +22 -0
  230. package/dist/skills/en-US/godot-3d-game/references/skeleton-animation.md +16 -0
  231. package/dist/skills/en-US/phaser-2d-game/SKILL.md +127 -0
  232. package/dist/skills/en-US/phaser-2d-game/agents/openai.yaml +8 -0
  233. package/dist/skills/en-US/phaser-2d-game/references/engine-performance.md +64 -0
  234. package/dist/skills/en-US/phaser-2d-game/references/engine-physics.md +139 -0
  235. package/dist/skills/en-US/phaser-2d-game/references/engine-runtime.md +129 -0
  236. package/dist/skills/en-US/phaser-2d-game/references/engine-spritesheets.md +99 -0
  237. package/dist/skills/en-US/phaser-2d-game/references/engine-tilemaps.md +80 -0
  238. package/dist/skills/en-US/phaser-2d-game/references/file-structure.md +94 -0
  239. package/dist/skills/en-US/phaser-2d-graphics-builder/SKILL.md +68 -0
  240. package/dist/skills/en-US/phaser-2d-graphics-builder/agents/openai.yaml +7 -0
  241. package/dist/skills/en-US/threejs-3d-game/SKILL.md +117 -0
  242. package/dist/skills/en-US/threejs-3d-game/agents/openai.yaml +7 -0
  243. package/dist/skills/en-US/threejs-3d-game/references/engine-asset-pipeline.md +155 -0
  244. package/dist/skills/en-US/threejs-3d-game/references/engine-audio.md +70 -0
  245. package/dist/skills/en-US/threejs-3d-game/references/engine-input-camera.md +84 -0
  246. package/dist/skills/en-US/threejs-3d-game/references/engine-performance.md +96 -0
  247. package/dist/skills/en-US/threejs-3d-game/references/engine-physics.md +142 -0
  248. package/dist/skills/en-US/threejs-3d-game/references/engine-runtime.md +199 -0
  249. package/dist/skills/en-US/threejs-3d-game/references/file-structure.md +353 -0
  250. package/dist/skills/en-US/threejs-aaa-graphics-builder/SKILL.md +62 -0
  251. package/dist/skills/en-US/threejs-aaa-graphics-builder/agents/openai.yaml +7 -0
  252. package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/SKILL.md +33 -6
  253. package/{skills → dist/skills/zh-CN}/evomeme-cover/SKILL.md +7 -8
  254. package/{skills → dist/skills/zh-CN}/evomeme-game-maker/SKILL.md +91 -88
  255. package/{skills → dist/skills/zh-CN}/evomeme-login/SKILL.md +5 -0
  256. package/dist/skills/zh-CN/evomeme-mcp/SKILL.md +71 -0
  257. package/dist/skills/zh-CN/evomeme-mcp/agents/openai.yaml +7 -0
  258. package/dist/skills/zh-CN/evomeme-mcp/references/troubleshooting.md +55 -0
  259. package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/SKILL.md +6 -5
  260. package/dist/skills/zh-CN/evomeme-ui/SKILL.md +123 -0
  261. package/dist/skills/zh-CN/evomeme-ui/agents/openai.yaml +4 -0
  262. package/dist/skills/zh-CN/evomeme-ui/references/host-layout.md +69 -0
  263. package/dist/skills/zh-CN/game-asset-align/SKILL.md +47 -0
  264. package/dist/skills/zh-CN/game-asset-align/agents/openai.yaml +8 -0
  265. package/dist/skills/zh-CN/game-asset-align/references/alignment-contract.md +61 -0
  266. package/dist/skills/zh-CN/game-asset-align/references/blender-scene-pipeline.md +35 -0
  267. package/dist/skills/zh-CN/game-asset-align/references/canonical-package.md +26 -0
  268. package/dist/skills/zh-CN/game-asset-align/references/engine-capabilities.md +14 -0
  269. package/dist/skills/zh-CN/game-asset-align/references/lightweight-review.md +34 -0
  270. package/dist/skills/zh-CN/game-asset-align/references/repair-policy.md +30 -0
  271. package/dist/skills/zh-CN/game-asset-align/references/tool-contract.md +69 -0
  272. package/dist/skills/zh-CN/game-asset-align/references/visual-review.md +26 -0
  273. package/dist/skills/zh-CN/game-asset-batch-generator/SKILL.md +117 -0
  274. package/dist/skills/zh-CN/game-asset-batch-generator/agents/openai.yaml +7 -0
  275. package/dist/skills/zh-CN/game-asset-image-generator/SKILL.md +86 -0
  276. package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/background.md +3 -1
  277. package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/static-game-assets.md +2 -2
  278. package/dist/skills/zh-CN/game-asset-mesh-generator/SKILL.md +35 -0
  279. package/dist/skills/zh-CN/game-asset-mesh-generator/agents/openai.yaml +7 -0
  280. package/dist/skills/zh-CN/game-asset-mesh-generator/references/animation-presets.md +313 -0
  281. package/dist/skills/zh-CN/game-asset-mesh-generator/references/generation-contracts.md +131 -0
  282. package/dist/skills/zh-CN/game-asset-mesh-generator/references/image-generator-workflows.md +65 -0
  283. package/dist/skills/zh-CN/game-asset-mesh-generator/references/postprocess-contracts.md +187 -0
  284. package/dist/skills/zh-CN/game-asset-mesh-generator/references/threejs-integration.md +113 -0
  285. package/dist/skills/zh-CN/game-asset-mesh-generator/references/tool-reference.md +67 -0
  286. package/dist/skills/zh-CN/game-audio/SKILL.md +121 -0
  287. package/dist/skills/zh-CN/game-audio/agents/openai.yaml +4 -0
  288. package/dist/skills/zh-CN/game-audio/references/bgm-cdn.md +123 -0
  289. package/dist/skills/zh-CN/game-audio/references/sfx-cdn.md +79 -0
  290. package/dist/skills/zh-CN/game-character-view-generator/SKILL.md +110 -0
  291. package/dist/skills/zh-CN/game-character-view-generator/agents/openai.yaml +7 -0
  292. package/dist/skills/zh-CN/game-image-layer-decomposer/SKILL.md +99 -0
  293. package/dist/skills/zh-CN/game-image-layer-decomposer/agents/openai.yaml +7 -0
  294. package/dist/skills/zh-CN/game-image-splitter/SKILL.md +114 -0
  295. package/dist/skills/zh-CN/game-image-splitter/agents/openai.yaml +7 -0
  296. package/dist/skills/zh-CN/game-perfect-pixel/SKILL.md +123 -0
  297. package/dist/skills/zh-CN/game-perfect-pixel/agents/openai.yaml +7 -0
  298. package/dist/skills/zh-CN/game-scroll-generator/SKILL.md +110 -0
  299. package/dist/skills/zh-CN/game-scroll-generator/agents/openai.yaml +7 -0
  300. package/dist/skills/zh-CN/game-test/references/checklists/playtest-qa.md +12 -0
  301. package/dist/skills/zh-CN/game-tile-generator/SKILL.md +151 -0
  302. package/dist/skills/zh-CN/game-tile-generator/agents/openai.yaml +7 -0
  303. package/{skills → dist/skills/zh-CN}/game-ui/SKILL.md +9 -1
  304. package/dist/skills/zh-CN/game-ui/references/checklists/game-ui-quality.md +14 -0
  305. package/dist/skills/zh-CN/game-ui/references/checklists/hud-readability.md +12 -0
  306. package/dist/skills/zh-CN/game-ui/references/checklists/mobile-input.md +12 -0
  307. package/dist/skills/zh-CN/game-ui/references/checklists/responsive-ui-fit.md +12 -0
  308. package/dist/skills/zh-CN/game-ui/references/ui-patterns.md +140 -0
  309. package/dist/skills/zh-CN/game-ui/references/ui-prompt-templates.md +63 -0
  310. package/dist/skills/zh-CN/game-ui-generator/SKILL.md +82 -0
  311. package/dist/skills/zh-CN/game-ui-generator/agents/openai.yaml +7 -0
  312. package/dist/skills/zh-CN/game-ui-generator/references/component-patterns.md +65 -0
  313. package/dist/skills/zh-CN/game-ui-generator/references/runtime-integration.md +45 -0
  314. package/dist/skills/zh-CN/game-video-cycle/SKILL.md +98 -0
  315. package/dist/skills/zh-CN/game-video-cycle/agents/openai.yaml +7 -0
  316. package/dist/skills/zh-CN/game-video-generator/SKILL.md +78 -0
  317. package/dist/skills/zh-CN/game-video-generator/agents/openai.yaml +7 -0
  318. package/dist/skills/zh-CN/godot-3d-game/SKILL.md +41 -0
  319. package/dist/skills/zh-CN/godot-3d-game/agents/openai.yaml +8 -0
  320. package/dist/skills/zh-CN/godot-3d-game/references/alignment-gates.md +26 -0
  321. package/dist/skills/zh-CN/godot-3d-game/references/appearance-alignment.md +54 -0
  322. package/dist/skills/zh-CN/godot-3d-game/references/build-and-qa.md +22 -0
  323. package/dist/skills/zh-CN/godot-3d-game/references/canonical-asset-runtime.md +27 -0
  324. package/dist/skills/zh-CN/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
  325. package/dist/skills/zh-CN/godot-3d-game/references/physics-colliders.md +13 -0
  326. package/dist/skills/zh-CN/godot-3d-game/references/project-structure.md +22 -0
  327. package/dist/skills/zh-CN/godot-3d-game/references/skeleton-animation.md +16 -0
  328. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
  329. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
  330. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  331. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/compose-quality.md +10 -0
  332. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +9 -0
  333. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +15 -0
  334. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +10 -0
  335. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +9 -0
  336. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +9 -0
  337. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/compose-recipes.md +71 -0
  338. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +33 -0
  339. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/implementation-blueprint.md +82 -0
  340. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/sprite-recipes.md +90 -0
  341. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/technical-art.md +67 -0
  342. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/vfx-recipes.md +67 -0
  343. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/visual-scorecard.md +129 -0
  344. package/{skills → dist/skills/zh-CN}/threejs-3d-game/SKILL.md +6 -2
  345. package/dist/skills/zh-CN/threejs-3d-game/references/engine-asset-pipeline.md +155 -0
  346. package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/SKILL.md +6 -6
  347. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
  348. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
  349. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  350. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +23 -0
  351. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +19 -0
  352. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +14 -0
  353. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +14 -0
  354. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +15 -0
  355. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +17 -0
  356. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +236 -0
  357. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/implementation-blueprint.md +161 -0
  358. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/model-recipes.md +146 -0
  359. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/render-recipes.md +90 -0
  360. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/shader-cookbook.md +292 -0
  361. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/technical-art.md +167 -0
  362. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/visual-scorecard.md +147 -0
  363. package/dist/stage-blender/bake_materials.py +102 -0
  364. package/dist/stage-blender/export_scene.py +275 -0
  365. package/dist/stage-blender/preview_camera.py +90 -0
  366. package/dist/stage-blender/repair_mesh.py +112 -0
  367. package/dist/stage-public/app.js +759 -0
  368. package/dist/stage-public/baked/bakePilot.js +44 -0
  369. package/dist/stage-public/baked/bakedScene.js +129 -0
  370. package/dist/stage-public/baked/sceneAppearance.js +225 -0
  371. package/dist/stage-public/baked/sceneCamera.js +45 -0
  372. package/dist/stage-public/comparison-contract.js +28 -0
  373. package/dist/stage-public/delivery.html +4 -0
  374. package/dist/stage-public/delivery.js +17 -0
  375. package/dist/stage-public/godot/appearance.gd +170 -0
  376. package/dist/stage-public/godot/preview.gd +79 -0
  377. package/dist/stage-public/index.html +141 -0
  378. package/dist/stage-public/review-app.js +289 -0
  379. package/dist/stage-public/review-runtime.js +63 -0
  380. package/dist/stage-public/review.css +24 -0
  381. package/dist/stage-public/review.html +47 -0
  382. package/dist/stage-public/scene-runtime.js +212 -0
  383. package/dist/stage-public/sceneContractRuntime.js +235 -0
  384. package/dist/stage-public/styles.css +328 -0
  385. package/dist/stage-public/three-appearance.js +104 -0
  386. package/dist/stage-public/vendor/three170/LICENSE +21 -0
  387. package/dist/stage-public/vendor/three170/build/three.module.js +54571 -0
  388. package/dist/stage-public/vendor/three170/examples/jsm/controls/OrbitControls.js +1523 -0
  389. package/dist/stage-public/vendor/three170/examples/jsm/environments/RoomEnvironment.js +144 -0
  390. package/dist/stage-public/vendor/three170/examples/jsm/libs/fflate.module.js +2672 -0
  391. package/dist/stage-public/vendor/three170/examples/jsm/loaders/EXRLoader.js +2563 -0
  392. package/dist/stage-public/vendor/three170/examples/jsm/loaders/GLTFLoader.js +4727 -0
  393. package/dist/stage-public/vendor/three170/examples/jsm/utils/BufferGeometryUtils.js +1373 -0
  394. package/dist/tile-transition-mask.svg +40 -0
  395. package/package.json +24 -8
  396. package/dist/canvas-public/cycle-detect.js +0 -166
  397. package/dist/canvas-public/smart-split.js +0 -185
  398. package/skills/game-asset-image-generator/SKILL.md +0 -104
  399. package/skills/game-audio/SKILL.md +0 -82
  400. package/skills/game-audio/agents/openai.yaml +0 -4
  401. package/skills/threejs-3d-game/references/engine-asset-pipeline.md +0 -116
  402. /package/{skills → dist/skills/en-US}/game-test/references/checklists/playtest-qa.md +0 -0
  403. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/game-ui-quality.md +0 -0
  404. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/hud-readability.md +0 -0
  405. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/mobile-input.md +0 -0
  406. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/responsive-ui-fit.md +0 -0
  407. /package/{skills → dist/skills/en-US}/game-ui/references/ui-patterns.md +0 -0
  408. /package/{skills → dist/skills/en-US}/game-ui/references/ui-prompt-templates.md +0 -0
  409. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
  410. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
  411. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  412. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/compose-quality.md +0 -0
  413. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
  414. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +0 -0
  415. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +0 -0
  416. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +0 -0
  417. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +0 -0
  418. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/compose-recipes.md +0 -0
  419. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +0 -0
  420. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/implementation-blueprint.md +0 -0
  421. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/sprite-recipes.md +0 -0
  422. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/technical-art.md +0 -0
  423. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/vfx-recipes.md +0 -0
  424. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/visual-scorecard.md +0 -0
  425. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
  426. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
  427. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  428. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +0 -0
  429. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +0 -0
  430. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +0 -0
  431. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
  432. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +0 -0
  433. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +0 -0
  434. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +0 -0
  435. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/implementation-blueprint.md +0 -0
  436. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/model-recipes.md +0 -0
  437. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/render-recipes.md +0 -0
  438. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/shader-cookbook.md +0 -0
  439. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/technical-art.md +0 -0
  440. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/visual-scorecard.md +0 -0
  441. /package/{skills → dist/skills/zh-CN}/evomeme-canvas/SKILL.md +0 -0
  442. /package/{skills → dist/skills/zh-CN}/evomeme-canvas/agents/openai.yaml +0 -0
  443. /package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/agents/openai.yaml +0 -0
  444. /package/{skills → dist/skills/zh-CN}/evomeme-cover/agents/openai.yaml +0 -0
  445. /package/{skills → dist/skills/zh-CN}/evomeme-game-maker/agents/openai.yaml +0 -0
  446. /package/{skills → dist/skills/zh-CN}/evomeme-login/agents/openai.yaml +0 -0
  447. /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/SKILL.md +0 -0
  448. /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/agents/openai.yaml +0 -0
  449. /package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/agents/openai.yaml +0 -0
  450. /package/{skills → dist/skills/zh-CN}/game-art/SKILL.md +0 -0
  451. /package/{skills → dist/skills/zh-CN}/game-art/agents/openai.yaml +0 -0
  452. /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/agents/openai.yaml +0 -0
  453. /package/{skills → dist/skills/zh-CN}/game-demo/SKILL.md +0 -0
  454. /package/{skills → dist/skills/zh-CN}/game-demo/agents/openai.yaml +0 -0
  455. /package/{skills → dist/skills/zh-CN}/game-maker/SKILL.md +0 -0
  456. /package/{skills → dist/skills/zh-CN}/game-maker/agents/openai.yaml +0 -0
  457. /package/{skills → dist/skills/zh-CN}/game-test/SKILL.md +0 -0
  458. /package/{skills → dist/skills/zh-CN}/game-test/agents/openai.yaml +0 -0
  459. /package/{skills → dist/skills/zh-CN}/game-ui/agents/openai.yaml +0 -0
  460. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/SKILL.md +0 -0
  461. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/agents/openai.yaml +0 -0
  462. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-performance.md +0 -0
  463. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-physics.md +0 -0
  464. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-runtime.md +0 -0
  465. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-spritesheets.md +0 -0
  466. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-tilemaps.md +0 -0
  467. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/file-structure.md +0 -0
  468. /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/SKILL.md +0 -0
  469. /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/agents/openai.yaml +0 -0
  470. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/agents/openai.yaml +0 -0
  471. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-audio.md +0 -0
  472. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-input-camera.md +0 -0
  473. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-performance.md +0 -0
  474. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-physics.md +0 -0
  475. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-runtime.md +0 -0
  476. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/file-structure.md +0 -0
  477. /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/agents/openai.yaml +0 -0
@@ -0,0 +1,187 @@
1
+ # 模型后处理与动画
2
+
3
+ 按需读取当前操作的章节。公共任务参数、结果、ID 含义和恢复规则见 [tool-reference.md](tool-reference.md)。示例为 MCP 参数,演示 ID 需替换成真实已成功的来源。
4
+
5
+ ## 目录
6
+
7
+ - [公共输入](#公共输入)
8
+ - [贴图](#texture)
9
+ - [风格化](#stylize)
10
+ - [分割](#segment)
11
+ - [补全](#complete)
12
+ - [减面](#decimate)
13
+ - [转换](#convert)
14
+ - [绑骨](#rig)
15
+ - [重定向](#retarget)
16
+
17
+ ## 公共输入
18
+
19
+ | 参数 | 类型 | 用途 |
20
+ | --- | --- | --- |
21
+ | `task_id` | string | 已成功的网关公共来源任务 ID。 |
22
+ | `url` | string | 公开 HTTP(S) 模型 URL。 |
23
+ | `input` | string | 公开模型 URL、已上传文件 token 或网关公共来源任务 ID。 |
24
+ | `mesh_format` | string | 可选存储格式提示,默认 `glb`;仅贴图、风格化、分割、补全、减面接受此字段,不会据此转换文件。 |
25
+
26
+ `task_id`、`url`、`input` 严格三选一。**补全和重定向只接受 `task_id` 或 `input`,内容必须是对应已成功的分割或绑骨公共 ID**;不接受 URL 或文件 token。其他操作支持 GLB/GLTF/FBX/OBJ/STL 来源模型,上限 150 MB;本地文件先上传。
27
+
28
+ 版本和默认值按操作定义,与生成阶段的 H/P 版本独立。不支持的字段完全省略,包括 `false`;支持的显式 `false`/`0` 保留。以下参数表不重复公共任务与来源参数,输出以实际返回格式为准。
29
+
30
+ <a id="texture"></a>
31
+
32
+ ## 贴图 — evomeme_texture_mesh
33
+
34
+ | 参数 | 类型 | 默认值与限制 |
35
+ | --- | --- | --- |
36
+ | `model_version` | string | 默认 `v3.0-20250812`,另有 `v2.5-20250123`、`v3.5-20260815`。 |
37
+ | `texture_prompt` | object 或 string | 可选引导,形式见下文;字符串为文本简写。 |
38
+ | `pbr` | boolean | `true`;PBR 材质。 |
39
+ | `texture_seed` | integer | 省略随机,`0` 有效。 |
40
+ | `texture_alignment` | string | `original_image` 或 `geometry`,默认 `original_image`。 |
41
+ | `texture_quality` | string | 默认 `standard`,另有 `fast`、`detailed`、`extreme`(8K)。v2.5 必须省略;`fast` 要求本操作的 `model_version="v3.5-20260815"`。 |
42
+ | `part_names` | string[] | 省略处理全部部件;使用真实分割名称。 |
43
+ | `compress` | string | `geometry` 启用 meshopt,省略不压缩;v2.5 必须省略。 |
44
+ | `bake` | boolean | `true`;烘焙材质效果。 |
45
+ | `delight` | boolean | `true`;去除参考图烘焙光照,仅 v3.5 读取。 |
46
+
47
+ `texture_prompt` 对象的 `text`、`image`、`images` 三选一,`style_image` 只能搭配 `text`。图像值接受 URL/文件 token 字符串,或只含 `url`/`file_token` 之一的对象。`images` 严格四项,顺序 front,left,back,right;风格图建议至少 256×256。已生成模型可以复用来源参考;导入模型应提供引导,图生模型重新贴图时应再次提供参考图。不传生成专用的几何参数。
48
+
49
+ ```json
50
+ {"task_id":"task_public_model","texture_prompt":{"text":"Weathered oak bark and moss"},"model_version":"v3.5-20260815","texture_quality":"fast","texture_seed":0}
51
+ ```
52
+
53
+ <a id="stylize"></a>
54
+
55
+ ## 风格化 — evomeme_stylize_mesh
56
+
57
+ | 参数 | 类型 | 默认值与限制 |
58
+ | --- | --- | --- |
59
+ | `style` | string | 必填:`lego`、`voxel`、`voronoi`、`minecraft`。 |
60
+ | `block_size` | integer | 可选正整数,省略保留上游默认。 |
61
+
62
+ ```json
63
+ {"task_id":"task_public_model","style":"voxel","block_size":80}
64
+ ```
65
+
66
+ <a id="segment"></a>
67
+
68
+ ## 分割 — evomeme_segment_mesh
69
+
70
+ | 参数 | 类型 | 默认值与限制 |
71
+ | --- | --- | --- |
72
+ | `model_version` | string | 默认 `v1.0-20250506`(几何分割);`v2.0-20260430` 为语义分割(Beta)。 |
73
+ | `segmentation_granularity` | string | 仅 v2:`simple`、`balanced`(默认)、`detailed`。 |
74
+ | `split_by_connectivity` | boolean | 仅 v2,默认 `true`。 |
75
+ | `ref_image` | string | 仅 v2,可选参考图 URL/文件 token。 |
76
+
77
+ v1 必须省略后三项。提供 `ref_image` 后,上游忽略 `segmentation_granularity` 和 `split_by_connectivity`。部件名称取自实际结果,不根据文件名猜测,也不假定固定的嵌套部件结构。
78
+
79
+ ```json
80
+ {"task_id":"task_public_model","model_version":"v2.0-20260430","segmentation_granularity":"balanced","split_by_connectivity":false}
81
+ ```
82
+
83
+ <a id="complete"></a>
84
+
85
+ ## 补全 — evomeme_complete_mesh
86
+
87
+ | 参数 | 类型 | 默认值与限制 |
88
+ | --- | --- | --- |
89
+ | `model_version` | string | `v1.0-20250506`。 |
90
+ | `part_names` | string[] | 省略补全全部部件;使用真实分割名称。 |
91
+ | `completion_mode` | string | `ai_completion` 生成缺失几何,`quick_cap` 封闭孔洞;默认 `ai_completion`。 |
92
+
93
+ 来源必须是成功的 `evomeme_segment_mesh` 公共任务 ID,不能使用生成 ID 或其他种类的分割 ID 替代。
94
+
95
+ ```json
96
+ {"task_id":"task_public_segment","completion_mode":"quick_cap"}
97
+ ```
98
+
99
+ <a id="decimate"></a>
100
+
101
+ ## 减面 — evomeme_decimate_mesh
102
+
103
+ | 参数 | 类型 | 默认值与限制 |
104
+ | --- | --- | --- |
105
+ | `model_version` | string | 默认 `v2.0`,另有 `v1.0`、`v3.0`。v1 为基础减面,v2/v3 为智能重拓扑。 |
106
+ | `face_limit` | integer | v1 必填:三角面 1–2000000,四边面 1–150000。v2/v3 省略自适应;显式填写时三角面 500–20000,四边面 500–10000。 |
107
+ | `quad` | boolean | `false`,三个版本均支持。 |
108
+ | `smart_uv` | boolean | 仅 v3,默认 `false`;展开 UV,不输出 UV 图集预览。 |
109
+ | `bake` | boolean | 仅 v2/v3,默认 `true`;烘焙贴图。 |
110
+ | `part_names` | string[] | 仅 v2/v3,省略处理全部部件。 |
111
+
112
+ v1 省略 `bake`/`part_names`;v1/v2 完全省略 `smart_uv`,包括 `false`。
113
+
114
+ ```json
115
+ {"task_id":"task_public_model","model_version":"v3.0","face_limit":5000,"smart_uv":true,"bake":false}
116
+ ```
117
+
118
+ <a id="convert"></a>
119
+
120
+ ## 转换 — evomeme_convert_mesh
121
+
122
+ | 参数 | 类型 | 默认值与限制 |
123
+ | --- | --- | --- |
124
+ | `format` | string | 默认 `GLTF`,另有 `FBX`、`USDZ`、`OBJ`、`STL`、`3MF`。 |
125
+ | `quad` | boolean | `false`;`true` 强制 FBX。 |
126
+ | `face_limit` | integer 或 null | 省略/null 保留原面数,四边面除外,其默认 10000;显式整数必须大于零。 |
127
+ | `force_symmetry` | boolean | `false`;开启要求 `quad=true`。 |
128
+ | `flatten_bottom` | boolean | `false`;压平底部。 |
129
+ | `flatten_bottom_threshold` | number | `0.01`;非负压平深度。 |
130
+ | `texture_size` | integer | `4096`;正整数像素尺寸。 |
131
+ | `texture_format` | string | 默认 `JPEG`,另有 `PNG`、`WEBP`、`BMP`、`DPX`、`HDR`、`OPEN_EXR`、`TARGA`、`TIFF`。 |
132
+ | `bake` | boolean | `true`;烘焙材质效果。 |
133
+ | `pack_uv` | boolean | `false`;统一 UV 布局。 |
134
+ | `export_vertex_colors` | boolean | `false`;开启要求 OBJ/GLTF 且 `quad=false`。 |
135
+ | `pivot_to_center_bottom` | boolean | `false`;轴心移到底部中心。 |
136
+ | `scale_factor` | number | `1`;必须大于零。 |
137
+ | `with_animation` | boolean 或 null | 默认 `true`,保留骨架与动画;null 表示不指定。 |
138
+ | `animate_in_place` | boolean | `false`;移除根节点位移。 |
139
+ | `part_names` | string[] | 省略导出全部部件。 |
140
+ | `export_orientation` | string | 默认 `+x`,另有 `-x`、`+y`、`-y`;在此设置最终朝向。 |
141
+ | `fbx_preset` | string | 默认 `blender`,另有 `3dsmax`、`mixamo`、`bake_scale`;`bake_scale` 将缩放烘焙到 FBX 几何。 |
142
+
143
+ 该工具不接受 `model_version` 或 `mesh_format`。`format=GLTF` 可能返回资源包,而不是单个 GLB。材质和动画能否保留取决于来源及目标格式;OBJ 不承载动画,STL 用于几何打印。按公共格式与就绪规则处理输出。
144
+
145
+ ```json
146
+ {"task_id":"task_public_model","format":"GLTF","pivot_to_center_bottom":true,"with_animation":true}
147
+ ```
148
+
149
+ <a id="rig"></a>
150
+
151
+ ## 绑骨 — evomeme_rig_mesh
152
+
153
+ | 参数 | 类型 | 默认值与限制 |
154
+ | --- | --- | --- |
155
+ | `rig_type` | string | 默认 `biped`,另有 `quadruped`、`hexapod`、`octopod`、`avian`、`serpentine`、`aquatic`。 |
156
+ | `model_version` | string | 根据身体结构推导:biped → `v1.0-20240301`,其他 → `v2.5-20260210`。显式版本优先;v1 仅支持双足。 |
157
+ | `spec` | string | `tripo` 或 `mixamo`,默认 `tripo`;选择骨骼命名规范,使用 Tripo 动画预设时优先 `tripo`。 |
158
+ | `out_format` | string | `glb` 或 `fbx`,默认 `glb`;动画流程优先 GLB。 |
159
+
160
+ 根据实际模型选择身体结构并检查骨架。v2.5 也有独立的双足预设目录。将返回的绑骨公共 `task_id` 交给重定向,而非原模型来源 ID。
161
+
162
+ ```json
163
+ {"task_id":"task_public_model","rig_type":"quadruped","model_version":"v2.5-20260210","spec":"tripo","out_format":"glb"}
164
+ ```
165
+
166
+ <a id="retarget"></a>
167
+
168
+ ## 重定向 — evomeme_retarget_mesh
169
+
170
+ | 参数 | 类型 | 默认值与限制 |
171
+ | --- | --- | --- |
172
+ | `animation` | string | 一个完整的 `preset:` 标识,与 `animations` 互斥。 |
173
+ | `animations` | string[] 或 string | 非空预设数组;兼容逗号字符串。两个选择字段均省略时,插件按下方骨架提示选择 walk。 |
174
+ | `out_format` | string | `glb` 或 `fbx`,默认 `glb`。 |
175
+ | `bake_animation` | boolean | `true`,仅 GLB 生效。 |
176
+ | `export_with_geometry` | boolean | `true`;`false` 导出供已有匹配骨架使用的动画。 |
177
+ | `animate_in_place` | boolean | `false`;`true` 移除根节点位移。 |
178
+ | `rig_type` | string | 可选值同绑骨,默认 `biped`;为省略或逗号字符串预设提供兼容提示。 |
179
+ | `model_version` | string | 按 `rig_type` 推导,同上;用于兼容预设映射。 |
180
+
181
+ 来源必须为成功的绑骨公共 ID。优先显式填写匹配骨架的完整预设:v1 双足使用 `preset:biped:*`,v2.5 双足使用 `preset:walk` 等。显式 `animation` 和数组 `animations` 原样传递。先读 [animation-presets.md](animation-presets.md);当前目录未列出鸟类预设,不要编造。
182
+
183
+ 优先 `animate_in_place=false`,需要时在引擎中消除不需要的水平根位移。纯动画导出需要匹配骨架,不能作为独立可见角色。检查实际片段后再命名,不保证返回名称与顺序。
184
+
185
+ ```json
186
+ {"task_id":"task_public_rig","animations":["preset:quadruped:walk"],"rig_type":"quadruped","model_version":"v2.5-20260210","out_format":"glb","animate_in_place":false}
187
+ ```
@@ -0,0 +1,113 @@
1
+ # Three.js Integration
2
+
3
+ Use this after `game-asset-mesh-generator` generates or post-processes a model.
4
+
5
+ ## Preferred Outputs
6
+
7
+ - Three.js 运行时优先 **GLB/PBR**。生成默认 `mesh_format=auto`,H 四边面输出 FBX;绑骨与重定向默认 `out_format=glb`。不兼容的文件先转换再导入。
8
+ - MCP 成功时返回已下载的 `local_path` 和最终 `asset_url`。遵循公共[结果与就绪规则](tool-reference.md),不能把原始 HTTP 的 pending URL 当作已完成资产。
9
+ - Animation/game-engine interchange: use FBX only when explicitly required; otherwise keep GLB.
10
+ - Static web asset exchange: GLTF/GLB.
11
+ - 3D print only: STL or 3MF, not for textured game runtime.
12
+ - Apple AR: USDZ.
13
+
14
+ ## Import Pattern
15
+
16
+ 运行时集成前,使用 `local_path` 指向的已下载 GLB,并遵循 [game-asset-align](../../game-asset-align/SKILL.md)。 Remote generation/postprocessing remains MCP; local intake and engine delivery use CLI. The [CLI contract](../../game-asset-align/references/tool-contract.md) defines launcher/version selection, relative paths, JSON results, and confirmation gates.
17
+
18
+ ```sh
19
+ npx -y evomeme@latest asset import "<downloaded.glb>" --id character --workspace "<workspace>" --source tripo --type character --json
20
+ npx -y evomeme@latest asset review character --workspace "<workspace>" --json
21
+ npx -y evomeme@latest stage --asset character --workspace "<workspace>" --target three_js --json
22
+ ```
23
+
24
+ Use the actual source/type for the asset; the example is a Tripo character. Keep Stage running in a persistent terminal/session and give the user `data.url`. After the user views and confirms the current version, run this in another terminal with the same CLI version:
25
+
26
+ ```sh
27
+ npx -y evomeme@latest asset sync character --workspace "<workspace>" --target three_js --project "<project>" --json
28
+ ```
29
+
30
+ Integrate through the synced canonical runtime described in [engine asset loading](../../threejs-3d-game/references/engine-asset-pipeline.md). Preserve the single alignment wrapper and reviewed appearance; a remote URL or a successful technical review alone does not authorize game import. Use the canonical loader's imported animation clips with the engine animation system.
31
+
32
+ Animation intake notes (engine-side; remote MCP exposes `evomeme_rig_mesh` / `evomeme_retarget_mesh`):
33
+
34
+ - Inspect the returned files and animation clips before assigning gameplay names. Generic `NlaTrack*` names may occur, but the API does not guarantee names, clip order, or one file per batch. Verify each motion before renaming it (`clip.name = 'walk'`); do not map presets by index without checking the actual clips.
35
+ - Log `gltf.animations.map(c => `${c.name} ${c.tracks.length} tracks`)` after load. A healthy humanoid clip drives many bones; clips with only a handful of tracks mean the upstream auto-rig was degenerate — fix the rig, not the runtime.
36
+ - Do NOT strip or neutralize twist-bone tracks (`UpperarmTwist`, `ForearmTwist`, …) on v1.0 rigs: Tripo skins most of the limb mesh to the twist bones, and their baked values differ greatly from the GLB rest pose — removing the tracks collapses the limbs into the torso. Tripo's slightly open, palm-forward hands are the preset house style, not corruption.
37
+ - Prefer converting to in-place at import rather than trusting upstream `animate_in_place`. Use `animate_in_place=false` on `evomeme_retarget_mesh` (the default), then strip root motion precisely:
38
+ - Touch ONLY the top root bone's position track (`Root.position`). Tripo FBX clips bake position tracks on EVERY bone with values that differ from FBXLoader's rest transforms; filtering Hip/Pelvis or pattern-matching broadly collapses the skeleton into a hunch.
39
+ - Zero the HORIZONTAL components only — keep Y. Vertical root motion IS the animation for jumps (and the bob in gaits); deleting the whole track turns a jump into grounded hand-waving.
40
+
41
+ ```ts
42
+ for (const clip of clips) {
43
+ for (const tr of clip.tracks) {
44
+ if (tr.name !== 'Root.position') continue;
45
+ const v = tr.values, x0 = v[0], z0 = v[2];
46
+ for (let i = 0; i < v.length; i += 3) { v[i] = x0; v[i + 2] = z0; }
47
+ }
48
+ }
49
+ ```
50
+
51
+ FBX intake specifics (only if the user explicitly required `out_format=fbx`; default path is GLB):
52
+
53
+ - `FBXLoader` lives at `three/addons/loaders/FBXLoader.js` and imports `fflate`; bundler projects get it from npm automatically, but import-map/CDN pages must map it (e.g. `"fflate": "https://cdn.jsdelivr.net/npm/fflate@0.8.2/esm/browser.js"`).
54
+ - Use ONE FBX per animation (the pipeline does this automatically) and play each file's `animations[0]` as exported. The variant order of duplicate takes differs per file — `animations[0]` is always the correct one.
55
+
56
+ - `FBXLoader` emits each take twice under different node-path prefixes (`Armature.001|walk_…` and `Armature|Armature.001|walk_…`). Keep the variant with the SHALLOWER path (fewer `|` segments); the deep variant's tracks bind incorrectly.
57
+ - Clips carry real names (`walk_normal_m_remap`, `idle_251105_remap`) — select by keyword (slash arrives as an attack/swing name), not by index.
58
+ - Play the clips otherwise untouched. Every loader-side "fix" beyond the single root-position strip has been tested and makes things worse.
59
+ - FBXLoader produces Phong materials (darker than GLB PBR). For final art parity, convert FBX→GLB offline (Blender import/export or FBX2glTF) — the corrected animation survives conversion.
60
+ - Tripo preset retargeting only works on `spec=tripo` rigs. A `spec=mixamo` rig is for external animation pipelines (Mixamo clips, custom libraries) — retarget those in a DCC tool or at runtime with `SkeletonUtils.retargetClip`, and expect to supply bone-name mappings and check bind-pose orientation when skeleton conventions differ.
61
+
62
+ ## Asset Intake Checklist
63
+
64
+ Inspect before shipping:
65
+
66
+ - File size.
67
+ - Triangle count.
68
+ - Mesh count.
69
+ - Material count.
70
+ - Texture count and texture dimensions.
71
+ - PBR material behavior under the game lighting rig.
72
+ - Scale in meters and `auto_size` assumptions.
73
+ - Pivot/origin and bounds.
74
+ - Collision proxy separate from detailed mesh.
75
+ - Animation clip names, durations, root motion, and in-place behavior.
76
+ - Mobile memory/performance impact.
77
+
78
+ ## Game Asset Strategy
79
+
80
+ - Use `game-asset-mesh-generator` for hero assets, characters, creatures, bosses, buildings, weapons, signature props, and complex pickups.
81
+ - Use procedural Three.js kits for high-volume repeated detail such as bolts, windows, track plates, rails, debris, markers, and background silhouettes.
82
+ - For concept art, texture references, decals, logos, UI icons, and backdrop images: prefer procedural/CSS/canvas; use user-supplied images or remote MCP `evomeme_generate_game_image` when needed.
83
+ - Combine: 2D reference (user/remote/procedural) -> 3D-generator model -> canonical CLI intake, Stage confirmation and sync -> Three.js integration -> procedural set dressing -> visual scorecard.
84
+
85
+ ## Performance Discipline
86
+
87
+ - Use `face_limit`, `smart_low_poly`, conversion, or low-poly postprocess for browser/mobile budgets.
88
+ - Prefer one high-fidelity hero asset plus instanced/procedural supporting detail over many unique heavy models.
89
+ - Keep textures compressed or reasonably sized.
90
+ - Clone carefully. Share geometry/materials when possible.
91
+ - Dispose loaded assets when leaving scenes.
92
+ - Run renderer diagnostics after importing: calls, triangles, geometries, textures, materials, file sizes.
93
+
94
+ ## Common Fixes
95
+
96
+ - Model too large/small: return to `game-asset-align` to measure the canonical scale recipe, review, and sync again.
97
+ - Wrong orientation: update the canonical recipe through Stage or `asset align`, then review and sync again; do not add runtime compensation. Tripo image `orientation=align_image` can guide generation, but does not replace canonical review.
98
+ - Animations move out of place: keep exported root motion intact (`animate_in_place=false` on MCP), then strip only horizontal root-position components in code as shown above. Do not rely on MCP `animate_in_place=true` for final quality.
99
+ - 性能开销过高:降低 `face_limit`,仅 H3 可使用 `smart_low_poly`,或降低贴图质量/尺寸、转换时限制面数。
100
+ - Materials too dark/bright: check color space, tone mapping, environment, and light exposure.
101
+ - Collision too complex: build primitive proxies in Three.js and keep Tripo mesh visual-only.
102
+
103
+ ## Final Evidence
104
+
105
+ Report:
106
+
107
+ - MCP tool names used (`evomeme_text_to_mesh`, `evomeme_rig_mesh`, `evomeme_retarget_mesh`, …).
108
+ - 各个已完成生成、绑骨、重定向阶段的网关公共 `task_id`,以及 `job_id` 和 `local_task_id`。
109
+ - 各阶段已下载的 `local_path`、最终 `asset_url`、实际 `mesh_format` 和导入验证结果。
110
+ - Model version and generation/postprocess options (`rig_type`, `animations`, `out_format`, `animate_in_place`).
111
+ - Local CLI commands, canonical asset ID, Stage confirmation status, synced loader/import files, and any clip rename or root-motion strip.
112
+ - Renderer diagnostics before/after import.
113
+ - Screenshot evidence in active gameplay.
@@ -0,0 +1,67 @@
1
+ # Mesh MCP 工具参考
2
+
3
+ 十个本地 `evomemeMCP` Mesh 工具的公共调用约定。按需读取具体操作的参数;以工具 schema 和实际返回结果为准。
4
+
5
+ ## 工具选择
6
+
7
+ | 工具 | 用途 | 参数 |
8
+ | --- | --- | --- |
9
+ | `evomeme_text_to_mesh` | 文本生成模型 | [生成契约](generation-contracts.md) |
10
+ | `evomeme_image_to_mesh` | 单图或多视图共同生成一个模型 | [生成契约](generation-contracts.md) |
11
+ | `evomeme_texture_mesh` | 生成或替换贴图 | [贴图](postprocess-contracts.md#texture) |
12
+ | `evomeme_stylize_mesh` | Lego、voxel、voronoi 或 minecraft 风格化 | [风格化](postprocess-contracts.md#stylize) |
13
+ | `evomeme_segment_mesh` | 拆分模型部件 | [分割](postprocess-contracts.md#segment) |
14
+ | `evomeme_complete_mesh` | 补全部件 | [补全](postprocess-contracts.md#complete) |
15
+ | `evomeme_decimate_mesh` | 减面或重拓扑 | [减面](postprocess-contracts.md#decimate) |
16
+ | `evomeme_convert_mesh` | 转换格式、尺度、轴心或朝向 | [转换](postprocess-contracts.md#convert) |
17
+ | `evomeme_rig_mesh` | 自动绑骨 | [绑骨](postprocess-contracts.md#rig) |
18
+ | `evomeme_retarget_mesh` | 为骨架应用预设动画 | [重定向](postprocess-contracts.md#retarget) |
19
+
20
+ 本地任务通过已鉴权的插件 API 提交请求,等待远端发布完成并下载结果。上游凭据留在服务端;不直连 Tripo,也不根据本地是否配置厂商密钥判断服务可用性。本地处理和游戏集成使用各自对应的工具。
21
+
22
+ ## 公共任务参数
23
+
24
+ | 参数 | 类型 | 行为 |
25
+ | --- | --- | --- |
26
+ | `workspace_dir` | string | 可选工作区路径,默认 MCP 工作目录。多工作区场景建议显式传绝对路径。结果下载到 `assets/mesh/`。 |
27
+ | `client_operation_id` | string | 可选操作标识,限 1–140 位 ASCII 字母、数字、`_`、`-`。省略会新建标识。同一工作区、工具、标识和参数复用同一任务;同标识改参数会冲突。不同操作或阶段使用不同标识。 |
28
+
29
+ ## 返回结果与标识
30
+
31
+ 成功返回为 MCP 文本,包含具名字段和末尾的 `result: <JSON>`。解析其中 JSON 以保留嵌套数据;它不是 HTTP 响应包。成功表示远端任务完成,且主文件已下载并登记到本地资产库。
32
+
33
+ | 字段 | 含义 |
34
+ | --- | --- |
35
+ | `local_task_id` | 本地根任务 ID,不能作为模型来源。 |
36
+ | `client_operation_id` | 恢复或复用本次操作的标识。 |
37
+ | `job_id` | 插件服务端任务 ID,不能作为模型来源。 |
38
+ | `task_id` | 本次操作的网关公共任务 ID;下游必须选择对应已成功阶段的 ID。 |
39
+ | `role` | 根据操作为 `model`、`rigged` 或 `animated`。 |
40
+ | `local_path` | 已下载的主文件。 |
41
+ | `asset_url` | 已托管的主文件 URL。 |
42
+ | `mesh_format` | 实际下载格式;压缩包仍是压缩包。 |
43
+ | `asset_id` | 工作区资产 ID,同时位于 `result.id`。 |
44
+ | `result` | 完整对象,含 `status`、`operation`、`operation_id`、`mime_type`、`bytes` 和 `generation`。 |
45
+ | `result.generation` | 远端回执与结果元数据,含 `output`、`metadata`、`generationParameters`,以及可用的进度、类型、积分、时间字段。保留未知嵌套字段和 URL。 |
46
+
47
+ 生成操作的 `input`/`inputs` 可接受的上游**图像**任务 ID,与网关**模型**任务 ID 属于不同命名空间。`task_` 等前缀不能证明 ID 的归属或任务类型;不要编造 ID 或使用本地 ID 代替。
48
+
49
+ ## 结果就绪与任务串联
50
+
51
+ - 使用成功且非 `isError` 的结果、已下载文件、最终 URL 和实际格式。单独一个 URL,或原始 HTTP 的 `pending=true` 回执,都不能证明完成。
52
+ - MCP 任务负责轮询和下载,正常调用无需另行轮询 HTTP。进入引擎前,验证实际文件能够成功导入。
53
+ - 每个操作下载自己的主结果;串联时保留各阶段文件和 URL。
54
+ - 重定向使用成功的**绑骨** `task_id`,补全使用成功的**分割** `task_id`。生成任务 ID 和裸 URL 不能代替这些特定来源。
55
+ - 保留 `result.generation.output` 的全部链接。仅主 `asset_url` 保证由插件托管,其他链接可能过期。分件任务的主文件可能只是一个部件或压缩包,并非完整组装模型。检查实际部件与动画,不假定名称或顺序。
56
+ - 下载保留实际字节和格式,不能通过改后缀将 FBX/ZIP 变成 GLB;使用转换工具和相应导入方式。
57
+
58
+ ## 失败与恢复
59
+
60
+ 1. 保留 MCP `isError` 原文,以及返回的 `client_operation_id`、`local_task_id`、`job_id`、`stage`。传输断开不代表远端失败,本地 worker 可能仍在运行。
61
+ 2. 查询或下载中断时,以原工作区、原 `client_operation_id` 和完全相同的参数重新调用同一工具。它会等待已有任务、恢复可恢复的中断工作或返回缓存结果,避免主动新建生成任务。
62
+ 3. 提交回执不确定(`NEEDS_ATTENTION`)时需要检查。复用标识不会自动重试已终止的生成失败;不要只为绕过这些状态而更换标识。明确重新生成属于新的付费操作。
63
+ 4. 客户端负责认证更新;无法恢复登录时,先解决返回的认证问题,再恢复原任务。保留上游或审核错误,不自动替换成其他付费操作。
64
+
65
+ ## 角色组合
66
+
67
+ 内部 `character_pipeline` 任务编排可选生成 → 绑骨 → 可选重定向,并逐阶段记录和下载。MCP 只公开上述原子工具,不提供 pipeline 或 rig-check 工具。身体结构与预设要求见[后处理](postprocess-contracts.md#rig)和[动画预设](animation-presets.md)。
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: game-audio
3
+ description: 将已托管的 BGM / SFX 接入 Phaser / Three.js 运行时配置;CDN 清单不够时可经 MCP 文生新 BGM。在游戏需要 CDN/TOS 音频 URL、配置绑定、加载器接入或 AI 生成循环音乐时使用。
4
+ ---
5
+
6
+ # 游戏音频
7
+
8
+ ## 概述
9
+
10
+ 将此技能用于已托管在 CDN 或对象存储中的游戏音频,以及 CDN 清单不够时通过 MCP 生成新的循环 BGM / 可选人声曲。拼出或拿到可加载的音频 URL 后,写入 `public/config.json` 或运行时加载器。
11
+
12
+ **不在此生成短促音效(SFX)**。SFX 仍走 CDN 清单(或用户提供的 URL)。不得编造 CDN 路径;对象键缺失且用户未提供 URL 时,停止并询问。
13
+
14
+ BGM 和 SFX 清单统一使用 `http://game-asset.evomeme.com/`。按照对应参考中的 `bgm/` 或 `sfx/` 前缀及编码后的文件名拼接完整 URL。优先从清单中选择已验证的曲目,并在写入运行时前确认音频 URL 可访问。
15
+
16
+ ## 何时使用此技能
17
+
18
+ - 设计文档、配置文件或用户指定了某首 BGM 或 SFX 的文件名/键,需要给出可加载 URL
19
+ - 填写 `bgm_main`、`audio_bgm_gameplay`、`audio_sfx_click`、`backgroundMusic`、`src`、`url` 等音频字段
20
+ - 用户明确说音频来自公司 CDN、对象存储或固定托管 URL
21
+ - 接入点击音、拾取音、碰撞音、射击音、爆炸音、成功/失败音等游戏反馈音效
22
+ - 用户需要 CDN 清单中没有的**新**循环 BGM 或主题曲(使用下方 MCP 音乐生成)
23
+
24
+ ---
25
+
26
+ ## 阅读顺序
27
+
28
+ 1. 读完本节后,根据任务类型选择并**打开对应参考文档**,不得在未读参考的情况下拼接 CDN URL
29
+ 2. **BGM(循环背景音乐)** 走 CDN:`references/bgm-cdn.md`
30
+ 3. **SFX(短促触发音效)**:`references/sfx-cdn.md`
31
+ 4. 同时涉及 BGM 和 SFX 时,读取两个参考
32
+ 5. 需要生成新曲时,按下方 **经 MCP 生成 BGM** 执行,再用与托管 URL 相同的工作流把返回的 TOS URL 写入配置
33
+
34
+ ---
35
+
36
+ ## BGM 路由
37
+
38
+ - 加载 BGM 参考文档,从中提取 CDN 根、路径前缀和曲目清单
39
+ - 用于循环背景音乐,对应配置键如 `bgm_main`、`audio_bgm_gameplay`、`audio_bgm_menu`、`backgroundMusic`
40
+ - 曲目不在清单中且用户要托管键时,不得编造路径;请用户确认对象键后再配置
41
+ - 用户要的是**新** AI 曲而非清单曲目时,使用下方 MCP 生成
42
+
43
+ 推荐技能:`game-audio`;BGM 参考 `references/bgm-cdn.md`。
44
+
45
+ ## SFX 路由
46
+
47
+ - 加载 `references/sfx-cdn.md`,提取 CDN 根和文件名规则
48
+ - 用于短促触发音效,对应配置键如 `audio_sfx_click`、`audio_sfx_pickup`、`audio_sfx_impact`、`audio_sfx_shoot`、`audio_sfx_explosion`、`audio_sfx_success`、`audio_sfx_fail`
49
+ - 高频触发音效(脚步、拖动、持续碰撞)作为节流或循环播放处理,不逐帧重触发
50
+
51
+ 推荐技能:`game-audio`;SFX 参考 `references/sfx-cdn.md`。
52
+
53
+ ---
54
+
55
+ ## 经 MCP 生成 BGM
56
+
57
+ 当游戏需要 CDN 清单中没有的新循环 BGM 或可选人声曲时,调用 `evomeme_generate_game_music`。
58
+
59
+ 1. 调用时必须把当前工作区根目录绝对路径传给 `workspace_dir`。
60
+ 2. 成功后工具会把音频下载到 `<workspace_dir>/assets/music/`,并返回 TOS URL。
61
+ 3. 将 TOS URL 按与 CDN URL 相同的方式写入配置 / 加载器。运行时禁止从 `assets/music/` 硬编码导入路径。
62
+
63
+ 默认 **纯音乐**(`is_instrumental=true`),适合菜单 / 战斗 / 探索循环 BGM。
64
+
65
+ ### 入参
66
+
67
+ | 参数 | 必填 | 说明 |
68
+ | --- | --- | --- |
69
+ | `prompt` | 是 | 风格、情绪、场景描述 |
70
+ | `is_instrumental` | 否 | 默认 `true`。纯音乐时禁止填 `lyrics` / 开 `lyrics_optimizer` |
71
+ | `lyrics` | 否 | 人声曲歌词;可用 `[Verse]` / `[Chorus]` 等结构标签 |
72
+ | `lyrics_optimizer` | 否 | 人声且未提供歌词时,按 prompt 自动写词 |
73
+ | `aigc_watermark` | 否 | 默认 `false` |
74
+ | `music_model` | 否 | 仅 `music-3.0` |
75
+ | `workspace_dir` | 是(实践上) | 工作区根目录绝对路径 |
76
+ | `client_operation_id` | 否 | 本地任务标识,1–140 位字母、数字、下划线或连字符;恢复时复用同一标识和参数 |
77
+
78
+ 人声曲:设 `is_instrumental=false`,并提供 `lyrics` **或** `lyrics_optimizer=true`。
79
+
80
+ ### 出参(文本)
81
+
82
+ - `job_id`、`tos_url` / `asset_url`、`local_path`、`mime_type`、`bytes`、`status`、`model`、`is_instrumental`
83
+ - `client_operation_id`、`task_id`、`operation_id`、`asset_id`、`kind=audio`,用于关联本地任务、步骤和音频资产
84
+
85
+ 建议首次调用就提供并保存 `client_operation_id`。连接断开不会取消已启动的后台任务;轮询或下载中断后,在同一工作区用相同标识和参数再次调用,可复用原任务。成功任务直接返回保存的结果。新标识会创建新的生成任务;不要用它绕过 `NEEDS_ATTENTION`(提交结果不明)或 `FAILED`,应先核对错误。所有进程停止时不会自动恢复,需再次调用或启动该工作区的任务调度器。
86
+
87
+ ---
88
+
89
+ ## 工作流
90
+
91
+ 1. 确认任务类型:托管 BGM、托管 SFX、生成 BGM,或组合
92
+ 2. 托管音频:读取对应参考,提取 CDN 根、必需前缀和文件名规则;找到确切对象键;按列出的根地址拼出完整 URL
93
+ 3. 生成 BGM:用 `workspace_dir` 调用 `evomeme_generate_game_music`,使用返回的 TOS URL
94
+ 4. 将 URL 写入对应配置键、清单或运行时加载代码,保留项目现有音频架构
95
+ 5. 验证控制标志:BGM 遵守 `audio_music_enabled`,SFX 遵守 `audio_sfx_enabled`;游戏内循环不泄漏到菜单或结算页
96
+
97
+ ### 写入 2D 项目配置(`public/config.json`)
98
+
99
+ ```json
100
+ "bgm_main": { "value": "http://game-asset.evomeme.com/bgm/2048.mp3", "type": "audio", "label": "背景音乐" },
101
+ "sfx_click": { "value": "http://game-asset.evomeme.com/sfx/%E7%82%B9%E5%87%BB.mp3", "type": "audio", "label": "点击音效" }
102
+ ```
103
+
104
+ ### 写入 3D 项目配置
105
+
106
+ 按项目现有配置结构写入,config 键名遵循 `audio_bgm_*` / `audio_sfx_*` 命名规范。
107
+
108
+ ---
109
+
110
+ ## 护栏
111
+
112
+ - 不编造文件名、CDN 域名、目录前缀或百分比编码片段
113
+ - 不静默替换 BGM 和 SFX 的根路径
114
+ - 不用音乐 MCP 工具生成 SFX;SFX 仍走 CDN 清单或用户提供的 URL
115
+ - 运行时加载器使用清单或 MCP 结果中的托管音频 URL
116
+ - 对象键缺失或用户未提供完整 URL(且未要求生成)时,停止并要求用户提供或更新参考,不猜测
117
+
118
+ ## References
119
+
120
+ - BGM CDN 清单:`references/bgm-cdn.md`
121
+ - SFX CDN 清单:`references/sfx-cdn.md`
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Game Audio"
3
+ short_description: "将已托管或 MCP 生成的 BGM/SFX 接入游戏配置与播放流程"
4
+ default_prompt: "请使用 $game-audio 为我的游戏选择或生成合适的背景音乐和音效,并接入现有配置与播放流程。"
@@ -0,0 +1,123 @@
1
+ # BGM CDN And URL Catalog
2
+
3
+ This file is the authoritative source for hosted background-music routing. Read `../SKILL.md` first, then use this reference to compose final audio URLs for tracks stored under the BGM bucket path.
4
+
5
+ ## CDN Root
6
+
7
+ Production public CDN root:
8
+
9
+ ```text
10
+ http://game-asset.evomeme.com/
11
+ ```
12
+
13
+ Use this root for every catalog entry.
14
+
15
+ ## Required Prefix
16
+
17
+ All hosted background music objects live under:
18
+
19
+ ```text
20
+ bgm/
21
+ ```
22
+
23
+ ## Final URL Shape
24
+
25
+ ```text
26
+ {CDN root}bgm/{encoded filename}
27
+ ```
28
+
29
+ - Keep the CDN root exactly as listed.
30
+ - Keep the `bgm/` prefix exactly as listed.
31
+ - The filename segment includes the extension such as `.mp3` or `.m4a`.
32
+ - Encode the filename segment with UTF-8 percent-encoding when it contains non-ASCII or reserved characters.
33
+
34
+ ## Encoding Rule
35
+
36
+ - Use the full stored filename, including extension, as the source string for `encodeURIComponent`.
37
+ - Encode only the filename segment, not the entire URL.
38
+ - Keep spaces encoded as `%20`.
39
+ - Common examples:
40
+ - `–` -> `%E2%80%93`
41
+ - `(` -> `%EF%BC%88`
42
+ - `)` -> `%EF%BC%89`
43
+
44
+ ## Track Catalog
45
+
46
+ Final URL = `http://game-asset.evomeme.com/bgm/` + filename fragment below.
47
+
48
+ | Object key | Filename fragment |
49
+ | --- | --- |
50
+ | `2048.mp3` | `2048.mp3` |
51
+ | `Arrows – Puzzle Escape(箭头逃脱).mp3` | `Arrows%20%E2%80%93%20Puzzle%20Escape%EF%BC%88%E7%AE%AD%E5%A4%B4%E9%80%83%E8%84%B1%EF%BC%89.mp3` |
52
+ | `Ballz 打砖块.mp3` | `Ballz%20%E6%89%93%E7%A0%96%E5%9D%97.mp3` |
53
+ | `Block Blast! 方块消除1.mp3` | `Block%20Blast%21%20%E6%96%B9%E5%9D%97%E6%B6%88%E9%99%A41.mp3` |
54
+ | `Block Blast! 方块消除2.mp3` | `Block%20Blast%21%20%E6%96%B9%E5%9D%97%E6%B6%88%E9%99%A42.mp3` |
55
+ | `DOODLE JUMP2.mp3` | `DOODLE%20JUMP2.mp3` |
56
+ | `Doodle Jump.mp3` | `Doodle%20Jump.mp3` |
57
+ | `Flappy Bird1.mp3` | `Flappy%20Bird1.mp3` |
58
+ | `Flappy Bird2.mp3` | `Flappy%20Bird2.mp3` |
59
+ | `Vita Mahjong 麻将配对1.mp3` | `Vita%20Mahjong%20%E9%BA%BB%E5%B0%86%E9%85%8D%E5%AF%B91.mp3` |
60
+ | `Vita Mahjong 麻将配对2.mp3` | `Vita%20Mahjong%20%E9%BA%BB%E5%B0%86%E9%85%8D%E5%AF%B92.mp3` |
61
+ | `_疯狂的鸽子1.mp3` | `_%E7%96%AF%E7%8B%82%E7%9A%84%E9%B8%BD%E5%AD%901.mp3` |
62
+ | `_疯狂的鸽子2.mp3` | `_%E7%96%AF%E7%8B%82%E7%9A%84%E9%B8%BD%E5%AD%902.mp3` |
63
+ | `三消 _ 二合1.mp3` | `%E4%B8%89%E6%B6%88%20_%20%E4%BA%8C%E5%90%881.mp3` |
64
+ | `三消 _ 二合2.mp3` | `%E4%B8%89%E6%B6%88%20_%20%E4%BA%8C%E5%90%882.mp3` |
65
+ | `人格测试.mp3` | `%E4%BA%BA%E6%A0%BC%E6%B5%8B%E8%AF%95.mp3` |
66
+ | `休闲小镇.mp3` | `%E4%BC%91%E9%97%B2%E5%B0%8F%E9%95%87.mp3` |
67
+ | `休闲轻快.mp3` | `%E4%BC%91%E9%97%B2%E8%BD%BB%E5%BF%AB.mp3` |
68
+ | `休闲拼图1.mp3` | `%E4%BC%91%E9%97%B2%E6%8B%BC%E5%9B%BE1.mp3` |
69
+ | `休闲拼图2.mp3` | `%E4%BC%91%E9%97%B2%E6%8B%BC%E5%9B%BE2.mp3` |
70
+ | `冰壶游戏.mp3` | `%E5%86%B0%E5%A3%B6%E6%B8%B8%E6%88%8F.mp3` |
71
+ | `割绳子(Cut the Rope)1.mp3` | `%E5%89%B2%E7%BB%B3%E5%AD%90%EF%BC%88Cut%20the%20Rope%EF%BC%891.mp3` |
72
+ | `割绳子(Cut the Rope)2.mp3` | `%E5%89%B2%E7%BB%B3%E5%AD%90%EF%BC%88Cut%20the%20Rope%EF%BC%892.mp3` |
73
+ | `割草游戏1.mp3` | `%E5%89%B2%E8%8D%89%E6%B8%B8%E6%88%8F1.mp3` |
74
+ | `割草游戏2.mp3` | `%E5%89%B2%E8%8D%89%E6%B8%B8%E6%88%8F2.mp3` |
75
+ | `割草游戏3.mp3` | `%E5%89%B2%E8%8D%89%E6%B8%B8%E6%88%8F3.mp3` |
76
+ | `华容道 _ 拼图1.mp3` | `%E5%8D%8E%E5%AE%B9%E9%81%93%20_%20%E6%8B%BC%E5%9B%BE1.mp3` |
77
+ | `华容道 _ 拼图_2.mp3` | `%E5%8D%8E%E5%AE%B9%E9%81%93%20_%20%E6%8B%BC%E5%9B%BE_2.mp3` |
78
+ | `发泄暴打.mp3` | `%E5%8F%91%E6%B3%84%E6%9A%B4%E6%89%93.mp3` |
79
+ | `叠房子.mp3` | `%E5%8F%A0%E6%88%BF%E5%AD%90.mp3` |
80
+ | `吃分避障.mp3` | `%E5%90%83%E5%88%86%E9%81%BF%E9%9A%9C.mp3` |
81
+ | `合成大西瓜1.mp3` | `%E5%90%88%E6%88%90%E5%A4%A7%E8%A5%BF%E7%93%9C1.mp3` |
82
+ | `合成大西瓜2.mp3` | `%E5%90%88%E6%88%90%E5%A4%A7%E8%A5%BF%E7%93%9C2.mp3` |
83
+ | `哈基米南北绿豆.mp3` | `%E5%93%88%E5%9F%BA%E7%B1%B3%E5%8D%97%E5%8C%97%E7%BB%BF%E8%B1%86.mp3` |
84
+ | `场景模拟对话1.mp3` | `%E5%9C%BA%E6%99%AF%E6%A8%A1%E6%8B%9F%E5%AF%B9%E8%AF%9D1.mp3` |
85
+ | `场景模拟对话2.mp3` | `%E5%9C%BA%E6%99%AF%E6%A8%A1%E6%8B%9F%E5%AF%B9%E8%AF%9D2.mp3` |
86
+ | `塔防.mp3` | `%E5%A1%94%E9%98%B2.mp3` |
87
+ | `对抗类.mp3` | `%E5%AF%B9%E6%8A%97%E7%B1%BB.mp3` |
88
+ | `奇幻冒险.m4a` | `%E5%A5%87%E5%B9%BB%E5%86%92%E9%99%A9.m4a` |
89
+ | `愤怒的小鸟.mp3` | `%E6%84%A4%E6%80%92%E7%9A%84%E5%B0%8F%E9%B8%9F.mp3` |
90
+ | `战斗.mp3` | `%E6%88%98%E6%96%97.mp3` |
91
+ | `打地鼠.mp3` | `%E6%89%93%E5%9C%B0%E9%BC%A0.mp3` |
92
+ | `搞笑.mp3` | `%E6%90%9E%E7%AC%91.mp3` |
93
+ | `拧螺丝1.mp3` | `%E6%8B%A7%E8%9E%BA%E4%B8%9D1.mp3` |
94
+ | `拧螺丝2.mp3` | `%E6%8B%A7%E8%9E%BA%E4%B8%9D2.mp3` |
95
+ | `数值生存.mp3` | `%E6%95%B0%E5%80%BC%E7%94%9F%E5%AD%98.mp3` |
96
+ | `数字门跑酷1.mp3` | `%E6%95%B0%E5%AD%97%E9%97%A8%E8%B7%91%E9%85%B71.mp3` |
97
+ | `数字门跑酷2.mp3` | `%E6%95%B0%E5%AD%97%E9%97%A8%E8%B7%91%E9%85%B72.mp3` |
98
+ | `是男人就下 100 层.mp3` | `%E6%98%AF%E7%94%B7%E4%BA%BA%E5%B0%B1%E4%B8%8B%20100%20%E5%B1%82.mp3` |
99
+ | `是男人就下100层2.mp3` | `%E6%98%AF%E7%94%B7%E4%BA%BA%E5%B0%B1%E4%B8%8B100%E5%B1%822.mp3` |
100
+ | `校准类.mp3` | `%E6%A0%A1%E5%87%86%E7%B1%BB.mp3` |
101
+ | `横板过关.mp3` | `%E6%A8%AA%E6%9D%BF%E8%BF%87%E5%85%B3.mp3` |
102
+ | `沙盒模拟类1.mp3` | `%E6%B2%99%E7%9B%92%E6%A8%A1%E6%8B%9F%E7%B1%BB1.mp3` |
103
+ | `沙盒模拟类2.mp3` | `%E6%B2%99%E7%9B%92%E6%A8%A1%E6%8B%9F%E7%B1%BB2.mp3` |
104
+ | `沙盒模拟类3.mp3` | `%E6%B2%99%E7%9B%92%E6%A8%A1%E6%8B%9F%E7%B1%BB3.mp3` |
105
+ | `祖玛1.mp3` | `%E7%A5%96%E7%8E%9B1.mp3` |
106
+ | `祖玛2.mp3` | `%E7%A5%96%E7%8E%9B2.mp3` |
107
+ | `经营养成.mp3` | `%E7%BB%8F%E8%90%A5%E5%85%BB%E6%88%90.mp3` |
108
+ | `经营养成2.mp3` | `%E7%BB%8F%E8%90%A5%E5%85%BB%E6%88%902.mp3` |
109
+ | `背包堆叠(Stack_Backpack).mp3` | `%E8%83%8C%E5%8C%85%E5%A0%86%E5%8F%A0%EF%BC%88Stack_Backpack%EF%BC%89.mp3` |
110
+ | `节奏类(音游点击).mp3` | `%E8%8A%82%E5%A5%8F%E7%B1%BB%EF%BC%88%E9%9F%B3%E6%B8%B8%E7%82%B9%E5%87%BB%EF%BC%89.mp3` |
111
+ | `解绳游戏(Tangled Rope)1.mp3` | `%E8%A7%A3%E7%BB%B3%E6%B8%B8%E6%88%8F%EF%BC%88Tangled%20Rope%EF%BC%891.mp3` |
112
+ | `解绳游戏(Tangled Rope)2.mp3` | `%E8%A7%A3%E7%BB%B3%E6%B8%B8%E6%88%8F%EF%BC%88Tangled%20Rope%EF%BC%892.mp3` |
113
+ | `贪吃蛇.mp3` | `%E8%B4%AA%E5%90%83%E8%9B%87.mp3` |
114
+ | `贪吃蛇2.mp3` | `%E8%B4%AA%E5%90%83%E8%9B%872.mp3` |
115
+ | `跑酷避障.mp3` | `%E8%B7%91%E9%85%B7%E9%81%BF%E9%9A%9C.mp3` |
116
+ | `跳一跳.mp3` | `%E8%B7%B3%E4%B8%80%E8%B7%B3.mp3` |
117
+ | `跳一跳2.mp3` | `%E8%B7%B3%E4%B8%80%E8%B7%B32.mp3` |
118
+ | `连击挑战1.mp3` | `%E8%BF%9E%E5%87%BB%E6%8C%91%E6%88%981.mp3` |
119
+ | `连击挑战2.mp3` | `%E8%BF%9E%E5%87%BB%E6%8C%91%E6%88%982.mp3` |
120
+ | `鉴别伪人.mp3` | `%E9%89%B4%E5%88%AB%E4%BC%AA%E4%BA%BA.mp3` |
121
+ | `雷霆战机.mp3` | `%E9%9B%B7%E9%9C%86%E6%88%98%E6%9C%BA.mp3` |
122
+ | `鬼抓人.mp3` | `%E9%AC%BC%E6%8A%93%E4%BA%BA.mp3` |
123
+ | `黑洞(Tiles In Hole_ Black Hole).mp3` | `%E9%BB%91%E6%B4%9E%EF%BC%88Tiles%20In%20Hole_%20Black%20Hole%EF%BC%89.mp3` |