Skip to main content

coco-preproduction

Coco影视前期统筹(顺场表 + 人物包 二合一)。管线 A 顺场表——把剧本按影视工业标准切成「场」,一场一行、场号顺序纯数字,交付带「场景统计」sheet 的 Excel(总场数/总页数/预估总时长、日夜与内外占比、按主场景归组、角色出场),列序固定为 集·场号·日/夜·内/外·主场景·场景·氛围·内容梗概·页数·角色列组(每人一列,表头写全名、格里填单字缩写)·特约·群众·道具·视效·备注。管线 B 人物包——从剧本整理人物体系,出①人物圣经 Word(每人九块字段小传 + 次要人物速查 + 关系总表 + Vogler 八原型矩阵 + 未解扣,并提炼「反派阶梯」「同处境不同答案」两组骨架)②力导向关系网 HTML(零依赖单文件,自写物理引擎自动聚簇,支持拖拽钉住、双击隔离邻域、滚轮缩放、关系类型与阵营双重筛选实时重排、搜索定位、深浅主题)。触发词:顺场表、分场、分场表、场次表、场景表、场号、场次统计、场景统计、梳理场次、排场、统筹表、主场景归组、角色出场、scene breakdown;人物小传、人物关系、人物关系图、关系图谱、关系网、人物图谱、人物圣经、角色小传、人物设定、人物功能、整理人物、character bible。不适用于:镜头级拆分(景别/运镜/镜号,请用分镜表 skill)、拍摄通告单排期、普通数据表格制作。

Zur Installation springen

Quellinformationen

