evomeme 0.1.9 → 0.1.10-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas-public/app.js +509 -5999
- package/dist/canvas-public/assets/presets/catalog.json +47 -0
- package/dist/canvas-public/assets/presets/tiles/A_01_CaoDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_02_ShaMo.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_03_TianKong.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_04_ShuiBo.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_05_HaiMian.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_06_MuDiBan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_07_ShiZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_08_AnRongYan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_09_QingTaiShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_10_ShenHai.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_11_HuiYanShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_12_HongTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_13_GengDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_14_HuoShanYan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_15_NiTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_16_HuangSha.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_17_CongLin.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_18_ZiYanShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_19_MoGuTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_20_HuaDian.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_21_HaiLang.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_22_GanTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_23_QingTaiShiBan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_24_XingKong.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_25_MoFaFuWen.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_26_ShiTuYeDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_27_LanZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_28_HongZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_29_YueQiu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_30_JinShuGe.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_31_JinShuJingGai.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_32_ShuZiChuang.png +0 -0
- package/dist/canvas-public/canvas/actions.js +143 -0
- package/dist/canvas-public/canvas/camera.js +28 -0
- package/dist/canvas-public/canvas/chrome.js +13 -0
- package/dist/canvas-public/canvas/data.js +123 -0
- package/dist/canvas-public/canvas/dependencies.js +19 -0
- package/dist/canvas-public/canvas/interactions.js +544 -0
- package/dist/canvas-public/canvas/panel-resize.js +5 -0
- package/dist/canvas-public/canvas/renderer.js +297 -0
- package/dist/canvas-public/canvas/selection.js +62 -0
- package/dist/canvas-public/canvas/serialization.js +118 -0
- package/dist/canvas-public/canvas/sync.js +202 -0
- package/dist/canvas-public/core/api.js +27 -0
- package/dist/canvas-public/core/feature-registry.js +29 -0
- package/dist/canvas-public/core/feature-state.js +228 -0
- package/dist/canvas-public/core/layout.js +133 -0
- package/dist/canvas-public/core/operations.js +38 -0
- package/dist/canvas-public/core/project.js +203 -0
- package/dist/canvas-public/core/state.js +27 -0
- package/dist/canvas-public/dialogs/context-menu.js +118 -0
- package/dist/canvas-public/elements/base.js +100 -0
- package/dist/canvas-public/elements/connections.js +105 -0
- package/dist/canvas-public/elements/drag.js +53 -0
- package/dist/canvas-public/elements/image.js +259 -0
- package/dist/canvas-public/elements/loading-recovery.js +5 -0
- package/dist/canvas-public/elements/loading.js +21 -0
- package/dist/canvas-public/elements/map.js +64 -0
- package/dist/canvas-public/elements/registry.js +58 -0
- package/dist/canvas-public/elements/replacement.js +78 -0
- package/dist/canvas-public/elements/resize.js +210 -0
- package/dist/canvas-public/elements/task-pipeline.js +234 -0
- package/dist/canvas-public/elements/types.js +21 -0
- package/dist/canvas-public/elements/ui.js +14 -0
- package/dist/canvas-public/elements/video.js +64 -0
- package/dist/canvas-public/features/assets/local-assets.js +72 -0
- package/dist/canvas-public/features/assets/official-assets.js +538 -0
- package/dist/canvas-public/features/editing/canvas-size.js +532 -0
- package/dist/canvas-public/features/editing/color-key.js +469 -0
- package/dist/canvas-public/features/editing/cutout.js +20 -0
- package/dist/canvas-public/features/editing/interactive-image-editing.js +981 -0
- package/dist/canvas-public/features/editing/layer-decomposition.js +44 -0
- package/dist/canvas-public/features/editing/manual-split.js +114 -0
- package/dist/canvas-public/features/editing/perfect-pixel.js +336 -0
- package/dist/canvas-public/features/editing/scroll-preview.js +129 -0
- package/dist/canvas-public/features/editing/scroll-seam-elimination.js +71 -0
- package/dist/canvas-public/features/editing/seam-elimination.js +46 -0
- package/dist/canvas-public/features/editing/smart-split.js +48 -0
- package/dist/canvas-public/features/editing/source-preview.js +43 -0
- package/dist/canvas-public/features/editing/video-cycle.js +49 -0
- package/dist/canvas-public/features/editing/video-frames.js +35 -0
- package/dist/canvas-public/features/frame-editor/frame-editing.js +755 -0
- package/dist/canvas-public/features/frame-editor/frame-model.js +63 -0
- package/dist/canvas-public/features/frame-editor/playback.js +83 -0
- package/dist/canvas-public/features/frame-editor/preview.js +149 -0
- package/dist/canvas-public/features/generation/animation.js +272 -0
- package/dist/canvas-public/features/generation/asset-batch.js +102 -0
- package/dist/canvas-public/features/generation/direction.js +163 -0
- package/dist/canvas-public/features/generation/fields.js +73 -0
- package/dist/canvas-public/features/generation/game-ui.js +64 -0
- package/dist/canvas-public/features/generation/image.js +96 -0
- package/dist/canvas-public/features/generation/scroll-image.js +157 -0
- package/dist/canvas-public/features/generation/seamless-tile.js +52 -0
- package/dist/canvas-public/features/generation/tile-transition-atlas.js +79 -0
- package/dist/canvas-public/features/generation/video.js +105 -0
- package/dist/canvas-public/features/map/creation.js +73 -0
- package/dist/canvas-public/features/map/tile-map-editor.js +2518 -0
- package/dist/canvas-public/features/registry.js +59 -0
- package/dist/canvas-public/index.html +84 -259
- package/dist/canvas-public/inspector/controls.js +49 -0
- package/dist/canvas-public/inspector/frame-preview.js +11 -0
- package/dist/canvas-public/inspector/inspector.js +190 -0
- package/dist/canvas-public/inspector/media-inspector.js +517 -0
- package/dist/canvas-public/inspector/media-preview.js +56 -0
- package/dist/canvas-public/inspector/number-stepper.js +96 -0
- package/dist/canvas-public/inspector/resize.js +88 -0
- package/dist/canvas-public/inspector/scroll-preview.js +11 -0
- package/dist/canvas-public/inspector/ui-inspector.js +14 -0
- package/dist/canvas-public/language/en-US.js +1059 -0
- package/dist/canvas-public/language/index.js +79 -0
- package/dist/canvas-public/language/zh-CN.js +1059 -0
- package/dist/canvas-public/map/export.js +9 -0
- package/dist/canvas-public/map/inspector.js +8 -0
- package/dist/canvas-public/map/model.js +409 -0
- package/dist/canvas-public/map/tile-map-editor.js +2 -0
- package/dist/canvas-public/media/metadata.js +183 -0
- package/dist/canvas-public/media/support.js +183 -0
- package/dist/canvas-public/styles/base.css +49 -0
- package/dist/canvas-public/styles/canvas.css +127 -0
- package/dist/canvas-public/styles/controls.css +203 -0
- package/dist/canvas-public/styles/dialogs.css +521 -0
- package/dist/canvas-public/styles/feature-form.css +409 -0
- package/dist/canvas-public/styles/inspector.css +441 -0
- package/dist/canvas-public/styles/layout.css +344 -0
- package/dist/canvas-public/styles/map.css +11 -0
- package/dist/canvas-public/styles/nodes.css +636 -0
- package/dist/canvas-public/styles.css +9 -2247
- package/dist/canvas-public/ui/controls.js +222 -0
- package/dist/canvas-public/ui/elements.js +9 -0
- package/dist/canvas-public/ui/feature-controller.js +296 -0
- package/dist/canvas-public/ui/feature-form.js +401 -0
- package/dist/canvas-public/ui/settings.js +83 -0
- package/dist/canvas-public/ui/toolbar.js +55 -0
- package/dist/canvas-public/vendor/pixi-tilemap.js +126 -0
- package/dist/canvas-public/vendor/pixi.min.js +2340 -0
- package/dist/canvas-public/workers/color-key-worker.js +289 -0
- package/dist/canvas-public/workers/perfect-pixel-worker.js +510 -0
- package/dist/index.js +42004 -12938
- package/dist/skills/en-US/evomeme-canvas/SKILL.md +52 -0
- package/dist/skills/en-US/evomeme-canvas/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-cloud-fs/SKILL.md +197 -0
- package/dist/skills/en-US/evomeme-cloud-fs/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-cover/SKILL.md +131 -0
- package/dist/skills/en-US/evomeme-cover/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-game-maker/SKILL.md +288 -0
- package/dist/skills/en-US/evomeme-game-maker/agents/openai.yaml +4 -0
- package/dist/skills/en-US/evomeme-login/SKILL.md +92 -0
- package/dist/skills/en-US/evomeme-login/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-native-bridge-sdk/SKILL.md +286 -0
- package/dist/skills/en-US/evomeme-native-bridge-sdk/agents/openai.yaml +8 -0
- package/dist/skills/en-US/evomeme-tos-upload/SKILL.md +47 -0
- package/dist/skills/en-US/evomeme-tos-upload/agents/openai.yaml +5 -0
- package/dist/skills/en-US/evomeme-ui/SKILL.md +123 -0
- package/dist/skills/en-US/evomeme-ui/agents/openai.yaml +4 -0
- package/dist/skills/en-US/evomeme-ui/references/host-layout.md +69 -0
- package/dist/skills/en-US/game-art/SKILL.md +121 -0
- package/dist/skills/en-US/game-art/agents/openai.yaml +8 -0
- package/dist/skills/en-US/game-asset-align/SKILL.md +45 -0
- package/dist/skills/en-US/game-asset-align/agents/openai.yaml +8 -0
- package/dist/skills/en-US/game-asset-align/references/alignment-contract.md +61 -0
- package/dist/skills/en-US/game-asset-align/references/blender-scene-pipeline.md +45 -0
- package/dist/skills/en-US/game-asset-align/references/canonical-package.md +26 -0
- package/dist/skills/en-US/game-asset-align/references/engine-capabilities.md +14 -0
- package/dist/skills/en-US/game-asset-align/references/lightweight-review.md +32 -0
- package/dist/skills/en-US/game-asset-align/references/repair-policy.md +30 -0
- package/dist/skills/en-US/game-asset-align/references/tool-contract.md +39 -0
- package/dist/skills/en-US/game-asset-align/references/visual-review.md +26 -0
- package/dist/skills/en-US/game-asset-image-generator/SKILL.md +64 -0
- package/dist/skills/en-US/game-asset-image-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-asset-image-generator/references/background.md +32 -0
- package/dist/skills/en-US/game-asset-image-generator/references/static-game-assets.md +38 -0
- package/dist/skills/en-US/game-audio/SKILL.md +82 -0
- package/dist/skills/en-US/game-audio/agents/openai.yaml +4 -0
- package/dist/skills/en-US/game-demo/SKILL.md +103 -0
- package/dist/skills/en-US/game-demo/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-maker/SKILL.md +111 -0
- package/dist/skills/en-US/game-maker/agents/openai.yaml +4 -0
- package/dist/skills/en-US/game-test/SKILL.md +58 -0
- package/dist/skills/en-US/game-test/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-ui/SKILL.md +177 -0
- package/dist/skills/en-US/game-ui/agents/openai.yaml +4 -0
- package/dist/skills/en-US/godot-3d-game/SKILL.md +39 -0
- package/dist/skills/en-US/godot-3d-game/agents/openai.yaml +8 -0
- package/dist/skills/en-US/godot-3d-game/references/alignment-gates.md +26 -0
- package/dist/skills/en-US/godot-3d-game/references/appearance-alignment.md +52 -0
- package/dist/skills/en-US/godot-3d-game/references/build-and-qa.md +22 -0
- package/dist/skills/en-US/godot-3d-game/references/canonical-asset-runtime.md +27 -0
- package/dist/skills/en-US/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
- package/dist/skills/en-US/godot-3d-game/references/physics-colliders.md +13 -0
- package/dist/skills/en-US/godot-3d-game/references/project-structure.md +22 -0
- package/dist/skills/en-US/godot-3d-game/references/skeleton-animation.md +16 -0
- package/dist/skills/en-US/phaser-2d-game/SKILL.md +127 -0
- package/dist/skills/en-US/phaser-2d-game/agents/openai.yaml +8 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-performance.md +64 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-physics.md +139 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-runtime.md +129 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-spritesheets.md +99 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-tilemaps.md +80 -0
- package/dist/skills/en-US/phaser-2d-game/references/file-structure.md +94 -0
- package/dist/skills/en-US/phaser-2d-graphics-builder/SKILL.md +68 -0
- package/dist/skills/en-US/phaser-2d-graphics-builder/agents/openai.yaml +7 -0
- package/dist/skills/en-US/threejs-3d-game/SKILL.md +117 -0
- package/dist/skills/en-US/threejs-3d-game/agents/openai.yaml +7 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-asset-pipeline.md +153 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-audio.md +70 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-input-camera.md +84 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-performance.md +96 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-physics.md +142 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-runtime.md +199 -0
- package/dist/skills/en-US/threejs-3d-game/references/file-structure.md +353 -0
- package/dist/skills/en-US/threejs-aaa-graphics-builder/SKILL.md +62 -0
- package/dist/skills/en-US/threejs-aaa-graphics-builder/agents/openai.yaml +7 -0
- package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/SKILL.md +28 -7
- package/{skills → dist/skills/zh-CN}/evomeme-cover/SKILL.md +7 -8
- package/{skills → dist/skills/zh-CN}/evomeme-game-maker/SKILL.md +91 -88
- package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/SKILL.md +6 -5
- package/dist/skills/zh-CN/evomeme-ui/SKILL.md +123 -0
- package/dist/skills/zh-CN/evomeme-ui/agents/openai.yaml +4 -0
- package/dist/skills/zh-CN/evomeme-ui/references/host-layout.md +69 -0
- package/dist/skills/zh-CN/game-asset-align/SKILL.md +45 -0
- package/dist/skills/zh-CN/game-asset-align/agents/openai.yaml +8 -0
- package/dist/skills/zh-CN/game-asset-align/references/alignment-contract.md +61 -0
- package/dist/skills/zh-CN/game-asset-align/references/blender-scene-pipeline.md +45 -0
- package/dist/skills/zh-CN/game-asset-align/references/canonical-package.md +26 -0
- package/dist/skills/zh-CN/game-asset-align/references/engine-capabilities.md +14 -0
- package/dist/skills/zh-CN/game-asset-align/references/lightweight-review.md +32 -0
- package/dist/skills/zh-CN/game-asset-align/references/repair-policy.md +30 -0
- package/dist/skills/zh-CN/game-asset-align/references/tool-contract.md +39 -0
- package/dist/skills/zh-CN/game-asset-align/references/visual-review.md +26 -0
- package/dist/skills/zh-CN/game-asset-image-generator/SKILL.md +64 -0
- package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/background.md +1 -1
- package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/static-game-assets.md +2 -2
- package/dist/skills/zh-CN/game-audio/references/bgm-cdn.md +127 -0
- package/dist/skills/zh-CN/game-audio/references/sfx-cdn.md +77 -0
- package/dist/skills/zh-CN/game-test/references/checklists/playtest-qa.md +12 -0
- package/{skills → dist/skills/zh-CN}/game-ui/SKILL.md +9 -1
- package/dist/skills/zh-CN/game-ui/references/checklists/game-ui-quality.md +14 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/hud-readability.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/mobile-input.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/responsive-ui-fit.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/ui-patterns.md +140 -0
- package/dist/skills/zh-CN/game-ui/references/ui-prompt-templates.md +63 -0
- package/dist/skills/zh-CN/godot-3d-game/SKILL.md +39 -0
- package/dist/skills/zh-CN/godot-3d-game/agents/openai.yaml +8 -0
- package/dist/skills/zh-CN/godot-3d-game/references/alignment-gates.md +26 -0
- package/dist/skills/zh-CN/godot-3d-game/references/appearance-alignment.md +52 -0
- package/dist/skills/zh-CN/godot-3d-game/references/build-and-qa.md +22 -0
- package/dist/skills/zh-CN/godot-3d-game/references/canonical-asset-runtime.md +27 -0
- package/dist/skills/zh-CN/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
- package/dist/skills/zh-CN/godot-3d-game/references/physics-colliders.md +13 -0
- package/dist/skills/zh-CN/godot-3d-game/references/project-structure.md +22 -0
- package/dist/skills/zh-CN/godot-3d-game/references/skeleton-animation.md +16 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/compose-quality.md +10 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +15 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +10 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/compose-recipes.md +71 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +33 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/implementation-blueprint.md +82 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/sprite-recipes.md +90 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/technical-art.md +67 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/vfx-recipes.md +67 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/visual-scorecard.md +129 -0
- package/{skills → dist/skills/zh-CN}/threejs-3d-game/SKILL.md +6 -2
- package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-asset-pipeline.md +52 -15
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +23 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +19 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +14 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +14 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +15 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +17 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +236 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/implementation-blueprint.md +161 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/model-recipes.md +146 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/render-recipes.md +90 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/shader-cookbook.md +292 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/technical-art.md +167 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/visual-scorecard.md +147 -0
- package/dist/stage-blender/bake_materials.py +102 -0
- package/dist/stage-blender/export_scene.py +275 -0
- package/dist/stage-blender/preview_camera.py +90 -0
- package/dist/stage-blender/repair_mesh.py +112 -0
- package/dist/stage-public/app.js +759 -0
- package/dist/stage-public/baked/bakePilot.js +44 -0
- package/dist/stage-public/baked/bakedScene.js +129 -0
- package/dist/stage-public/baked/sceneAppearance.js +225 -0
- package/dist/stage-public/baked/sceneCamera.js +45 -0
- package/dist/stage-public/comparison-contract.js +28 -0
- package/dist/stage-public/delivery.html +4 -0
- package/dist/stage-public/delivery.js +17 -0
- package/dist/stage-public/godot/appearance.gd +170 -0
- package/dist/stage-public/godot/preview.gd +79 -0
- package/dist/stage-public/index.html +141 -0
- package/dist/stage-public/review-app.js +289 -0
- package/dist/stage-public/review-runtime.js +63 -0
- package/dist/stage-public/review.css +24 -0
- package/dist/stage-public/review.html +47 -0
- package/dist/stage-public/scene-runtime.js +212 -0
- package/dist/stage-public/sceneContractRuntime.js +235 -0
- package/dist/stage-public/styles.css +328 -0
- package/dist/stage-public/three-appearance.js +104 -0
- package/dist/stage-public/vendor/three170/LICENSE +21 -0
- package/dist/stage-public/vendor/three170/build/three.module.js +54571 -0
- package/dist/stage-public/vendor/three170/examples/jsm/controls/OrbitControls.js +1523 -0
- package/dist/stage-public/vendor/three170/examples/jsm/environments/RoomEnvironment.js +144 -0
- package/dist/stage-public/vendor/three170/examples/jsm/libs/fflate.module.js +2672 -0
- package/dist/stage-public/vendor/three170/examples/jsm/loaders/EXRLoader.js +2563 -0
- package/dist/stage-public/vendor/three170/examples/jsm/loaders/GLTFLoader.js +4727 -0
- package/dist/stage-public/vendor/three170/examples/jsm/utils/BufferGeometryUtils.js +1373 -0
- package/dist/tile-transition-mask.svg +40 -0
- package/package.json +21 -7
- package/dist/canvas-public/cycle-detect.js +0 -166
- package/dist/canvas-public/smart-split.js +0 -185
- package/skills/game-asset-image-generator/SKILL.md +0 -104
- /package/{skills → dist/skills/en-US}/game-audio/references/bgm-cdn.md +0 -0
- /package/{skills → dist/skills/en-US}/game-audio/references/sfx-cdn.md +0 -0
- /package/{skills → dist/skills/en-US}/game-test/references/checklists/playtest-qa.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/game-ui-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/hud-readability.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/mobile-input.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/responsive-ui-fit.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/ui-patterns.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/ui-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/compose-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/compose-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/implementation-blueprint.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/sprite-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/technical-art.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/vfx-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/implementation-blueprint.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/model-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/render-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/shader-cookbook.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/technical-art.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-canvas/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-canvas/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-cover/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-game-maker/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-login/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-login/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-art/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-art/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-audio/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-audio/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-demo/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-demo/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-maker/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-maker/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-test/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-test/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-ui/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-performance.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-physics.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-runtime.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-spritesheets.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-tilemaps.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/file-structure.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-audio.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-input-camera.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-performance.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-physics.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-runtime.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/file-structure.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/agents/openai.yaml +0 -0
package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Technical Art Quality Checklist
|
|
2
|
+
|
|
3
|
+
- [ ] Technical art brief written before broad visual changes
|
|
4
|
+
- [ ] Hero vs support surfaces listed
|
|
5
|
+
- [ ] Texture/atlas plan noted
|
|
6
|
+
- [ ] VFX language + caps noted
|
|
7
|
+
- [ ] Asset strategy per high-value surface recorded
|
|
8
|
+
- [ ] Mobile constraints acknowledged
|
|
9
|
+
- [ ] Post-pass diagnostics reported (even if qualitative + caps)
|
package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Visual Scorecard Checklist (2D)
|
|
2
|
+
|
|
3
|
+
- [ ] Compared active-play screenshot to `assets/scorecard-anchors/` (scene-1 / scene-2 / scene-3)
|
|
4
|
+
- [ ] Scored from active-play screenshot (not title-only)
|
|
5
|
+
- [ ] All 10 categories scored 0–3 with one-line evidence
|
|
6
|
+
- [ ] Average computed
|
|
7
|
+
- [ ] Automatic Failures checked explicitly
|
|
8
|
+
- [ ] Fresh-eyes weakest-two named
|
|
9
|
+
- [ ] Measured evidence cited for textures/config/screenshots where claiming ≥2 on fidelity/performance
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Compose Recipes (Phaser 2D)
|
|
2
|
+
|
|
3
|
+
Use before changing camera, parallax, global tint, vignette, depth sorting, or screen-space overlays. Compose supports readability; it is not a replacement for authored sprites.
|
|
4
|
+
|
|
5
|
+
## Camera
|
|
6
|
+
|
|
7
|
+
| Model | When | Notes |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| Lock | `portrait_stage`, `board_table`, `fixed_arena` | Punch zoom on big events only |
|
|
10
|
+
| Follow + deadzone | `side_scroll_lane`, `topdown_map`, `runner_lane` | Deadzone avoids jitter |
|
|
11
|
+
| Room snap | Metroidvania-like | Bounds = room; no lerp fight |
|
|
12
|
+
|
|
13
|
+
Rules:
|
|
14
|
+
|
|
15
|
+
- Camera logic stays out of gameplay Systems when possible.
|
|
16
|
+
- Shake intensity scales with event severity; never obscure the next hazard.
|
|
17
|
+
- Prefer Phaser camera effects over CSS transforms on the canvas.
|
|
18
|
+
- World bounds and physics bounds stay aligned (`phaser-2d-game`).
|
|
19
|
+
|
|
20
|
+
## Parallax
|
|
21
|
+
|
|
22
|
+
1. Place Far → Mid → Play → Near per `DepthLayers`.
|
|
23
|
+
2. Set `scrollFactorX/Y` (or parent container motion) so Far moves slowest.
|
|
24
|
+
3. Near may move slightly faster than Play for depth, but must not cover telegraphs.
|
|
25
|
+
4. Disable strong parallax on `topdown_map` / `board_table` unless subtle.
|
|
26
|
+
|
|
27
|
+
Reject: background scrolling faster than player decision reading; mismatched tile seams while scrolling.
|
|
28
|
+
|
|
29
|
+
## Tint / Overlay / Vignette
|
|
30
|
+
|
|
31
|
+
Use a single full-screen Image/Graphics or Camera fade for:
|
|
32
|
+
|
|
33
|
+
- Biome mood (cool night, warm dusk).
|
|
34
|
+
- Pressure (arena wave)—keep center Play clearer than edges.
|
|
35
|
+
- Damage flash (≤100–150ms).
|
|
36
|
+
|
|
37
|
+
Do **not**:
|
|
38
|
+
|
|
39
|
+
- Stack multiple multiply overlays until art is gray mush.
|
|
40
|
+
- Use permanent heavy vignette to hide empty Far layers.
|
|
41
|
+
- Recolor every sprite differently so the palette collapses.
|
|
42
|
+
|
|
43
|
+
Signal colors (hazard / reward / safe) stay consistent with HUD tokens.
|
|
44
|
+
|
|
45
|
+
## Depth Sorting
|
|
46
|
+
|
|
47
|
+
- Static world: fixed depths from the layer table.
|
|
48
|
+
- Mobile actors: Y-sort within Play band, or explicit depth = `base + y`.
|
|
49
|
+
- VFX above the actor that owns them, below Near occluders unless the FX is screen-space.
|
|
50
|
+
|
|
51
|
+
## Screen FX vs World FX
|
|
52
|
+
|
|
53
|
+
| Kind | Placement | Examples |
|
|
54
|
+
| --- | --- | --- |
|
|
55
|
+
| World FX | At entity position, Play/Motion depth | Impact burst, dash dust |
|
|
56
|
+
| Screen FX | Camera-fixed container | Hit flash, edge warning |
|
|
57
|
+
|
|
58
|
+
Prefer world FX for spatial clarity; screen FX for global state only.
|
|
59
|
+
|
|
60
|
+
## Readability Tests
|
|
61
|
+
|
|
62
|
+
After compose changes, verify on mobile:
|
|
63
|
+
|
|
64
|
+
1. Hero silhouette still finds the eye in <1s.
|
|
65
|
+
2. Next hazard/reward in the decision window is unobscured.
|
|
66
|
+
3. Parallax does not cause mis-taps on touch targets (DOM HUD separate).
|
|
67
|
+
4. No CSS scaling of the game canvas.
|
|
68
|
+
|
|
69
|
+
## Checklist Hook
|
|
70
|
+
|
|
71
|
+
Run `checklists/compose-quality.md` before scoring the Compose category.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Graphics Pass Prompt Templates (Phaser 2D)
|
|
2
|
+
|
|
3
|
+
Use only when the user asks for reusable prompts or a templated graphics pass.
|
|
4
|
+
|
|
5
|
+
## Full premium pass
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Load phaser-2d-graphics-builder. Select or confirm scene_profile_id from game-art/references/scene-profiles.md (2D Compose rail only).
|
|
9
|
+
Fill reference ledger (visual-scorecard, implementation-blueprint, sprite-recipes, compose-recipes, technical-art).
|
|
10
|
+
Score current mobile active-play screenshot. Build asset sourcing ledger; generate missing hero/bg/parallax via game-asset-image-generator.
|
|
11
|
+
Upgrade all weak surfaces; then compose; then event VFX. Re-score to premium thresholds or list blockers.
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Hero + background only
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
Graphics pass scoped to hero silhouette and Far/Mid backgrounds for profile <id>.
|
|
18
|
+
MCP-generate and bind config keys; do not redesign HUD. Report scorecard categories 2, 5, 6 only plus blockers.
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Compose-only
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
Do not regenerate art. Fix camera/parallax/depth/tint per compose-recipes for profile <id>.
|
|
25
|
+
Verify readability tests; update technical-art notes if layer count changed.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## VFX-only
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
Sprites/world already premium. Add event-driven FX from vfx-recipes for: <events>.
|
|
32
|
+
Pool emitters; respect technical-art caps; no ambient filler.
|
|
33
|
+
```
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Phaser 2D Graphics Implementation Blueprint
|
|
2
|
+
|
|
3
|
+
Use when a Phaser game reads as basic even after it is playable. Goal: a production graphics architecture that can be iterated, scored, and budgeted. For premium/showcase work, also load `technical-art.md`.
|
|
4
|
+
|
|
5
|
+
## Recommended Ownership
|
|
6
|
+
|
|
7
|
+
Directory layout follows `../phaser-2d-game/references/file-structure.md`. Keep **rules in Systems**, **sprites/FX in Scene or view helpers**. Suggested modules (names can merge in small games; concepts must stay separate):
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
src/game/assets/manifest.ts # or public/config.json bindings
|
|
11
|
+
src/game/view/SpriteFactory.ts # hero / hazard / reward creators
|
|
12
|
+
src/game/view/WorldPropKit.ts # repeated props, tileside dressing
|
|
13
|
+
src/game/view/DepthLayers.ts # Play/Near/Mid/Far/Motion constants
|
|
14
|
+
src/game/view/ComposeRig.ts # camera helpers, parallax, vignette/tint
|
|
15
|
+
src/game/view/VfxSystem.ts # event-driven FX (pooled)
|
|
16
|
+
src/game/view/QualityDiagnostics.ts # optional counters / debug overlays
|
|
17
|
+
src/scenes/GameplayScene.ts # wires systems → view; no rule ownership
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Asset files live under `assets/` (`characters/`, `environment/`, `fx/`, …) with stable keys in `public/config.json`.
|
|
21
|
+
|
|
22
|
+
## Hybrid Asset Pipeline
|
|
23
|
+
|
|
24
|
+
Choose the asset path per surface:
|
|
25
|
+
|
|
26
|
+
- **MCP image** (`game-asset-image-generator`): hero, enemies, signature props, backgrounds, parallax layers, tileset sheets when art quality matters.
|
|
27
|
+
- **User-provided**: local/remote URLs the user supplies; still bind via `config.json`.
|
|
28
|
+
- **Procedural / Phaser Graphics / shapes**: collision debug, temporary stubs, repeated micro-detail, telegraph shapes that must stay code-driven.
|
|
29
|
+
- **Hybrid**: MCP base sprite + code tint/flash/outline for states; or tileset + prop kit overlays.
|
|
30
|
+
|
|
31
|
+
For premium hero, main background, and primary hazard family: do not finish with procedural-only unless a real MCP/user blocker is recorded.
|
|
32
|
+
|
|
33
|
+
## Production Surfaces
|
|
34
|
+
|
|
35
|
+
A premium pass must touch every weak visible surface:
|
|
36
|
+
|
|
37
|
+
- Hero/player: authored silhouette, facing aligned with art brief, hurt/invuln/boost cues.
|
|
38
|
+
- Hazards/enemies: ≥3 distinct silhouettes when the genre has multiple threat types; telegraphs readable.
|
|
39
|
+
- Rewards/interactables: ≥2 forms; idle + collect states.
|
|
40
|
+
- World kit: Play / Near / Mid / Far / Motion matching `scene-profiles` profile; parallax ratios documented.
|
|
41
|
+
- Sprite fidelity: consistent pixel density; spritesheets measured before `load.spritesheet` (`engine-spritesheets.md`).
|
|
42
|
+
- Compose: camera model, depth sort, tint/overlay discipline (`compose-recipes.md`).
|
|
43
|
+
- VFX: event-driven only (`vfx-recipes.md`); pooled.
|
|
44
|
+
- UI/world cohesion: DOM HUD colors echo hazard/reward/safe signals—do not redesign HUD here beyond color token alignment; full HUD work is `game-ui`.
|
|
45
|
+
- Diagnostics: budget notes, screenshots, scorecard.
|
|
46
|
+
|
|
47
|
+
## Technical Art Contract
|
|
48
|
+
|
|
49
|
+
Before broad implementation, write the brief from `technical-art.md`: hero vs support surfaces, texture/display/particle budgets, atlas plan, VFX caps, mobile first cuts.
|
|
50
|
+
|
|
51
|
+
## Depth Layer Contract
|
|
52
|
+
|
|
53
|
+
Map `scene-profiles` layers to Phaser depth (example—adjust per game, keep gaps):
|
|
54
|
+
|
|
55
|
+
| Layer | Role | Typical depth |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| Far | Background / sky | 0–100 |
|
|
58
|
+
| Mid | Stage / buildings | 100–300 |
|
|
59
|
+
| Play | Actors, hazards, rewards | 500–800 |
|
|
60
|
+
| Near | Foreground occluders | 900–1000 |
|
|
61
|
+
| Motion / VFX | Muzzle, impact, dashes | 1100–1200 |
|
|
62
|
+
| Screen FX | Flash/vignette containers | 2000+ |
|
|
63
|
+
|
|
64
|
+
Document the chosen map in `DepthLayers.ts`. Actors that need Y-sort stay within Play band.
|
|
65
|
+
|
|
66
|
+
## State Feedback Without Fake AAA
|
|
67
|
+
|
|
68
|
+
Prefer, in order:
|
|
69
|
+
|
|
70
|
+
1. Swap frame / anim / attachment sprite.
|
|
71
|
+
2. Controlled tint / flash (short).
|
|
72
|
+
3. Scale squash-stretch tied to gameplay events.
|
|
73
|
+
4. Camera punch / hitstop (from `game-feel`, scaled for readability).
|
|
74
|
+
5. Particles/trails last.
|
|
75
|
+
|
|
76
|
+
Never use permanent bloom-like overlays to hide missing art.
|
|
77
|
+
|
|
78
|
+
## Wiring Rules
|
|
79
|
+
|
|
80
|
+
- Scene reads System state and spawns/updates view objects; Systems do not import Phaser GameObjects if avoidable.
|
|
81
|
+
- All runtime image URLs come from `config.json` / manifest—no scattered hardcoded CDN strings in multiple files.
|
|
82
|
+
- Scale only via Phaser Scale Manager (`engine-runtime.md`).
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Sprite Recipes (Phaser 2D)
|
|
2
|
+
|
|
3
|
+
Use before upgrading hero, hazard, reward, or world prop visuals. Recipes describe **readable silhouettes and production intent**, not full illustration briefs. Generation details stay in `../game-asset-image-generator/`.
|
|
4
|
+
|
|
5
|
+
## Shared Rules
|
|
6
|
+
|
|
7
|
+
- One subject per asset key; facing must match gameplay (right-facing runners stay right-facing in art).
|
|
8
|
+
- Keep a **collision proxy** simpler than the art (rectangle/circle); art can overhang slightly if the hitbox stays fair.
|
|
9
|
+
- Family variants share a motif (helmet shape, horn, stripe) so players learn the cast.
|
|
10
|
+
- Pixel density: characters readable at mobile play size; do not upscale tiny icons into heroes.
|
|
11
|
+
- Prefer transparent Assets for actors; opaque Background for Far plates; Parallax layers with alpha for Mid/Near dressing.
|
|
12
|
+
|
|
13
|
+
## Hero / Player
|
|
14
|
+
|
|
15
|
+
**Must have**
|
|
16
|
+
|
|
17
|
+
- Clear silhouette at thumbnail size.
|
|
18
|
+
- Readable front/facing (or top-down orientation for `topdown_map` / `board_table`).
|
|
19
|
+
- At least one state cue path: idle vs hurt vs power (frame, overlay, or tint—documented).
|
|
20
|
+
|
|
21
|
+
**Avoid**
|
|
22
|
+
|
|
23
|
+
- Symmetric blobs with no facing.
|
|
24
|
+
- Oversized weapon that hides the body.
|
|
25
|
+
- Relying on outline glow as the only identity.
|
|
26
|
+
|
|
27
|
+
**Upgrade path**
|
|
28
|
+
|
|
29
|
+
1. Lock style from `game-art` (+ advanced style if requested).
|
|
30
|
+
2. MCP generate `asset_player` (and optional `asset_player_hurt` / atlas frames).
|
|
31
|
+
3. Wire anim keys; verify facing vs movement code.
|
|
32
|
+
4. Add attach points later (dust, muzzle) without reskinning the whole hero.
|
|
33
|
+
|
|
34
|
+
## Hazards / Enemies
|
|
35
|
+
|
|
36
|
+
**Must have**
|
|
37
|
+
|
|
38
|
+
- ≥3 variants when the design has multiple threat roles (blocker / chaser / ranged)—or document why the genre is single-threat.
|
|
39
|
+
- Telegraph: wind-up pose, color flash, or warning glyph **before** damage frames.
|
|
40
|
+
- Shape language distinct from rewards.
|
|
41
|
+
|
|
42
|
+
**Avoid**
|
|
43
|
+
|
|
44
|
+
- One square, three hues.
|
|
45
|
+
- Camouflage against Mid/Far that makes hits feel unfair.
|
|
46
|
+
|
|
47
|
+
## Rewards / Interactables
|
|
48
|
+
|
|
49
|
+
**Must have**
|
|
50
|
+
|
|
51
|
+
- High contrast vs Play floor.
|
|
52
|
+
- Idle motion subtle (bob/pulse ≤ subtle); collect burst is event FX.
|
|
53
|
+
- Two forms when economy has tiers (coin vs gem, weapon vs heal).
|
|
54
|
+
|
|
55
|
+
**Avoid**
|
|
56
|
+
|
|
57
|
+
- Same shape as hazards.
|
|
58
|
+
- Permanent screen-covering sparkle.
|
|
59
|
+
|
|
60
|
+
## World Prop Kit
|
|
61
|
+
|
|
62
|
+
Build a small kit, not one-off decorations:
|
|
63
|
+
|
|
64
|
+
| Kit piece | Use |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| Edge marker | Lane/arena boundary readability |
|
|
67
|
+
| Mid module | Repeatable building/cliff/hedge segment |
|
|
68
|
+
| Far plate | Single strong skyline or stage back |
|
|
69
|
+
| Near fringe | Grass, railing, table lip—occludes lightly |
|
|
70
|
+
| Hazard stripe / safe glyph | Gameplay-readable floor language |
|
|
71
|
+
|
|
72
|
+
Repeat with tint variants; do not MCP-generate 50 unique bushes.
|
|
73
|
+
|
|
74
|
+
## Tilesets
|
|
75
|
+
|
|
76
|
+
When using tilemaps (`engine-tilemaps.md`):
|
|
77
|
+
|
|
78
|
+
- One visual language per biome.
|
|
79
|
+
- Collision layer ≠ decorated layer.
|
|
80
|
+
- Autotile/seam care: avoid noisy tiles that hide pickups.
|
|
81
|
+
|
|
82
|
+
## Backgrounds & Parallax
|
|
83
|
+
|
|
84
|
+
- Far: full-bleed Background, no characters/UI in the plate.
|
|
85
|
+
- Mid/Near parallax: fewer focal subjects; leave Play cone clean per `scene-profiles`.
|
|
86
|
+
- Scroll factors: Far `0.1–0.3`, Mid `0.4–0.7`, Near `1.0–1.15` (tune per game; document).
|
|
87
|
+
|
|
88
|
+
## Checklist Hook
|
|
89
|
+
|
|
90
|
+
Before scoring Sprite fidelity / Hero / Obstacles / Rewards, run `checklists/sprite-quality.md`.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Technical Art For Phaser 2D Games
|
|
2
|
+
|
|
3
|
+
Use before premium/showcase graphics work, atlas/texture strategy, particle/VFX systems, or any visual pass that could affect mobile performance.
|
|
4
|
+
|
|
5
|
+
Technical art bridges art direction and real-time constraints. Goal: readable authored detail that survives active play on mid-tier phones—not maximum particle counts.
|
|
6
|
+
|
|
7
|
+
## Technical Art Brief
|
|
8
|
+
|
|
9
|
+
Before implementation, write:
|
|
10
|
+
|
|
11
|
+
- Art direction in renderable terms: silhouettes, layers, compose, VFX language, camera.
|
|
12
|
+
- Hero surfaces vs support surfaces.
|
|
13
|
+
- Texture/atlas plan: max page size, shared atlases vs discrete images.
|
|
14
|
+
- VFX caps: max concurrent emitters, particle lifespans, pool sizes.
|
|
15
|
+
- Display list budget target (rough): dynamic objects in Play band.
|
|
16
|
+
- Asset strategy per surface: mcp-image / user / procedural / hybrid.
|
|
17
|
+
- Mobile first cuts: what to disable first if frame time slips (screen FX → Near props → Mid parallax detail → particle rate).
|
|
18
|
+
|
|
19
|
+
## Budget Starting Points
|
|
20
|
+
|
|
21
|
+
Starting contracts—not universal limits. Measure on device; document overruns.
|
|
22
|
+
|
|
23
|
+
| Metric (worst active-play) | Mobile portrait target | Notes |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| Unique textures (approx.) | ≤ 40–60 | Prefer atlases; huge unique BGs count heavy |
|
|
26
|
+
| Max single texture edge | ≤ 2048 | Prefer 1024–2048 backgrounds; split if needed |
|
|
27
|
+
| Concurrent particle emitters | ≤ 8 | Pool; hard-cap on spam events |
|
|
28
|
+
| Particles alive (sum) | ≤ 300–500 | Lower on low-end; kill on scene sleep |
|
|
29
|
+
| Dynamic GameObjects (Play) | keep pooled | No per-frame `new` for bullets/FX |
|
|
30
|
+
| Camera shake stacking | 1 active profile | Don’t stack 3 shakes |
|
|
31
|
+
| DPR / resolution | Scale Manager FIT/SHOW_ALL | Never CSS-scale canvas |
|
|
32
|
+
|
|
33
|
+
Also follow `../phaser-2d-game/references/engine-performance.md` (pooling, culling, update budgets).
|
|
34
|
+
|
|
35
|
+
## Texture And Atlas Discipline
|
|
36
|
+
|
|
37
|
+
- Measure spritesheet frame size before loader config (`engine-spritesheets.md`).
|
|
38
|
+
- Don’t pack unrelated PPI into one sheet if it forces wasteful padding—but do atlas frequent FX/UI icons when possible.
|
|
39
|
+
- Prefer WebP/PNG with real alpha; avoid huge uncompressed photo BGs when a painted 1080×1920 plate suffices.
|
|
40
|
+
- Destroy/unload textures on scene shutdown when switching biomes with large unique plates.
|
|
41
|
+
|
|
42
|
+
## Particles And FX Cost
|
|
43
|
+
|
|
44
|
+
- Event-driven only; no permanent full-screen ambient snow unless genre-critical and budgeted.
|
|
45
|
+
- Pre-create emitters; `explode`/`quantity` bursts over long-running drip when possible.
|
|
46
|
+
- Additive blending sparingly on mobile.
|
|
47
|
+
- Tie FX lifetime to gameplay feedback windows (100–400ms for hits; longer only for celebrations).
|
|
48
|
+
|
|
49
|
+
## Compose Cost
|
|
50
|
+
|
|
51
|
+
- Parallax layers are textures too—3 strong layers beat 8 weak ones.
|
|
52
|
+
- Full-screen overlay Images are cheap vs thousands of nodes; don’t simulate vignette with 200 sprites.
|
|
53
|
+
- Lights (Phaser Lights Manager) are optional and costly—default to tint/overlay recipes first.
|
|
54
|
+
|
|
55
|
+
## Diagnostics To Report
|
|
56
|
+
|
|
57
|
+
After a graphics pass, report:
|
|
58
|
+
|
|
59
|
+
- Which surfaces used MCP vs procedural.
|
|
60
|
+
- Texture strategy (atlases / largest BG size).
|
|
61
|
+
- Particle/emitter caps chosen.
|
|
62
|
+
- Any deliberate budget overrun + why.
|
|
63
|
+
- Mobile screenshot path(s).
|
|
64
|
+
|
|
65
|
+
## Checklist Hook
|
|
66
|
+
|
|
67
|
+
Run `checklists/technical-art-quality.md` and `checklists/performance-safe-visual-detail.md` before claiming Performance evidence ≥ 2.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# VFX Recipes (Phaser 2D)
|
|
2
|
+
|
|
3
|
+
Event-driven visual effects that clarify game state. Load only after sprites and compose are readable. Core rule still applies: FX never substitutes for authored art.
|
|
4
|
+
|
|
5
|
+
Cross-link: hand-feel timing principles in `../game-designer/references/game-feel.md`; UI motion in `../game-art/references/animation-specs.md`. This file is **in-world / camera FX** for Phaser.
|
|
6
|
+
|
|
7
|
+
## Principles
|
|
8
|
+
|
|
9
|
+
1. **One trigger → one readable beat.** Prefer a single strong burst over layered noise.
|
|
10
|
+
2. **Severity scale.** Pickup < hit < kill < fail/clear. Strongest events must still leave the next decision visible.
|
|
11
|
+
3. **Pool everything.** No allocating emitters per bullet in `update`.
|
|
12
|
+
4. **Sync with audio when present.** Same frame as SFX when `game-audio` is wired.
|
|
13
|
+
5. **No ambient filler** to hide empty Far layers.
|
|
14
|
+
|
|
15
|
+
## Recipe Table
|
|
16
|
+
|
|
17
|
+
| Event | Primary FX | Duration | Notes |
|
|
18
|
+
| --- | --- | --- | --- |
|
|
19
|
+
| Light confirm (UI-adjacent in world) | Small scale pop + brief spark | 100–200ms | Keep off HUD DOM |
|
|
20
|
+
| Pickup / coin | Radial burst (8–16 particles) + optional arc to HUD anchor | 200–350ms | High contrast; don’t blanket Play |
|
|
21
|
+
| Hit (player) | White/red flash on sprite + tiny camera shake | 80–120ms | Invuln blink separate from flash |
|
|
22
|
+
| Hit (enemy) | Impact ring or directional sparks + hitstop 1–2 frames | 100–180ms | Direction from attack vector |
|
|
23
|
+
| Block / parry | Sharp spark + short freeze | 80–150ms | Distinct from hurt |
|
|
24
|
+
| Dash / boost | Motion streaks or afterimage (2–3 ghosts) | During dash | Cap ghosts; fade quick |
|
|
25
|
+
| Death / explode | Larger burst + brief screen flash ≤30% alpha | 300–500ms | Then remove clutter |
|
|
26
|
+
| Spawn | Poof / ring expand | 200–300ms | Telegraph if hostile |
|
|
27
|
+
| Charge telegraph | Pulse outline / growing warning glyph | Wind-up length | Must be readable before damage |
|
|
28
|
+
| Zone warning | Edge vignette or floor decal pulse | While zone active | Center Play stays clear |
|
|
29
|
+
| Combo / milestone | Short celebratory burst + optional zoom punch | 250–400ms | Don’t stack with death FX |
|
|
30
|
+
| Fail / soft lock | Gray flash or desat pulse | 200ms | Not seizure-level strobe |
|
|
31
|
+
|
|
32
|
+
## Implementation Notes (Phaser)
|
|
33
|
+
|
|
34
|
+
- Prefer `this.add.particles` with preconfigured `ParticleEmitter` reused via pools, or a small `VfxSystem.burst(kind, x, y, dir?)` API.
|
|
35
|
+
- Sprite flash: tween `setTintFill` / short `setAlpha` blink; clear tint on complete.
|
|
36
|
+
- Afterimages: spawn faded copies at depth just below hero; auto-destroy.
|
|
37
|
+
- Screen flash: camera-fixed Rectangle or Image at Screen FX depth; fade out; ignore input blocking.
|
|
38
|
+
- Respect `technical-art.md` emitter and particle caps; on spam (machine-gun hits), coalesce to rate-limited bursts.
|
|
39
|
+
|
|
40
|
+
## Anti-Patterns
|
|
41
|
+
|
|
42
|
+
- Permanent floating dust as “atmosphere” when Far art is missing.
|
|
43
|
+
- Full-screen rainbow particles on every tap.
|
|
44
|
+
- Shake so strong platforms/hazards can’t be aimed at.
|
|
45
|
+
- Additive glow soup that blows out silhouette edges.
|
|
46
|
+
- FX that spawn without a gameplay event (pure decoration loops).
|
|
47
|
+
|
|
48
|
+
## Severity Ladder (default)
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
0 none
|
|
52
|
+
1 sprite-only (tint/scale)
|
|
53
|
+
2 local particles
|
|
54
|
+
3 local particles + camera punch
|
|
55
|
+
4 screen flash + particles + punch
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Map events to ≤ one ladder step above the previous severity so players learn intensity.
|
|
59
|
+
|
|
60
|
+
## Checklist
|
|
61
|
+
|
|
62
|
+
Before scoring VFX/motion ≥ 2:
|
|
63
|
+
|
|
64
|
+
- [ ] Every FX kind maps to a gameplay event
|
|
65
|
+
- [ ] Caps documented in technical art brief
|
|
66
|
+
- [ ] Mobile screenshot shows FX without hiding hazards
|
|
67
|
+
- [ ] No ambient-only particle layer required for “premium”
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Visual Scorecard (Phaser 2D)
|
|
2
|
+
|
|
3
|
+
Score active-play screenshots, not idle title screens or isolated asset sheets. Prefer **mobile portrait** screenshots; add desktop when the project targets it.
|
|
4
|
+
|
|
5
|
+
Scores are self-assessed against the anchors below, so they drift optimistic. For premium/showcase claims: cite Measured Evidence where possible, run the Fresh-Eyes Review, and compare against packaged anchors before finalizing.
|
|
6
|
+
|
|
7
|
+
## Calibration Anchors
|
|
8
|
+
|
|
9
|
+
Reference screenshots for score calibration are packaged in `phaser-2d-graphics-builder/assets/scorecard-anchors/`:
|
|
10
|
+
|
|
11
|
+
- `scene-1.jpeg` — score ~1: geometric/simple hero and props on a flat sparse stage, utility HUD.
|
|
12
|
+
- `scene-2.jpeg` — score ~2: authored sprites and scene art, readable state HUD, intentional composition; still short of dense active-play showcase.
|
|
13
|
+
- `scene-3.jpg` — score ~2.5–3: dense layered authored world in active play, varied character family, readable state feedback, cohesive HUD.
|
|
14
|
+
|
|
15
|
+
Before scoring World/environment, Hero/player, Sprite fidelity, Compose, or VFX, **view the anchors** and compare: if your screenshot reads closer to `scene-1.jpeg` than `scene-3.jpg` for that surface, the category is at most a 1–2 regardless of how much code was written.
|
|
16
|
+
|
|
17
|
+
Do not score against title screens, collages, or marketing montages.
|
|
18
|
+
|
|
19
|
+
## Scoring Scale
|
|
20
|
+
|
|
21
|
+
- 0: Placeholder. Flat colors, missing art, unreadable state, debug UI, or no evidence.
|
|
22
|
+
- 1: Basic styled. Playable and themed, but obvious prototype assets, flat composition, or generic UI.
|
|
23
|
+
- 2: Premium stylized. Authored silhouettes, layered world, readable state, cohesive UI/world, measured performance.
|
|
24
|
+
- 3: Showcase. Strong art direction, memorable hero and world, dense authored detail, excellent readability, polished VFX, diagnostics.
|
|
25
|
+
|
|
26
|
+
## Categories
|
|
27
|
+
|
|
28
|
+
1. Art direction.
|
|
29
|
+
- 0: No clear theme.
|
|
30
|
+
- 1: Theme is mostly a palette swap.
|
|
31
|
+
- 2: Theme affects sprites, world layers, UI, and feedback.
|
|
32
|
+
- 3: Distinct identity on every production surface.
|
|
33
|
+
2. Hero/player.
|
|
34
|
+
- 0: Colored rectangle / emoji / default shape.
|
|
35
|
+
- 1: Basic sprite with glow or simple tint.
|
|
36
|
+
- 2: Authored silhouette, clear facing, state cues (hurt/boost).
|
|
37
|
+
- 3: Memorable sprite language with expressive feedback.
|
|
38
|
+
3. Obstacles/enemies.
|
|
39
|
+
- 0: Same box as everything else.
|
|
40
|
+
- 1: Recolored repeated silhouette.
|
|
41
|
+
- 2: At least three readable variants with telegraphs.
|
|
42
|
+
- 3: Varied family with anticipation and gameplay clarity.
|
|
43
|
+
4. Rewards/interactables.
|
|
44
|
+
- 0: Plain circle/token.
|
|
45
|
+
- 1: Repeated icon with simple pulse.
|
|
46
|
+
- 2: Two authored forms with idle/collect states.
|
|
47
|
+
- 3: Desirable, animated, clearly valued in motion.
|
|
48
|
+
5. World/environment.
|
|
49
|
+
- 0: Flat fill or empty stage.
|
|
50
|
+
- 1: Single background image, sparse props.
|
|
51
|
+
- 2: Layered Play/Near/Mid/Far matching `scene-profiles` profile.
|
|
52
|
+
- 3: Dense authored world that still preserves play readability.
|
|
53
|
+
6. Sprite fidelity / atlas.
|
|
54
|
+
- 0: Procedural shapes only.
|
|
55
|
+
- 1: Mixed placeholder + one real image.
|
|
56
|
+
- 2: Key surfaces from MCP/user art; consistent PPI and facing; sheets measured before load.
|
|
57
|
+
- 3: Cohesive atlas/mip strategy, clean cutouts, no stretched mush.
|
|
58
|
+
7. Compose (camera / parallax / tint).
|
|
59
|
+
- 0: No depth; camera fights the player.
|
|
60
|
+
- 1: Parallax or tint used as the whole style.
|
|
61
|
+
- 2: Intentional camera, parallax ratios, depth sort, readable overlays.
|
|
62
|
+
- 3: Cinematic but disciplined compose; never hides the next decision.
|
|
63
|
+
8. VFX/motion.
|
|
64
|
+
- 0: None or random ambient particles.
|
|
65
|
+
- 1: Generic particles/trails.
|
|
66
|
+
- 2: Event-driven FX for hit, pickup, fail, combo, spawn, dash.
|
|
67
|
+
- 3: High-impact FX that clarify state and stay within budget.
|
|
68
|
+
9. UI/HUD.
|
|
69
|
+
- 0: Debug text or missing UI.
|
|
70
|
+
- 1: Generic stat cards over the canvas.
|
|
71
|
+
- 2: Genre HUD via DOM overlay; colors echo world signals.
|
|
72
|
+
- 3: Cohesive hierarchy and polished transitions without covering Play.
|
|
73
|
+
10. Performance evidence.
|
|
74
|
+
- 0: No notes after visual changes.
|
|
75
|
+
- 1: Informal "seems fine".
|
|
76
|
+
- 2: Texture/display/particle budget notes + mobile screenshot.
|
|
77
|
+
- 3: Before/after or budget-aware notes, pooling, atlas strategy.
|
|
78
|
+
|
|
79
|
+
## Thresholds
|
|
80
|
+
|
|
81
|
+
Premium:
|
|
82
|
+
|
|
83
|
+
- Every category at least 2.
|
|
84
|
+
- Average at least 2.3.
|
|
85
|
+
- Mobile active-play screenshot when portrait mobile is in scope.
|
|
86
|
+
- Technical-art / budget notes after graphics changes.
|
|
87
|
+
|
|
88
|
+
Showcase:
|
|
89
|
+
|
|
90
|
+
- At least six categories score 3.
|
|
91
|
+
- No category below 2.
|
|
92
|
+
- Average at least 2.7.
|
|
93
|
+
- Performance evidence includes before/after or budget-aware notes.
|
|
94
|
+
|
|
95
|
+
## Automatic Failures
|
|
96
|
+
|
|
97
|
+
Any of these prevents a premium/showcase claim:
|
|
98
|
+
|
|
99
|
+
- Active screenshot is placeholder-dominant (SVG/rect/emoji as hero or main threats).
|
|
100
|
+
- Main world is a flat fill with no authored Far/Mid layers when the profile requires them.
|
|
101
|
+
- Hero is mostly a shape plus glow/particles.
|
|
102
|
+
- Obstacles or rewards are one repeated silhouette recolored.
|
|
103
|
+
- Ambient particles or full-screen flash are the primary “art”.
|
|
104
|
+
- Compose (shake/vignette/parallax) hides the next gameplay decision.
|
|
105
|
+
- Dense formal HUD drawn in Canvas instead of DOM without an explicit project requirement.
|
|
106
|
+
- No asset sourcing ledger for premium hero/background surfaces.
|
|
107
|
+
- Claimed premium while required references were skipped.
|
|
108
|
+
|
|
109
|
+
## Fresh-Eyes Review
|
|
110
|
+
|
|
111
|
+
Before finalizing premium/showcase:
|
|
112
|
+
|
|
113
|
+
1. Look only at the latest active-play screenshot for 10 seconds.
|
|
114
|
+
2. Name the weakest two categories without reading the scorecard you just filled.
|
|
115
|
+
3. If either is below 2, lower scores and keep working—or report blockers.
|
|
116
|
+
4. Confirm Automatic Failures are absent.
|
|
117
|
+
|
|
118
|
+
## Measured Evidence
|
|
119
|
+
|
|
120
|
+
Prefer citing:
|
|
121
|
+
|
|
122
|
+
- `public/config.json` keys bound for hero/bg/parallax.
|
|
123
|
+
- Screenshot paths (mobile/desktop).
|
|
124
|
+
- Texture sizes / atlas notes / particle max counts from the technical art brief.
|
|
125
|
+
- Phaser Scale mode confirmation (no CSS canvas scale).
|
|
126
|
+
|
|
127
|
+
## Output
|
|
128
|
+
|
|
129
|
+
When claiming premium/showcase, paste a filled table: category, score 0–3, one-line evidence, measured evidence if any. Include average and list Automatic Failures remaining (or “none”).
|
|
@@ -25,8 +25,12 @@ description: 用 Three.js、React Three Fiber、TypeScript 与 Vite 实现 3D
|
|
|
25
25
|
3. **纯 Three 模块可单测**
|
|
26
26
|
- `game/three/*` 禁止 import React;场景构建与数学助手可独立验证。
|
|
27
27
|
|
|
28
|
-
4.
|
|
29
|
-
- 全部游戏代码通过 `manifest` / `public/config.json`
|
|
28
|
+
4. **资产键稳定 + Canonical 语义**
|
|
29
|
+
- 全部游戏代码通过 `manifest` / `public/config.json` / canonical 包引用资产,不在业务代码中硬编码 glTF / 贴图路径。
|
|
30
|
+
- **3D 网格必须来自** `assets/canonical/<id>/`(或 `evomeme_asset_sync_to_three` 同步到 `public/assets/canonical/<id>/`)。
|
|
31
|
+
- 加载后**必须**按 `asset.json` 应用朝向/尺度(见 `references/engine-asset-pipeline.md`);禁止在实体里硬编码 `rotation.y += Math.PI`。
|
|
32
|
+
- 对齐与预览默认走技能 `game-asset-align` + MCP `evomeme_stage_open`。
|
|
33
|
+
- **Blender 建模或修改后必须先打开 Stage,由用户查看并确认当前 Three.js 版本后才能导入。** `alignment.ready=true` 或 set_orientation 不代替用户确认;不得手工复制或替用户点击绕过门禁。
|
|
30
34
|
|
|
31
35
|
## 实现指导
|
|
32
36
|
|