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,47 @@
1
+ ---
2
+ name: game-asset-align
3
+ description: 维护 Three.js、Godot 与 Blender 之间的 3D canonical 资产对齐。凡涉及 Tripo/生成模型入库、朝向/尺度/枢轴修复、视觉与语义核对、跨引擎导入不一致、资产修复状态或持续验收,必须先使用本技能。
4
+ ---
5
+
6
+ # Game Asset Align
7
+
8
+ ## Ownership
9
+
10
+ 本技能拥有场景导出契约、资产对齐与修复生命周期。`godot-3d-game` 与 `threejs-3d-game` 消费当前目标已确认的包;Blender 提供建模源场景,导出器负责生成可核对的快照。
11
+
12
+ 只支持当前插件范围内的 Three.js、Godot 4、Blender。不要新增 Unity 或 Unreal 分支。
13
+
14
+ ## Required workflow
15
+
16
+ 默认使用本地 CLI。先读 [CLI 契约](references/tool-contract.md) 选择启动方式;下文 `evomeme` 是 `npx -y evomeme@latest` 或同版本本地构建的简写。指定 `--workspace`,机器读取时加 `--json`。Stage 需保持前台会话运行,拿到 URL 即交给用户,后续命令使用另一终端。
17
+
18
+ 1. 完整 Blender 场景先保存 `.blend`,调用 `evomeme scene export "<scene.blend>" --id <id>` 自动生成源快照、GLB、相机参考图和场景契约,流程见 [Blender 场景建模与导出](references/blender-scene-pipeline.md)。已有独立 GLB/GLTF 使用 `evomeme asset import "<model.glb>" --id <id>` 入库。
19
+ 2. **Blender 建模或修改后,必须先打开 Stage 展板,用户确认当前版本后才允许进入下一步引擎导入。** 调用 `evomeme asset review <id> --workspace "<workspace>" --json` 检查格式与依赖,再调用 `evomeme stage --asset <id> --workspace "<workspace>" --target <target> --json`。target 为 `three_js` 或 `godot`。查看相同机位的 Blender 与目标引擎原生画面,核对空间、结构、材质与灯光。
20
+ 3. 原点/落地修复使用 `evomeme asset repair <id>`;其他几何修改在 Blender 完成后重新导出,见 [修复策略](references/repair-policy.md)。修复会使旧配方失效,必须回展板重新验收。
21
+ 4. 用户在 Stage 点击 **“确认当前版本,允许导入”** 后,才能调用 export/sync/handoff。工具返回已启动、模型加载成功、格式检查通过或 `alignment.ready=true` 都不能代替确认。不得代用户点击、伪造查看/确认记录、用 `verified_by=spec/user_board` 绕过门禁或手动复制资产到引擎。等待确认期间可继续不依赖导入的工作。
22
+ 5. 引擎中只允许一个对齐根节点;禁止在玩法、动画或实体脚本里再补旋转、缩放或位置。
23
+
24
+ `asset.json` v1 可以读取,但不能直接进入引擎。重新保存后升级为 v2 修复状态。
25
+
26
+ export/sync 均强制检查 Stage 当前版本确认;Godot 同步还要求 Godot 原生预览对应的确认,不能用 Three.js 画面代替。修改模型、契约、纹理、Godot profile、材质、灯光或显示实现后必须重新打开 Stage 查看并确认;旧交接包保留原版本。Godot 配置与预览流程见 [Godot 基础视觉对齐](../godot-3d-game/references/appearance-alignment.md)。
27
+
28
+ ## Routing references
29
+
30
+ - 当前单场景对比与历史兼容接口说明:读 [lightweight-review.md](references/lightweight-review.md)。
31
+ - 图片参考建模、完整 Blender 场景导出与程序材质烘焙:读 [blender-scene-pipeline.md](references/blender-scene-pipeline.md)。
32
+ - 需要理解 v2 字段、状态推导或版本失效:读 [alignment-contract.md](references/alignment-contract.md)。
33
+ - 需要决定是改 metadata、wrapper 还是 Blender 几何:读 [repair-policy.md](references/repair-policy.md)。
34
+ - 需要判断“看起来一致”或保存验收证据:读 [visual-review.md](references/visual-review.md)。
35
+ - 需要比较 Three.js、Godot、Blender 能做什么:读 [engine-capabilities.md](references/engine-capabilities.md)。
36
+ - 需要创建、替换或迁移 canonical 包:读 [canonical-package.md](references/canonical-package.md)。
37
+ - 需要选择 CLI 命令、参数或处理门禁错误:读 [tool-contract.md](references/tool-contract.md)。
38
+
39
+ ## Completion gates
40
+
41
+ - `asset.json` 是 `evomeme.canonical_asset.v2`。
42
+ - 当前目标引擎已在 Stage 展示,用户确认记录为当前 revision;只有原任务用户实际确认才允许继续导入。
43
+ - `alignment.overall_status` 为 `aligned`,`alignment.ready` 为 `true`。
44
+ - recipe 绑定当前 `model.glb` SHA-256 和当前 intent revision,并包含 translation、quaternion、scale。
45
+ - spatial、structural、semantic、render 四项均为 `aligned` 或有明确理由的 `waived`。
46
+ - 当前单视窗不得把显示已载入说成视觉契约已全部通过。若任务另行要求导出,继续验证源、意图、配方和唯一 wrapper,不在玩法代码中补偿 Transform。
47
+ - 视觉结论来自目标引擎截图或明确标注的展板近似,不把 Blender/Three.js 截图冒充 Godot 结果。
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "Game Asset Align"
3
+ short_description: "维护生成模型在 Three.js、Godot 与 Blender 间的可审计对齐状态"
4
+ default_prompt: "请使用 $game-asset-align 检查这个 3D 资产包,修复跨引擎朝向、尺度与视觉语义偏差,并给出可持续维护的验收状态。"
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
8
+
@@ -0,0 +1,61 @@
1
+ # Alignment contract v2
2
+
3
+ ## Source of truth
4
+
5
+ `asset.json` keeps the v1 flat fields for UI compatibility, but `alignment` is authoritative for engine readiness.
6
+
7
+ ```json
8
+ {
9
+ "schema": "evomeme.canonical_asset.v2",
10
+ "forward_axis": "+z",
11
+ "up_axis": "+y",
12
+ "pivot": "ground_center",
13
+ "scale_hint_metres": 1.8,
14
+ "alignment": {
15
+ "schema": "evomeme.asset_alignment.v1",
16
+ "source": { "model_file": "model.glb", "sha256": "…", "bytes": 123 },
17
+ "recipe": {
18
+ "source_revision": "…",
19
+ "intent_revision": "…",
20
+ "translation_metres": [0, 0, 0],
21
+ "rotation_quaternion_xyzw": [0, 1, 0, 0],
22
+ "scale_xyz": [1, 1, 1],
23
+ "algorithm_version": "evomeme.stage.v2"
24
+ },
25
+ "conditions": {
26
+ "spatial": { "status": "aligned" },
27
+ "structural": { "status": "aligned" },
28
+ "semantic": { "status": "aligned" },
29
+ "render": { "status": "aligned" }
30
+ },
31
+ "overall_status": "aligned",
32
+ "ready": true,
33
+ "revisions": {
34
+ "source": "…",
35
+ "intent": "…",
36
+ "recipe": "…",
37
+ "alignment_key": "…"
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ ## Four conditions
44
+
45
+ - `spatial`: position, pivot, grounding, facing, up-axis and size are correct.
46
+ - `structural`: hierarchy, mesh parts, skeleton, sockets and animation bindings remain usable.
47
+ - `semantic`: the object identity and functional details match the request.
48
+ - `render`: materials, visibility, normals, texture assignment and target-engine presentation are acceptable.
49
+
50
+ Allowed states are `aligned`, `needs_review`, `misaligned`, `stale`, and `waived`. A required aspect is ready only when `aligned` or explicitly `waived` with evidence.
51
+
52
+ ## Revision invariant
53
+
54
+ An accepted recipe must reference the current source SHA-256 and current intent revision. `alignment_key` binds source + intent + recipe. A model replacement, Blender geometry edit, or intent field change invalidates the prior key. Never copy an old key into a new package.
55
+
56
+ `ready` and `overall_status` are derived values. Export/sync recomputes the invariant and compares the current model bytes; editing `ready: true` by hand cannot bypass the gate.
57
+
58
+ ## v1 migration
59
+
60
+ v1 flat fields are parsed for inspection, then represented as `needs_review` with no accepted recipe. Open the Stage, inspect the actual model, and save to produce v2. Do not bulk-mark legacy assets ready without visual evidence.
61
+
@@ -0,0 +1,35 @@
1
+ # Blender 源场景 → Stage → 引擎
2
+
3
+ ## 从图片开始
4
+
5
+ 先读取图片,明确主体、比例、材质、主光和参考机位。单张图片未展示的背面与遮挡区域按合理假设建模,并在交付时说明。优先通过当前可用的 Blender MCP 完成建模;本插件提供导出和验收流程,不捆绑外部 Blender MCP 安装或图像转三维模型服务。没有 Blender MCP 时,若有本机 Blender,可用 Python 建模;只在缺失路径或不可执行时报告具体阻塞。
6
+
7
+ 先搭建空间和相机,输出低成本参考供迭代,再细化模型、材质和灯光。保存 `.blend` 后进行以下导出。源场景采用米制、unit scale=1,保留场景原点;导出器完成 Blender Z-up 到 glTF Y-up 的转换。不要再旋转整个世界。支持 Cycles/Eevee、透视相机;相机非单位缩放与 lens shift 会报错,需先处理。外链库及未能打包的序列/缓存应在 Blender 本地化后再导出。
8
+
9
+ ## 统一导出入口
10
+
11
+ ```sh
12
+ npx -y evomeme@latest scene export "<scene.blend>" --id courtyard --workspace "<workspace>" --camera-names Reference,MaterialDetail --quality preview --width 960 --bake-materials --texture-size 1024 --godot-project-dir "<godot-project>" --json
13
+ ```
14
+
15
+ 启动版本与路径约定见 [CLI 契约](tool-contract.md),结果在 JSON 的 `data` 中。相机名与 Godot 工程路径可省略;没有相机时自动建立参考机位,并补全 overview。最多 6 个指定透视相机。`--width` 为 320–1920;`--texture-size` 为 256/512/1024/2048。未指定目标工程时 Godot 默认 Compatibility,可用 `--godot-renderer` 指定 mobile/forward_plus/gl_compatibility;预览和同步工程必须一致。
16
+
17
+ 导出器在隔离 Blender 进程中读取已保存源文件,禁用自动脚本执行,保存自包含源快照,生成 GLB、各机位 Blender 原生参考图、源特征清单及两个目标 profile。原文件不改动;活动 Blender 中未保存的更改不会进入导出。失败不会替换当前包。更新同一场景用 `--replace-existing`;旧包保留在返回的 `data.backup_dir`,新版本重新确认。
18
+
19
+ preview 使用快速采样;final 保留源场景采样设置。自由视角原生预览仍为快速模式并关闭景深,不能用它证明最终离线渲染完全一致。
20
+
21
+ ## 烘焙与源契约
22
+
23
+ `--bake-materials` 为可选项,只处理直接连接 Principled BSDF 的受支持程序表面;按对象生成基础色、粗糙度、金属度、切线法线贴图,必要时建立 UV。源 `.blend` 保留原节点;导出模型使用烘焙版本。复杂闭包、混合 shader、体积和间接光不会被此通道烘焙自动转换。保留报告中的跳过原因,不能把部分对象烘焙说成整份材质完成。
24
+
25
+ `scene.contract.json.source_features` 使用 evomeme.source_scene_features.v1,记录节点 ID、对象/材质关联、程序节点、未转换节点、已烘焙通道/对象、体积、世界环境、源渲染设置。ID 优先复用 evomeme_node_id;未设置时由资产和对象名派生,需要跨重命名稳定 ID 时应在源场景设置该属性。
26
+
27
+ 标准 PBR 与灯光事实共用一份源契约。`runtime/three.profile.json` 和 `runtime/godot.profile.json` 保存引擎覆盖;重新导出保留匹配 schema 的既有覆盖,未覆盖灯光从新源事实派生。修改 profile 后更新 contract.files 中的字节数与 SHA-256。
28
+
29
+ 烘焙材质为每个对象建立独立运行时材质;其精确名称记录在 source_features.materials[].runtime_materials。设置引擎材质覆盖时使用该 material_name。未烘焙版本使用 GLB 内的实际材质名。
30
+
31
+ ## 查看与交付
32
+
33
+ 运行 `evomeme stage --asset courtyard --workspace "<workspace>" --target <target> --json`(target 为 three_js/godot),保持前台会话运行并将 `data.url` 交给用户。展板逐项显示已映射、已烘焙、采用近似、尚未实现、待核对,提供相关机位和“记录修复要求”。修复要求会写入反馈记录,需要代理读取并继续修改;按钮不会自行完成修复。
34
+
35
+ 用户查看并确认目标引擎当前版本后,在另一终端执行 `evomeme asset sync courtyard --workspace "<workspace>" --target <target> --project "<project>" --json`。Three.js 游戏使用生成的 loadReviewedScene 和 runtime.render,与 Stage 共用显示实现;Godot 使用 load_scene 与同一原生显示适配器。完成导入后在实际工程复验。确认记录中的 visual_equivalence=not_evaluated 表示没有计算跨渲染器逐像素等价,不抹去已经记录的近似或缺失项。
@@ -0,0 +1,26 @@
1
+ # Canonical package
2
+
3
+ ## Required layout
4
+
5
+ ```text
6
+ assets/canonical/<asset_id>/
7
+ model.glb
8
+ asset.json
9
+ preview/
10
+ ```
11
+
12
+ `asset_id` is normalized and stable. `model_file` remains package-relative. Do not reference files outside the package.
13
+
14
+ An optional `scene.contract.json` may define camera, world-coordinate and display-profile supplements. Its file manifest uses relative paths, byte sizes and SHA-256 hashes. Export/sync verifies the whole manifest and rejects traversal, missing files, stale hashes and coordinate conflicts.
15
+
16
+ For a complete Blender source scene, `evomeme scene export "<scene.blend>" --id <id>` creates this contract, `source/scene.blend`, per-camera references and both engine profiles automatically. See [Blender scene pipeline](blender-scene-pipeline.md). `source_features` makes unsupported/approximate effects visible in Stage; a loaded GLB alone does not demonstrate material or lighting equivalence.
17
+
18
+ ## World-coordinate scenes
19
+
20
+ For a complete meter-scale map already exported as Y-up, use `up_axis=+y`, `forward_axis=-z`, `pivot=origin`, `scale_hint_metres=null` and zero offsets unless evidence says otherwise. Do not center a whole world or normalize it by height.
21
+
22
+ ## Replacement and history
23
+
24
+ `replace_existing=true` may reuse the asset ID and descriptive metadata, but new model bytes create a new source revision. Previous recipes and evidence become stale. Keep repair reports/backups inside the package repair area; never treat a backup as the active `model.glb`.
25
+
26
+ The bounded alignment history explains creation, migration, acceptance and invalidation. It is an audit aid, not a substitute for current revision checks.
@@ -0,0 +1,14 @@
1
+ # Engine capabilities
2
+
3
+ | Component | Owns | Must not own |
4
+ |---|---|---|
5
+ | Stage | Three.js live preview, native Godot/Blender preview, bounds/TRS, explicit user confirmation before import | substituting Three.js frames for Godot, agent acceptance on behalf of the user |
6
+ | Blender | topology, normals, origin baking, mesh cleanup, GLB re-export | final engine readiness, hidden per-engine orientation |
7
+ | Godot 4 | GLB import, one runtime wrapper, gameplay integration, target render/physics QA | guessing authored axes, accumulating compensation transforms |
8
+ | Three.js game | one runtime wrapper, web presentation and gameplay QA | a second canonical schema or per-entity hard rotations |
9
+
10
+ Tripo and other generators are sources, not alignment authorities. Preserve their task/model/version metadata in provenance, but compute readiness from the emitted file and current user intent.
11
+
12
+ Use GLB as the canonical mesh payload. Blender source files may be retained as provenance or repair artifacts, but engines consume the package, not an arbitrary `.blend` working file.
13
+
14
+ Unity and Unreal are intentionally outside this plugin plan. Do not add placeholder adapters that appear supported but bypass validation.
@@ -0,0 +1,34 @@
1
+ # Stage 展板确认与引擎导入
2
+
3
+ Blender 建模或修改后,必须打开 Stage 展板查看当前版本,由用户点击“确认当前版本,允许导入”,之后才能进行下一步导入。仅启动展板、格式检查通过、保存技术对齐状态或 ready=true 均不能放行。
4
+
5
+ 命令启动方式见 [CLI 契约](tool-contract.md)。Stage 以独立前台会话运行,`--json` 启动结果中的 `data.url` 可立即交给用户;验收期间保持会话存活。`asset review` 退出 0 只表示检查完成,还需读取 `data.technical_ok` 和 `data.confirmation.status`。
6
+
7
+ ## 顺序
8
+
9
+ 1. 完整 Blender 场景使用 `evomeme scene export "<scene.blend>" --id <id>` 生成 canonical 包、源快照、契约与原生参考图;已有 GLB 可单独入库。
10
+ 2. `evomeme asset review <id> --workspace "<workspace>" --json` 检查模型格式与文件摘要。
11
+ 3. `evomeme stage --asset <id> --workspace "<workspace>" --target <target> --json` 打开单场景视窗。target 为 three_js 或 godot。
12
+ 4. 以同机位、同画幅对比 Blender 与目标引擎原生渲染,检查空间、结构、材质和灯光。Godot 使用临时原生预览工程,不提前写最终游戏工程。
13
+ 查看“效果转换与待核对项”的映射、烘焙、近似和缺失状态,可跳转相关机位或记录修复要求。状态来自源特征与适配器能力,不是图像相似度评分。
14
+ 5. 用户在页面确认。工具和代理不得代替用户点击,也不得直接构造确认文件。
15
+ 6. 执行 `evomeme asset sync <id> --target <target> --project "<project>" --workspace "<workspace>" --json`。Three.js 确认不能替代 Godot 确认;导出同样需要当前 Stage 确认。
16
+
17
+ 需要修改时回 Blender 或更新引擎 profile,然后重新载入、查看和确认。页面保留单场景范围,不加入资产列表、部件编辑或玩法。
18
+
19
+ ## 环境
20
+
21
+ Blender 通过 EVOMEME_BLENDER / BLENDER_PATH 配置;Godot 通过 EVOMEME_GODOT / GODOT_PATH 或 PATH 上的 godot 配置。原生预览等待时不把旧图冒充当前视角,失败时不能确认当前画面。
22
+
23
+ ## 记录与失效
24
+
25
+ .review/stage-view.json 记录实际展板机位、目标引擎和版本。Godot 查看还绑定原生渲染回执及 profile key。
26
+ .review/confirmation.json 记录用户确认、当前资源/显示实现摘要、完整 TRS、机位、截图摘要和技术报告。
27
+
28
+ 模型、asset.json、场景契约、纹理、Godot profile、材质/灯光配置或显示模块变化会让确认过期。export/sync 在写目标前检查当前确认及对齐配方;设置 verified_by 或直接改 ready 不能绕过。
29
+
30
+ ## 交接与范围
31
+
32
+ 浏览器 handoff 只复现已确认的 Three.js 画面;Godot 用 `evomeme asset sync <id> --target godot --project "<project>"` 输出原生加载器和显示适配器,不把 Three.js 交接图当作 Godot 验收。
33
+
34
+ Godot 基础流程保留 GLB PBR,重建灯光、环境、曝光与相机,支持材料参数校准。面光使用明确标注的近似;Three.js 专用烘焙着色器/LUT 不会在 Godot 自动执行。用户确认资产显示后,游戏集成与玩法仍需目标引擎复验。
@@ -0,0 +1,30 @@
1
+ # Repair policy
2
+
3
+ Choose the shallowest layer that fixes the actual defect while preserving one canonical result.
4
+
5
+ ## Metadata repair
6
+
7
+ Use the Stage or `evomeme asset align <id>` when geometry is sound but authored axes, pivot intent, scale target, semantic type or review evidence are wrong. Save a complete wrapper TRS. Do not bake a rotation into gameplay code.
8
+
9
+ ## Wrapper repair
10
+
11
+ Use the canonical recipe for non-destructive translation, quaternion rotation and scale. The wrapper must be applied exactly once. It is appropriate for grounding, recentering, authored-forward conversion and size normalization.
12
+
13
+ If `pivot=origin` and `scale_hint_metres=null`, a deterministic identity translation/unit scale recipe is possible. Bounds-dependent pivots or height normalization require a measured recipe from the board or another adapter.
14
+
15
+ ## Blender geometry repair
16
+
17
+ Use `evomeme asset repair <id> --ground true` for the supported origin/grounding repair. It backs up the prior model and writes into the same canonical package. It is not a general topology or normals repair command. Edit detached/duplicate parts, normals, topology, or other export defects in Blender, then re-export. See the [CLI contract](tool-contract.md) for launcher, workspace, and JSON conventions.
18
+
19
+ Any Blender result changes the source revision and invalidates all prior review states. Reopen the Stage and accept a new recipe before export or sync.
20
+
21
+ ## Never repair here
22
+
23
+ - player/controller yaw offsets;
24
+ - AnimationTree or animation-track compensations;
25
+ - per-scene scale overrides;
26
+ - a second Godot/Three wrapper;
27
+ - a material tweak claimed as canonical without updating review evidence.
28
+
29
+ These hide drift and cannot be maintained when the asset is regenerated.
30
+
@@ -0,0 +1,69 @@
1
+ # 本地资产 CLI 契约
2
+
3
+ ## 启动与结果
4
+
5
+ 本地资产包、Blender 源场景导出、Stage 和引擎同步默认使用 CLI。以下用 `evomeme` 简写启动命令;执行时替换为 `npx -y evomeme@latest`,不假设安装 IDE 插件后已有全局命令。已有可用本地构建时,也可用 `node "<plugin_client>/dist/index.js"`。先用同一入口执行 `asset --help` 确认版本支持;一次验收与同步使用同一版本,避免显示实现变化使确认失效。
6
+
7
+ 所有命令可加 `--workspace "<工作区>" --json`。工作区默认当前目录;源文件、`--input`、`--project` 等相对路径均相对**命令执行目录**,不是 `--workspace`。跨目录操作优先使用绝对路径。
8
+
9
+ - JSON 成功:`{"ok":true,"data":...}`;失败:`{"ok":false,"error":{"code":"...","message":"..."}}`。
10
+ - 退出码:`0` 操作完成,`2` 参数错误(`INVALID_ARGUMENT`),`1` 业务或文件错误(`OPERATION_FAILED`)。
11
+ - `asset review` 退出 `0` 仅表示检查完成;继续读取 `data.technical_ok` 和 `data.confirmation.status`(`unconfirmed` / `confirmed` / `stale`),不能据此直接导入。
12
+ - Stage 前台常驻。用可保持运行的终端/会话启动,读到启动结果的 `data.url` 即交给用户;不要等待进程退出,也不要在用户验收期间终止会话。后续命令使用另一终端,完成后 Ctrl+C 停止服务。无后台 `start/status/stop` 接口。
13
+
14
+ ## 本地命令
15
+
16
+ 这 12 项资产/Stage 能力已移除 MCP 实现和旧别名,只通过 CLI 调用原业务层。若版本缺少 CLI,使用包含新命令的版本或已有本地构建;不可回退到 MCP,也没有启用兼容入口的开关。门禁错误必须修复或重新验收。
17
+
18
+ | CLI(省略公共参数) | 用途 |
19
+ | --- | --- |
20
+ | `asset import "<model.glb>" --id <id>` | GLB/GLTF 入库 |
21
+ | `asset list` | 列出包 |
22
+ | `asset show <id>` | 读取包 |
23
+ | `asset align <id> --input "<alignment.json>"` | 技术对齐 |
24
+ | `scene export "<scene.blend>" --id <id>` | Blender 源场景导出 |
25
+ | `stage --asset <id> --target <target>` (three_js / godot) | Stage 验收 |
26
+ | `asset review <id>` | 技术检查与确认状态 |
27
+ | `asset repair <id> --ground true` | 原点/落地修复 |
28
+ | `asset export <id>` | 校验并返回包目录 |
29
+ | `asset sync <id> --target three_js --project "<project>"` | Three.js 同步 |
30
+ | `asset sync <id> --target godot --project "<project>"` | Godot 同步 |
31
+ | `asset handoff <id>` | Three.js 交接包 |
32
+
33
+ `import` 接受 GLB/GLTF,新包通常为 `needs_review`;已有 ID 仅在明确替换时加 `--replace-existing`。`show` 读取完整包信息,`list` 可检查 `alignment_status` / `alignment_ready`。Blender 导出参数、烘焙与备份见 [blender-scene-pipeline.md](blender-scene-pipeline.md)。
34
+
35
+ ## 技术对齐
36
+
37
+ `evomeme asset align <id> --input "<alignment.json>" --workspace "<工作区>" --json` 只写技术对齐,不能替代 Stage 用户确认。文件使用 UTF-8 JSON(可带 BOM),只放对齐字段,不放 `workspace_dir` 或 `asset_id`;显式 CLI 参数覆盖文件中的同名字段。例如:
38
+
39
+ ```json
40
+ {
41
+ "forward_axis": "-z",
42
+ "up_axis": "+y",
43
+ "pivot": "origin",
44
+ "scale_hint_metres": null,
45
+ "alignment_recipe": {
46
+ "translation_metres": [0, 0, 0],
47
+ "rotation_quaternion_xyzw": [0, 0, 0, 1],
48
+ "scale_xyz": [1, 1, 1],
49
+ "algorithm_version": "adapter-name.v1"
50
+ },
51
+ "alignment_conditions": {
52
+ "spatial": { "status": "aligned", "evidence": "measured against reference" }
53
+ }
54
+ }
55
+ ```
56
+
57
+ 示例数值与证据应替换为实际测量。配方若提供,必须含完整位置、非零四元数和正尺度;`algorithm_version` 可省略。四类条件为 `spatial`、`structural`、`semantic`、`render`,状态为 `aligned`、`needs_review`、`misaligned`、`stale`、`waived`。依赖边界的 pivot/尺度缺少完整配方时仍不可导入,应通过 Stage 测量,不能编造平移或尺度。
58
+
59
+ 简单意图也可用 `--forward-axis -z --up-axis +y --pivot origin --scale-hint-metres null`;另支持 `--type`、`--verified-by`、`--notes` 及 `--yaw-offset-degrees` / `--pitch-offset-degrees` / `--roll-offset-degrees`。`verified_by` 默认 `agent_vision`。命令语法见 `asset --help`,JSON 形状见 `asset align --help`。
60
+
61
+ ## 修复与交付
62
+
63
+ - `asset repair` 使用本机 Blender 做支持的原点/落地修复,改变源并使旧对齐失效;通用几何编辑仍需在 Blender 修改后重新导出。
64
+ - `asset export` 校验源字节、ready 与当前 Stage 确认,返回包目录,不生成压缩包。
65
+ - Three.js 同步写入 `public/assets/canonical/<id>/`,生成 `src/evomeme-stage/<id>/canonical_loader.js`;用 Three.js 0.170.0、`loadReviewedScene` 与 `runtime.render` 保留验收时的显示管线。
66
+ - Godot 同步要求已有 `project.godot`、匹配的渲染器及当前 Godot 原生 Stage 确认,写入 `assets/canonical/<id>/` 并生成加载器和显示适配器。场景用 `load_scene`,道具用 `load_package`。
67
+ - 浏览器 `asset handoff` 仅支持已确认的 Three.js 版本;Godot 使用 `asset sync <id> --target godot --project "<project>"`。
68
+
69
+ Blender 建模/修改必须经过目标引擎 Stage 查看与用户确认,代理不得代点或伪造记录。门禁失败时读取 pending/stale 原因,修复、重新查看确认后再同步;不直接编辑确认 JSON。
@@ -0,0 +1,26 @@
1
+ # Visual review
2
+
3
+ ## Review sequence
4
+
5
+ 1. Load the exact current `model.glb`; confirm the displayed source revision.
6
+ 2. Compare against the user request or versioned reference, not memory.
7
+ 3. Inspect front/back/side/top and a gameplay camera view.
8
+ 4. Check spatial, structural, semantic and render conditions separately.
9
+ 5. Save the measured wrapper TRS and concise evidence.
10
+ 6. Verify again in the target engine after sync.
11
+
12
+ ## Practical checks
13
+
14
+ - Spatial: feet/wheels/base touch the expected plane; forward direction is unambiguous; height and world scale are plausible; maps retain their intended origin.
15
+ - Structural: named parts exist, transforms are not unexpectedly nested, skeleton and sockets remain attached, animations do not jump on frame zero.
16
+ - Semantic: silhouette, part count, handedness, openings, controls, weapon muzzle, seats, doors and other requested affordances are correct.
17
+ - Render: normals face outward, textures resolve, alpha/culling are correct, material response is credible and no parts disappear under the target camera/light setup.
18
+
19
+ ## Evidence quality
20
+
21
+ Prefer a user-approved board view or target-engine screenshot. Agent visual review is acceptable when the comparison and limitations are recorded. Heuristics alone do not close structural, semantic or render review.
22
+
23
+ Three.js Stage is a neutral inspection surface, not proof of Godot render parity. Blender Cycles, Three.js and Godot use different shading pipelines. Describe approximations explicitly; do not promise pixel identity unless a target-engine capture was compared.
24
+
25
+ For `scene.contract.json`, keep reference camera, aspect ratio, near/far and framing fixed during comparison. Do not let auto-frame controls overwrite a contract camera.
26
+
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: game-asset-batch-generator
3
+ description: 使用 evomeme_generate_asset_batch 按俯视、等距斜视、侧视或自定义视角,一次生成统一风格的静态游戏素材整图,按需自动去底色并始终拆成独立 PNG。适用于制作场景搭建所需的建筑、植被、道具、墙面、地砖或平台素材包。解释工具步骤、实际产物、视角、色键和拆图术语,以及图片如何接入游戏;不用于已有整图的纯拆分、单张背景、动画或需要保证无缝的瓦片。
4
+ ---
5
+
6
+ # 批量游戏素材生成
7
+
8
+ 使用本技能生成一组风格和视角一致、用于拼装场景的静态二维素材。先确定主题、观察角度、参考风格与背景模式,再调用 `evomeme_generate_asset_batch`,检查拆出的图片后交付。
9
+
10
+ ## 工具具体做什么
11
+
12
+ MCP 与画布的批量素材功能共用 `generate_asset_batch` 任务及 `executeAssetBatchGeneration` 函数,由共享 task 层串联已有 image 函数。没有 MCP 调用 MCP,也没有通过画布功能入口串联其他画布入口。编排放在共享 task 层即可,不为移植工具另建流程或更改 image 内置提示词。
13
+
14
+ 一次调用依次执行:
15
+
16
+ 1. **一次 AI 生图**:根据主题、所选视角、可选参考图及原有素材类别要求,生成一张包含多个独立物件的整图。不是逐个物件分别发送生图请求,也不是每张参考图各生成一张。
17
+ 2. **下载整图**:保存到工作区 `assets/`,保留原始生成结果。
18
+ 3. **按背景模式处理**:默认生成纯色背景,再以固定强度 80 色键去底,保存透明 PNG;`transparent_background=true` 时只允许 Max,直接请求透明背景,跳过色键。
19
+ 4. **始终自动拆图**:按检测出的独立前景区域裁切为多个 PNG。不缩放主体、不补齐为相同尺寸。此工具没有关闭拆图的参数。
20
+
21
+ 成功拆出 N 个主体时,最终得到 **N 张独立 PNG(N 至少为 2)**。另外保留 1 张原始整图;经过色键时再保留 1 张去底色整图。因此本次正常成功新增的图片为 N+1 张或 N+2 张,不计原有参考素材。整图格式以其 `mime_type` 为准;去底色和拆图结果为 PNG。
22
+
23
+ 数量取决于生成内容和前景检测,不能保证请求几个物件就精确得到几个文件。输出是图片资源,不包含完整关卡、对象坐标、碰撞体、引擎预制体、图集坐标配置、动画帧序列或无缝拼接保证。
24
+
25
+ ## 什么时候使用
26
+
27
+ | 需求 | 选择 |
28
+ | --- | --- |
29
+ | 为同一主题制作建筑、植被、道具、墙面等场景搭建素材包 | 使用本工具,统一视角和美术参考。 |
30
+ | 为横版关卡准备平台、楼梯、坡面和装饰 | 使用 `side-view`,生成后检查物件是否保持纯侧面。 |
31
+ | 只要一个物件或一张完整背景 | 使用 [通用图片生成](../game-asset-image-generator/SKILL.md),避免强制拆图。 |
32
+ | 要求可反复拼接的无缝瓦片或两种地形的过渡图集 | 使用 [瓦片地图技能](../game-tile-generator/SKILL.md)。这里生成的“地砖”不保证无缝。 |
33
+ | 要循环卷轴背景、中景、前景 | 使用 [卷轴地图技能](../game-scroll-generator/SKILL.md)。 |
34
+ | 要按钮、面板等 UI 皮肤及其使用说明 | 使用 [UI 组件技能](../game-ui-generator/SKILL.md)。 |
35
+ | 已有一张素材整图,仅需裁出物件 | 使用已有图片处理能力;本工具会重新生图,不适合纯拆分。 |
36
+
37
+ ## 术语与视角选择
38
+
39
+ - **素材整图/素材表(asset sheet)**:一张同时放置多个静态物件的图片,物件之间留空以便裁切。它不是已经排好的游戏场景,也不是按时间顺序播放的动画表。
40
+ - **前景主体与自动拆图**:前景指应保留的物件区域。拆图通过像素、透明度和连通区域检测分离主体,不做“这张是树、那张是宝箱”的语义识别。连通区域是像素相邻构成的一块区域;物件粘连可能合并,悬空装饰可能误拆。自动拆图不是按固定行列均分,也不是图层拆解。
41
+ - **色键去底(color key)**:把指定背景色及相近颜色变透明。当前使用 Oklab 感知颜色距离,即按更接近人眼感受的颜色差异判断相似度,固定强度 80,全图处理并柔化边缘。它可能同时去掉物件内的相近颜色,不等同于理解物体轮廓的智能抠图。
42
+ - **原生透明/alpha 通道**:模型直接生成带透明区域的图像;alpha 记录像素的不透明程度,透明处应露出背后的场景,不应是画上去的白色或棋盘格。玻璃、发光和软阴影更适合先尝试 Max 原生透明,仍需检查结果。
43
+ - **去溢色(despill)**:清理主体边缘残留的底色偏色。本流程固定关闭,因此检查洋红边缘、光晕和半透明细节;本工具不能调整该选项。
44
+ - **同尺寸补齐(padding)**:在裁出的物件周围增加透明像素,让所有图片宽高一致。本流程固定 `pad_to_same_size=false`,不同图片通常大小不同,主体不会被缩放到统一大小。
45
+ - **锚点/对齐基准(anchor / pivot)**:运行时用哪个位置放置图片,例如树根、建筑接地中心。拆图内部使用 `anchor=center`,但关闭补齐时不会替你建立游戏里的接地点、枢轴或碰撞范围;必须检查实际图片后设置。
46
+
47
+ `asset_type` 表示**观察视角**,不是物件类别或文件格式:
48
+
49
+ | 值 | 视觉含义、适用场景与现有生成内容 |
50
+ | --- | --- |
51
+ | `top-down`(默认) | 顶部俯视,从上向下观察,适合俯视地图的屋顶、地面、植被与摆件。内置类别包括地砖、墙面、栅栏、植被、建筑、道具及氛围装饰物。 |
52
+ | `isometric` | 等距风格的正交斜视,通常同时看见顶部和侧面,强调远近物体保持一致比例,适合斜视场景搭建。现有预设文案为“正交斜45度俯视角”;这是生图视角约束,不是可验证的三维相机角度或精确网格。类别与俯视预设相同。 |
53
+ | `side-view` | 从侧面观察,适合横版场景。除了建筑、植被等类别,还要求悬浮平台、侧面墙、上下楼梯和上下坡。不是角色朝向图,也不产生移动动画。 |
54
+ | `custom` | 用 `custom_asset_type` 描述自定义观察方式,例如“正面正交视角,建筑外立面”。仍附加通用素材类别;不是替换类别清单或精确物件数量的接口。 |
55
+
56
+ 参考图用于风格、颜色、材质及设计方向,不能覆盖所选视角和独立排列要求。所有模式仍使用原有内置类别清单;用户 `prompt` 补充主题和内容要求,不保证只生成指定子集。
57
+
58
+ ## 参数与调用
59
+
60
+ | 参数 | 实际含义 |
61
+ | --- | --- |
62
+ | `prompt` | 必填、非空。描述主题、画风、配色、材质、期望内容和比例关系。 |
63
+ | `asset_type` | 可选,默认 `top-down`,其余见上表。 |
64
+ | `custom_asset_type` | `custom` 时必填非空视角描述;其他模式不使用。 |
65
+ | `model` | 默认 `asset-pro`,也可选 `asset-max`、`asset-lite`;本流程原生透明仅 Max。 |
66
+ | `size` | 整张素材表的预设尺寸,默认 `1664x2496`,不是每件素材尺寸。须符合模型限制;Lite 不支持 `1024x1024`。 |
67
+ | `reference_ids` | 工作区参考图 ID 数组,默认 `[]`。本流程最多 14 张,Pro 最多 10 张。 |
68
+ | `background_color` | 默认 `#ff00ff`,支持 `#RGB` 或 `#RRGGBB`。作为纯色底和色键色,避开主体颜色;原生透明时不作为底色。 |
69
+ | `transparent_background` | 默认 `false`,生成纯色底再自动色键;`true` 请求 Max 原生透明,仍会自动拆图。 |
70
+ | `workspace_dir` | 工作区根目录绝对路径,建议显式传入;省略时使用 MCP 当前目录。 |
71
+
72
+ 没有 `count`、`components`、`rows`、`columns`、`auto_split`、`pad_to_same_size` 或色键强度输入参数;不要编造或传入这些字段。固定拆图行为通过返回值说明。
73
+
74
+ 参考图先放到所选工作区 `assets/`,确认真实可读,避免覆盖已有文件;外部可访问 URL 需先下载成工作区文件,再传 `assets/style.png` 这样的 ID。参数不接受 URL、Base64 或原附件绝对路径。已有 `asset_id` 可以复用。
75
+
76
+ ```json
77
+ {
78
+ "workspace_dir": "D:/my-game",
79
+ "prompt": "温暖的手绘中世纪村庄素材包,木材与浅色石砖,赭黄和绿色配色,统一左上方光照。建筑、树木、栅栏、木箱与路边装饰比例协调,所有物件完整且彼此留宽空隙,轮廓清晰,不画连续地面或完整场景,主体避免洋红色。",
80
+ "asset_type": "isometric",
81
+ "model": "asset-pro",
82
+ "size": "1664x2496",
83
+ "reference_ids": [],
84
+ "background_color": "#ff00ff",
85
+ "transparent_background": false
86
+ }
87
+ ```
88
+
89
+ 使用自定义视角和原生透明的示例:
90
+
91
+ ```json
92
+ {
93
+ "workspace_dir": "D:/my-game",
94
+ "prompt": "童话小镇场景搭建素材,统一柔和配色与平涂风格,建筑外立面、花盆、路灯及装饰物完整独立摆放,保留细小轮廓,不生成文字或完整场景。",
95
+ "asset_type": "custom",
96
+ "custom_asset_type": "正面正交视角,不俯视,不展示侧面透视",
97
+ "model": "asset-max",
98
+ "transparent_background": true
99
+ }
100
+ ```
101
+
102
+ ## 返回什么与如何使用
103
+
104
+ MCP 返回文本元数据,数组/对象用 JSON 文本表示,不附图片字节或 Base64:
105
+
106
+ - `images` 是最终拆出的 PNG 列表,包含 `id` / `asset_id`、`name`、`kind`、`url`、`operation_id`、`local_path`、`mime_type`。顶层 `asset_id` / `local_path` 对应第一张,不代表整个素材包。`url=/files/...` 是画布本地服务路径,不是公网素材地址。
107
+ - `generated` 指原始生成整图,带远端 `job_id` 和 `tos_url`;`color_key` 在经过色键时指去底色整图,原生透明时可省略。查看整图时优先选 `color_key`,没有时选 `generated`。
108
+ - `asset_type`、适用的 `custom_asset_type`、背景配置、`auto_split=true`、`pad_to_same_size=false` 描述实际处理。`color_key_strength=80` 仅色键路径适用。
109
+ - `operation_id` 表示本地步骤,生成整图中的 `job_id` 表示远端 AI 生图任务。当前共享返回值不提供 `task_id`、`outputs`、拆分框或图片实际宽高;裁切框与输出尺寸保存在拆图步骤记录中。
110
+
111
+ 拆出的文件以批次标识加 `_asset_01.png` 等序号命名,不按物件语义命名。生成后查看整图和各 PNG,根据真实内容建立“文件 → 用途”清单,检查粘连、误拆、缺件、背景残留和不同批次的风格一致性,再按需命名。
112
+
113
+ 接入游戏时将独立 PNG 作为静态精灵/贴图使用:精灵是游戏里显示一张二维图片的对象。依据接地点设置枢轴,按统一世界比例缩放和摆放,并在引擎中另行配置遮挡层级与碰撞体。不要把图片边界直接当作碰撞范围;尺寸一致性、网格对齐和无缝性都需另外验收。需要打包图集时再用项目既有工具打包,记录裁边和枢轴信息。
114
+
115
+ 最终色键和拆图文件只保存本地,没有自动上传;需要公网 URL 时用 `evomeme_upload_game_asset` 上传对应最终 `local_path`,不要拿原整图的 URL 代替某个拆出物件。
116
+
117
+ 拆图至少需要两个可分离主体。若失败,先读取具体错误并通过任务记录或画布定位已生成的整图、可选去底色图和已写入的文件;失败不保证返回完整产物清单。不要因拆图失败就立即重新付费生成。检查原图后选择裁切/处理,确需重新生成时再调整间距、背景或提示词。
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "批量游戏素材生成"
3
+ short_description: "生成统一视角和风格的游戏素材包,解释去底色、自动拆图及资源使用方式"
4
+ default_prompt: "使用 $game-asset-batch-generator 生成一套指定视角的游戏素材,说明生成步骤、文件产物及如何接入游戏。"
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: game-asset-image-generator
3
+ description: 使用 MCP 生成游戏概念图、背景与图片素材,或对已有图片智能抠图、剔除背景色。说明文生图、图生图和透明 PNG 的用途、参考图准备及输出;角色四视图、八方向和视频使用各自技能。
4
+ ---
5
+
6
+ # 游戏图片素材生成与处理
7
+
8
+ 角色四视图或八方向需求使用 [角色四视图与八方向生成技能](../game-character-view-generator/SKILL.md);视频使用 [游戏视频生成技能](../game-video-generator/SKILL.md);生成瓦片地图或无缝砖块时必须使用 [瓦片地图资源生成、编辑与优化技能](../game-tile-generator/SKILL.md),地块集生成及已有地块消缝也使用该技能。
9
+
10
+ 生成、编辑卷轴地图、横向循环背景或视差图层时,必须使用 [卷轴地图资源生成与编辑](../game-scroll-generator/SKILL.md),其中同时说明已有卷轴图的左右消缝。
11
+
12
+ ## 工作区与产物
13
+
14
+ 调用图片工具时显式传入当前工作区根目录的绝对路径 `workspace_dir`。产物保存在该工作区的 `assets/` 中;记录返回的 `asset_id`、`local_path` 和远端 URL。
15
+
16
+ 平台游戏运行时通过项目配置(通常为 `public/config.json`)读取 TOS URL。颜色剔除只生成本地 PNG;需要将它用于平台游戏时,另行调用 `evomeme_upload_game_asset` 上传其 `local_path` 并记录返回 URL。
17
+
18
+ ## 参考图准备(调用前必须完成)
19
+
20
+ 使用用户上传附件、对话图片、概念图或其他本地图片作为生图参考时,必须先将图片放入本次 `workspace_dir` 对应的 `assets/`,再调用生图 MCP:
21
+
22
+ 1. 定位 IDE 提供的真实附件文件,并确认图片可以读取;只有可访问图片链接时,先下载为本地图片。无法取得实际图片文件时说明缺失,停止该次参考图调用,不得猜测路径或素材 ID。
23
+ 2. 图片已在当前工作区 `assets/` 内时直接复用;位于其他位置(包括工作区中 `assets/` 以外的目录)时,先复制到 `assets/` 或其子目录,例如 `assets/references/`。同名但不同内容的文件使用新文件名,避免覆盖已有素材。
24
+ 3. 确认复制后的图片存在且可读取,以它相对于工作区根目录的路径作为素材 ID,使用 `/` 分隔。例如 `D:/my-game/assets/references/hero.png` 对应 `assets/references/hero.png`。
25
+ 4. 普通图生图将这些 ID 放入 `reference_ids`;四视图和八方向使用 `character_reference_id`,已有四视图使用 `four_view_id`。显式传入同一个 `workspace_dir`。这些参数不接受原始附件绝对路径、URL 或图片 Base64。
26
+
27
+ 已有生图产物直接复用返回的 `asset_id`,不重复复制。这套步骤让参考图成为工作区素材,使生成任务能记录来源并供画布绘制依赖连线。无参考图的文生图不需要准备参考文件。
28
+
29
+ ## 三个平级图片工具
30
+
31
+ | 工具(中文名称) | 具体操作与产物 | 使用情况 |
32
+ | --- | --- | --- |
33
+ | `evomeme_generate_game_image`(图片生成) | 根据提示词及可选参考图生成一张新图片,保存到 `assets/` 并返回路径和云端 URL。格式以返回的 `mime_type` 为准。 | 生成概念图、角色、道具、背景;无参考图为文生图,有参考图为图生图。 |
34
+ | `evomeme_cutout_game_image`(智能抠图) | 识别原图主体、生成蒙版,再用蒙版合成一张透明 PNG,保存到 `assets/` 并上传。蒙版表示每个像素应保留或变透明的程度。 | 保留角色或道具主体,去掉背景,特别是背景并非单一颜色时。 |
35
+ | `evomeme_color_key`(颜色剔除) | 在本地将与指定颜色匹配的像素变透明,生成一张新的 PNG,保存到 `assets/`;不会自动上传。 | 智能抠图不可用,且背景颜色明确时;例如去掉纯白或洋红底。 |
36
+
37
+ 三个工具与画布对应功能共用客户端底层函数。透明 PNG 的透明区域由 alpha 通道记录,可叠放到游戏场景;它不是涂成白色的背景。
38
+
39
+ 互不依赖的素材任务可以并行;生成图片之后再抠图或剔除颜色的步骤依赖前一步产物,须按顺序执行。图片生成不会自动抠图。
40
+
41
+ ## 图片生成
42
+
43
+ | 参数 | 必填 | 说明 |
44
+ | --- | --- | --- |
45
+ | `prompt` | 是 | 提示词。 |
46
+ | `model` | 否 | `asset-max`、`asset-pro`、`asset-lite`,默认 `asset-pro`。 |
47
+ | `background` | 否 | `opaque`、`transparent`、`auto`,默认 `opaque`。 |
48
+ | `size` | 否 | 所选模型支持的预设,默认 `2048x2048`。 |
49
+ | `reference_ids` | 否 | 工作区参考图片素材 ID 数组,例如 `["assets/hero.png"]`;省略或空数组为文生图。 |
50
+ | `workspace_dir` | 否 | 当前工作区绝对路径,调用时显式指定。 |
51
+
52
+ 预设包括 `1024x1024`、`2048x2048`、`1728x2304`、`2304x1728`、`2560x1440`、`1440x2560`、`1664x2496`、`2496x1664`、`3024x1296`;`asset-lite` 不支持 `1024x1024`。
53
+
54
+ 透明文生图使用 `model="asset-max", background="transparent"`。`auto` 背景也仅适用于 `asset-max`。`asset-lite` 没有背景切换。`asset-pro` 的 `transparent` 要求 `reference_ids` 中恰好一张含透明像素的 PNG。参考图相对于 `workspace_dir`,可使用图片工具返回的 `asset_id`;`asset-pro` 最多 10 张,`asset-lite` 最多 14 张,`asset-max` 最多 16 张。参数及参考图处理与画布图片生成一致,但 MCP 只接受预设尺寸,不接受自定义尺寸或旧版图片类型参数。
55
+
56
+ 生成单个静态元素时先读取 [静态游戏元素提示词指南](references/static-game-assets.md);完整背景先读取 [游戏背景提示词指南](references/background.md)。已有概念图时,读取其造型、配色和画风并写入提示词,需要直接引用时通过 `reference_ids` 提供工作区图片。
57
+
58
+ ## 智能抠图
59
+
60
+ 提供 `id` 或 `image_url` 中的一个,并指定 `workspace_dir`:
61
+
62
+ - `id`:工作区图片素材 ID,例如 `assets/hero.png`,可使用生成工具返回的 `asset_id`。
63
+ - `image_url`:可访问的 HTTP/HTTPS 原图 URL。
64
+
65
+ 工具等待蒙版任务完成,在本地合成透明 PNG 并上传。失败信息透传到 MCP;工具不会自行改用颜色剔除。
66
+
67
+ ## 颜色剔除
68
+
69
+ | 参数 | 必填 | 说明 |
70
+ | --- | --- | --- |
71
+ | `id` | 是 | 工作区原图素材 ID。 |
72
+ | `color` | 否 | 剔除颜色,`#RRGGBB`,默认 `#ffffff`。 |
73
+ | `strength` | 否 | 0–100,默认 80。 |
74
+ | `contiguous_only` | 否 | 仅剔除与图像边界相连的连续区域,默认 `false`。 |
75
+ | `despill` | 否 | 消除保留边缘像素中的背景色溢出,默认 `false`。 |
76
+ | `workspace_dir` | 否 | 当前工作区绝对路径。 |
77
+
78
+ 本地执行,不依赖登录或智能抠图服务。先根据原图背景选择剔除颜色;它按颜色处理,不具备语义主体识别能力。
79
+
80
+ `strength` 控制颜色匹配的容差,越大越容易连同相近颜色一起剔除。`contiguous_only` 为 `true` 时,只去掉能从图片边界连通到的匹配区域,减少主体内部同色区域被挖空的情况。`despill`(滤色)用于减轻保留下来的半透明边缘所混入的背景色,不会识别或重画主体。
81
+
82
+ ## 返回与失败
83
+
84
+ 三个工具成功后只返回文本元数据,不返回图片 Base64 或 MCP `image` 内容块。文本包含 `asset_id`、`local_path`、`mime_type` 和处理信息;生成与智能抠图还包含 `job_id`、`asset_url`/`tos_url`、`status` 和 `attempts`,颜色剔除包含本地 `operation_id` 与四个处理参数。通过 `asset_id` 继续处理素材,通过 URL 引用云端图片;需要查看图片内容时,按需使用 IDE 可用的图片查看工具读取 `local_path` 或打开图片 URL,不要把图片 Base64 写入对话或项目配置。
85
+
86
+ 失败时 `isError: true`,文本保留具体错误。记录失败原因并使用仍然保留的原图;智能抠图不可用时,按原图背景选择颜色剔除参数。
@@ -1,10 +1,12 @@
1
1
  # 游戏背景提示词指南
2
2
 
3
+ 本指南用于普通完整单层背景。生成卷轴地图、横向循环背景、多层视差资源或修补卷轴接缝时,必须使用 [卷轴地图资源生成与编辑](../../game-scroll-generator/SKILL.md);该技能会按需生成多层、消缝和去底色。
4
+
3
5
  游戏背景是铺满游戏画面的完整单层场景图片,例如森林、城市街道、太空区域、地下洞穴或室内空间。每张背景只生成一次,并作为单独的 `background` 图片使用。
4
6
 
5
7
  ## 使用概念图作为引用
6
8
 
7
- 如果存在游戏概念图或当前场景的设定概念图,必须将概念图的可访问 URL 作为 `reference_image_url`:
9
+ 如果存在游戏概念图或当前场景的设定概念图,先读取其内容并将可继承的特征写入提示词;需要直接引用原图时,必须先将图片复制到当前工作区 `assets/`(已在其中则复用),确认可读取后再通过 `reference_ids` 提供工作区相对素材 ID,显式指定同一 `workspace_dir`:
8
10
 
9
11
  - 优先使用当前场景的设定概念图;没有时再使用整体游戏概念图。
10
12
  - 在提示词中明确需要继承的特征,例如世界观、场景结构、配色、材质、光照和画风。