Repository
gujiapeng1991-droid/coco-preproduction
Letzte Quellaktivität
6. September 2026 um 01:26
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
coco-preproduction
slug
coco-preproduction
version
2.0.0
displayName
Coco影视前期统筹
display_name_zh
Coco影视前期统筹
author
user_23e58d64
category
创意设计
license
MIT
homepage
https://github.com/gujiapeng1991-droid/coco-preproduction
agent_created
true
tags
["顺场表","分场","场次统计","人物小传","人物关系","关系网","人物圣经","影视统筹","剧本","Excel","character bible"]
platforms
["macos","windows","linux"]
summary
剧本前期统筹一条龙——两条管线并装。管线 A 顺场表:剧本切「场」,一场一行,出带场景统计的 Excel(角色每人一列,表头全名、格内单字缩写);管线 B 人物包:整理人物体系,出人物圣经 Word + 力导向关系网 HTML。常规链路是 A 做完接 B,顺场表的角色列直接就是人物包的候选名单。
description
Coco影视前期统筹(顺场表 + 人物包 二合一)。管线 A 顺场表——把剧本按影视工业标准切成「场」,一场一行、场号顺序纯数字,交付带「场景统计」sheet 的 Excel(总场数/总页数/预估总时长、日夜与内外占比、按主场景归组、角色出场),列序固定为 集·场号·日/夜·内/外·主场景·场景·氛围·内容梗概·页数·角色列组(每人一列,表头写全名、格里填单字缩写)·特约·群众·道具·视效·备注。管线 B 人物包——从剧本整理人物体系,出①人物圣经 Word(每人九块字段小传 + 次要人物速查 + 关系总表 + Vogler 八原型矩阵 + 未解扣,并提炼「反派阶梯」「同处境不同答案」两组骨架)②力导向关系网 HTML(零依赖单文件,自写物理引擎自动聚簇,支持拖拽钉住、双击隔离邻域、滚轮缩放、关系类型与阵营双重筛选实时重排、搜索定位、深浅主题)。触发词:顺场表、分场、分场表、场次表、场景表、场号、场次统计、场景统计、梳理场次、排场、统筹表、主场景归组、角色出场、scene breakdown;人物小传、人物关系、人物关系图、关系图谱、关系网、人物图谱、人物圣经、角色小传、人物设定、人物功能、整理人物、character bible。不适用于:镜头级拆分(景别/运镜/镜号,请用分镜表 skill)、拍摄通告单排期、普通数据表格制作。
# Coco 影视前期统筹 剧本到开拍前的**两条管线**装在一个包里。两条各自独立,也可以串着跑完。 | 管线 | 干什么 | 产物 | |---|---|---| | **A · 顺场表** | 把剧本切成「场」,一场一行 | `.xlsx`(顺场表 + 场景统计 sheet),可加 `--html` | | **B · 人物包** | 把人物体系从剧本里抠出来 | 人物圣经 `.docx` + 关系网 `.html` | > **常规链路:A → B → 交付。** 顺场表的角色列就是人物包的候选名单,别重新读一遍剧本。 ## 先路由,别一上来全读 按用户要什么进对应章节,**另一条管线的 references 不用读**: | 用户说 | 走哪条 | |---|---| | 分场 / 顺场表 / 场次统计 / 主场景归组 / 演员档期 | **管线 A** | | 人物小传 / 人物关系 / 关系图 / 人物圣经 / 整理人物 | **管线 B** | | 「统筹一套」「前期全出」「剧本拆一套」 | A → B 全跑,**三样分册交付** | | 镜头 / 景别 / 运镜 / 怎么拍 | ❌ 不归本 skill,转分镜表 skill | --- # 管线 A · 顺场表 ## 核心规则 **一场 = 同一时间 + 同一空间 + 同一组人 的连续戏。** 剧本的场景标题行(`内景·陈默家客厅·夜`)天然就是分场标记。 一场之内变了下面任一项,**直接开新场号**(不用 1A/1B 后缀):具体位置 / 氛围转折 / 时间档 / 内外 / 叙事主体切走 / 中间插了别的戏。 只是镜头切了(正反打)、人物进出、对白段落多 —— **不另起场**,那是分镜的事。 编号 `1 2 3 4 …` 顺序纯数字,不跳号不重复不带字母。楔子/序幕/尾声并入顺序编号。 **主场景** `mainset` = 大景(统筹归组用,**值由脚本从场景列自动解析,不用手写**); **场景** `set` 写 `大景-具体位置`。列序上主场景排在场景之前。 **角色每人一列**:表头写**全名**,格里填**单字缩写**(不是 ✓)。全名从 `meta.角色缩写` 对照表自动解析。 特约/群众走 `extra`/`mass` 列,**不占角色列**——角色列只放主要演员,不然表会太宽。 ## 三步流程 > 拿到需求**先问再做**。用户赶时间说「直接做」才跳过提问,用合理默认值。 **Step 1 · 问类型与输入** 1. 剧集(多一个 `ep` 集列)还是影片(去掉 `ep`) 2. 完整剧本 → 照场景标题行切;只有梗概 → 按三要素推断分场并标注「推断」 **Step 2 · 分场** — 读 `references/scene-rules.md`,按三要素切场、顺序编号。 每场检查「内容梗概」有没有塞进两个位置或两种氛围,有就拆。场景统一 `大景-具体位置` 两层写法。 **Step 3 · 填列与产出** - **AI 填**:集、场号、日/夜、内/外、场景、氛围、内容梗概、页数 - **角色**:顶层 `roles` 声明全部角色 + 行内 `roles` 标该场出场者;缩写对照写 `meta.角色缩写` - **主场景**:脚本自动补,把 `mainset` 写进 `columns`(排 `set` 之前)可固定列序 - **角色列组固定排在「页数」之后**——`columns` 里 `cast` 的位置不影响最终列序,`cast` 只是占位 - **AI 合理推断** `vfx`/`extra`/`mass`/`props`(剧本明写直接填;没写按场景推断,如街市→群众、武打/雨雪→视效;实在没有留空不硬编) - **`note` 备注一列永远留空**给用户手填 ## 页数口径与分册(多集项目) 别凭感觉填页数。**先量每集剧本页数,按权重摊到各场**: 1. PDF 直接读页数(扣封面/标题页) 2. DOCX / 无页数的:转纯文本,用已知页数的集反推「正文字符/页」密度再折算。中文剧本正文约 **700–800 字/页** 3. 每场打权重 `w`(1 过场 / 2 标准 / 3 较长 / 4 重场戏),`页数 = 集总页数 × w / Σw`, 四舍五入到 0.1 页、最小 0.1,末行吃尾差 —— 这样每集总页数一定对得上原剧本 **分册交付**:除「全季总表」外,**再按集各出一份 xlsx**。用同一份 `data.json` 按 `ep` 过滤各跑一次, 单集表的 `meta.页数口径` 改成该集自己的总页数。 **剧本是 PDF/DOCX 时先转 txt 再分场**,别在 PDF 里硬看: ```bash # PDF -> txt(扫描件才需要 OCR) python -c "from pypdf import PdfReader; print('\n'.join((p.extract_text() or '') for p in PdfReader('in.pdf').pages))" > ep01.txt # DOCX -> txt(段落 + 表格都要取) python -c "import docx; d=docx.Document('in.docx'); print('\n'.join([p.text for p in d.paragraphs]+[c.text for t in d.tables for r in t.rows for c in r.cells]))" > ep04.txt ``` PDF 转出的文本会**夹杂孤立页码行**(单独一行的数字)——那是 PDF 页码不是场号,分场时忽略。 ## 产出命令 ```bash python ~/.workbuddy/skills/coco-preproduction/scripts/scene/make_scene_breakdown.py \ data.json -o 顺场表.xlsx [--html] ``` - 本机可用 managed python(已含 openpyxl),或任何装了 openpyxl 的 Python 3.9+ - 脚本在 openpyxl 缺失时自动安装;支持 CSV 输入与 stdin(`-` 代替路径) ## 输入格式(JSON) ```json { "title": "《雨夜来客》顺场表", "meta": { "集次": "S01E03", "编剧": "佚名", "版本": "v1", "页数口径": "0.1页粒度,1页≈1分钟", "角色缩写": "陈=陈默(男主) / 林=林晚(女主) / 周=老周" }, "roles": ["陈", "林", "周"], "columns": ["ep","scene","daynight","inout","mainset","set","mood","synopsis","pages","cast","extra","mass","props","vfx","note"], "rows": [ {"ep":"3","scene":"1","daynight":"夜","inout":"内","set":"陈默家-客厅", "mood":"温馨","synopsis":"陈默冒雨回家,林晚已等了三个小时,桌上饭菜凉透。", "roles":["陈","林"],"pages":0.5,"extra":"","mass":"","props":"凉掉的饭菜、湿雨衣","vfx":"","note":""} ] } ``` - `columns` 用字段 key,脚本自动映射中文表头;想调列序改这串字段名即可,不用动脚本 - 顶层 `roles` 声明全部角色;行内 `roles` 数组标该场出场者,也兼容 `"陈/林"` 字符串 - **表头全名 / 格内单字缩写**:全名从 `meta.角色缩写` 自动解析(`陈=陈默(男主)` → 表头「陈默」、格内「陈」), 不用另建名单;也可直接在 `roles` 里写 `["陈=陈默","林=林晚"]` - 影片类去掉 `ep`;不提供 `roles` 时「出场人物」保持单行文本 ## 两个 sheet **Sheet 1「顺场表」**:一场一行,**集列不合并**(每行都显示,筛选时不丢)。日夜/内外配色, 主场景列浅蓝加粗,氛围列浅紫,角色列加粗蓝字,隔行底色,冻结表头,表头筛选, A4 横版按宽缩放打印,末行「合计 · N 场」。 **Sheet 2「场景统计」**(自动生成): | 区块 | 用途 | |---|---| | 一、总览 | 总场数 / 总页数 / **预估总时长**(1 页 ≈ 1 分钟)/ 平均单场页数 | | 二、日·夜分布 | **夜戏占比**——决定周期与预算 | | 三、内·外分布 | **外景占比**——天气风险 | | 四、按主场景归组 | 页数降序带占比,页数最多的就是主景,统筹照这个排拍摄日 | | 五、角色出场 | 场数降序带页数,**演员档期直接看这个** | ## 交付前自检 1. **场号连续**:`1 2 3…` 无跳号无重复,纯数字无字母后缀 2. **该拆的拆了**:同一行塞了两个位置/两种氛围 = 漏拆 3. **关键字段非空**:场号、日夜、内外、场景、氛围、梗概、页数(备注除外) 4. **页数口径统一**:同一项目只用一种写法(推荐 0.1 页小数),别混用 1/8 分数与小数 5. **统计对得上**:总场数 = 数据行数;合计页数 = 统计 sheet 总页数;角色出场场数之和 ≥ 总场数 6. **主场景归组正确**:同景不同位置(`医院-走廊`/`医院-3楼病房`)要归一组,多组说明写法不一致或有别名 7. **梗概是场级的**:写「这场发生了什么」,出现景别/运镜就是串台 8. **角色列校验**:每场至少一个缩写(纯空镜除外);`meta.角色缩写` 写了对照表;主要演员别漏、特约群众别混进来 9. **多集并行**:各集场号格式一致、角色缩写一致(别一集「陈」一集「陈默」) --- # 管线 B · 人物包 ## 四步流程 **Step 1 · 拉名单(先分层,别一锅端)** - **主要人物**(10–15 人):有弧线、有前史、占戏份 → 写完整小传 - **次要 / 功能人物**(15–20 人):推动某一段、提供信息或设置障碍 → 只进速查表 - **背景人物**:不进文档 名单定了**先跟用户确认一遍**再往下写,别闷头写 30 个人。 **Step 2 · 写人物圣经(Markdown)** 按 `references/character-bible-structure.md` 的六章结构写。**先写 md,再转 docx。** 每人一块,固定九个字段: ``` 身份定位 → 外貌与标志性符号 → 性格内核 → 前史 → 本季弧线(逐集) → 核心戏剧功能(Vogler 原型)→ 与其他人的关系清单 → 台词风格 → 给演员/导演的提示 ``` **最关键的一步是提炼骨架,不是堆人。** 至少要找出两组对照结构: 1. **反派阶梯** —— 主角一路打穿的东西必须逐级变大(私仇/一个人 → 共谋/身边人 → 规则/一个机构 → 制度/整张网) 2. **同一处境的不同答案** —— 相似起点的人做了不同选择,各有各的下场 找不到就说明没读懂,回去重看剧本,**不要硬编**。 **Step 3 · 生成关系网** ```bash python3 ~/.workbuddy/skills/coco-preproduction/scripts/character/force_graph.py \ characters.json -o "《剧名》人物关系网.html" ``` 脚本会自检(id 重复 / 关系指向不存在的人 / 自环 / 阵营或类型未定义 / 孤立节点)再输出, 有问题直接报错退出,不会给你一个白屏的网页。 **Step 4 · 转 Word 并交付** ```bash python3 ~/.workbuddy/skills/coco-preproduction/scripts/character/md2docx.py \ "《剧名》人物圣经.md" -o "《剧名》人物圣经.docx" ``` ## 关系网 JSON 结构 最小可跑(完整规模示例见 `examples/character/character_sample_full.json`): ```json { "factions": [{"id":"hou","name":"江氏旧宅"}], "nodes": [ {"id":"si","name":"阿萤","sub":"方四 · 沈萤","ring":0,"fac":"hou","desc":"小传…"} ], "edges": [ {"a":"si","b":"hqc","t":"blood","label":"父女","note":"给字「籽安」"} ] } ``` | 字段 | 必填 | 说明 | |---|---|---| | `nodes[].id` | ✓ | 唯一英文短码,关系里引用它 | | `nodes[].name` | ✓ | 显示的名字 | | `nodes[].sub` | | 名字下第二行小字(身份/称号) | | `nodes[].ring` | ✓ | 0=主角(最大最亮带光晕)1/2/3 依次缩小;决定默认半径与字号 | | `nodes[].fac` | ✓ | 阵营 id,必须在 factions 里存在 | | `nodes[].desc` | | 侧栏小传,一句话到一段都行 | | `nodes[].r` / `fs` | | 手动覆盖半径与字号 | | `edges[].a/b` | ✓ | 两端人物 id(无向,顺序不影响) | | `edges[].t` | ✓ | 关系类型 id | | `edges[].label` | | 连线上的关系名(悬停时出现) | | `edges[].note` | | 补充说明,进侧栏 | **同一对人物的多重关系直接写两条**(既是「仇杀」又是「控制」),生成器会自动左右对称弯开。 **关系类型**不写则用默认 5 类(血亲/情感/同盟/仇杀/控制),含各自配色、线型与弹簧参数。 自定义就给 `types` 数组: ```json {"id":"foe","name":"仇杀 / 对抗","L":158,"k":0.038,"dash":true,"strong":false,"soft":false} ``` - `L` 弹簧自然长度(px)——越小两人越贴。情感 104 最紧,控制 172 最松 - `k` 弹性系数 · `dash` 虚线(高亮时会流动)· `strong` 加粗主线 · `soft` 半透明 阵营配色自动分配(内置 8 组,深浅主题各一套)。超过 8 个阵营循环复用, 指定颜色就在 JSON 里给 `palette`(数组三项 = `[填充, 描边, 文字]`): ```json "palette": {"hou": {"dark":["#3a2e17","#D9A441","#F2DCA6"], "light":["#FDF3DC","#D9A441","#7A5A16"]}} ``` ## 关系网能玩什么 | 操作 | 效果 | |---|---| | 拖拽节点 | 甩出去,全网重新找平衡;松手钉住(📌),双击解钉 | | 滚轮 / 空白拖动 | 以光标为中心缩放 / 平移 | | 悬停人物 | 只留他和他的关系,其余淡出,**连线浮出关系名**,虚线边流动 | | 双击人物 | 隔离模式——只留一阶邻域并自动放大居中;双击空白退出 | | 底部类型开关 | 关掉一类,剩下的网**当场重排** | | 阵营标签 | 点一下隐藏该阵营,网络跟着收拢 | | 搜索框 | 输入定位并镜头飞过去 | | ☀︎/☾ | 深浅主题切换(默认深色) | ## 交付前自检 **人物圣经** - [ ] 主要人物每人九块字段齐全,没有空着的小传 - [ ] 至少提炼出两组对照结构(反派阶梯 / 活法答案),不是平铺名单 - [ ] 关系总表与关系网里的边**数量对得上** - [ ] 剧本里的坑(生死未卜、身份成谜)单列成「未解扣」,不在小传里含糊过去 - [ ] docx 打开后标题层级、表格、引用块正常 **关系网** - [ ] 用浏览器真跑一遍:无 console 报错 - [ ] 节点标签零重叠(脚本拦不住这个,必须人眼或断言确认) - [ ] 切几次关系类型开关,重排后仍零重叠、不溢出可视区 - [ ] 点一遍每个主要人物,侧栏小传和关系列表都对得上 --- # A → B 交接:别重新读剧本 顺场表跑完,用户说「整理人物 / 拟小传 / 做个关系图 / 人物功能」,直接进管线 B, **从顺场表捞现成的**: | 顺场表里的东西 | 管线 B 怎么用 | |---|---| | 角色列(每人一列缩写) | 直接是**主要人物候选名单**,挑出场 ≥3 场的进小传 | | 五、角色出场(场数带页数) | 判断谁该进第一章完整小传、谁只配进速查表 | | 特约 / 群众列 | 功能人物的来源,进速查表 | | 主场景归组 | 反推阵营:长期出现在同一主场景群的人物多半同阵营 | | 内容梗概 | 逐集弧线的素材,不用重读剧本 | **交付顺序**:顺场表(分册 xlsx)→ 人物圣经(docx)→ 关系网(html)。 **三样各自独立成文件,不要合并**——合并版和压缩包在预览里读不了内容。 --- # 🔴 隐私红线(示例与文档一律不得含真实项目内容) 真实剧本是未公开资产。**写示例、写 reference、写注释时,一律用虚构剧本, 不许直接抄真实项目的人物名、地名、机构名、剧情。** - ✅ 可以:虚构人物(阿萤 / 沈砚 / 裴决)、虚构地名(黑风寨 / 醉花楼) - ❌ 不行:真实剧名、真实角色名、真实机构名、真实剧情梗概、真实主创信息 - 发现文档或示例里混进真实内容 → **立刻脱敏替换**,改完全局搜一遍确认无残留 - 交付给用户的**小样 / 演示件**同样用虚构剧本,不要用正在做的真实项目出样 本 skill 的示例全部基于虚构剧本《霜刃行》,仅结构(人数 / 关系数 / 阵营数 / 层级) 参照真实长篇项目的典型规模,内容无一是真的。 --- # 注意事项 - 不臆造剧本没给的内容。人物 `desc` 是从剧本读出来的,找不到就写「剧本未交代」—— 小传一旦掺假,后面选角、写续季全跟着歪。 - 页数是估算(1 页 ≈ 1 分钟为经验值),正式拍摄以现场为准。 - 顺场表**不做拍摄顺序重排**——那是通告单的活,本表场次顺序 = 剧本顺序。 - 关系网的物理参数在 `scripts/character/template.html`,调参方法写在 `references/web-design.md`, **改之前先看那份**,别乱调数字。 - 需要额外列(服装/化妆/置景/音乐)在 `columns` 里追加; 想用中文表头和列宽,先在脚本的 `FIELD_CN` / `WIDTHS` 补映射。 - 腾讯文档本地编辑器会把打开的 docx **另存到 `~/Downloads`** 并在原位留 `.~` 锁文件。 发现 docx 从项目目录消失了,先去 `~/Downloads` 找,别以为丢了。 # 资源 **脚本** - `scripts/scene/make_scene_breakdown.py` — JSON/CSV → 顺场表 .xlsx(补主场景列 + 场景统计 sheet) - `scripts/character/force_graph.py` — 关系网生成器(含自检) - `scripts/character/template.html` — 力导向引擎模板(改交互/物理动这里) - `scripts/character/md2docx.py` — Markdown → Word **参考** - `references/scene-rules.md` — 分场判据、换什么就另起一场、主场景两层写法、氛围词库、时间档 - `references/scene-breakdown-schema.md` — 标准列定义、角色列规范、统计口径、示例数据 - `references/character-bible-structure.md` — 人物圣经六章结构 + 小传字段 + Vogler 原型对照表 - `references/web-design.md` — 关系网设计规范与调参说明 **示例** - `examples/scene/sample_episode.json`(20 场 / 6 角色完整样例)、`sample_min.json`(3 场最小样例)、成品 xlsx/html - `examples/character/character_sample.json`(8 人 / 11 关系 / 5 阵营最小示例)
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen