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,121 @@
1
+ ---
2
+ name: game-audio
3
+ description: Connect hosted BGM / SFX to Phaser / Three.js runtime configuration, or generate new BGM via MCP when CDN tracks are not enough. Use when the game needs CDN/TOS audio URLs, configuration binding, loader integration, or AI-generated looping music.
4
+ ---
5
+
6
+ # Game Audio
7
+
8
+ ## Overview
9
+
10
+ Use this skill for game audio already hosted on a CDN or object storage, and for generating new looping BGM / optional vocal tracks via MCP when the catalog is not enough. Compose or obtain loadable audio URLs, then write them into `public/config.json` or the runtime loader.
11
+
12
+ **SFX are not generated here.** Short sound effects still come from the CDN catalog (or a user-provided URL). Do not invent CDN paths; if an object key is missing and the user has not provided a URL, stop and ask.
13
+
14
+ The BGM and SFX catalogs use `http://game-asset.evomeme.com/`. Compose each URL with the `bgm/` or `sfx/` prefix and the encoded filename from the corresponding reference. Choose verified tracks from the catalogs and confirm that audio URLs are accessible before adding them to the runtime.
15
+
16
+ ## When To Use This Skill
17
+
18
+ - A design document, configuration file, or the user specifies the filename/key of a BGM or SFX track and a loadable URL is needed
19
+ - Filling audio fields such as `bgm_main`, `audio_bgm_gameplay`, `audio_sfx_click`, `backgroundMusic`, `src`, `url`
20
+ - The user explicitly says the audio comes from the company CDN, object storage, or a fixed hosted URL
21
+ - Integrating game feedback sound effects such as click, pickup, collision, shooting, explosion, success/failure sounds
22
+ - The user needs a **new** looping BGM or theme that is not in the CDN catalog (use MCP music generation below)
23
+
24
+ ---
25
+
26
+ ## Reading Order
27
+
28
+ 1. After reading this section, choose and **open the corresponding reference document** according to the task type; do not compose CDN URLs without reading the reference
29
+ 2. **BGM (looping background music)** from CDN: `references/bgm-cdn.md`
30
+ 3. **SFX (short triggered sound effects)**: `references/sfx-cdn.md`
31
+ 4. When both BGM and SFX are involved, read both references
32
+ 5. When generating a new track, follow **Generate BGM via MCP** below, then write the returned TOS URL into config using the same workflow as hosted URLs
33
+
34
+ ---
35
+
36
+ ## BGM Routing
37
+
38
+ - Load the BGM reference document and extract the CDN root, path prefix, and track catalog from it
39
+ - Used for looping background music, with configuration keys such as `bgm_main`, `audio_bgm_gameplay`, `audio_bgm_menu`, `backgroundMusic`
40
+ - When a track is not in the catalog and the user wants a hosted key, do not invent a path; ask the user to confirm the object key before configuring it
41
+ - When the user wants a **new** AI track instead of a catalog entry, use MCP generation (below)
42
+
43
+ Recommended skill: `game-audio`; BGM reference `references/bgm-cdn.md`.
44
+
45
+ ## SFX Routing
46
+
47
+ - Load `references/sfx-cdn.md` and extract the CDN root and filename rules
48
+ - Used for short triggered sound effects, with configuration keys such as `audio_sfx_click`, `audio_sfx_pickup`, `audio_sfx_impact`, `audio_sfx_shoot`, `audio_sfx_explosion`, `audio_sfx_success`, `audio_sfx_fail`
49
+ - High-frequency triggered sound effects (footsteps, dragging, continuous collisions) are handled through throttling or looping playback, not retriggered every frame
50
+
51
+ Recommended skill: `game-audio`; SFX reference `references/sfx-cdn.md`.
52
+
53
+ ---
54
+
55
+ ## Generate BGM via MCP
56
+
57
+ Use `evomeme_generate_game_music` when the game needs a new looping BGM or optional vocal track that is not in the CDN catalog.
58
+
59
+ 1. Pass the absolute workspace root as `workspace_dir`.
60
+ 2. On success the tool downloads audio under `<workspace_dir>/assets/music/` and returns a TOS URL.
61
+ 3. Write the TOS URL into config / loader the same way as a CDN URL. Runtime must not hardcode imports from `assets/music/`.
62
+
63
+ Default is **instrumental** (`is_instrumental=true`), suitable for menu / combat / exploration loops.
64
+
65
+ ### Inputs
66
+
67
+ | Parameter | Required | Description |
68
+ | --- | --- | --- |
69
+ | `prompt` | Yes | Style, mood, and scene |
70
+ | `is_instrumental` | No | Default `true`. When instrumental, do not set `lyrics` or enable `lyrics_optimizer` |
71
+ | `lyrics` | No | Lyrics for vocal tracks; structure tags such as `[Verse]` / `[Chorus]` are allowed |
72
+ | `lyrics_optimizer` | No | For vocal tracks without lyrics, auto-write lyrics from the prompt |
73
+ | `aigc_watermark` | No | Default `false` |
74
+ | `music_model` | No | Only `music-3.0` |
75
+ | `workspace_dir` | Yes (in practice) | Absolute workspace root |
76
+ | `client_operation_id` | No | Local task ID: 1–140 letters, digits, underscores or hyphens; reuse it and the same parameters for recovery |
77
+
78
+ Vocal track: set `is_instrumental=false`, and provide `lyrics` **or** `lyrics_optimizer=true`.
79
+
80
+ ### Outputs (text)
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` identify the local task, step and audio asset
84
+
85
+ Prefer supplying and saving `client_operation_id` on the first call. Disconnecting does not cancel a running worker. After polling or download is interrupted, call again with the same ID, workspace and parameters to reuse the original task. Completed tasks return their saved result. A new ID starts a new generation; inspect the error before creating a replacement for `NEEDS_ATTENTION` (unknown submission outcome) or `FAILED`. With all processes stopped, recovery requires another call or starting the workspace task scheduler.
86
+
87
+ ---
88
+
89
+ ## Workflow
90
+
91
+ 1. Confirm the task type: hosted BGM, hosted SFX, generate BGM, or a mix
92
+ 2. For hosted audio: read the corresponding reference and extract the CDN root, required prefix, and filename rules; find the exact object key; compose the full URL using the listed root
93
+ 3. For generated BGM: call `evomeme_generate_game_music` with `workspace_dir`, then use the returned TOS URL
94
+ 4. Write the URL into the corresponding configuration key, manifest, or runtime loading code, preserving the project's existing audio architecture
95
+ 5. Verify control flags: BGM obeys `audio_music_enabled`, SFX obeys `audio_sfx_enabled`; in-game loops do not leak into the menu or results page
96
+
97
+ ### Writing 2D Project Configuration (`public/config.json`)
98
+
99
+ ```json
100
+ "bgm_main": { "value": "http://game-asset.evomeme.com/bgm/2048.mp3", "type": "audio", "label": "Background Music" },
101
+ "sfx_click": { "value": "http://game-asset.evomeme.com/sfx/%E7%82%B9%E5%87%BB.mp3", "type": "audio", "label": "Click Sound Effect" }
102
+ ```
103
+
104
+ ### Writing 3D Project Configuration
105
+
106
+ Write according to the project's existing configuration structure; config key names follow the `audio_bgm_*` / `audio_sfx_*` naming convention.
107
+
108
+ ---
109
+
110
+ ## Guardrails
111
+
112
+ - Do not invent filenames, CDN domains, directory prefixes, or percent-encoded fragments
113
+ - Do not silently swap the root paths for BGM and SFX
114
+ - Do not generate SFX with the music MCP tool; SFX stay on the CDN catalog or user-provided URLs
115
+ - Runtime loaders use the hosted audio URL from the catalog or MCP result
116
+ - When the object key is missing or the user has not provided a full URL (and generation was not requested), stop and require the user to provide it or update the reference; do not guess
117
+
118
+ ## References
119
+
120
+ - BGM CDN catalog: `references/bgm-cdn.md`
121
+ - SFX CDN catalog: `references/sfx-cdn.md`
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Game Audio"
3
+ short_description: "Wire hosted or MCP-generated BGM/SFX into game config and playback"
4
+ default_prompt: "Please use $game-audio to choose or generate suitable background music and sound effects for my game, and integrate them into the existing configuration and playback flow."
@@ -1,20 +1,16 @@
1
1
  # BGM CDN And URL Catalog
2
2
 
3
- This file is the authoritative source for hosted background-music routing. Read `../SKILL.md` first, then use this reference to compose final HTTPS URLs for tracks stored under the BGM bucket path.
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
4
 
5
- ## CDN Roots
5
+ ## CDN Root
6
6
 
7
- Primary public CDN root:
7
+ Production public CDN root:
8
8
 
9
9
  ```text
