数学解题思路讲解

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 秒。

版面

  1. 标题:给了年级就渲染成黄字白描边的「四年级《平均数》」;只给 title 则是「· 整体思维 ·」这种解题思路名的形态。
  2. 题面:statement.lines,行内标记给关键词上色、加胶囊。写的是角色不是颜色,换主题时配色自动跟着变。
  3. 讲解主体:figure 四选一——equation 符号方程(△□○ 与推导行)、bar-chart 条形图、tape-diagram 线段图、table 表格。
  4. 讲解节奏:steps 与旁白逐句对应,每一步可以揭示元素、画红框、变色强调、把答案填进图形。

关键参数

所有参数都在讲解场景的 customPayload 里。

参数位置类型 / 取值默认说明
gradecustomPayload.grade字符串,如 四年级—给了它标题切换成大字描边形态,titleDots 自动关
titlecustomPayload.title字符串(建议 ≤ 8 字)—有 grade 时写知识点,没有时写解题思路名
titleBracketcustomPayload.titleBracket《》 / 〈〉 / none《》知识点两侧符号,只在给了 grade 时生效
titleDotscustomPayload.titleDots布尔true(有 grade 时 false)标题两侧装饰点
statement.linescustomPayload.statement字符串数组(建议 ≤ 3 行)—题面。{文本|role} 彩色字、[[文本|role]] 胶囊、**文本** 加粗,字面花括号写 \{ \}
role题面标记与 colorRolegiven / total / groupA / groupB / focus / unknown / plain—题面和图形共用同一套角色,颜色才对得上
statement.fontSize / aligncustomPayload.statement数字 / center、left52 / center题干长时调小字号
problemTypecustomPayload.problemTypeaverage / statistics-compare → 条形图;sum-diff / multiple / fraction-part / ratio → 线段图;enumerate / pattern / chicken-rabbit-list → 表格;symbol-equation / assume / work-rate → 方程—不确定用哪种图就写题型,系统自动挑。写了 figure.type 时被忽略
figure.typecustomPayload.figureequation / bar-chart / tape-diagram / table按题型推断,兜底 equation讲解主体。数据平铺在 type 旁边,不要再套一层 data
figure.barscustomPayload.figure(bar-chart){id, label, value, display?, colorRole?, answer?} 数组—柱子,建议 ≤ 6 根
figure.baselinecustomPayload.figure(bar-chart){id, value, label?, colorRole?}—基准线(平均数题眼),必须在某一步 reveal 才会画
figure.unit / axisMin / axisMaxcustomPayload.figure(bar-chart)字符串 / 数字或 auto / 数字— / auto / 自动数值后缀;极差小时自动抬高基线并画断轴符号
figure.rowscustomPayload.figure(tape-diagram / table)线段图 {id, label?, segments};表格 {id, cells, answer?}—两种图共用这个键,字段不同。线段图建议 ≤ 5 行,表格 ≤ 8 行
figure.columnscustomPayload.figure(table){id, label, colorRole?, width?} 数组—表头
figure.symbols / board.rowscustomPayload.figure / customPayload.board形状 triangle / square / circle / diamond / pentagon / hexagon / star;方程行 {id, lhs, rhs, relation?, derived?}—方程题的未知量(建议 ≤ 5 个)与方程行(建议 ≤ 8 行)。方程行写在 board.rows,推导行 derived: true 结果用焦点红
steps[].revealcustomPayload.stepsid 数组—本步新出现的元素
steps[].highlightscustomPayload.steps[{ids, part?, color?}],part: all / lhs / rhs / label / valueall红色虚线框。[] = 清框,不写 = 沿用上一步的框。可以同时框题面和图形
steps[].solvecustomPayload.stepsid 数组—把答案填进形状 / 柱身 / 线段 / 表格行
steps[].emphasizecustomPayload.stepsid 数组—结果数字变焦点红
steps[].revealResultcustomPayload.steps行 id 数组—推迟推导行的「= 结果」,防止答案比旁白先出现
steps[].atSeccustomPayload.steps秒自动对齐第 i 句旁白一般不用写,只有「一句话里分两次揭示」时才写
initialcustomPayload.initialrevealedRows / solved / revealAll—拆成多场景时必填,列出上一场景末尾已在屏上的状态
figure.layoutcustomPayload.figure.layoutequation: 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.presetcustomPayload.backgroundboard / solid / gradient / image / video / noise / noneboard配 assetRef / videoAssetRef 可铺图片或视频底
showSubtitlescustomPayload.showSubtitles布尔true要 1:1 复刻参考片(无字幕)时设 false
coverHookcustomPayload.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 种背景预设,卡片随旁白逐项点亮,适合科普、白板风格的讲解。