@oh-story/dsh 0.1.8 → 0.1.10
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/README.md +14 -14
- package/lib/client.js +237 -84
- package/lib/client.js.map +3 -3
- package/lib/drama/manifest.json +183 -77
- package/lib/drama/skills/short-drama/SKILL.md +5 -1
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +140 -9
- package/lib/drama/skills/short-drama/scripts/project_tool.py +11 -0
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +28 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +8 -2
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +28 -0
- package/lib/drama/skills/short-drama-edit/SKILL.md +146 -0
- package/lib/drama/skills/short-drama-edit/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +60 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +15 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +38 -0
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +29 -0
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +54 -0
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +51 -0
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +520 -0
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +5 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +3 -0
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +11 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +2 -2
- package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +4 -1
- package/lib/drama/skills/short-drama-produce/SKILL.md +29 -4
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +22 -0
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +13 -12
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +7 -0
- package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +18 -1
- package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +181 -2
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +199 -3
- package/lib/drama/skills/short-drama-review/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +7 -0
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +10 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +12 -1
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +4 -0
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +78 -2
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +12 -5
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +17 -0
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +76 -7
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +5 -2
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +21 -0
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +6 -17
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +12 -3
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +61 -5
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +3 -3
- package/lib/drama/skills/short-drama-write/SKILL.md +11 -2
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +6 -0
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +1 -0
- package/lib/index.js +290 -90
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/README.md +299 -59
- package/lib/novel-to-game/README_ZH.md +299 -56
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
- package/lib/novel-to-game/manifest.json +77 -87
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +9 -35
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
- package/lib/novel-to-game/skills/game-build/SKILL.md +17 -35
- package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
- package/lib/novel-to-game/skills/game-concept/SKILL.md +16 -34
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
- package/lib/novel-to-game/skills/game-qa/SKILL.md +9 -20
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +10 -6
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +19 -32
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +9 -18
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +10 -27
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -6
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +6 -11
- package/lib/oh-story/manifest.json +419 -254
- package/lib/oh-story/roles/chapter-extractor.md +177 -237
- package/lib/oh-story/roles/character-designer.md +1 -1
- package/lib/oh-story/roles/consistency-checker.md +4 -4
- package/lib/oh-story/roles/narrative-writer.md +56 -243
- package/lib/oh-story/roles/story-architect.md +6 -6
- package/lib/oh-story/roles/story-explorer.md +11 -11
- package/lib/oh-story/skills/story/SKILL.md +13 -7
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory.md +61 -29
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-cover/SKILL.md +10 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +54 -229
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +29 -56
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +61 -29
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +154 -0
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +27 -0
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +6 -1
- package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +39 -20
- package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +10 -5
- package/lib/oh-story/skills/story-deslop/scripts/style-whitelist.js +39 -0
- package/lib/oh-story/skills/story-import/SKILL.md +78 -82
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +2 -2
- package/lib/oh-story/skills/story-import/references/state-tracking.md +4 -69
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +10 -8
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +31 -0
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +9 -34
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +197 -15
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +91 -258
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +245 -0
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +2 -2
- package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +105 -0
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +113 -105
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +169 -125
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +172 -64
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +42 -132
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +5 -5
- package/lib/oh-story/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +1106 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
- package/lib/oh-story/skills/story-long-scan/SKILL.md +4 -1
- package/lib/oh-story/skills/story-long-write/SKILL.md +52 -216
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +29 -56
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +72 -12
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +61 -29
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +20 -0
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +26 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +10 -4
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +6 -15
- package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -0
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +2 -0
- package/lib/oh-story/skills/story-long-write/references/project-files.md +110 -0
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +12 -4
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +86 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-craft.md +9 -29
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-resolution.md +27 -0
- package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +31 -0
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +9 -34
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +88 -118
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +55 -119
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +15 -11
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +73 -54
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +22 -0
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +63 -4
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +531 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +6 -1
- package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +39 -20
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +197 -15
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +90 -23
- package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +10 -5
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +285 -0
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +58 -0
- package/lib/oh-story/skills/story-long-write/scripts/style-whitelist.js +39 -0
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-review/SKILL.md +80 -87
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +29 -56
- package/lib/oh-story/skills/story-review/references/author-memory.md +61 -29
- package/lib/oh-story/skills/story-review/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +10 -4
- package/lib/oh-story/skills/story-review/references/review-quality.md +6 -12
- package/lib/oh-story/skills/story-review/references/style-resolution.md +27 -0
- package/lib/oh-story/skills/story-review/references/tracking-initialization.md +31 -0
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +9 -34
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +6 -1
- package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +39 -20
- package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +10 -5
- package/lib/oh-story/skills/story-review/scripts/style-whitelist.js +39 -0
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +58 -43
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +29 -56
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +154 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +10 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +27 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +63 -4
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +38 -0
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +22 -3
- package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +5 -1
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +2 -2
- package/lib/oh-story/skills/story-short-scan/SKILL.md +5 -1
- package/lib/oh-story/skills/story-short-write/SKILL.md +15 -324
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +61 -29
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +60 -0
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +10 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +55 -0
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +12 -14
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +10 -10
- package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -1
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +27 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +78 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +126 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +32 -0
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +5 -5
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +6 -1
- package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +39 -20
- package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +34 -5
- package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +90 -23
- package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +10 -5
- package/lib/oh-story/skills/story-short-write/scripts/style-whitelist.js +39 -0
- package/lib/types/client/drama-production-view.d.ts.map +1 -1
- package/lib/types/client/file-activity.d.ts +19 -1
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts +7 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +33 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/drama-adapters.d.ts +5 -3
- package/lib/types/drama-adapters.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts +52 -0
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-identity.d.ts +17 -0
- package/lib/types/role-identity.d.ts.map +1 -0
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +31 -1
- package/lib/video-recap/manifest.json +162 -162
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +4 -9
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +47 -60
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +77 -115
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +41 -40
- package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +22 -32
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +102 -192
- package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +14 -35
- package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +14 -12
- package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +8 -9
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +3 -14
- package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +23 -12
- package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +1 -4
- package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +24 -25
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +31 -85
- package/lib/video-recap/skills/video-assemble/scripts/media.py +100 -144
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +101 -195
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +10 -21
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +90 -169
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +69 -122
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +10 -17
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +33 -48
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +14 -20
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +135 -213
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +49 -57
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +38 -74
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +46 -95
- package/lib/video-recap/skills/video-cut/scripts/lib.py +23 -25
- package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +70 -173
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +28 -53
- package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +162 -322
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +6 -7
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +104 -124
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +255 -412
- package/lib/video-recap/skills/video-recap/scripts/lib.py +30 -52
- package/lib/video-recap/skills/video-recap/scripts/materials.py +97 -120
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +7 -12
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +46 -97
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +18 -36
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +29 -47
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +43 -76
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +2 -1
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +2 -1
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +2 -2
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +129 -145
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +27 -20
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +20 -31
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +31 -106
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +43 -113
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +196 -377
- package/lib/video-recap/skills/video-script/scripts/agent_brief.py +1 -1
- package/lib/video-recap/skills/video-script/scripts/agent_text.py +63 -172
- package/lib/video-recap/skills/video-script/scripts/brief_context.py +80 -135
- package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +125 -167
- package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +93 -208
- package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +20 -46
- package/lib/video-recap/skills/video-script/scripts/lib.py +30 -26
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +145 -140
- package/lib/video-recap/skills/video-script/scripts/review_response.py +12 -42
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +0 -6
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +39 -100
- package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +33 -124
- package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +1 -1
- package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +63 -172
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +1 -2
- package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +80 -135
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +125 -167
- package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +93 -208
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +1 -1
- package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +20 -46
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +31 -26
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +145 -140
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +39 -100
- package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +33 -124
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +1 -4
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +7 -13
- package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +12 -30
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +98 -131
- package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +17 -28
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +151 -240
- package/package.json +45 -45
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -59
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -42
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
|
@@ -1,94 +1,47 @@
|
|
|
1
1
|
# 概念选择方法
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 原作如何改变玩法
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
先例按设计问题选择,不按题材相似选择。一个主要玩法先例应能说明核心动词、循环、压力与熟练度;
|
|
9
|
-
辅助先例只补主要先例回答不了的独立问题。记录借什么、明确不借什么和事实来源,不收集与当前决定
|
|
10
|
-
无关的销量或排名。
|
|
11
|
-
|
|
12
|
-
需要玩家操纵空间、视角或地形时使用实时空间;固定镜头和连续场景不必为了“更像游戏”强做三维。
|
|
13
|
-
平台与技术只是实现约束,不替代玩法判断。
|
|
5
|
+
类型由玩家反复做什么决定,不由原作战斗、恋爱或对白的篇幅决定。先例按设计问题选择,
|
|
6
|
+
记录借用与拒绝之处;原作必须改变动作对象、顺序、代价或世界回应,而不只是替换专有名词。
|
|
14
7
|
|
|
15
8
|
## 硬否决
|
|
16
9
|
|
|
17
|
-
|
|
10
|
+
以下缺口不能靠综合评分补偿:
|
|
18
11
|
|
|
19
|
-
-
|
|
20
|
-
- 没有 3–5 个可重复参与手段,或这些动作不产生压力、取舍、状态变化与熟练度差异;
|
|
12
|
+
- 动作不能闭合可参与的循环,选择或操作不改变可观察状态、后续机会或结果;
|
|
21
13
|
- 原作中心规则、情感或伦理张力只存在于过场和名词,核心循环与它无关;
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
- 玩家介入被兑现成花资源放行既定结果,缺少因果权或结算权。
|
|
28
|
-
|
|
29
|
-
## 玩家能动性
|
|
30
|
-
|
|
31
|
-
- **因果权**:玩家的选择决定事情为什么发生、朝哪里转;选什么都汇入同一原因即不成立。
|
|
32
|
-
- **结算权**:世界会点名玩家做过的事,代价落在他在乎的对象上;只给总分或旁白总结不成立。
|
|
33
|
-
|
|
34
|
-
每个方向用一句话回答:“玩家做了什么,使这件事只能这样发展,而且结果怎样看得出是他造成的?”
|
|
35
|
-
|
|
36
|
-
## 身份专属命令
|
|
14
|
+
- 删除专有名词后,与通用模板没有动作对象、代价或世界回应上的差异;
|
|
15
|
+
- 最小切片超出 brief,依赖不可获得的工具、服务、内容量或资产;
|
|
16
|
+
- 依赖复制其他游戏受保护的角色、地图、界面、文本或素材;
|
|
17
|
+
- 声称有进展,却只有文本或读数增加,没有兑现本项目承诺的局面、能力或理解变化;
|
|
18
|
+
- 玩家介入只是花资源放行既定剧情,世界不回读玩家做过的具体事。
|
|
37
19
|
|
|
38
|
-
|
|
39
|
-
差异本身值得保留时,才选择一项 `signature_command`;实时瞄准、移动、节奏操作或已有按钮已经完整表达
|
|
40
|
-
核心动词时写 `N/A`。不开放通用“你想做什么”,也不把每个 NPC 都变成聊天入口。
|
|
20
|
+
不以动词数量、成长阶段或三维画面作为可玩性的替代判据。
|
|
41
21
|
|
|
42
|
-
|
|
43
|
-
advancement_ladder`。`signature_command` 选中时只先锁 `id`、玩家可见 `label` 和候选 `intents`;具体
|
|
44
|
-
槽位、验证器与提交项由世界设计裁决。意图数量服从最小切片,不设跨项目固定数;玩家表达先编译成
|
|
45
|
-
有限候选动作,世界仍可拒绝、部分执行、走样、泄露或延期追责。若自由表达最后只等价于按一个现成
|
|
46
|
-
按钮,且没有增加身份感、组合空间或可读后果,就不采用。
|
|
22
|
+
## 玩家能动性与承载类型
|
|
47
23
|
|
|
48
|
-
|
|
24
|
+
每个方向回答:玩家做什么改变事情的原因或方向(因果权),世界怎样具体兑现其后果(结算权)。
|
|
25
|
+
短篇或命定结局可以收束结果,但不能因此抹掉玩家介入的意义。
|
|
49
26
|
|
|
50
|
-
|
|
51
|
-
- `narrative-led`:玩家主要读局面、追问、比对信息、表态并承担回响;拿掉数值面板仍知道该争取什么。
|
|
52
|
-
- `hybrid`:两层各自成立且双向影响;一层只是为另一层放行时,按真正承载体验的那层记录。
|
|
27
|
+
`experienceProfile` 是交接字段:
|
|
53
28
|
|
|
54
|
-
|
|
55
|
-
|
|
29
|
+
- `system-led`:主要决策来自操作规则;
|
|
30
|
+
- `narrative-led`:主要决策来自理解局面、人物、信息并承担回响;
|
|
31
|
+
- `hybrid`:两层各自承载决策且互相影响。
|
|
56
32
|
|
|
57
|
-
|
|
33
|
+
按实际决策来源判断,不按界面上是否出现数值分类。叙事层说明分支结构与内容预算,不强套统一弧线。
|
|
58
34
|
|
|
59
|
-
|
|
60
|
-
熟练度来自知道谁掌握什么、何时施压、什么必须隐瞒,以及先前行为怎样改变当前局面。
|
|
61
|
-
|
|
62
|
-
按内容预算选择结构:
|
|
63
|
-
|
|
64
|
-
| 结构 | 适用情况 | 主要成本 |
|
|
65
|
-
|---|---|---|
|
|
66
|
-
| 主干加瓶颈 | 关系与立场变化需要记忆,但关键事件可汇流 | 状态变体 |
|
|
67
|
-
| 任务簇 | 调查、取证、地点顺序可交换 | 节点组合 |
|
|
68
|
-
| 长廊 | 命定主线必须被所有玩家看到 | 分支较浅 |
|
|
69
|
-
| 分院帽 | 前段选择分配到不同后半程 | 多套后半程 |
|
|
70
|
-
| 树洞 | 短小、多周目、分支很少汇流 | 大量内容不可见 |
|
|
71
|
-
|
|
72
|
-
不设汇流时分支不要连续膨胀;用“节点数 × 状态变体 × 关键人物数”估算内容,而不是画一棵无限树。
|
|
73
|
-
|
|
74
|
-
## 三段弧
|
|
75
|
-
|
|
76
|
-
三段弧要求玩家能力或局面发生质变:
|
|
77
|
-
|
|
78
|
-
- 探索期:认识可用动作、对象和第一层风险;
|
|
79
|
-
- 成长期:组合动作、读取先前状态,获得新手没有的选择;
|
|
80
|
-
- 成熟期:在较少提示下利用早先积累,完成代表性结果。
|
|
35
|
+
## 身份专属命令
|
|
81
36
|
|
|
82
|
-
|
|
83
|
-
|
|
37
|
+
自然语言不是默认输入。只有玩家需要以角色身份组织对象、执行人、条件、期限或知情范围,
|
|
38
|
+
且自由表达增加身份感、组合空间或可读后果时,才选择 `signature_command`,否则写 `N/A`。
|
|
84
39
|
|
|
85
|
-
|
|
40
|
+
选中时锁定 `id`、玩家可见 `label` 和候选 `intents`;槽位、验证器与提交项交给世界设计。
|
|
41
|
+
说明身份、反复行动、执行阻力和后续变化如何相连。玩家表达只是有限动作候选,世界仍可拒绝、
|
|
42
|
+
部分执行、走样、泄露或延期追责,不能把“说了”直接等同于“发生了”。
|
|
86
43
|
|
|
87
|
-
|
|
88
|
-
2. 玩家是否亲手 enact 原作的情感或伦理张力;
|
|
89
|
-
3. 玩家能动性是否在切片内被世界回读;
|
|
90
|
-
4. 一张实际画面能否说明身份、动作和独特世界;
|
|
91
|
-
5. 表达是否尊重原作文化,并适合目标界面语言与受众;
|
|
92
|
-
6. 最小原型能否用现有时间、工具与资产证明最大风险。
|
|
44
|
+
## 选择依据
|
|
93
45
|
|
|
94
|
-
|
|
46
|
+
先否决,再比较原作转化、玩家能动性、文化表达与最小验证成本。
|
|
47
|
+
推荐能用现有时间、工具和资产证明核心幻想、且否决观察最清楚的方向;相近方案不做伪精确排名。
|
|
@@ -14,37 +14,26 @@ description: "Verify a game with evidence on its selected target runtime. Launch
|
|
|
14
14
|
## 唯一必需合同
|
|
15
15
|
|
|
16
16
|
每个候选都必须用真实运行证据覆盖:`launch`、`render`、`input`、`coreLoop`、`outcome`、`restart`。
|
|
17
|
-
`targetFinish`
|
|
18
|
-
一项、写入 `verify.suites` / evidence,或作为 limitation,不得生成第七道门。
|
|
19
|
-
|
|
20
|
-
这是一条自动化或代理可执行的运行验证,不要求真人试玩、主观评分或逐项人工批准。需要真人研究时
|
|
21
|
-
另立产品研究任务,不得把它变成当前候选 PASS 的隐藏前置条件。
|
|
17
|
+
`targetFinish` 描述成色,不改变这组六项,也不得生成第七道门。
|
|
22
18
|
|
|
23
19
|
## 执行
|
|
24
20
|
|
|
25
21
|
1. 读取 `targetRuntime`、`testedRuntime` 和权威 verify;与 PRODUCT_BRIEF/BUILD_BRIEF 冲突时先报错,
|
|
26
22
|
不由 QA 猜值。
|
|
27
|
-
2.
|
|
23
|
+
2. 运行权威 verify:它在 testedRuntime 从 clean start → 核心动作 → 设计结果 → restart
|
|
28
24
|
完成整条路径,并记录 command、exit code、环境、六项结果、最小证据和实际失败。
|
|
29
|
-
3. 对照 GAME_DESIGN
|
|
25
|
+
3. 对照 GAME_DESIGN 中会改变结果的不变量和结束标记;只验证批准的设计承诺,不遍历所有
|
|
30
26
|
代码路径。
|
|
31
|
-
4.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
一次;谈话不得越权提交效果或泄露知识。失败按影响映射到 `coreLoop` / `outcome` / `restart` 或写
|
|
36
|
-
limitation,不新增 checks。
|
|
37
|
-
5. 记录 limitation 和问题的 product/design/art/build 归属。趣味、长期平衡、留存和商业价值只能写成
|
|
38
|
-
未验证风险,不给确定性 PASS。
|
|
27
|
+
4. 若候选有可执行模型、事件日志、patch 或 `signature_command`,按 test-design-method 的对应合同把
|
|
28
|
+
项目回归嵌入权威 verify;允许定向诊断、修复和复跑,最终六项证据必须来自同一次完整运行。
|
|
29
|
+
失败映射到已有 checks 或 limitation,不新增通用门禁。
|
|
30
|
+
5. 记录 limitation 和问题的 product/design/art/build 归属。
|
|
39
31
|
|
|
40
32
|
优先使用已有可观察状态;只有无法判断结果时才增加最小测试钩子。不要为了 QA 重构游戏或强制某种
|
|
41
33
|
框架、测试库或调试接口。
|
|
42
34
|
|
|
43
35
|
## 输出
|
|
44
36
|
|
|
45
|
-
- `qa/verification.json`:唯一 QA
|
|
46
|
-
一条证据路径和 limitations。证据文件保留运行细节,不再复制一份 `qa` 结论对象,也不再生成
|
|
47
|
-
重复的人工可读 QA 报告。
|
|
37
|
+
- `qa/verification.json`:唯一 QA 事实源;字段与证据要求见 qa-contract.md。
|
|
48
38
|
|
|
49
|
-
|
|
50
|
-
失败的必需项不能满足整体 PASS。
|
|
39
|
+
缺口写结构化 limitation,不发明 `PASS_WITH_GAPS`;未运行或失败的必需项不能满足整体 PASS。
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
## 一、从六项结果反推
|
|
6
6
|
|
|
7
|
-
为 launch、render、input、coreLoop、outcome、restart
|
|
7
|
+
为 launch、render、input、coreLoop、outcome、restart 各选择一条最小证据。
|
|
8
8
|
|
|
9
9
|
## 二、从设计承诺写断言
|
|
10
10
|
|
|
11
|
-
读取 GAME_DESIGN
|
|
11
|
+
读取 GAME_DESIGN 中会改变结果的门槛、结局、失败条件、结束标记和核心动作,为每项选择一
|
|
12
12
|
个正例和一个有区分力的边界或反例。断言盯住玩家可观察结果,不绑定内部函数名。
|
|
13
13
|
|
|
14
14
|
叙事项目重点检查关键选择、持久状态读取、分支汇流、结局条件和人物知识边界;系统项目重点检查
|
|
@@ -34,12 +34,16 @@
|
|
|
34
34
|
|
|
35
35
|
时序、动效、碰撞和连续镜头证据必须在正常速度下采集;慢放只用于定位,不能证明体验正常。
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
源码、攻略与隐藏状态可用于规则验证,不能据此证明玩家能自行理解提示或发现解法。
|
|
38
|
+
仅在评估引导、提示或解谜可发现性时,另用未接触解法的试玩上下文,只提供玩家可见信息与正常输入;
|
|
39
|
+
不向其开放源码、内部快照或答案文件。若已接触这些信息,结果只作知情验证,不冒充玩家视角试玩。
|
|
40
|
+
记录所见提示、实际尝试与卡点;这种代理试玩不增加六项之外的必过门槛。
|
|
41
|
+
|
|
42
|
+
文字或叙事主导项目在目标视口检查当前动作、必要依据与反馈是否可达可读,按批准的阅读方式判断
|
|
43
|
+
遮挡、截断或不可操作。额外视口与溢出遍历按风险做诊断,不强制截图矩阵。
|
|
40
44
|
|
|
41
45
|
## 四、证据要求
|
|
42
46
|
证据用工作区相对路径且文件真实存在(不引用临时目录、缓存或个人桌面);状态、runtime 和 visual 各证明自己的层,不互相冒充;其余状态取值与 limitation 按 qa-contract.md 记录。
|
|
43
47
|
|
|
44
48
|
大型录屏、逐点击截图、raw trace 和可重建 contact sheet 不长期进 Git;保留当前声明真正引用的最小
|
|
45
|
-
代表证据。问题按 product/design/art/build
|
|
49
|
+
代表证据。问题按 product/design/art/build 归属。
|
|
@@ -10,54 +10,41 @@ description: "Design game experience, systems, and levels. Converge the chosen c
|
|
|
10
10
|
[world-design-method.md](references/world-design-method.md);确有资源、门槛或难度时再读
|
|
11
11
|
[numeric-design-method.md](references/numeric-design-method.md)。
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
[dialogue-design-method.md](references/dialogue-design-method.md)。需要玩家可见文案时按
|
|
16
|
-
[game-writing-craft.md](references/game-writing-craft.md) 统一声口,不为所有项目强制写长篇对白。
|
|
13
|
+
叙事实际承载体验时读取 [narrative-design-method.md](references/narrative-design-method.md),
|
|
14
|
+
不为所有项目强制写长篇对白。
|
|
17
15
|
|
|
18
16
|
产物语言由 `PRODUCT_BRIEF.md` 锁定;未锁定时跟随对话语言,不默认产出中文。
|
|
19
17
|
|
|
20
18
|
## 设计原则
|
|
21
19
|
|
|
22
20
|
- 保护 CONCEPT 的玩家承诺、`experienceProfile` 和不可妥协项;发现范围冲突时回上游修订。
|
|
23
|
-
-
|
|
24
|
-
- 规则写成玩家动作 → 状态变化 → 世界反馈 → 后续选择,不用背景设定代替可玩因果。
|
|
25
|
-
- 用“教会 → 变式 → 组合 → 检验 → 命运回收”组织最小切片;默认 10–30 分钟且不超过 brief 时长。
|
|
26
|
-
- NPC、势力、资源和历史只设计到玩家能感知、利用或改变的深度。
|
|
21
|
+
- 切片时长与系统范围服从 brief,以暴露最大设计风险为准,不预设时长或系统数量。
|
|
27
22
|
- 不写文件名、函数、存储键、测试脚本、着色器或资产管线;实现结构由构建阶段决定。
|
|
28
23
|
|
|
29
24
|
## 输出合同
|
|
30
25
|
|
|
31
26
|
生成一个 `design/GAME_DESIGN.md`,保持紧凑并包含:
|
|
32
27
|
|
|
33
|
-
1.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
7. **反馈、失败与重开**:输入反馈、状态变化、失败原因、下次可改之处和定义初态;
|
|
41
|
-
8. **叙事附件**:仅在叙事实际承载体验时写场景脊柱、人物议程、知识/证词边界、持久回响、
|
|
28
|
+
1. **体验与循环合同**:玩家身份、承诺、目标感受、`experienceProfile`、核心动作与循环和主要玩法先例,
|
|
29
|
+
以及原作如何改变动作对象、顺序、代价和世界回应;
|
|
30
|
+
2. **世界规则与进程**:玩家可见/隐藏信息、行动顺序、随机性、资源或持久状态及其读取点;
|
|
31
|
+
适合本项目的局面、能力或理解变化,以及可观察结束标记,不强套成长阶段;
|
|
32
|
+
3. **决策与关卡节拍**:关键局面如何要求玩家行动或取舍,玩家拥有何种因果权与结算权;
|
|
33
|
+
4. **反馈、失败与重开**:输入反馈、状态变化、失败原因、下次可改之处和定义初态;
|
|
34
|
+
5. **叙事附件**:仅在叙事实际承载体验时写场景脊柱、人物议程、知识/证词边界、持久回响、
|
|
42
35
|
分支汇流和结局回收;否则写 N/A;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
只有门槛、结局或张力确实读取数值时才做数值预算;叙事状态同理,写入后没有可见读取点就删除。
|
|
36
|
+
6. **语言、文化与交接边界**:界面语言、术语、阅读顺序、内容尺度,以及交给美术和构建的玩家效果;
|
|
37
|
+
7. **可执行切片合同**:最大设计风险、匹配的原型形态、最小状态、动作前置/效果,以及初态、输入路径、
|
|
38
|
+
预期状态与反馈;随机性相关时固定 seed,知情差或事件回读相关时才补观察者与事件;若概念选择了
|
|
39
|
+
`signature_command`,按方法「身份专属命令与延期回响」补齐结构;
|
|
40
|
+
8. **验证切片**:范围、明确非目标、完整路径和会触发设计修改的观察结果。
|
|
41
|
+
|
|
51
42
|
规则优先用短表表达,不复制成平行 JSON、go/no-go 表或第二份验收矩阵。
|
|
52
43
|
|
|
53
44
|
## 完成检查
|
|
54
45
|
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- 同一初态、规则版本、seed 与规范化动作输入序列可重放到同一终态;未见证角色不能读取秘密,未选分支不能污染历史;
|
|
59
|
-
- 专属命令若存在,玩家表述、解析候选、实际执行与反馈彼此可区分;无效或含混输入不得偷偷提交近似动作;
|
|
60
|
-
- 支持系统、分支和角色内容没有静默扩出 brief 范围;
|
|
61
|
-
- 文档没有替实现做技术设计,也没有把趣味或平衡写成确定性 PASS。
|
|
46
|
+
按 world-design-method 反向走读可执行闭环、世界回响、设计进程、重放与范围;存在叙事或专属命令时,
|
|
47
|
+
再按对应方法检查知识、分支、人物行动、解析候选与实际执行没有串线。只交付设计合同,不替实现选技术,
|
|
48
|
+
也不把趣味或平衡写成确定性 PASS。
|
|
62
49
|
|
|
63
50
|
输出交回总入口,不自行推进美术、构建或 QA。
|
|
@@ -1,84 +1,35 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 互动叙事的改编边界
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
[game-writing-craft.md](game-writing-craft.md);系统主导项目使用
|
|
6
|
-
[world-design-method.md](world-design-method.md)。
|
|
3
|
+
场景、对白、知识差或关键选择承担体验时使用。沿用原作的语域、称呼、人物声口与文化概念;
|
|
4
|
+
译写遵循 PRODUCT_BRIEF 的产物语言和分级,不把本地化变成另一文化的类型套话。
|
|
7
5
|
|
|
8
|
-
##
|
|
6
|
+
## 场景与人物
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
只记录会影响设计和实现的场景因果:人物议程与筹码、玩家可介入之处、信息边界、离场变化和下游回响。
|
|
9
|
+
无需给每场补齐统一字段,也不强制戏剧节拍或对白长度。
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
对白和选项必须是当前角色实际能说、知道或做的事,不用作者的道德标签或结局预告替代角色行动。
|
|
12
|
+
改编可以压缩场次,但不能把人物目标、关系变化或关键决定改成无依据的剧情便利。
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
解决核心矛盾;误会需要有不解释的理由、改变人物行动,并在澄清后留下关系或机会上的残余。
|
|
14
|
+
## 知识与证据
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
秘密、证词和误判分别维护世界事实、人物知道或相信、玩家当前知道。
|
|
17
|
+
证据区分可见载体、直接支持的最小结论和仍未确定的解释。
|
|
18
|
+
新揭示可以改变旧证据的意义,不能篡改已经发生的事实;人物只能使用自己获得的信息。
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
原作的重生、预知、系统或特殊能力沿用已确认规则、信息边界与代价,不在困境中临时扩权。
|
|
21
|
+
原作未定义的部分应标为设计发明并服从 SOURCE_BIBLE 的改编边界。
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|---|---|
|
|
24
|
-
| 存在理由 | 删除本场会损失哪项选择、证据、关系变化或不可逆行动 |
|
|
25
|
-
| 时空与视角 | 何时何地发生,玩家通过谁感知现场 |
|
|
26
|
-
| 人物议程 | 每个人想得到、保护、隐瞒或确认什么 |
|
|
27
|
-
| 反制筹码 | 谁用人物、证据、物件、时间或身份挡住谁 |
|
|
28
|
-
| 知识边界 | 世界事实、各人物相信和玩家知道分别是什么 |
|
|
29
|
-
| 方向变化 | 哪句话、证词、物件或行动让原计划失效 |
|
|
30
|
-
| 玩家介入 | 玩家观察、追问、表达或采取什么行动 |
|
|
31
|
-
| 离场状态 | 人物、关系、信息和物件如何变化,下一场为何现在发生 |
|
|
23
|
+
## 分支与持久回响
|
|
32
24
|
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
关键选择记录实际言行、即时反应、持久事实及其读取点,不用隐藏总分替代具体历史。
|
|
26
|
+
共享场景允许汇流,但对白、物件、关系和可用行动必须遵守所选路径,不能把未选行动当成已发生。
|
|
35
27
|
|
|
36
|
-
|
|
28
|
+
只保留会被后续读取的状态;承诺、证词、物件去向和公开立场应在相关人物或后续决策中兑现,
|
|
29
|
+
不必把完整账目铺到每个选择界面。叙事揭示不得泄露当前视角无权获得的信息。
|
|
37
30
|
|
|
38
|
-
|
|
39
|
-
对玩家行为的记忆、会主动发起的行动,以及声口和底线。人物变化必须能追溯为
|
|
40
|
-
`压力 → 选择 → 局部结果 → 代价 → 新策略`;拒绝改变也可以是有效结果。
|
|
31
|
+
## 交付检查
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
- **人物相信**:每个人知道、误信、怀疑或隐瞒什么;
|
|
46
|
-
- **玩家知道**:玩家当前看见、听见并能合理推断什么。
|
|
47
|
-
|
|
48
|
-
关键证据再区分可见载体、直接支持的最小结论和仍未确定的解释。人物只能使用自己已经掌握的
|
|
49
|
-
信息;新揭示可以改写旧证据的意义,不能改写已经发生的事实,并应改变某人可采取的行动。
|
|
50
|
-
|
|
51
|
-
## 四、选择与隐藏因果
|
|
52
|
-
|
|
53
|
-
关键选择记录玩家掌握的信息、人物目标、可采取的说法或行动、即时反应、持久状态、最近回响、
|
|
54
|
-
延迟回响和终局影响。选项数量跟随局面,不设机械下限;不用道德标签或结果预告代替角色行动。
|
|
55
|
-
|
|
56
|
-
持久状态保存具体事实,例如答应了谁、支持了谁、看过哪份证词或把物件交给谁。每项状态都要有
|
|
57
|
-
写入点、读取点和玩家可感知的回响;没有读取点就删除。优先让人物称呼、行为、场景顺序、可用
|
|
58
|
-
行动或结局体现历史,不把关系压成一个匿名数字。
|
|
59
|
-
|
|
60
|
-
设计玩家可见的信息节拍时,按“当前局面 → 必要依据 → 选择 → 人物回应”披露,而不是把全部系统
|
|
61
|
-
状态、历史、证据、解锁条件和远期后果一次摊在选择页。旧事只有在它改变当前人物说法、选项可用性
|
|
62
|
-
或代价时才回到正戏,并贴近受影响的那一项;完整关系史与账目属于按需档案。若主要选择需要滚动后
|
|
63
|
-
才能看全,先拆拍、删重复或把细节改为主动揭示,不用更小字号把信息爆炸伪装成高密度玩法。
|
|
64
|
-
|
|
65
|
-
共享场景可以汇流,但要按历史替换人物、对白、物件和可用行动,且不得把未选行动当作已发生。
|
|
66
|
-
首个原型宁可保留少量会被回收的选择,也不要堆积无人记得的分支。
|
|
67
|
-
|
|
68
|
-
## 五、揭示、节奏与前提装置
|
|
69
|
-
|
|
70
|
-
揭示应来自已经出现过的事实或玩家选择,并迫使人物改变行动。检查谁能接触该事实、证据为何
|
|
71
|
-
现在出现、它排除了哪些旧解释,以及得知后谁必须换策略。突然加入更大的秘密不等于反转。
|
|
72
|
-
|
|
73
|
-
场景在行动、对话、观察和恢复段之间切换。当前悬念兑现前可种下下一项压力,但不要让所有场景
|
|
74
|
-
保持同一情绪或同等信息密度,也不要把本场造成的代价立即全部结清。
|
|
75
|
-
|
|
76
|
-
原作含重生、预知、系统或特殊能力时,明确其既有规则、信息边界和可见代价。装置可以提供能力、
|
|
77
|
-
信息或期限,不能临时扩权、替主角决定或反复解决困境;对手应能观察并适应已经暴露的手段。
|
|
78
|
-
|
|
79
|
-
## 六、交付与路径检查
|
|
80
|
-
|
|
81
|
-
交付场景脊柱、人物议程、知识表、关键选择和必要的分支图。沿代表性路径正向与反向走读:确认
|
|
82
|
-
人物只使用已知信息、未选事实没有串线、持久状态被读取、每个结果能回到具体选择和人物目标。
|
|
83
|
-
|
|
84
|
-
自然度、人物魅力、沉浸和选择重量不由自动化确定,也不在本仓库另设人工审批流程。
|
|
33
|
+
交付必要的场景脊柱、人物议程、知识边界、关键选择和分支关系。正向与反向走读代表路径:
|
|
34
|
+
人物没有越权知情,未选事实没有串线,结果能追溯到实际选择,文案声口与按钮动作符合角色和状态。
|
|
35
|
+
自然度、魅力、沉浸和选择重量是待观察的质量判断,不写成自动化 PASS。
|
|
@@ -1,56 +1,22 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 数值与实现一致性
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
规则,不是为设计稿增加精确感。
|
|
3
|
+
只在资源、门槛、结局或张力实际读取数字时使用,不为设计稿增加装饰精度。
|
|
5
4
|
|
|
6
|
-
##
|
|
5
|
+
## 可达性与取舍
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
关键数值须有含义、来源、读取点和可感知反馈。对阻断路径或改变结果的门槛,
|
|
8
|
+
用实现将消费的规则演算代表路径,区分设计允许的失败与意外不可达。
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
4. 玩家怎样从界面或世界反馈理解变化原因。
|
|
10
|
+
宣称有策略取舍时,先说明什么观察会否决该承诺,再比较能暴露问题的路径;
|
|
11
|
+
涉及随机性时固定 seed。项目自定有意义的差距,不套通用倍率、胜率或回合数。
|
|
12
|
+
单一路径、不可恢复资源和仅用于记录的数字不自动构成设计缺陷,按本项目承诺判断。
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
若只是历史记录,就不要把它包装成策略资源。
|
|
14
|
+
承诺、证词、物件去向等历史优先保存具体事实,不默认压成关系总分。
|
|
17
15
|
|
|
18
|
-
##
|
|
16
|
+
## 漂移裁决
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
设计与实现数值不同时,逐项决定采纳有运行依据的实现值并回写、修正文档错误,
|
|
19
|
+
或让实现恢复遗漏的设计承诺;无依据的批量同步不算裁决。
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- 不可达:改门槛、来源或切片范围,不靠好运补洞;
|
|
25
|
-
- 起始就达成:门槛没有制造选择,删除或重设;
|
|
26
|
-
- 只有唯一可达路线:承认它是剧情条件,或补真正可比较的另一条路。
|
|
27
|
-
|
|
28
|
-
预算使用实现将要消费的规则值;设计与实现不同步时逐项裁决,不维护两套“都正确”的数字。
|
|
29
|
-
|
|
30
|
-
## 证明取舍存在
|
|
31
|
-
|
|
32
|
-
先由设计声明什么现象会否决取舍,例如“无视相克与利用相克得到近似代价”。再选择能暴露这个问题
|
|
33
|
-
的代表策略或路径运行比较。随机性会改变结论时固定种子;随机性无关时不为测试仪式强加 RNG。
|
|
34
|
-
|
|
35
|
-
检查三类失败:
|
|
36
|
-
|
|
37
|
-
- 一个动作或策略跨大多数真实局面都通吃;
|
|
38
|
-
- 不同选择长期汇入相同状态和结果;
|
|
39
|
-
- 玩家在选择前看不到足够信息,事后也学不到为什么错。
|
|
40
|
-
|
|
41
|
-
项目自行声明有意义的差距和目标区间;仓库不提供跨类型通用倍率、回合数或胜率阈值。
|
|
42
|
-
|
|
43
|
-
## 隐藏状态同样适用
|
|
44
|
-
|
|
45
|
-
承诺、证词、物件去向、公开立场和关系变化也要有写入与读取。它们优先通过人物措辞、称呼、可选
|
|
46
|
-
行动和场景可达性表现,不默认变成暗条。旗标少而被多次回读,比大量一次性变量更有深度。
|
|
47
|
-
|
|
48
|
-
限制行动广度通常比锁住内容更有意义:代价可以让玩家今天少做一件事,不必让整条剧情永久不可见。
|
|
49
|
-
|
|
50
|
-
## 实现漂移与交接
|
|
51
|
-
|
|
52
|
-
打磨会改变数值。发现设计与实现不同时,逐项决定:采纳有运行依据的实现值并回写、修正文档错误、
|
|
53
|
-
补记新增机制,或让实现补上遗漏承诺;说不清原因的批量同步不算裁决。
|
|
54
|
-
|
|
55
|
-
交接前只确认:关键资源都有读取点,门槛可达,代表路径能暴露设计声明的失败现象,随机系统无死局,
|
|
56
|
-
设计与当前实现没有未裁决漂移。主观平衡与长期经济仍需真实玩家研究,不写成机器 PASS。
|
|
21
|
+
交接只确认关键路径按声明可达、反例能暴露设计风险、当前数值无未裁决漂移。
|
|
22
|
+
有限路径演算不证明全局无死局、长期经济或主观平衡。
|
|
@@ -1,124 +1,57 @@
|
|
|
1
1
|
# 游戏世界设计方法
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 可被推翻的体验假设
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
把体验承诺落到玩家动作、可见变化和失败现象。切片范围服从 brief,保真度只覆盖最大风险:
|
|
6
|
+
文本可以验证叙事因果,不能证明实时操作、空间、物理或镜头成立。
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
每个系统必须改变核心决策;删除或自动处理后体验不变的系统应删减。不要用统一时长、系统数量、
|
|
9
|
+
角色层级或关卡五拍替代项目范围判断。
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
回合状态板验证资源、门槛与反制;`hybrid` 让两层在最短路径中互相读写;实时动作、视线、导航、物理或
|
|
12
|
-
镜头风险直接进入目标引擎灰盒。不能用文字顺畅证明操作、空间或镜头成立。
|
|
11
|
+
## 可执行因果
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
只写运行时真正需要的规则:
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
恢复;经营关心时间、资源流和延迟反馈;叙事关心信息权限、介入时机、不可撤回选择和人物回响。
|
|
18
|
-
不要把任何一套字段固定给所有项目。
|
|
15
|
+
`当前状态 + 玩家行动 + 世界规则 → 新状态 + 可读反馈 + 后续机会`
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
关键动作说明前置、效果、不可突破的不变量和后续读取点;需要引用或回放时使用稳定标识。
|
|
18
|
+
只对秘密、证词、欺骗等高风险事实区分世界事实、玩家知道、人物知道或相信,不为普通事实维护心智模型。
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
用代表路径检验承诺:玩家行动怎样改变原因或方向,世界又怎样回读该行动。
|
|
21
|
+
按既定体验区分因果重演与策略取舍:能按原著步骤通关,不等于存在有意义的取舍。
|
|
22
|
+
仅在承诺策略取舍时,给出选择间的代价与后果,以及能暴露无脑通解或伪选择的局面;
|
|
23
|
+
单解谜题或线性重演可成立,不为满足此检查擅加多解、成长或新系统。
|
|
24
|
+
承诺复玩时才要求可再生的不确定性。
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
只对秘密、证词、欺骗和关系误判等高风险事实维护 `world fact / player knows / character knows or believes`;
|
|
28
|
-
不要为普通事实制造多层心智模型。
|
|
26
|
+
## 身份专属命令与延期回响
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
的差异可以是操作、资源判断、空间阅读、人物判断或一次性知识;只有项目承诺复玩时才要求可再生的
|
|
32
|
-
不确定性。
|
|
28
|
+
只有 CONCEPT 选中 `signature_command` 时使用本节:
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
`玩家表述 → 解析候选 → 澄清或拒绝 → 规则验证 → 执行阻力 → 提交实际结果 → 证物/知情变化 → 到期回响`
|
|
35
31
|
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
GAME_DESIGN 固定 `id / label / intents / slots / validators / commit` 六组最小结构。
|
|
33
|
+
候选字段按本项目需要选择,不要求统一数量或字段全集。否定、条件、互斥要求或不支持的语义
|
|
34
|
+
必须澄清或拒绝,不能靠关键词命中静默反转玩家意思。
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
→ 反馈证物与知情者 → 到期后果重新进入决策面
|
|
42
|
-
```
|
|
36
|
+
规则器拥有提交权:分别判断资源、执行人意愿、空间权限、人物知识、冲突承诺与原作边界。
|
|
37
|
+
反馈区分“玩家安排”与“实际执行”,显示留下的证物、见证和到期事项,不用生成叙事掩盖结算。
|
|
43
38
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
不靠命中关键词静默改成相反行动。
|
|
48
|
-
规则器分别裁决资源、执行人在场/意愿、空间权限、人物知识、冲突承诺与原作边界,因此实际结果可以是
|
|
49
|
-
完成、部分完成、拒绝、走样或泄露。反馈并列“你的安排 / 实际执行 / 留下的物与见证 / 后续到期事项”,
|
|
50
|
-
不能只用一段生成叙事掩盖结算。
|
|
39
|
+
延期事项保留来源行动、到期条件、相关人物/物件/承诺、当前状态与结清事件;到期时必须回到
|
|
40
|
+
决策面,不能只追加装饰文本。若私人谈话能改变世界,也只提出事实、权限或承诺候选,
|
|
41
|
+
经同一规则验证后提交;原始聊天和模型数值不是状态权威。
|
|
51
42
|
|
|
52
|
-
|
|
53
|
-
它必须在到期时改变当前选择或要求再次裁决,不能只追加一句装饰回声。若私人谈话也是玩法通道,谈话只
|
|
54
|
-
提出事实、承诺、权限、拒绝和见证候选,经同一规则验证后进入事件账;原始聊天文本和模型数值都不是状态
|
|
55
|
-
权威。
|
|
43
|
+
## 进程与世界响应
|
|
56
44
|
|
|
57
|
-
|
|
45
|
+
以本项目的完整路径组织局面变化和结束标记,不强套探索、成长、成熟三阶段。
|
|
46
|
+
作为卖点的原作规则必须在运行中影响机会、代价或人物行动,不能只在说明里存在。
|
|
47
|
+
若忽略一段规则仍得到近似结果,删除该段或补足其真正影响,不靠新增系统掩盖问题。
|
|
58
48
|
|
|
59
|
-
|
|
60
|
-
另一局面失效。不存在跨局面永远正确的默认动作,玩家也能从界面、空间、人物或前路信息预判后果。
|
|
49
|
+
叙事承担体验时,知识、人物与分支边界见 [narrative-design-method.md](narrative-design-method.md)。
|
|
61
50
|
|
|
62
|
-
|
|
63
|
-
实际规则和代表路径去证伪。
|
|
51
|
+
## 白盒反馈与局部修订
|
|
64
52
|
|
|
65
|
-
|
|
66
|
-
|
|
53
|
+
保留足以复现的初态、输入路径与终态;涉及随机性时固定 seed,涉及事件回放时记录内容/规则版本与事件。
|
|
54
|
+
反馈定位到“观察位置、预期/实际差异、所属规则、owner、最小修改、重放路径”,不每次重写整份设计。
|
|
67
55
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
作为卖点的规则不能只供玩家单向利用。对手、环境或人物至少读取一种玩家状态并改变策略:敌人根据
|
|
71
|
-
站位或资源反应,环境根据工具改变路线,人物根据承诺、证词或旧账主动试探、提条件、抢先公开或
|
|
72
|
-
拒绝。只会等待玩家点击、始终完整回答或按固定脚本行动的对象没有形成对抗。
|
|
73
|
-
|
|
74
|
-
所有随时间增长的资源、等级、好感和进度,都要带来新的决策类型、可达空间、人物行为或组合方式;
|
|
75
|
-
只涨读数就是空转。
|
|
76
|
-
|
|
77
|
-
## 系统与内容预算
|
|
78
|
-
|
|
79
|
-
第一版只保留一个核心系统、最多两个支持系统和一个标志性场面。库存、制作、技能树、天气、开放
|
|
80
|
-
世界和额外关系线只有在增加核心决策时存在;自动替玩家处理后体验不变的成长系统应删除或降级。
|
|
81
|
-
|
|
82
|
-
角色与事件按承诺分层:
|
|
83
|
-
|
|
84
|
-
| 层级 | 最小深度 |
|
|
85
|
-
|---|---|
|
|
86
|
-
| 氛围人物 | 身份、位置、可辨识反应 |
|
|
87
|
-
| 支持短线 | 自身诉求、一次有后果的选择、一次下游回响 |
|
|
88
|
-
| 核心路线 | 多阶段关系、独立筹码、高潮与结局回收 |
|
|
89
|
-
|
|
90
|
-
短线先证明会产生后续差异;升级为核心路线是新的产品范围,不由内容数量自动决定。
|
|
91
|
-
|
|
92
|
-
## 关卡与场景节拍
|
|
93
|
-
|
|
94
|
-
用“教会 → 变式 → 组合 → 检验 → 命运回收”组织最短闭环:
|
|
95
|
-
|
|
96
|
-
1. **教会**:给清楚目标,让玩家尽快做出核心动作并看到后果;
|
|
97
|
-
2. **变式**:改变空间、信息、对手意图或资源,使机械重复失效;
|
|
98
|
-
3. **组合**:让两个已知规则产生原作特有的场面或取舍;
|
|
99
|
-
4. **检验**:减少提示,让玩家迁移所学,并显示失败原因和可改之处;
|
|
100
|
-
5. **命运回收**:结果读取玩家的关系史、知识、资源与关键选择,而非只看一个总分。
|
|
101
|
-
|
|
102
|
-
逐拍用最省事的默认打法走一遍;若忽略该拍规则仍得到近似结果,就给它一条可见的局面约束,或把
|
|
103
|
-
这拍删掉。修复优先复用已教系统,不为中段另造新系统。
|
|
104
|
-
|
|
105
|
-
## 空间、首屏与反馈
|
|
106
|
-
|
|
107
|
-
每个空间说明镜头可见范围、主路线、可选风险路线和地标。第一帧只保留一个主要焦点;次级面板的
|
|
108
|
-
折叠、隐藏或常驻都要有触发或产品理由。
|
|
109
|
-
|
|
110
|
-
核心动词的输入、画面/声音反馈和状态变化应在同一节拍内闭合。高压后安排恢复;失败说明发生了什么
|
|
111
|
-
以及玩家下次能改变什么。优先通过空间、人物反应和后果传递设定,不用百科文本替代世界响应。
|
|
112
|
-
|
|
113
|
-
叙事承载体验时的场景、知识、分支和人物方法见
|
|
114
|
-
[narrative-design-method.md](narrative-design-method.md) 与
|
|
115
|
-
[dialogue-design-method.md](dialogue-design-method.md)。
|
|
116
|
-
|
|
117
|
-
## 白盒试玩与局部修订
|
|
118
|
-
|
|
119
|
-
白盒运行至少留下初始状态、内容/规则版本、seed、输入序列、事件日志与终态摘要。每次反馈定位为:
|
|
120
|
-
`观察位置 → 预期/实际差异 → 状态/动作/知识/回响节点 → owner → 最小修改 → 重放路径`。自然语言可表达
|
|
121
|
-
问题,问题标签便于聚类,结构化字段只修改被定位的节点;不要每次重写整份设计。
|
|
122
|
-
|
|
123
|
-
文本、标签与表现资产通常可局部替换;变量语义、节点 id、行动效果、知识权限或不可逆承诺改变时,声明
|
|
124
|
-
存档/日志迁移或明确失效。修订后先重放原失败路径,再跑一条会揭露分支污染的相邻路径。
|
|
56
|
+
变量语义、行动效果、知识权限或不可逆承诺改变时,处理受影响的存档/日志或明确其失效。
|
|
57
|
+
修订后重放失败路径与能揭露相邻污染的反例。验证只说明实际覆盖的效果,不证明主观趣味或长期平衡。
|