10
- https://vibe-writing-dev-public.tos-cn-beijing.volces.com/
10
+ http://game-asset.evomeme.com/
11
11
  ```
12
12
 
13
- Secondary root that may be used only when the user explicitly provides a full URL or confirms that a track lives there:
14
-
15
- ```text
16
- https://ppy-test.tos-cn-beijing.volces.com/
17
- ```
13
+ Use this root for every catalog entry.
18
14
 
19
15
  ## Required Prefix
20
16
 
@@ -47,7 +43,7 @@ bgm/
47
43
 
48
44
  ## Track Catalog
49
45
 
50
- Final URL = `https://vibe-writing-dev-public.tos-cn-beijing.volces.com/bgm/` + filename fragment below unless the user explicitly confirms the secondary CDN root.
46
+ Final URL = `http://game-asset.evomeme.com/bgm/` + filename fragment below.
51
47
 
52
48
  | Object key | Filename fragment |
53
49
  | --- | --- |
@@ -84,7 +80,7 @@ Final URL = `https://vibe-writing-dev-public.tos-cn-beijing.volces.com/bgm/` + f
84
80
  | `吃分避障.mp3` | `%E5%90%83%E5%88%86%E9%81%BF%E9%9A%9C.mp3` |
85
81
  | `合成大西瓜1.mp3` | `%E5%90%88%E6%88%90%E5%A4%A7%E8%A5%BF%E7%93%9C1.mp3` |
