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,79 @@
1
+ # SFX CDN And URL Catalog
2
+
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
+
5
+ This catalog is for audio feedback only. Do not use it for canvas particles, trails, sparks, or other visual VFX implementations.
6
+
7
+ ## CDN Root
8
+
9
+ Production public CDN root:
10
+
11
+ ```text
12
+ http://game-asset.evomeme.com/
13
+ ```
14
+
15
+ Use this root for every catalog entry.
16
+
17
+ ## Required Prefix
18
+
19
+ All hosted gameplay and UI sound effects live under:
20
+
21
+ ```text
22
+ sfx/
23
+ ```
24
+
25
+ ## Final URL Shape
26
+
27
+ ```text
28
+ {CDN root}sfx/{encoded filename}
29
+ ```
30
+
31
+ - Keep the CDN root exactly as listed.
32
+ - Keep the `sfx/` prefix exactly as listed.
33
+ - The filename segment includes the extension such as `.mp3`, `.m4a`, `.ogg`, or `.mp4`.
34
+ - Encode the filename segment with UTF-8 percent-encoding when required.
35
+
36
+ ## Encoding Rule
37
+
38
+ - Use the full stored filename, including extension, as the source string for `encodeURIComponent`.
39
+ - Encode only the filename segment, not the full URL.
40
+ - Keep spaces encoded as `%20`.
41
+
42
+ ## Sound Catalog
43
+
44
+ Final URL = `http://game-asset.evomeme.com/sfx/` + filename fragment below.
45
+
46
+ | Object key | Filename fragment |
47
+ | --- | --- |
48
+ | `RUA.mp3` | `RUA.mp3` |
49
+ | `人物冲刺.mp3` | `%E4%BA%BA%E7%89%A9%E5%86%B2%E5%88%BA.mp3` |
50
+ | `人物叫声.mp3` | `%E4%BA%BA%E7%89%A9%E5%8F%AB%E5%A3%B0.mp3` |
51
+ | `人物碰撞.m4a` | `%E4%BA%BA%E7%89%A9%E7%A2%B0%E6%92%9E.m4a` |
52
+ | `人物脚步声.mp3` | `%E4%BA%BA%E7%89%A9%E8%84%9A%E6%AD%A5%E5%A3%B0.mp3` |
53
+ | `僵尸叫声.ogg` | `%E5%83%B5%E5%B0%B8%E5%8F%AB%E5%A3%B0.ogg` |
54
+ | `僵尸死亡.mp3` | `%E5%83%B5%E5%B0%B8%E6%AD%BB%E4%BA%A1.mp3` |
55
+ | `动物脚步声.mp3` | `%E5%8A%A8%E7%89%A9%E8%84%9A%E6%AD%A5%E5%A3%B0.mp3` |
56
+ | `吃金币.mp3` | `%E5%90%83%E9%87%91%E5%B8%81.mp3` |
57
+ | `呼噜.mp3` | `%E5%91%BC%E5%99%9C.mp3` |
58
+ | `壮汉死亡倒地.mp3` | `%E5%A3%AE%E6%B1%89%E6%AD%BB%E4%BA%A1%E5%80%92%E5%9C%B0.mp3` |
59
+ | `失误.mp3` | `%E5%A4%B1%E8%AF%AF.mp3` |
60
+ | `射击-轻.mp3` | `%E5%B0%84%E5%87%BB-%E8%BD%BB.mp3` |
61
+ | `射击-重.mp3` | `%E5%B0%84%E5%87%BB-%E9%87%8D.mp3` |
62
+ | `成功.mp3` | `%E6%88%90%E5%8A%9F.mp3` |
63
+ | `我想上班.mp3` | `%E6%88%91%E6%83%B3%E4%B8%8A%E7%8F%AD.mp3` |
64
+ | `拖拽.mp3` | `%E6%8B%96%E6%8B%BD.mp3` |
65
+ | `拾取.mp3` | `%E6%8B%BE%E5%8F%96.mp3` |
66
+ | `放置.mp3` | `%E6%94%BE%E7%BD%AE.mp3` |
67
+ | `旋转.mp4` | `%E6%97%8B%E8%BD%AC.mp4` |
68
+ | `汽车行驶.mp3` | `%E6%B1%BD%E8%BD%A6%E8%A1%8C%E9%A9%B6.mp3` |
69
+ | `游戏失败.mp3` | `%E6%B8%B8%E6%88%8F%E5%A4%B1%E8%B4%A5.mp3` |
70
+ | `点击.mp3` | `%E7%82%B9%E5%87%BB.mp3` |
71
+ | `爆炸.mp3` | `%E7%88%86%E7%82%B8.mp3` |
72
+ | `爽.mp3` | `%E7%88%BD.mp3` |
73
+ | `猫叫.mp3` | `%E7%8C%AB%E5%8F%AB.mp3` |
74
+ | `碰撞.mp3` | `%E7%A2%B0%E6%92%9E.mp3` |
75
+ | `苏卡不列.mp3` | `%E8%8B%8F%E5%8D%A1%E4%B8%8D%E5%88%97.mp3` |
76
+ | `苏卡不列那惠.mp3` | `%E8%8B%8F%E5%8D%A1%E4%B8%8D%E5%88%97%E9%82%A3%E6%83%A0.mp3` |
77
+ | `谢谢啊.mp3` | `%E8%B0%A2%E8%B0%A2%E5%95%8A.mp3` |
78
+ | `雪地上的脚步声.mp3` | `%E9%9B%AA%E5%9C%B0%E4%B8%8A%E7%9A%84%E8%84%9A%E6%AD%A5%E5%A3%B0.mp3` |
79
+ | `飞行.mp3` | `%E9%A3%9E%E8%A1%8C.mp3` |
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: game-character-view-generator
3
+ description: 使用 MCP 根据已有角色参考图生成四视图或八方向角色素材,支持复用已有四视图或自动先生成四视图。用于保持同一角色在不同视角的造型、服装与画风一致;普通文生图、抠图和动画生成使用各自工具。
4
+ ---
5
+
6
+ # 角色四视图与八方向生成
7
+
8
+ ## 选择能力
9
+
10
+ | 工具(中文名称) | 具体操作与产物 | 使用情况 |
11
+ | --- | --- | --- |
12
+ | `evomeme_generate_four_view`(角色四视图生成) | 根据同一角色参考图,生成一张 3024×1296 图片,包含正面、背面、左侧、右侧四个视图,保存到 `assets/`。 | 补齐角色设定、观察服装与身体各面、为八方向生成提供参考。 |
13
+ | `evomeme_generate_eight_direction`(角色八方向生成) | 根据角色参考图及可选四视图,生成一张 2048×2048 的 3×3 图片,包含八个游戏朝向,中心留白,保存到 `assets/`。 | 为支持八方向移动或转向的角色准备各朝向外观。 |
14
+
15
+ ## 四视图具体指什么
16
+
17
+ 四视图是在四个观察位置展示同一个角色的外观:
18
+
19
+ | 视图 | 观察方式 | 展示内容 |
20
+ | --- | --- | --- |
21
+ | 正面 | 从角色前方看向角色 | 脸部、胸前、服装正面。 |
22
+ | 背面 | 从角色后方看向角色 | 后脑、背部、服装背面。 |
23
+ | 左侧 | 从角色自身左侧看向角色 | 角色左侧轮廓与装备。 |
24
+ | 右侧 | 从角色自身右侧看向角色 | 角色右侧轮廓与装备。 |
25
+
26
+ 这里的左右是**角色自身的左右**,不是图片左右。四个视图应保持同一角色的造型、比例、服装和画风,用于交代外观,不表示四个连续动作。底层提示词指定这四个视图,但没有约定固定的格子或排列顺序;需要定位视图时先检查实际图片。输出是一张整图,不是四张独立文件。
27
+
28
+ ## 八方图具体指什么
29
+
30
+ 八方图即八方向角色图:正上、右上、正右、右下、正下、左下、正左、左上。方向按**游戏屏幕坐标**解释:上指屏幕上边,下指屏幕下边,左右指屏幕两侧;是角色面朝的方向,不是角色所在格子的方向。
31
+
32
+ | 朝向 | 表示什么 |
33
+ | --- | --- |
34
+ | 正下 ↓ | 朝屏幕下方,主要看到角色正面。 |
35
+ | 右下 ↘ | 朝屏幕右下方,看到正面与侧面。 |
36
+ | 左下 ↙ | 朝屏幕左下方,看到正面与另一侧面。 |
37
+ | 正右 → | 朝屏幕右侧,展示侧面。 |
38
+ | 正左 ← | 朝屏幕左侧,展示另一侧面。 |
39
+ | 右上 ↗ | 朝屏幕右上方,看到背面与侧面。 |
40
+ | 正上 ↑ | 朝屏幕上方,主要看到角色背面。 |
41
+ | 左上 ↖ | 朝屏幕左上方,看到背面与另一侧面。 |
42
+
43
+ 与画布共用的提示词要求以下 3×3 排列,**格子位置不等于朝向**:
44
+
45
+ | 左列 | 中列 | 右列 |
46
+ | --- | --- | --- |
47
+ | 右下 ↘ | 正下 ↓ | 左下 ↙ |
48
+ | 正右 → | 留白 | 正左 ← |
49
+ | 右上 ↗ | 正上 ↑ | 左上 ↖ |
50
+
51
+ 输出是一张八方向整图,不是八张独立图片,也不是八帧动画。各格应保持同一角色、比例和画风;具体俯视或斜俯视程度根据参考图和提示词确定。工具不会自动拆图;AI 生成后按需检查方向和排列是否符合要求。
52
+
53
+ ## 参考图准备(四视图与八方向均适用)
54
+
55
+ 调用四视图或八方向 MCP 前,必须先确认角色参考图和已有四视图都位于当前工作区 `assets/` 中。用户上传附件、对话图片及其他目录中的图片,先定位真实可读取文件,再复制到 `assets/` 或其子目录;只有可访问图片链接时先下载。复制后确认文件存在且可读取。同名不同内容使用新文件名,避免覆盖已有素材。无法取得实际图片文件时说明缺失并停止该次调用,不得猜测路径或 ID。
56
+
57
+ 图片已在当前工作区 `assets/` 中时复用,工具已生成的图片直接复用返回的 `asset_id`。素材 ID 是相对于工作区根目录的路径,例如 `D:/my-game/assets/references/hero.png` 对应 `assets/references/hero.png`。将角色图 ID 传入 `character_reference_id`,已有四视图 ID 传入 `four_view_id`;同时显式传入同一工作区根目录绝对路径 `workspace_dir`,不把附件绝对路径或 URL 填入 ID 参数。这样任务保留工作区素材之间的来源关系,画布可以显示依赖连线。
58
+
59
+ ## 四视图 MCP
60
+
61
+ | 参数 | 必填 | 说明 |
62
+ | --- | --- | --- |
63
+ | `character_reference_id` | 是 | 一张角色参考图片的素材 ID。不是远程 URL 或绝对路径。 |
64
+ | `prompt` | 否 | 补充角色外观、服装、材质、比例与画风要求。 |
65
+ | `model` | 否 | `asset-max`、`asset-pro`、`asset-lite`;默认 `asset-max`。 |
66
+ | `background_color` | 否 | `#RRGGBB` 背景色,默认 `#ff00ff`。 |
67
+ | `transparent_background` | 否 | 默认 `false`;`true` 仅支持 `asset-max`。 |
68
+ | `workspace_dir` | 否 | 当前工作区根目录绝对路径,调用时显式指定。 |
69
+
70
+ 尺寸固定为 `3024x1296`,不传 `size`。四视图布局提示词由与画布共用的底层函数构造;补充提示词重点写清需要保留的角色特征,不要求无关角色、动画帧或额外视图。
71
+
72
+ ```json
73
+ {
74
+ "character_reference_id": "assets/hero.png",
75
+ "prompt": "保持参考图中的银色盔甲、红色披风和角色比例,使用相同画风",
76
+ "model": "asset-max",
77
+ "transparent_background": true,
78
+ "workspace_dir": "D:/my-game"
79
+ }
80
+ ```
81
+
82
+ 工具等待任务完成,生成一张四视图整图并保存到工作区 `assets/`。返回文本元数据,包括 `asset_id`、`local_path`、`mime_type`、`job_id`、`asset_url`/`tos_url` 和状态;不返回图片 Base64。记录这些值,按需通过 IDE 图片查看工具检查角色一致性和各视图完整性。
83
+
84
+ 工具不会自动切分、抠图或剔除颜色。需要透明背景时优先使用支持它的模型和参数;已有不透明结果需要处理时,另行使用 `evomeme_cutout_game_image`,智能抠图不可用时可使用 `evomeme_color_key`。失败时读取 `isError: true` 的具体错误,保留参考图;不要因查询中断而盲目重新提交生成任务。
85
+
86
+ ## 八方向 MCP
87
+
88
+ 八方向生成用于角色在游戏中的八个朝向,不是动画序列。与画布共用 image 流程,要求一张 `character_reference_id`,模型、背景和工作区参数与四视图相同。八方向布局固定为 `2048x2048` 的 3×3 整图,不传 `size`,工具不自动切分。
89
+
90
+ 额外参数:
91
+
92
+ | 参数 | 必填 | 说明 |
93
+ | --- | --- | --- |
94
+ | `four_view_id` | 否 | 已有四视图的工作区图片素材 ID,可直接使用四视图 MCP 返回的 `asset_id`。 |
95
+ | `auto_generate_four_view` | 否 | 默认 `true`;未提供四视图时先生成四视图再生成八方向,包含两次生图。设为 `false` 则直接使用角色参考图。提供 `four_view_id` 后忽略此参数,不重复生成四视图。 |
96
+
97
+ 已有四视图时优先复用。只有原图时可直接调用八方向工具,底层会按默认流程生成四视图;无需先单独调用四视图 MCP 再启用自动生成。
98
+
99
+ ```json
100
+ {
101
+ "character_reference_id": "assets/hero.png",
102
+ "four_view_id": "assets/four-view.png",
103
+ "prompt": "保持银色盔甲、红色披风和角色比例一致",
104
+ "model": "asset-max",
105
+ "transparent_background": true,
106
+ "workspace_dir": "D:/my-game"
107
+ }
108
+ ```
109
+
110
+ 结果包含最终八方向的 `asset_id`、`local_path` 和 URL,以及 `four_view_source`(`provided`、`generated` 或 `character`)。使用四视图时还返回 `four_view_asset_id`、`four_view_local_path` 和 `four_view_asset_url`;自动生成时额外返回 `four_view_job_id`。中间四视图和最终整图都会保存到 `assets/`,两端共用任务记录。若八方向失败而四视图已完成,四视图仍保留;检查工作区任务记录或画布确认它的素材 ID,继续生成时传入 `four_view_id`,避免重复生成。
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "角色四视图与八方向生成"
3
+ short_description: "使用角色参考图生成四视图或八方向整图,并复用已有四视图素材"
4
+ default_prompt: "请使用 $game-character-view-generator 根据我的角色参考图生成四视图或八方向素材,优先复用已有四视图。"
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: game-image-layer-decomposer
3
+ description: 使用 evomeme_decompose_image_layers 将一张已有图片拆成多个可独立使用、组合叠放的图层元素。需要把场景、插画、角色或界面图片中的背景、主体、前景及指定部件分离,以便单独编辑、替换或接入游戏时使用。解释工具实际步骤、图层文件和返回字段,以及透明度、叠放顺序、包围框和遮挡补全;不用于按网格裁图、仅去除背景或生成动画。
4
+ ---
5
+
6
+ # 图片图层拆解
7
+
8
+ 将一张图片中的构成元素拆成独立图层,供后续组合和编辑。先查看源图,确定需要分离的元素、需要归组的部分和遮挡关系,再调用 `evomeme_decompose_image_layers`。
9
+
10
+ ## 工具具体做什么
11
+
12
+ MCP 与画布复用 `generate_game_image` 任务的 `layer_decomposition=true` 分支,由共享的 `executeImageGeneration` 调用已有 `decomposeImageLayers`。多步骤保留在共享 task/image 实现中,没有 MCP 调用 MCP,也不通过画布功能入口调用其他画布入口。移植不更改 image 函数或内置提示词。
13
+
14
+ 一次调用执行:
15
+
16
+ 1. 读取工作区内的一张参考图,复用已有参考素材地址解析与按需上传流程。
17
+ 2. 固定使用 `asset-pro`,以自动尺寸向 AI 提交一次图层拆解请求;不是每层各提交一次生成。
18
+ 3. 等待拆解任务完成,将服务返回的图层按 `z_index` 从小到大排序。
19
+ 4. 下载各层到工作区 `assets/`,保留名称、描述、叠放顺序和可选包围框,登记任务产物并返回文件信息。源图片保留。
20
+
21
+ 实际得到 **N 张独立图层图片**,N 由模型结果决定;成功结果至少有一层,但不能承诺一定拆出两个以上、精确层数或每个指定部件都单独成层。图层能力用于输出透明 PNG 元素;背景层可以不透明,文件实际格式以 `mime_type` 为准。当前共享流程只下载返回的图层列表,不额外下载一张底图,不打包 PSD,也不生成骨骼、动画、碰撞体或引擎场景。
22
+
23
+ 这是 AI 对图像内容的拆解,可能重绘细节;不保证逐像素还原源图,也不能找回原本被遮挡、从未出现在图片中的真实内容。
24
+
25
+ ## 什么时候使用
26
+
27
+ | 需求 | 使用方式 |
28
+ | --- | --- |
29
+ | 把一张场景拆为远处背景、主体和前景装饰 | 使用本工具,明确每层包含哪些元素,以及前后关系。 |
30
+ | 单独替换或编辑角色、建筑、树木、道具等元素 | 描述哪些独立成层、哪些应保持一组;优先按实际编辑需求分组。 |
31
+ | 把角色的武器、身体、装饰等部件分开 | 可请求部件分层,但须检查连接处和遮挡区域;后续绑定、枢轴和运动仍由其他流程完成。 |
32
+ | 分离已合成 UI 图中的底板、边框、装饰等 | 说明需要保留的布局;检查文字和细线是否改变。新建组件库使用 [UI 组件技能](../game-ui-generator/SKILL.md)。 |
33
+ | 只要移除背景并保留一个完整主体 | 使用 [图片生成与背景处理技能](../game-asset-image-generator/SKILL.md) 的智能抠图或颜色剔除。 |
34
+ | 按固定行列切图,或从已有素材表裁出互不重叠的小图 | 使用相应裁切/拆图能力;图层拆解会让 AI 处理内容,不是纯裁切。 |
35
+ | 从头生成卷轴场景的背景、中景和前景 | 使用 [卷轴地图技能](../game-scroll-generator/SKILL.md)。本工具从已有图片拆层,不自动消缝。 |
36
+
37
+ ## 术语解释
38
+
39
+ - **图层(layer)与图层元素**:一张可以单独显示、隐藏、移动或替换的图片。一个图层可以包含一个物件,也可以是一组应共同编辑的元素,例如一整排远山;不是每一个视觉细节都需要单独一层。
40
+ - **透明度/alpha 通道**:像素除颜色之外记录的不透明程度。透明部分显示背后的图层;半透明可表达烟雾、玻璃和柔和边缘。画出来的棋盘格或白底不是实际透明,需要查看文件本身。
41
+ - **叠放顺序(`z_index`)**:决定多张图片重叠时谁在上面。按数值从小到大绘制,后画的层覆盖先画的层。它不是文件编号、时间帧或物体的三维距离;不假设编号连续,也不假设 0 一定是背景。
42
+ - **包围框(`bounding_box`)**:描述一个元素在某个坐标系中的占用区域。本接口只透传服务返回的对象或数组,没有统一其字段名称、坐标单位、参考画布或数组顺序。缺失时不能猜位置;存在时也不能直接假设是 `[x,y,width,height]`,须先确认实际结构和坐标约定。
43
+ - **遮挡与补全(occlusion / completion)**:前景物件挡住后面的部分。分层后移动前景会露出之前不可见的区域;若请求 AI 补全,那是推测生成的新内容,并非恢复图片中不存在的信息,仍需验收。
44
+ - **合成(compositing)与枢轴(pivot)**:合成是按位置、缩放、透明度和顺序叠放图片;枢轴是后续移动、旋转、缩放时的基准点。本工具提供图片和层级元数据,不自动创建引擎对象或设置枢轴。
45
+ - **视差(parallax)**:让不同深度的图层以不同速度移动,表现远近感。拆出的层可作为原料,但移动速度、画面覆盖、边缘延展和循环衔接需要另外设置与检查。
46
+
47
+ ## 参数与调用
48
+
49
+ | 参数 | 实际含义 |
50
+ | --- | --- |
51
+ | `id` | 必填,一个已有图片的工作区素材 ID,例如 `assets/scene.png`;可使用此前图片工具返回的 `asset_id`。不是公网 URL、绝对文件路径或 Base64。 |
52
+ | `prompt` | 必填、非空,描述具体分层目标、归组、前后关系及应保留的内容。 |
53
+ | `workspace_dir` | 可选,工作区根目录绝对路径;建议显式传入。省略时使用 MCP 进程当前目录。 |
54
+
55
+ 源文件必须位于该工作区 `assets/` 内。外部文件先通过已有素材导入流程放入工作区,再使用其实际素材 ID。只有一张输入图片,没有 `reference_ids`、`model`、`size`、`count`、`rows`、`columns`、`transparent_background` 等输入参数;内部固定 Pro 和自动尺寸,不能改选 Max/Lite,也不能要求工具强制精确图层数。
56
+
57
+ 调用 `evomeme_decompose_image_layers`:
58
+
59
+ ```json
60
+ {
61
+ "workspace_dir": "D:/my-game",
62
+ "id": "assets/forest-scene.png",
63
+ "prompt": "将这张森林插画按可独立编辑的元素拆层:天空与远山归为背景层,中部小屋单独一层,角色单独一层,画面最前方的植物归为前景层。保持原画风、配色、相对位置和比例,保持背景在后、角色与小屋居中、植物在前的遮挡关系。除背景层外,元素以外的区域应透明;不新增物件、文字或边框。"
64
+ }
65
+ ```
66
+
67
+ ## 提示词写法
68
+
69
+ 描述“什么归到哪层”,比只写“帮我分层”更清楚。上述要求是生成目标,不能替代对真实输出的检查。按任务需要选择:
70
+
71
+ - **场景分层**:“天空和远山作为一组;建筑、树木分别成层;前景草叶作为一组。保留原来的画面位置和大小,透明区域不要画成棋盘格。”
72
+ - **部件分层**:“将角色身体、手持武器、背后披风分别成层。身体保持完整,保留原姿态和设计,不复制同一部件,不添加原图没有的装饰。检查手与武器、肩与披风的连接处。”
73
+ - **需要移动前景**:“将前景树木分离,并在背景层合理补全被树木遮住的地面与天空,保持周围纹理连贯;不要把前景树的残影留在背景。”补全区域是 AI 推测,交付时明确这一点。
74
+
75
+ 避免一次要求大量细碎部件;先按后续使用方式确定分组。没有独立的补全开关,补全目标只在 `prompt` 中描述。不要为表达分层要求修改 image 内置提示词。
76
+
77
+ ## 返回什么与如何使用
78
+
79
+ MCP 返回文本元数据,`images` 为其中的 JSON 数组,不内嵌图片字节或 Base64:
80
+
81
+ | 字段 | 含义 |
82
+ | --- | --- |
83
+ | `images` | 全部图层,已按 `z_index` 从小到大排列;每项包含 `id` / `asset_id`、`local_path`、`mime_type`、`asset_url`、`url`、`name`、`description`、`z_index` 及可选 `bounding_box`。名称和描述可能为空或使用文件名兜底,须核对实际图片。 |
84
+ | 顶层 `asset_id`、`local_path`、`mime_type`、`asset_url` | 第一张图层的摘要,便于通用调用方定位文件;不是源图、整套图层、额外底图或重新合成的预览。 |
85
+ | `source_id` | 输入源图的素材 ID。 |
86
+ | `model=asset-pro`、`size=auto` | 实际请求配置;`auto` 不是具体宽高。 |
87
+ | `operation_id`、`job_id`、`status` | 本地操作 ID、远端 AI 拆解任务 ID、成功状态。一次拆解中的图层共用一个远端任务 ID。 |
88
+
89
+ 当前不返回单独的 `base`、`layers`、PSD、位置配置文件或引擎预制体;应读取 `images`。不额外承诺每层同尺寸或自动还原原图布局。各层宽高若读取成功保存在任务记录中,不是此 MCP 的返回字段。
90
+
91
+ 交付流程:
92
+
93
+ 1. 打开源图和各层,核对元素是否缺失、重复、错误归组、重绘或带背景残影;检查边缘透明度和半透明细节。按真实内容建立“文件 → 元素 → 叠放顺序”清单。
94
+ 2. 查看各层实际尺寸和有效位置。若图层保留相同画布尺寸与原位置,可按统一原点、相同比例叠放;若裁边或尺寸不同,先确认位置数据,再建立各层偏移,不能直接将所有小图居中。
95
+ 3. 按 `z_index` 从小到大合成预览,与源图比较遮挡和对齐。不要仅根据文件名或数组编号推断语义。
96
+ 4. 在游戏里将每层作为独立精灵/贴图导入,根据用途设置枢轴、位置和遮挡顺序。需要视差或部件运动时,再配置运动参数并检查移动后露出的区域。
97
+ 5. 使用本地文件时取对应层的 `local_path`;引用远端图片时取该层的 `asset_url`。`url=/files/...` 是画布本地服务路径,不是公网地址。本地后续编辑过的文件需重新上传,不能沿用旧内容的 URL。
98
+
99
+ 若执行失败,先读取错误和任务记录;部分图层可能已下载,但失败不保证返回完整文件清单。不要为了重取返回值立即重复付费拆解,先确认现有任务和文件。
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "图片图层拆解"
3
+ short_description: "将已有图片拆成独立图层元素,解释透明度、叠放顺序和组合使用方式"
4
+ default_prompt: "使用 $game-image-layer-decomposer 将这张图片拆成可独立编辑的图层元素,说明各层内容、文件和叠放方式。"
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: game-image-splitter
3
+ description: 需要对图片进行切分时必须使用本技能。指导用 evomeme_smart_split_image 按独立前景区域智能拆图,或用 evomeme_manual_split_image 按行列网格拆图,输出多张独立 PNG。适用于已有素材表、UI 组件图、瓦片图集、角色多视图和序列帧整图;解释工具实际操作、产物、透明补齐、对齐基准、裁切框和输出顺序,并区分裁图、抠图与 AI 图层拆解。
4
+ ---
5
+
6
+ # 图片切分
7
+
8
+ **需要对一张图片进行切分时,必须使用本技能。** 先查看源图和真实布局,选择按独立主体拆分或按固定网格拆分,再检查输出文件及坐标。两个工具都处理已有图片,不接受生成提示词。
9
+
10
+ ## 选择哪个工具
11
+
12
+ | 图片或需求 | 选择与原因 |
13
+ | --- | --- |
14
+ | 多个物件分散摆放、没有固定格子,主体间有明显空隙 | `evomeme_smart_split_image`:根据前景区域确定裁切框。透明底通常更适合检测。 |
15
+ | 规则行列排列的瓦片图集、角色多视图、帧序列整图 | `evomeme_manual_split_image`:按确认的行列裁切,保留每格和顺序。 |
16
+ | 需要输出图片宽高一致 | 智能拆图使用 `pad_to_same_size=true`;网格拆图须使原图宽高分别能被列数、行数整除,才能保证格子同尺寸。 |
17
+ | 必须保留规则图集的空白格或准确的格子索引 | 使用网格拆图。智能拆图只输出检测到的主体,不保留空格编号。 |
18
+ | 图片含外边距、格间距、不规则分区,或只想裁指定矩形 | 两工具没有边距、间距、坐标框或部分格子选择参数。先按实际布局另行处理或裁切,不能把这些参数虚构给工具。 |
19
+ | 只想移除背景 | 使用 [图片与背景处理技能](../game-asset-image-generator/SKILL.md) 的抠图或颜色剔除。切分不会自动去底色。 |
20
+ | 要从互相遮挡的场景中分离背景、角色和前景元素 | 使用 [图层拆解技能](../game-image-layer-decomposer/SKILL.md);这是 AI 内容拆解,需要不同的处理方式。 |
21
+
22
+ 两工具与画布分别共用 `smart_split` / `manual_split` 任务,由原有 `splitImageAsset` / `manualSplitImageAsset` 调用 `imageSplit.ts` 中的处理函数。均在本地读取、检测或计算裁切区域、输出文件并登记任务;不调用 AI,不自动上传,不覆盖源图。MCP 不调用其他 MCP,接入不修改 task/image 的算法或内置提示词。
23
+
24
+ ## 智能拆图实际做什么
25
+
26
+ 1. 读取图片尺寸和像素。检测时将分析图最长边限制到 1600 像素以内,最终裁切仍使用原图,不按分析图缩小主体。
27
+ 2. 有足够透明区域时以透明度判断前景;否则从边缘位置采样背景色,根据颜色差异检测前景。对检测区域做小范围修补和碎片归并,查找独立区域并映射回原图裁切框。
28
+ 3. 逐个裁出主体。默认用透明像素补齐到“所有裁切框的最大宽度 × 最大高度”,按 `anchor` 对齐;主体不缩放。关闭补齐则保留各自裁切尺寸。
29
+ 4. 保存 **N 张独立 PNG,成功时 N 至少为 2**,数量取决于检测结果。输出大致按从上到下、同一行附近从左到右排列,不是语义分类或动画时间顺序。
30
+
31
+ “智能”指本地像素分析,不代表大模型理解物件类别。粘连物件可能合并;同一物件分离的装饰可能被拆开;微小元素可能被忽略。复杂背景、主体贴边或间隔太窄会影响检测。检测框在透明图上可能带少量安全边距,不保证精确贴合轮廓。
32
+
33
+ **背景色只用于检测,不会被自动擦除。** 源图白底时裁出的图片仍可能带白底;透明补齐只让新增边缘透明。需要去底时先使用实际可用的抠图/色键工具,再对处理后的图片 ID 拆图。
34
+
35
+ | 参数 | 含义 |
36
+ | --- | --- |
37
+ | `id` | 必填,工作区 `assets/` 内一张已有图片的素材 ID,如 `assets/props.png`。 |
38
+ | `pad_to_same_size` | 可选,默认 `true`,用透明像素补齐到同尺寸;`false` 保留每个裁切框尺寸。 |
39
+ | `anchor` | 可选,默认 `center`;`top-left`、`top`、`top-right`、`left`、`center`、`right`、`bottom-left`、`bottom`、`bottom-right`。只在补齐时影响位置。 |
40
+ | `workspace_dir` | 可选,工作区根目录绝对路径。建议显式传入,省略时使用 MCP 当前目录。 |
41
+
42
+ 例如,为便于后续统一放置,将道具裁出后在同尺寸透明画布中底部居中:
43
+
44
+ ```json
45
+ {
46
+ "workspace_dir": "D:/my-game",
47
+ "id": "assets/props.png",
48
+ "pad_to_same_size": true,
49
+ "anchor": "bottom"
50
+ }
51
+ ```
52
+
53
+ 将以上参数传给 `evomeme_smart_split_image`。若只想要每件素材的独立裁切图,将 `pad_to_same_size` 改为 `false`;此时无需指定 `anchor`。没有主体数量、检测阈值、模型或提示词参数。
54
+
55
+ ## 网格拆图实际做什么
56
+
57
+ 1. 读取源图尺寸,检查行列数均为 1~64 的整数、乘积至少为 2,行数不超过像素高度、列数不超过像素宽度。
58
+ 2. 将整张图片按指定行列分区。边界为 `floor(列号 × 原图宽 / 列数)` 和 `floor(行号 × 原图高 / 行数)`,号数从 0 开始;相邻边界相减得到每格宽高。
59
+ 3. 逐格裁切并保存 **rows × columns 张 PNG**,包括透明格、空白格。按从上到下、每行从左到右的顺序返回;不检测物件、不自动去边距、不丢弃末端剩余像素,不缩放或透明补齐。
60
+
61
+ 无法整除时同方向的格子尺寸可能相差 1 像素。例如宽 10 像素分 3 列,边界为 0、3、6、10,宽度为 3、3、4。不要假设所有格子相同,也不要自行舍弃余边。
62
+
63
+ | 参数 | 含义 |
64
+ | --- | --- |
65
+ | `id` | 必填,工作区内已有图片素材 ID,如 `assets/tileset.png`。 |
66
+ | `rows` | 必填,纵向分为多少行,整数 1~64。 |
67
+ | `columns` | 必填,横向分为多少列,整数 1~64;两者乘积至少为 2。 |
68
+ | `workspace_dir` | 可选,工作区根目录绝对路径,建议显式传入。 |
69
+
70
+ 例如,将已确认的 4×4 瓦片图集裁成 16 张图:
71
+
72
+ ```json
73
+ {
74
+ "workspace_dir": "D:/my-game",
75
+ "id": "assets/tileset.png",
76
+ "rows": 4,
77
+ "columns": 4
78
+ }
79
+ ```
80
+
81
+ 将以上参数传给 `evomeme_manual_split_image`。角色四视图、八方图或序列帧整图必须先确认真实行列;不能因为“八个方向”就传八列。3×3 中心留空的八方图应切出 9 格,再在使用时明确排除中心空格,工具本身不会跳过它。帧表切分保留格子位置,实际播放顺序和时长需另外配置,不会生成新动画。
82
+
83
+ ## 术语与结果字段
84
+
85
+ - **素材表/图集(sheet / atlas)**:把多件素材放在同一张图中。规则图集有明确行列;自由排列的素材表未必有格子。序列帧整图是把多个时间帧放在一张图中,帧顺序需由原设计确认。
86
+ - **前景、透明度与连通区域**:前景是检测中要保留的区域;alpha 通道记录像素不透明程度;连通区域是相邻像素组成的一块区域。当前检测使用八邻域,即水平、竖直和对角相邻都算相连,因此斜向接触也可能合并。
87
+ - **裁切框(box)**:原图坐标中的矩形 `{x,y,width,height}`,单位为像素,原点在左上,x 向右、y 向下;覆盖 `[x,x+width)` 和 `[y,y+height)`。它不是 AI 图层拆解里协议未统一的 `bounding_box`。
88
+ - **透明补齐(padding)**:在裁切图外增加透明像素,使输出尺寸一致;不把小物件拉大,也不移除裁切框内部原有背景。
89
+ - **对齐基准(anchor)与游戏枢轴(pivot)**:anchor 指裁切图放在补齐画布中的哪个位置;pivot 指游戏对象旋转、缩放和摆放所依据的点。`bottom` 是把裁切框底部居中,不会识别脚底或自动设置引擎枢轴。
90
+ - **行优先(row-major)**:先输出第 1 行从左到右的所有格子,再进入第 2 行。第 r 行第 c 列对应零基索引 `r × columns + c`。
91
+
92
+ MCP 返回文本元数据,数组以 JSON 文本表示,不内嵌图片或 Base64:
93
+
94
+ | 字段 | 含义 |
95
+ | --- | --- |
96
+ | `images`(两工具) | 全部结果,包含 `id` / `asset_id`、`local_path`、`mime_type=image/png`、`name`、`source`、`kind` 和 `url`。`url=/files/...` 是画布本地路径,不是公网地址。 |
97
+ | 顶层 `asset_id`、`local_path`、`mime_type` | 第一张结果的摘要,不代表源图或整套结果。 |
98
+ | `source_id`、`operation_id`、`status` | 输入素材 ID、本地任务操作 ID、成功状态;没有远端 AI `job_id`。 |
99
+ | `boxes`(两工具) | 与 `images` 按索引一一对应的原图实际裁切框,可用于记录或重建源图位置。 |
100
+ | `subject_boxes`(智能) | 检测得到并映射回原图的区域,可能含安全边距;当前实现与 `boxes` 内容相同,不是轮廓蒙版。 |
101
+ | `output_sizes`(智能) | 每张结果实际 `{width,height}`,与 `images` 同序,包含透明补齐后的尺寸。 |
102
+ | `target_width`、`target_height`(智能) | 检测框的最大宽度和最大高度。补齐开启时是统一输出尺寸;关闭时只是最大值,不能当成每张图的尺寸。 |
103
+ | `anchor`、`pad_to_same_size`(智能) | 本次实际对齐和补齐配置。 |
104
+ | `rows`、`columns`、`source_width`、`source_height`(网格) | 本次行列数和原图像素尺寸。每个输出尺寸取对应 `boxes` 的宽高。 |
105
+
106
+ ## 交付与使用
107
+
108
+ 源文件需先放入该工作区 `assets/`,`id` 不接受 URL、绝对路径或 Base64。输入此前工具产物时使用其 `asset_id`,不要猜文件名。输出都写到 `assets/`,文件名包含批次和 `_split_01.png` 或 `_grid_行x列_01.png` 等序号;不按物件语义命名。
109
+
110
+ 检查数量、顺序、裁切边缘、透明度和是否误合并/漏拆,再建立“文件 → 用途/格子 → 原图裁切框”清单。智能拆图检测不足两个有效主体会失败,此时检查原图间距和背景,选择合适的预处理或已知网格,不要改用生图重画来假装完成裁切。
111
+
112
+ 需要恢复原图位置时,未补齐结果可按 `boxes[i].x/y` 放置。已补齐结果还需扣除补齐偏移:`padX=floor((target_width-box.width)×ax)`、`padY=floor((target_height-box.height)×ay)`,其中左/中/右的 ax 为 0/0.5/1,上/中/下的 ay 为 0/0.5/1;放置在 `box.x-padX, box.y-padY` 才能保持原位置。不要只把补齐图放在原裁切框左上角。
113
+
114
+ 接入游戏时使用各自的 `local_path`,按真实内容配置枢轴、格子或帧序,不把图片边界自动当作碰撞体。需要公网 URL 时再用 `evomeme_upload_game_asset` 上传对应结果;不能用源整图的 URL 代替裁出小图。失败时先检查错误、任务记录和已写入文件;共享流程失败不保证返回完整产物列表。
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "图片切分"
3
+ short_description: "需要切分图片时使用,指导智能拆图、网格拆图及裁切结果的使用方式"
4
+ default_prompt: "使用 $game-image-splitter 检查这张图片的布局,选择智能拆图或网格拆图,并说明输出文件、尺寸与顺序。"
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,123 @@
1
+ ---
2
+ name: game-perfect-pixel
3
+ description: 使用 evomeme_perfect_pixel 将已有像素风图片整理为清晰的像素网格,自动识别或手动指定源像素区域,每格采样后按整数倍率输出一张 PNG。适用于放大或生成后网格不整齐、边缘模糊的像素风素材,以及明确要求的像素化处理。解释实际步骤、产物、逻辑像素、网格大小、颜色采样、透明度阈值和最近邻导出;不用于生成新内容、拆图或自动抠图。
4
+ ---
5
+
6
+ # 完美像素
7
+
8
+ 使用 `evomeme_perfect_pixel` 整理已有图片的像素网格。先查看源图是否有可识别的像素块、是否包含半透明效果,再选择自动/手动网格及透明度模式。工具名称不代表一定能恢复原始像素稿。
9
+
10
+ ## 工具具体做什么、会生成什么
11
+
12
+ 一次调用在本地执行:
13
+
14
+ 1. 读取工作区已有图片,解码为颜色和透明度像素。
15
+ 2. 默认分析横向、纵向边缘的重复规律,估计网格并微调格子边界;手动模式则从左上角按指定 `pixel_size` 划分区域。
16
+ 3. 每个区域采样一个颜色与透明度,形成低分辨率的**逻辑像素网格**。
17
+ 4. 按 `export_scale` 整数倍率用最近邻放大,保存 **一张新 PNG** 到 `assets/`,保留源图并登记任务。
18
+
19
+ 不调用 AI、不自动上传、不把图片拆成多个文件,也不生成新角色、场景或动画。低分辨率中间网格不另存文件;要得到它,将 `export_scale` 设为 1。输出文件名以源文件名加 `_perfect-pixel` 等标识命名,以实际返回路径为准。
20
+
21
+ MCP 和画布正式提交都通过 `perfect_pixel` 任务调用同一个 `image/perfectPixel.ts` 的 `processPerfectPixel` 函数,统一解码、网格检测、采样和 PNG 编码。算法在本地 Node 后台线程执行,不使用浏览器 Worker。画布预览调用同一处理流程,只返回临时预览;确认后以当前参数重新处理并保存正式素材。task 层负责路径解析、保存和任务记录,没有 MCP 调用 MCP。
22
+
23
+ ## 什么时候使用
24
+
25
+ | 需求 | 选择 |
26
+ | --- | --- |
27
+ | 像素风素材被平滑放大,像素块边缘变软,仍能看出重复网格 | 先尝试自动网格,检查真实输出和识别尺寸。 |
28
+ | 已知原图每个像素块占 8×8 等固定区域 | 关闭自动网格,设置实际 `pixel_size`,按已知网格采样。 |
29
+ | 自动识别失败、纯色区域太多或不同区域网格冲突 | 查看原图后选择手动网格;不能把检测失败当成已完成,也不能保证任意图片都有原始网格。 |
30
+ | 希望普通图片产生粗粒度像素化效果 | 可用手动网格,但会丢失细节,不等于美术重新绘制的像素画。 |
31
+ | 只想把已经清晰的原生像素图等比例放大 | 优先使用项目已有的最近邻缩放;本工具会重新采样,手动源区域最小为 2,不能当作无损的 1×1 像素放大器。 |
32
+ | 需要分开图集里的多个素材 | 使用 [图片切分技能](../game-image-splitter/SKILL.md)。本工具始终只输出整图。 |
33
+ | 要移除白底、指定底色或完整背景 | 使用 [图片与背景处理技能](../game-asset-image-generator/SKILL.md);本工具只处理已有透明度,不识别背景。 |
34
+
35
+ 适合像素块大小相对一致的素材。斜着旋转的像素网格、多个分辨率混合的图集、细文字、照片或大面积柔和渐变不保证能自动识别或保留细节;先按实际用途检查,不承诺“无损修复”。
36
+
37
+ ## 参数与术语
38
+
39
+ | 参数 | 含义、默认值与范围 |
40
+ | --- | --- |
41
+ | `id` | 必填,工作区内图片素材 ID,例如 `assets/hero.png`,也可用此前工具返回的 `asset_id`。不接受 URL、绝对文件路径或 Base64。 |
42
+ | `workspace_dir` | 可选,工作区根目录绝对路径;建议显式传入,省略时使用 MCP 当前目录。源图必须位于该工作区 `assets/`。 |
43
+ | `auto_grid` | 默认 `true`,自动估计网格。设 `false` 使用手动 `pixel_size`。自动识别失败会报错,不会偷偷回退到手动值。 |
44
+ | `pixel_size` | 默认 8,整数 2~256,仅手动模式控制网格。表示一个逻辑像素对应原图区域的边长;不是输出像素块边长,也不是最终图片宽高。 |
45
+ | `sample_method` | 默认 `median`,另可选 `majority`、`center`,决定如何为每格选择颜色,见下表。 |
46
+ | `export_scale` | 默认 4,整数 1~16;每个逻辑像素导出为多少乘多少的方块。例如 4 表示每格变成 4×4 输出像素。 |
47
+ | `alpha_mode` | 默认 `hard`,另可选 `preserve`,决定每格透明度。 |
48
+ | `alpha_threshold` | 默认 128,整数 0~255,仅 `hard` 生效,比较每格的平均不透明度。 |
49
+
50
+ - **逻辑像素/网格(logical pixel / grid)**:采样后的低分辨率像素阵列。一格成为一个逻辑像素。`grid_width × grid_height` 是格子数量,不是输入图片分辨率,也不是切图的行列参数。
51
+ - **源像素区域(source cell)**:原图里参与生成一个逻辑像素的范围。手动模式从左上角按 `pixel_size` 分格,不足一格的末端区域也会采样;自动模式可微调边界,返回的 `pixel_size_x/y` 是平均源区域尺寸,可以为小数,不是每格都相同的精确裁切框。
52
+ - **最近邻(nearest-neighbor)**:放大时复制最近的逻辑像素颜色,不在相邻颜色间生成平滑过渡。因此整数导出倍率可保持清楚的像素块。
53
+ - **alpha/不透明度**:0 表示透明,255 表示不透明,中间值为半透明。白色或棋盘格图案不等于真实透明。`alpha_threshold` 不按 RGB 颜色判断背景。
54
+ - **识别置信度(confidence)**:自动检测对重复网格规律的内部评分,0~1。它不是还原正确率或美术质量保证;手动模式不返回这个评分。
55
+
56
+ 颜色采样方式:
57
+
58
+ | 值 | 实际行为与选择建议 |
59
+ | --- | --- |
60
+ | `median` | 按透明度加权,分别取红、绿、蓝通道的中位数,可减弱少量颜色噪声。默认起点;不是选择完整像素样本的中位数,结果颜色不一定已存在于原图。 |
61
+ | `majority` | 将可见颜色样本分为两组,取总权重更大的组的代表色。更强调主要色块,不是精确颜色出现次数投票,也不会将整图限制为两个颜色。 |
62
+ | `center` | 取格子中心的可见像素颜色;中心接近透明时回退到可见样本的加权平均。适合网格明确、格子中心有代表性颜色的图片;仍按所选透明度模式计算 alpha。 |
63
+
64
+ 透明度模式:
65
+
66
+ - `hard`:每格平均不透明度达到阈值时输出 255,否则为 0;没有可见颜色样本时仍透明。适合硬边像素精灵,提高阈值会丢弃更多低覆盖的细边或小细节,降低则可能让边缘变厚。
67
+ - `preserve`:以每格透明度样本的中位数作为输出 alpha,可以保留半透明。它不是逐像素保留原透明度;细小柔边、烟雾和阴影仍可能变化。此时 `alpha_threshold` 不控制结果。
68
+
69
+ 没有 `prompt`、`model`、目标宽高、调色板数量、颜色剔除或自定义网格偏移参数。所有颜色方法都可能改变细节与颜色,不承诺调色板一致。
70
+
71
+ ## 调用示例与尺寸计算
72
+
73
+ 自动识别已有像素风角色,并导出硬边像素图,调用 `evomeme_perfect_pixel`:
74
+
75
+ ```json
76
+ {
77
+ "workspace_dir": "D:/my-game",
78
+ "id": "assets/hero.png",
79
+ "auto_grid": true,
80
+ "sample_method": "median",
81
+ "export_scale": 4,
82
+ "alpha_mode": "hard",
83
+ "alpha_threshold": 128
84
+ }
85
+ ```
86
+
87
+ 已确认源图的像素块为 8×8,并需要保留半透明,使用:
88
+
89
+ ```json
90
+ {
91
+ "workspace_dir": "D:/my-game",
92
+ "id": "assets/effect.png",
93
+ "auto_grid": false,
94
+ "pixel_size": 8,
95
+ "sample_method": "majority",
96
+ "export_scale": 4,
97
+ "alpha_mode": "preserve"
98
+ }
99
+ ```
100
+
101
+ 输出尺寸 = **逻辑网格尺寸 × 导出倍率**。例如源图 512×384、手动 `pixel_size=8`,得到 64×48 逻辑网格;`export_scale=4` 输出 **256×192**,不是 2048×1536。不能整除时,手动逻辑宽高分别为 `ceil(源宽/pixel_size)` 与 `ceil(源高/pixel_size)`;末格也会成为一个完整输出方块。
102
+
103
+ 保存限制与画布一致:逻辑网格每边最多 2048,导出每边最多 32768。手动网格过大时应增大 `pixel_size` 或换较小源图;降低 `export_scale` 只减少最终导出尺寸,不减少逻辑网格格数。
104
+
105
+ ## 返回字段与使用方式
106
+
107
+ MCP 返回文本元数据,不内嵌图片字节或 Base64:
108
+
109
+ | 字段 | 实际含义 |
110
+ | --- | --- |
111
+ | `asset_id`、`local_path`、`mime_type` | 新结果的工作区 ID、本地绝对路径及 `image/png`。 |
112
+ | `source_id`、`operation_id`、`status` | 原图 ID、本地操作 ID及成功状态;没有远端 AI `job_id`。 |
113
+ | `width`、`height` | 最终 PNG 实际宽高。 |
114
+ | `grid_width`、`grid_height` | 采样后的逻辑网格宽高。 |
115
+ | `pixel_size_x`、`pixel_size_y` | 实际采用的源像素区域尺寸,自动模式可能是小数。 |
116
+ | `auto_grid`、`pixel_size`、`sample_method`、`export_scale`、`alpha_mode`、`alpha_threshold` | 实际请求设置。自动模式中的 `pixel_size`、保留透明模式中的 `alpha_threshold` 仍可出现,但不控制各自已关闭的处理分支。 |
117
+ | `confidence` | 仅自动模式返回的网格识别评分。 |
118
+
119
+ 处理后打开源图和结果,检查轮廓、颜色、细部、透明边缘及画幅比例;自动模式尤其要检查是否把内容重复误判成网格。失败时先读具体错误,再根据实际源图决定手动大小,不盲目重复同一自动请求。
120
+
121
+ 在游戏中把结果作为普通 PNG 贴图或精灵使用,采用最近邻/点采样并按整数比例显示,避免运行时平滑过滤再次模糊像素块。新图分辨率可能与原图不同,替换素材时需检查显示尺寸、枢轴、图集坐标和碰撞体。若原图是图集,需要切开时继续使用 `game-image-splitter`,完美像素不会替你维护图集坐标。
122
+
123
+ 最终文件仅在本地;需要公网 URL 时用 `evomeme_upload_game_asset` 上传结果的 `local_path`,不要把原图 URL 当成处理后的图片。
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "完美像素"
3
+ short_description: "整理已有像素风图片的网格,解释颜色采样、透明度与整数倍率导出"
4
+ default_prompt: "使用 $game-perfect-pixel 检查这张像素风图片,选择合适网格与透明度设置,输出清晰 PNG 并说明实际尺寸。"
5
+
6
+ policy:
7
+ allow_implicit_invocation: true