数学解题思路讲解
3:4 竖屏小学数学讲解模板。一块板子讲完一道题:题面彩色标注、方程 / 条形图 / 线段图 / 表格四选一,红色虚线框随旁白圈选,答案最后落进图形里。
· Markdown
直接这样说
- 用 math-principles-expl 讲一道四年级平均数的题,题目我贴给你
- 做一条鸡兔同笼的解题视频,用表格列举法讲
什么时候选它
一道题讲到底的知识类短视频:小学奥数、平均数、和差倍、鸡兔同笼、列表枚举、公式推导。画面上只有数学,节奏靠三件事推进:元素逐个出现、红框在元素之间跳动圈选、答案最后落进图形内部。
规格
| 项 | 值 |
|---|---|
| 画幅 | 固定 3:4(竖屏,1080×1440) |
| 时长 | 15–180 秒 |
| 内容语言 | 中文 |
| 场景结构 | 单场景为主,整片就是一块板子;零转场、零镜头运动 |
| 旁白 | 需要(音频),每句旁白对应板面上的一个动作 |
| 字幕 | 默认开,板面自动上移 6% 给字幕条让位 |
主题变体 5 套(meta.templateVariant):greenboard 教室绿板(新内容推荐)、blackboard 黑板深色、chalk 粉笔怀旧、ink 白纸墨线、kraft 牛皮纸练习册。
参考片没有独立开场和片尾。opening / ending 场景可用,但渲染与讲解场景相同;opening 不要超过 3 秒。
版面
- 标题:给了年级就渲染成黄字白描边的「四年级《平均数》」;只给 title 则是「· 整体思维 ·」这种解题思路名的形态。
- 题面:
statement.lines,行内标记给关键词上色、加胶囊。写的是角色不是颜色,换主题时配色自动跟着变。 - 讲解主体:
figure四选一——equation 符号方程(△□○ 与推导行)、bar-chart 条形图、tape-diagram 线段图、table 表格。 - 讲解节奏:
steps与旁白逐句对应,每一步可以揭示元素、画红框、变色强调、把答案填进图形。
关键参数
所有参数都在讲解场景的 customPayload 里。
| 参数 | 位置 | 类型 / 取值 | 默认 | 说明 |
|---|---|---|---|---|
grade | customPayload.grade | 字符串,如 四年级 | — | 给了它标题切换成大字描边形态,titleDots 自动关 |
title | customPayload.title | 字符串(建议 ≤ 8 字) | — | 有 grade 时写知识点,没有时写解题思路名 |
titleBracket | customPayload.titleBracket | 《》 / 〈〉 / none | 《》 | 知识点两侧符号,只在给了 grade 时生效 |
titleDots | customPayload.titleDots | 布尔 | true(有 grade 时 false) | 标题两侧装饰点 |
statement.lines | customPayload.statement | 字符串数组(建议 ≤ 3 行) | — | 题面。{文本|role} 彩色字、[[文本|role]] 胶囊、**文本** 加粗,字面花括号写 \{ \} |
| role | 题面标记与 colorRole | given / total / groupA / groupB / focus / unknown / plain | — | 题面和图形共用同一套角色,颜色才对得上 |
statement.fontSize / align | customPayload.statement | 数字 / center、left | 52 / center | 题干长时调小字号 |
problemType | customPayload.problemType | average / statistics-compare → 条形图;sum-diff / multiple / fraction-part / ratio → 线段图;enumerate / pattern / chicken-rabbit-list → 表格;symbol-equation / assume / work-rate → 方程 | — | 不确定用哪种图就写题型,系统自动挑。写了 figure.type 时被忽略 |
figure.type | customPayload.figure | equation / bar-chart / tape-diagram / table | 按题型推断,兜底 equation | 讲解主体。数据平铺在 type 旁边,不要再套一层 data |
figure.bars | customPayload.figure(bar-chart) | {id, label, value, display?, colorRole?, answer?} 数组 | — | 柱子,建议 ≤ 6 根 |
figure.baseline | customPayload.figure(bar-chart) | {id, value, label?, colorRole?} | — | 基准线(平均数题眼),必须在某一步 reveal 才会画 |
figure.unit / axisMin / axisMax | customPayload.figure(bar-chart) | 字符串 / 数字或 auto / 数字 | — / auto / 自动 | 数值后缀;极差小时自动抬高基线并画断轴符号 |
figure.rows | customPayload.figure(tape-diagram / table) | 线段图 {id, label?, segments};表格 {id, cells, answer?} | — | 两种图共用这个键,字段不同。线段图建议 ≤ 5 行,表格 ≤ 8 行 |
figure.columns | customPayload.figure(table) | {id, label, colorRole?, width?} 数组 | — | 表头 |
figure.symbols / board.rows | customPayload.figure / customPayload.board | 形状 triangle / square / circle / diamond / pentagon / hexagon / star;方程行 {id, lhs, rhs, relation?, derived?} | — | 方程题的未知量(建议 ≤ 5 个)与方程行(建议 ≤ 8 行)。方程行写在 board.rows,推导行 derived: true 结果用焦点红 |
steps[].reveal | customPayload.steps | id 数组 | — | 本步新出现的元素 |
steps[].highlights | customPayload.steps | [{ids, part?, color?}],part: all / lhs / rhs / label / value | all | 红色虚线框。[] = 清框,不写 = 沿用上一步的框。可以同时框题面和图形 |
steps[].solve | customPayload.steps | id 数组 | — | 把答案填进形状 / 柱身 / 线段 / 表格行 |
steps[].emphasize | customPayload.steps | id 数组 | — | 结果数字变焦点红 |
steps[].revealResult | customPayload.steps | 行 id 数组 | — | 推迟推导行的「= 结果」,防止答案比旁白先出现 |
steps[].atSec | customPayload.steps | 秒 | 自动对齐第 i 句旁白 | 一般不用写,只有「一句话里分两次揭示」时才写 |
initial | customPayload.initial | revealedRows / solved / revealAll | — | 拆成多场景时必填,列出上一场景末尾已在屏上的状态 |
figure.layout | customPayload.figure.layout | equation: centerY(0.2–0.85,默认 0.56) / symbolSize(78) / fontSize(68) / rowGap(62) / tokenGap(20);bar-chart: chartHeight(600) / barWidth(190) / barGap(150);tape-diagram: barHeight(118) / totalWidth(980);table: rowHeight(88) / cellPadX(28) | 见左 | 版式微调,一般不用动,内容超出安全区会自动等比缩小 |
background.preset | customPayload.background | board / solid / gradient / image / video / noise / none | board | 配 assetRef / videoAssetRef 可铺图片或视频底 |
showSubtitles | customPayload.showSubtitles | 布尔 | true | 要 1:1 复刻参考片(无字幕)时设 false |
coverHook | customPayload.coverHook | 字符串 | 回落 title | 封面金句 |
题面元素的 id:整行是 stmt-0 / stmt-1…,给某段起名({89 分|groupA#boy})后是 stmt-1#boy。表格可以按列(c3)和单元格(r2c3)引用。
什么时候别选它
- 不是一道具体的题,而是讲一门课的概念 → 黑板粉笔,有 26 种版式和章节页眉。
- 要 16:9 横屏或 9:16 全屏竖屏 → 本模板固定 3:4。横屏走 知识看板。
- 题目要十几行推导、好几张图 → 超出上限会被缩到看不清,拆多场景又要维护
initial,考虑是否真的适合一条短视频。
常见坑
- steps 条数 ≠ 旁白句数。第 i 步对齐第 i 句,句数按句末标点(。!?;)数。不等时校验只打一条 warning,成片照样渲出来、退出码 0,错位只有人眼看得见。注意对齐的是句,不是字幕段——长句会被切成多段字幕。
- 首帧是空板。首帧就是信息流封面,空帧像加载失败。第 1 步就要把讲解主体的主要元素 reveal 出来。
- 答案先于旁白出现。推导行整行揭示时结果会一起出现,旁白要过几句才讲到时用
revealResult推迟。 - bar-chart 的 baseline 没有 reveal。不 reveal 就整片不画。
- figure 数据套了一层
data。bars / rows / columns / symbols 要平铺在type旁边。 - 题面写颜色而不是角色,或
given写成彩字。given在深色主题上和正文几乎同色,题目给的条件请写成胶囊[[…|given]]。 - 字面花括号没转义。会被当成标记吞掉。
- 给了 16:9 或 9:16。只支持 3:4。
- 拆多场景忘了
initial。每切一次场景板子就重新淡入一遍;同时要把转场设为 none。 - 沿用默认语速估时长。估算器按参考片 4.7 字/秒标定,不等于 TTS 语速,换音色要先实测。
下一步
- 脚本生成(gen-script) — 输入一个主题,产出结构化的视频 DSL:分几个场景、每个场景讲什么、要哪些素材。这是整条流水线的第一步,出稿后会停下来等你确认。
- 配音(gen-voice) — 文字转语音(Minimax)。返回可直接播放的音频 URL,JSON 输出时附带音频时长和字幕时间轴,不需要下载。
- 黑板粉笔 — 16:9 横屏黑板课程模板。木框 + 墨绿板面 + 粉笔字,版式与知识看板完全同名,多了课程名页眉、章节号和标题两色分词,适合成系列的课程讲解。
- 知识看板 — 16:9 横屏概念讲解模板。26 种内置幻灯片版式、7 种背景预设,卡片随旁白逐项点亮,适合科普、白板风格的讲解。