86
82
  | `合成大西瓜2.mp3` | `%E5%90%88%E6%88%90%E5%A4%A7%E8%A5%BF%E7%93%9C2.mp3` |
87
- | `哈吉米南北绿豆.mp3` | `%E5%93%88%E5%9F%BA%E7%B1%B3%E5%8D%97%E5%8C%97%E7%BB%BF%E8%B1%86.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` |
88
84
  | `场景模拟对话1.mp3` | `%E5%9C%BA%E6%99%AF%E6%A8%A1%E6%8B%9F%E5%AF%B9%E8%AF%9D1.mp3` |
89
85
  | `场景模拟对话2.mp3` | `%E5%9C%BA%E6%99%AF%E6%A8%A1%E6%8B%9F%E5%AF%B9%E8%AF%9D2.mp3` |
90
86
  | `塔防.mp3` | `%E5%A1%94%E9%98%B2.mp3` |
@@ -1,17 +1,19 @@
1
1
  # SFX CDN And URL Catalog
2
2
 
3
- This file is the authoritative source for hosted sound-effect routing. Read `../SKILL.md` first, then use this reference to compose final HTTPS URLs for short feedback audio stored under the SFX bucket path.
3
+ This file is the authoritative source for hosted sound-effect routing. Read `../SKILL.md` first, then use this reference to compose final audio URLs for short feedback audio stored under the SFX bucket path.
4
4
 
5
5
  This catalog is for audio feedback only. Do not use it for canvas particles, trails, sparks, or other visual VFX implementations.
6
6
 
7
7
  ## CDN Root
8
8
 
9
- Public CDN root:
9
+ Production public CDN root:
10
10
 
11
11
  ```text
12
- https://ppy-test.tos-cn-beijing.volces.com/
12
+ http://game-asset.evomeme.com/
13
13
  ```
14
14
 
15
+ Use this root for every catalog entry.
16
+
15
17
  ## Required Prefix
16
18
 
17
19
  All hosted gameplay and UI sound effects live under:
@@ -39,7 +41,7 @@ sfx/
39
41
 
40
42
  ## Sound Catalog
41
43
 
42
- Final URL = `https://ppy-test.tos-cn-beijing.volces.com/sfx/` + filename fragment below.
44
+ Final URL = `http://game-asset.evomeme.com/sfx/` + filename fragment below.
43
45
 
44
46
  | Object key | Filename fragment |
45
47
  | --- | --- |
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: game-character-view-generator
3
+ description: Generate character four-view or eight-direction sheets through MCP from an existing reference, reusing supplied four views or generating them automatically. Use to preserve appearance, clothing and style across views. Use their respective tools for ordinary image generation, cutout or animation.
4
+ ---
5
+
6
+ # Character Four Views and Eight Directions
7
+
8
+ ## Choose the Capability
9
+
10
+ | Tool | Action and generated output | When to use |
11
+ | --- | --- | --- |
12
+ | `evomeme_generate_four_view` (Character Four Views) | Generate one 3024×1296 sheet containing front, back, left-side and right-side views of the reference character; save it under `assets/`. | Complete a character design, inspect clothing and body surfaces, or prepare a reference for eight directions. |
13
+ | `evomeme_generate_eight_direction` (Character Eight Directions) | Generate one 2048×2048 sheet in a 3×3 grid, containing eight gameplay orientations and a blank center, from a character reference and optional four views; save it under `assets/`. | Prepare appearances for a character that moves or turns in eight directions. |
14
+
15
+ ## What Four Views Mean
16
+
17
+ Four views show the same character from four observation positions:
18
+
19
+ | View | Observation position | Visible features |
20
+ | --- | --- | --- |
21
+ | Front | In front of the character, looking toward it | Face, chest and front of clothing. |
22
+ | Back | Behind the character, looking toward it | Back of the head, body and clothing. |
23
+ | Left side | On the character's own left | Left-side silhouette and equipment. |
24
+ | Right side | On the character's own right | Right-side silhouette and equipment. |
25
+
26
+ Left and right mean the **character's own sides**, not the sides of the image. Preserve design, proportions, clothing and style across views. These describe appearance, not four consecutive actions. The shared prompt requests these four views without specifying fixed cells or ordering; inspect the actual image before locating views. Output is one sheet, not four separate files.
27
+
28
+ ## What Eight Directions Mean
29
+
30
+ An eight-direction sheet shows up, up-right, right, down-right, down, down-left, left and up-left. Directions use **game screen coordinates**: up is the top of the screen, down is the bottom, and left/right are its sides. They describe where the character faces, not where its cell is positioned.
31
+
32
+ | Facing direction | Meaning |
33
+ | --- | --- |
34
+ | Down ↓ | Toward the bottom of the screen; mainly the character's front is visible. |
35
+ | Down-right ↘ | Toward the lower right; front and side are visible. |
36
+ | Down-left ↙ | Toward the lower left; front and the other side are visible. |
37
+ | Right → | Toward the right edge; a side view. |
38
+ | Left ← | Toward the left edge; the other side view. |
39
+ | Up-right ↗ | Toward the upper right; back and side are visible. |
40
+ | Up ↑ | Toward the top of the screen; mainly the character's back is visible. |
41
+ | Up-left ↖ | Toward the upper left; back and the other side are visible. |
42
+
43
+ The prompt shared with the canvas requests this 3×3 arrangement. **Cell position does not indicate facing direction**:
44
+
45
+ | Left column | Middle column | Right column |
46
+ | --- | --- | --- |
47
+ | Down-right ↘ | Down ↓ | Down-left ↙ |
48
+ | Right → | Blank | Left ← |
49
+ | Up-right ↗ | Up ↑ | Up-left ↖ |
50
+
51
+ Output is one directional sheet, not eight separate images or eight animation frames. Keep the same character, proportions and style in all cells. The reference and prompt determine the top-down or oblique viewing angle. The tool does not split the sheet; inspect generated directions and layout as needed.
52
+
53
+ ## Prepare References for Both Tools
54
+
55
+ Before invoking either the four-view or eight-direction MCP tool, you MUST ensure the character reference and any supplied four-view sheet are under this workspace's `assets/`. Locate readable files for uploaded attachments, conversation images and images in other directories, then copy them into `assets/` or a subdirectory. Download accessible image URLs first. Verify the copied files exist and are readable. Use new filenames for conflicting names with different content to avoid overwriting assets. If the actual file cannot be obtained, explain the missing source and stop that call; do not invent paths or IDs.
56
+
57
+ Reuse images already under this workspace's `assets/`, and reuse returned `asset_id` for generated images. An asset ID is the path relative to the workspace root: `D:/my-game/assets/references/hero.png` maps to `assets/references/hero.png`. Pass the character image ID as `character_reference_id`, a supplied four-view ID as `four_view_id`, and explicitly pass the same absolute workspace root as `workspace_dir`. Do not pass original attachment absolute paths or URLs in ID fields. This preserves provenance between workspace assets so the canvas can display dependency connections.
58
+
59
+ ## Four-View MCP
60
+
61
+ | Parameter | Required | Description |
62
+ | --- | --- | --- |
63
+ | `character_reference_id` | Yes | One character reference image asset ID, not a remote URL or absolute path. |
64
+ | `prompt` | No | Additional appearance, clothing, material, proportion and style requirements. |
65
+ | `model` | No | `asset-max`, `asset-pro` or `asset-lite`; default `asset-max`. |
66
+ | `background_color` | No | Background in `#RRGGBB` format; default `#ff00ff`. |
67
+ | `transparent_background` | No | Default `false`; `true` requires `asset-max`. |
68
+ | `workspace_dir` | No | Absolute current workspace root; pass it explicitly. |
69
+
70
+ Size is fixed at `3024x1296`; do not pass `size`. The shared canvas image function constructs the four-view layout prompt. Focus additional instructions on character features to preserve, without requesting unrelated characters, animation frames or extra views.
71
+
72
+ ```json
73
+ {
74
+ "character_reference_id": "assets/hero.png",
75
+ "prompt": "Preserve the reference character's silver armor, red cape, proportions and art style",
76
+ "model": "asset-max",
77
+ "transparent_background": true,
78
+ "workspace_dir": "D:/my-game"
79
+ }
80
+ ```
81
+
82
+ The tool waits for completion and saves one four-view sheet under workspace `assets/`. It returns text metadata including `asset_id`, `local_path`, `mime_type`, `job_id`, `asset_url`/`tos_url` and status, without image Base64. Record these values and inspect character consistency and complete views with an available IDE image viewer when needed.
83
+
84
+ The tool does not automatically split, cut out or remove colors. Prefer a supported model and transparency setting when a transparent result is required. Process existing opaque output separately with `evomeme_cutout_game_image`, or `evomeme_color_key` if smart cutout is unavailable. On failure, read the specific error with `isError: true` and retain the reference. Do not blindly resubmit generation after an interrupted status query.
85
+
86
+ ## Eight-Direction MCP
87
+
88
+ Eight-direction generation creates eight character orientations for gameplay, not an animation sequence. It shares the canvas image workflow and requires one `character_reference_id`. Model, background and workspace parameters match the four-view tool. Output is a fixed `2048x2048` sheet with a 3×3 layout; do not pass `size`. The tool does not automatically split it.
89
+
90
+ Additional parameters:
91
+
92
+ | Parameter | Required | Description |
93
+ | --- | --- | --- |
94
+ | `four_view_id` | No | Existing workspace four-view image asset ID; accepts `asset_id` returned by the four-view MCP tool. |
95
+ | `auto_generate_four_view` | No | Default `true`: without supplied four views, generate four views and then eight directions, using two image generation requests. `false` uses the character reference directly. Ignored when `four_view_id` is supplied, preventing redundant four-view generation. |
96
+
97
+ Prefer reusing existing four views. With only a character reference, invoke the eight-direction tool directly to inherit the default four-view workflow; there is no need to separately call the four-view MCP tool and then enable automatic generation.
98
+
99
+ ```json
100
+ {
101
+ "character_reference_id": "assets/hero.png",
102
+ "four_view_id": "assets/four-view.png",
103
+ "prompt": "Preserve silver armor, red cape and character proportions across directions",
104
+ "model": "asset-max",
105
+ "transparent_background": true,
106
+ "workspace_dir": "D:/my-game"
107
+ }
108
+ ```
109
+
110
+ Results include the final eight-direction `asset_id`, `local_path` and URL, plus `four_view_source` (`provided`, `generated` or `character`). When four views are used, results also include `four_view_asset_id`, `four_view_local_path` and `four_view_asset_url`; automatic generation additionally returns `four_view_job_id`. Intermediate four views and the final sheet are saved under `assets/`, with task records shared by MCP and the canvas. If eight-direction generation fails after four views complete, the intermediate file remains. Check workspace task records or the canvas for its asset ID and supply it as `four_view_id` when continuing, avoiding redundant generation.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Character Four Views and Eight Directions"
3
+ short_description: "Generate character four views or eight-direction sheets"
4
+ default_prompt: "Use $game-character-view-generator to generate character four views or eight-direction assets, reusing existing four views when available."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: game-demo
3
+ description: After the game engine and tech stack are clear, read the game design document and prioritize code safety and first-delivery success while building the file structure, code framework, and core systems for the minimal runnable Demo. Code and image generation proceed in parallel; all game image assets must use generated images, and SVG, line drawing, or large solid-color assets are prohibited. Use when creating a game Demo from scratch, turning a design document into the first playable version, or establishing the foundational project for later development.
4
+ ---
5
+
6
+ # Game Demo
7
+
8
+ ## Goal
9
+
10
+ Read the design document, implement the core gameplay as the minimal game Demo that can start, be played, end, and restart, and establish a clear engineering foundation for later development.
11
+
12
+ This skill independently completes project setup. Its main outputs are actual project files and a runnable Demo that can continue to be improved. All game image assets are obtained through image generation and connected through a unified asset configuration or loading layer; the first batch of generated assets may be gradually replaced with higher-quality versions in later development.
13
+
14
+ ## Before Starting
15
+
16
+ First clarify the game engine and tech stack used by the current project.
17
+
18
+ For an existing project, read the package manifest, lock files, build configuration, entry files, and main dependencies to confirm. For a new project, have the developer confirm the technical choices.
19
+
20
+ Confirm at least:
21
+
22
+ - Game engine and version;
23
+ - Programming language;
24
+ - Rendering and UI approach;
25
+ - Build tool and package manager;
26
+ - Target platform, aspect ratio, and input method.
27
+
28
+ Then read `/project.md` at the project root or the design document file specified by the developer to understand the core gameplay, Demo scope, game objects, controls, win/loss conditions, and the complete flow of one game session.
29
+
30
+ ## First-Delivery Principles
31
+
32
+ The Demo's first delivery must target successful startup and a complete core loop. Implement only the minimum objects, systems, states, and interfaces needed for the gameplay to work, making every added part directly serve the core experience.
33
+
34
+ Code safety has the highest priority. Architectural completeness, extensibility, visual presentation, feature count, and technical complexity all defer to the stability of the first delivery. Use mature, direct, and easy-to-debug implementation paths in the current tech stack, keep dependencies lean, keep module responsibilities clear, make state transitions explicit, and provide safety boundaries for loading failures and runtime exceptions.
35
+
36
+ ## Demo Production
37
+
38
+ Produce the Demo as a complete task. After development begins, prioritize starting generation for the required image assets, and build the file structure, code framework, and core game systems at the same time. When image-generation tools can be called asynchronously, submit generation tasks and then continue code work so both advance in parallel.
39
+
40
+ ### Hard Requirements For Image Assets
41
+
42
+ - The Demo must not contain any SVG assets, including SVG files, inline SVG, and `data:image/svg+xml`.
43
+ - Do not use Canvas/Phaser/CSS lines, geometric outlines, or procedural drawing to impersonate game image assets such as characters, scenes, props, icons, or effects.
44
+ - Do not use large solid-color blocks or solid-color backgrounds as formal game assets or visual placeholders.
45
+ - All needed game image assets, including backgrounds, characters, enemies, props, terrain, decorations, icons, and visual effects, must be obtained through image generation and actually connected into the Demo.
46
+ - Code development and image generation may proceed in parallel, but the required generated images must be connected before the first visual delivery. If assets are not finished, continue generating them or reduce the Demo asset scope; do not replace them with SVG, line drawing, or large solid-color placeholders.
47
+ - Generated assets are first-version assets that can be iterated on; they can be gradually replaced later while keeping the asset interface stable, and development does not need to wait for final art quality.
48
+
49
+ The Demo runs through the following minimal complete flow:
50
+
51
+ ```text
52
+ Start -> Load -> Begin -> Play -> Success or Failure -> Results -> Restart
53
+ ```
54
+
55
+ After the code build is complete, the core loop can run, and the generated images required for this round have been connected, start a static service and open the Demo page in the environment's browser for the developer to operate and accept directly. The first presentation must not contain SVG, line drawing, or large solid-color game assets.
56
+
57
+ ## Demo Construction
58
+
59
+ ### File Structure
60
+
61
+ Create directories for the project entry, source code, configuration, game systems, entities, scenes, input, assets, UI, build output, and so on according to the game engine and tech stack. Give each directory and key file a clear responsibility.
62
+
63
+ ### Code Framework
64
+
65
+ Set up foundational code for game startup, configuration loading, asset loading, state transitions, input mapping, game loop, render synchronization, UI communication, restart, and resource cleanup.
66
+
67
+ Separate gameplay state, rendering presentation, input, and UI into clear modules, and connect them through explicit data, events, or interfaces.
68
+
69
+ ### Game Systems
70
+
71
+ Build the systems actually needed by the core loop according to the design document, such as player control, enemies or obstacles, spawning, collision, damage, scoring, progress, time, win/loss, results, and pause.
72
+
73
+ Select only the systems necessary for the current core loop, connecting them through parameterized content and a unified asset interface. All image assets use generated images and may be gradually replaced later through the same interface.
74
+
75
+ ## Acceptance
76
+
77
+ The Demo is accepted in the developer's browser. The Agent does not perform automated gameplay testing, end-to-end testing, visual regression testing, or other Agent-side automated tests. After code finishes building and can run, the Agent is responsible for immediately starting a static service, opening the browser, and handing control to the developer; remaining images continue to be generated and connected after the presentation.
78
+
79
+ Before delivering to the developer, confirm:
80
+
81
+ - The project uses the confirmed game engine and tech stack;
82
+ - The first delivery remains minimal and can build and start successfully;
83
+ - File responsibilities and module boundaries are clear;
84
+ - The core game loop can run completely;
85
+ - Input, game state, rendering, and UI are correctly connected;
86
+ - Success, failure, results, and restart can be repeated;
87
+ - A new session restores the correct initial state;
88
+ - The Demo does not contain SVG, line drawing, or large solid-color game assets or visual placeholders;
89
+ - All game image assets required by the current Demo have been obtained through image generation, centrally managed, and actually connected;
90
+ - The static service has been started, and the Demo page has been opened in the browser.
91
+
92
+ ## Output
93
+
94
+ Actual project files and a runnable build are the main deliverables. After completion, briefly describe:
95
+
96
+ - The game engine and tech stack used;
97
+ - The main directories and code modules established;
98
+ - The game systems built;
99
+ - The centralized configuration, connection location, and later replacement method for generated image assets;
100
+ - The generation and connection status of image assets;
101
+ - The core game loop that has been run through;
102
+ - The build and static-service commands executed;
103
+ - The developer acceptance URL in the browser.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Game Demo"
3
+ short_description: "Build a safe, minimal, runnable game demo, completing code and image assets in parallel"
4
+ default_prompt: "Please use $game-demo to build a runnable game demo from the design document, advance image generation and code construction in parallel, provide vector fallback images for all images, and open the webpage for my acceptance review as soon as the code can run."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: game-image-layer-decomposer
3
+ description: Use evomeme_decompose_image_layers to separate one existing image into independently usable, compositable layer elements. Use when backgrounds, subjects, foregrounds or specified parts in scene, illustration, character or UI images need separate editing, replacement or game integration. Explains actual processing, output files and fields, transparency, stacking order, bounding boxes and occlusion completion. Not for grid cropping, background removal alone or animation generation.
4
+ ---
5
+
6
+ # Image Layer Decomposition
7
+
8
+ Separate the elements of one image into independent layers for later composition and editing. Inspect the source first, decide which elements to separate or group and identify their occlusion relationships, then call `evomeme_decompose_image_layers`.
9
+
10
+ ## What the tool actually does
11
+
12
+ MCP and canvas reuse the `layer_decomposition=true` branch of the `generate_game_image` task. Shared `executeImageGeneration` calls the existing `decomposeImageLayers`. Multiple steps stay in shared task/image implementations, without MCP-to-MCP calls or chaining canvas feature entry points. Migration does not change image functions or built-in prompts.
13
+
14
+ One call performs these steps:
15
+
16
+ 1. Read one reference image from the workspace, using existing reference URL resolution and upload when needed.
17
+ 2. Submit one AI layer decomposition request with fixed `asset-pro` and automatic size; it does not submit a separate generation for each layer.
18
+ 3. Wait for completion and sort the returned layers by ascending `z_index`.
19
+ 4. Download the layers into workspace `assets/`, preserve names, descriptions, stacking order and optional bounding boxes, register task outputs and return file metadata. Preserve the source image.
20
+
21
+ The result is **N independent layer images**, where N depends on the model result. Successful results contain at least one layer, but two or more layers, an exact count or a separate layer for every requested part are not guaranteed. The layer capability is intended to produce transparent PNG elements; a background layer may be opaque, and `mime_type` identifies the actual file format. The current shared workflow downloads only the returned layer list, without downloading an additional basemap, packaging a PSD, or creating bones, animation, colliders or an engine scene.
22
+
23
+ This is AI decomposition of image content and may redraw details. It does not guarantee pixel-exact reconstruction or recover the true content of areas that were occluded and never visible in the source.
24
+
25
+ ## When to use it
26
+
27
+ | Need | Approach |
28
+ | --- | --- |
29
+ | Separate a scene into distant background, subjects and foreground decoration | Use this tool and specify the elements and front-to-back relationships of each layer. |
30
+ | Edit or replace characters, buildings, trees or props independently | Describe which elements need separate layers and which should remain grouped, based on the actual editing task. |
31
+ | Separate a character's weapon, body or decorations | Request part layers, then inspect joints and occluded areas. Rigging, pivots and motion remain separate work. |
32
+ | Separate plates, borders and decorations from a flattened UI image | Specify the layout to preserve and check whether text or thin lines changed. For a new component kit, use the [UI component skill](../game-ui-generator/SKILL.md). |
33
+ | Remove only the background while keeping one complete subject | Use cutout or color key through the [image generation and background processing skill](../game-asset-image-generator/SKILL.md). |
34
+ | Cut fixed rows and columns or crop non-overlapping objects from an existing asset sheet | Use the appropriate cropping/splitting capability. Layer decomposition lets AI process the content; it is not pure cropping. |
35
+ | Generate a new scrolling scene's background, midground and foreground | Use the [scrolling map skill](../game-scroll-generator/SKILL.md). This tool separates an existing image and does not repair seams automatically. |
36
+
37
+ ## Terminology
38
+
39
+ - **Layer / layer element**: An image that can be shown, hidden, moved or replaced independently. A layer may contain one object or a group that should be edited together, such as an entire distant mountain range. Not every visual detail needs its own layer.
40
+ - **Transparency / alpha channel**: Opacity stored alongside each pixel's color. Transparent regions reveal underlying layers; partial transparency can represent smoke, glass and soft edges. A painted checkerboard or white background is not actual transparency; inspect the file itself.
41
+ - **Stacking order (`z_index`)**: Determines which image appears on top where images overlap. Draw in ascending numerical order so later layers cover earlier ones. It is not a file number, animation frame or physical 3D distance. Do not assume consecutive values or that 0 always means background.
42
+ - **Bounding box (`bounding_box`)**: Describes an element's occupied region in a coordinate system. This interface passes through a service-provided object or array without normalizing field names, units, reference canvas or array ordering. Do not guess positions when absent or assume `[x,y,width,height]` when present; first confirm the actual structure and coordinate convention.
43
+ - **Occlusion / completion**: A foreground object hides part of what lies behind it. Moving that foreground after decomposition exposes previously invisible areas. Requested AI completion synthesizes plausible new content rather than recovering information missing from the image, and needs review.
44
+ - **Compositing / pivot**: Compositing overlays images using position, scale, transparency and order. A pivot is the reference point for later movement, rotation and scaling. This tool supplies images and layer metadata, without creating engine objects or setting pivots automatically.
45
+ - **Parallax**: Moving layers representing different depths at different speeds to suggest distance. Decomposed layers can supply source artwork, but movement speed, screen coverage, edge extension and looping continuity require separate setup and checks.
46
+
47
+ ## Parameters and invocation
48
+
49
+ | Parameter | Actual meaning |
50
+ | --- | --- |
51
+ | `id` | Required workspace asset ID of one existing image, such as `assets/scene.png`; accepts an `asset_id` returned by an earlier image tool. Not a public URL, absolute file path or Base64. |
52
+ | `prompt` | Required nonempty description of decomposition targets, grouping, front-to-back relationships and content to preserve. |
53
+ | `workspace_dir` | Optional absolute workspace root. Set it explicitly when possible; otherwise the MCP process working directory is used. |
54
+
55
+ The source must exist inside that workspace's `assets/`. Import external files through the existing asset import workflow first, then use their actual asset IDs. There is one input image. No `reference_ids`, `model`, `size`, `count`, `rows`, `columns` or `transparent_background` parameters are accepted. Pro and automatic size are fixed internally; Max/Lite cannot be selected and an exact layer count cannot be enforced.
56
+
57
+ Call `evomeme_decompose_image_layers`:
58
+
59
+ ```json
60
+ {
61
+ "workspace_dir": "D:/my-game",
62
+ "id": "assets/forest-scene.png",
63
+ "prompt": "Separate this forest illustration into independently editable elements: group the sky and distant mountains as the background, place the cabin on its own layer, the character on its own layer, and group the closest plants as the foreground. Preserve the original style, palette, relative positions and proportions. Keep the background behind the character and cabin, with the plants in front. Outside each element should be transparent except on the background layer. Add no new objects, text or borders."
64
+ }
65
+ ```
66
+
67
+ ## Writing the prompt
68
+
69
+ Specify which elements belong on which layer rather than only asking to separate layers. These instructions describe generation goals and do not replace inspection of real outputs. Choose according to the task:
70
+
71
+ - **Scene layers**: “Group sky and distant mountains together; give buildings and trees separate layers; group foreground grass together. Preserve original positions and sizes. Do not paint a checkerboard into transparent regions.”
72
+ - **Part layers**: “Separate the character's body, held weapon and back cape into independent layers. Keep the body complete and preserve the pose and design. Do not duplicate parts or add decorations absent from the source. Check the hand/weapon and shoulder/cape connections.”
73
+ - **Moving the foreground**: “Separate the foreground trees and plausibly complete the ground and sky behind them in the background layer, with continuous surrounding texture. Leave no ghost of the foreground trees in the background.” Explain on delivery that completed areas were inferred by AI.
74
+
75
+ Avoid requesting many tiny fragments at once; group according to how the artwork will be used. There is no separate completion switch; describe completion goals in `prompt`. Do not modify built-in image prompts to express layer requirements.
76
+
77
+ ## Outputs and usage
78
+
79
+ MCP returns text metadata with `images` represented as a JSON array. It does not embed image bytes or Base64:
80
+
81
+ | Field | Meaning |
82
+ | --- | --- |
83
+ | `images` | All layers, sorted by ascending `z_index`. Each entry contains `id` / `asset_id`, `local_path`, `mime_type`, `asset_url`, `url`, `name`, `description`, `z_index` and optional `bounding_box`. Names and descriptions may be empty or fall back to a filename; inspect the actual image. |
84
+ | Top-level `asset_id`, `local_path`, `mime_type`, `asset_url` | Summary of the first layer for generic file consumers. Not the source, complete layer set, additional basemap or recomposited preview. |
85
+ | `source_id` | Input image asset ID. |
86
+ | `model=asset-pro`, `size=auto` | Actual request settings; `auto` is not a concrete width and height. |
87
+ | `operation_id`, `job_id`, `status` | Local operation ID, remote AI decomposition job ID and success status. All layers from one decomposition share one remote job ID. |
88
+
89
+ No separate `base`, `layers`, PSD, positioning configuration file or engine prefab is returned; read `images`. Equal layer dimensions and automatic reconstruction of the source layout are not guaranteed. Layer dimensions, when successfully probed, are stored in task records and are not returned by this MCP tool.
90
+
91
+ Delivery workflow:
92
+
93
+ 1. Open the source and each layer. Check missing or duplicated elements, incorrect grouping, redrawing and background ghosts, including transparency at edges and in translucent details. Create a file → element → stacking order list based on actual content.
94
+ 2. Inspect actual layer dimensions and placement. When layers retain matching canvas dimensions and original positions, overlay them at a shared origin and scale. If cropped or differently sized, confirm positioning data before assigning offsets; do not simply center all smaller images.
95
+ 3. Composite a preview in ascending `z_index` order and compare alignment and occlusion with the source. Do not infer semantic meaning solely from filenames or array indices.
96
+ 4. Import layers as independent sprites/textures in the game and set pivots, positions and draw order for their intended use. Configure motion separately for parallax or moving parts, checking newly exposed regions.
97
+ 5. Use each layer's `local_path` for local files and its `asset_url` for remote references. `url=/files/...` is a canvas local-service path, not a public address. Upload files again after local edits rather than reusing a URL for older content.
98
+
99
+ On failure, inspect the error and task records first. Some layers may already have downloaded, but a failed call does not guarantee a complete output list. Check existing jobs and files before repeating a paid decomposition just to recover metadata.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Image Layer Decomposition"
3
+ short_description: "Separate image elements and explain layer composition"
4
+ default_prompt: "Use $game-image-layer-decomposer to separate this image into independently editable layer elements and explain their contents, files and stacking order."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true