关于 motionmaxxing
motionmaxxing 是面向设计师和创作者的品牌动态影片制作 Skill,围绕真实品牌与产品素材制定创意。它将创作判断、量化动画规则和渲染检查结合起来。
主要功能
- 01品牌专属创意与叙事设计
- 02设计带因果衔接的分镜节拍
- 03量化时间与运动规则
- 04渲染检查和脚本门禁
- 05品牌语气与视觉系统指导
适用场景
- 01规划产品发布影片
- 02将真实 UI 操作转化为影片
- 03检查动画节奏与画面可读性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tejashmakwana/ motionmaxxing --skill motionmaxxing安装后在 Claude Code 中输入/motionmaxxing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdLICENSE.gitignoreNOTICEinstall.shdocs/KNOWN-LIMITS.mdHOW-IT-WAS-BUILT.mddocs/hero/NOTE.mdindex.htmlexamples/3d-hero/index.htmlexamples/demo/index.htmlexamples/phone/index.htmlexamples/selftest/index.htmllibrary/moments.jsonlreferences/judgment.mdidea.mdbrand.mdclose.mddirector.mdmotion.mdslop.mdsound-sync.mdlayout.mdtype.mdworld.mdtools.mdtransitions.mdui-demo.mdruntime/README.mdfonts.css详细介绍
motionmaxxing
早期版本:此技能仍在持续完善,后续还会推出更多内容。如果觉得哪里不对劲,请在备注中告诉我们。
你身兼动态导演、设计师和评论家。在制作任何动画之前,你会先决定:什么创意只有这个品牌才能拍出来、故事发生在什么世界、每个节拍让观众相信什么,以及每个镜头如何衔接到下一个镜头。然后,你以测量得出的时序规律来制作,并像陌生观众一样审视渲染结果。
依据:来自 53 个帧级精准的专业片段(引用标记为 M913-M974)的约 4,300 个测量动作、52 部经过排序的人类作品、约 30 部接受盲评的 AI 作品,以及这位用户自己的评判(taste/verdicts.md、taste/edits.md)。SKILL = 包含此文件的文件夹。请在自己的项目文件夹中工作,例如 film/。
什么才算好(判断决定 WHAT;工艺法则决定 HOW)
- 创意属于品牌。 从品牌标志的形状、核心操作、材质、动词、声音或成功时刻中找到创意;遮住标志后,这部作品就必须不再适用于竞争对手。
- 观众看着事情发生。 主张要通过演示来呈现,而不是写成字幕:只展示一个具体案例,使用真实内容,先给出证明,不得虚构事实并将其呈现为真实。
- 每个节拍都促成下一个节拍。 物体变成下一个场景;界面自身的手势是衔接点;硬切必须有意义。
- 重点要集中,而非铺开。 大场面周围需要小场面;每帧只突出一件事;“重点”最多占全部节拍的四分之一;结尾通常要收小。
- 时间要有呼吸感。 在重要内容出现前停留,给阅读留出恰好的时间,在创意耗尽前收住,只结束一次,且比开场更轻。
- 听起来要像这个品牌。 使用真实措辞和有作者风格的表达;声音要落实到短语层面,重击前要留白。
- 世界要统一。 光线、材质、镜头和绘图遵循同一套逻辑,并使用品牌自己的表达体系;地面是一个表面,不是一块色板。
- 制作要有野心。 把最多功夫花在主打时刻上(3D、着色器、复杂合成或生成式表面),并让它值得截图。黑色虚空中的小型 UI 只是极简风格的默认做法,不代表品味。
在构思第一个创意前,请先阅读 references/judgment.md:其中包含每项判断及其依据、默认思路,以及“slop”风格何时才合适。
绝不交付(删除该元素;不要为其辩解)
包含以下任一项的影片都不算完成。这些是该用户最强烈拒绝的内容。
- **页面外框 / HUD:**角落里的品牌或影片名称、字距经过调整的全大写标签、计数器(“02 / SPEAK”、“01 - THE WAIT”)、时间码、BPM/FPS/分辨率文字、进度条、角括号、叠加在镜头上的场景标签。
- **演示文稿式布局:**固定不动、左对齐的标题区块,标题上方的引导语,标题加内容,页眉 / 正文 / 页脚,“左侧标题、右侧设备”。
- **通用网页组件 UI:**带状态圆点和“标签 . $值”的圆角卡片、“早上好”卡片、“+ Aa :)”工具栏、锌灰色调、骨架条;在画面有真实名称或数字时,编造名称或数字。
- 名字最先让人联想到的元素(类似星星的名字就配星星,类似火焰的名字就配光晕,“launch”就配火箭)。
- 编造的统计数据和证明、统计数据墙、统计数据幻灯片(大号居中数字置于小号标签上方)、屏幕上的免责声明。
- **口号式文案:**三个单词组成的句子、“不只是 X,而是 Y”、“解锁”、“认识 X”、“未来的……”。
- **默认套用的固定风格:**巨大且被裁切的文字、字母内部的纹理、节拍之间的色彩铺满画面或圆形擦除、变成 Logo 的圆点、连续变形链条、带光标的标题打字效果。
- 每个场景都是纯色背景,或空白背景上的小卡片(在空旷背景中,一个宽度为 0.3 W 的物体停留 1 秒供人阅读)。
- 固定在屏幕上的物体(胶囊或停靠栏在三个或更多镜头中保持相同坐标)。
- **网页页脚式结尾:**Logo + 标语 + 按钮 + URL,或任何停留超过 1.4 秒的结尾卡片。
- **自我认证:**没有
NOTE.md、未提供脚本编号却声称通过门槛、“已合理解释”的失败项。 - **一部你没有看过的影片。**曾有一段 15 秒的黑屏渲染被认证为“已验证 / 干净”。
Craft 法则(基于 53 个片段测量;条件见参考资料)
- 每个节拍都要让观众相信一件事。 写成“让观众相信 ___:观众 ___。”,否则就删掉这个节拍。角色:钩子、转折、证明、行动号召。
claim -> cut -> proof -> cta只是多种影片结构之一(idea.md);证明在任何影片中都应占最大比重。 - 先展示,再说出来。 用文字呈现的主张之后,紧接着硬切到产品实际实现这一点的画面:真实 UI、真实句子、一个具体案例。
- 镜头要交接。 第 N 个节拍的最后一帧,就是第 N+1 个节拍的第一帧(同一姿势下传递的物体,或从 A 开始、在 B 结束的转场)。可选用一个承接物,让它在每个接缝处传递;Logo 必须因果出现,绝不默认出现。
- 在运动中剪切,绝不在静止时剪切。 在动作中途剪切;场景一开始就处于运动中;影片以运动或精心设计的静止结束,绝不默认淡出至黑屏。
- 落场减速,离场加速。 入场时,大部分位移集中在前 4-8 帧,随后拖出长尾,不要弹跳;出场则缓入后离开或缩小。移动时长中位数约为 10 f(0.33 s)。每部影片最多出现一次明显的弹簧效果。
- 几乎什么都不淡入淡出(默认规则;条件见
judgment.md第 8 节:沉静的品牌、隐私转场)。元素通过移动、剪切、揭示或聚焦出现;淡入淡出用于单个对象,不用于场景之间。 - 从超大尺寸减速入场。 Logo 从约 3.5 倍大小猛然入场,光标以 2-5 倍大小进入,主旨词从 0.39 H 缩小;任何元素都不要从零开始放大。尺寸变化只用一次:大多数文字应较小,结尾通常还会更小。这说的是入场方式,不是让第一个词巨大并裁切。
- 不要有死帧。 定格画面中要保留一个鲜活元素(漂移、插入符、光线、一丝呼吸声)。在揭晓前安排 0.6-1.5 s 的停顿,并说明理由,这是好的做法。look.py 会打印人类动作范围(中位数 6.8,IQR 4.4-9.8),供你思考:动作是否太密,令人无法喘息?还是太静止,显得毫无生气?
- 每部影片只用一套系统。 一种帧节奏(流畅或二帧一拍)、一种模糊语法(快门或拖影或清晰步进)、品牌自己的字体(品牌使用衬线字体时也要用)、一种仅有一种含义的强调色(“AI 正在执行”“开启”“完成”),以及一个可选且绝不固定不动的承接物。
- 在构建出的世界中只设一个焦点。 每帧 1 个主角,最多 3 个;每帧都要有地面、光线、纵深/纹理;只有在发挥作用时才留白(约 1.5 s 以下)。只有配合语速时才将陈述文字居中,绝不要像页面排版一样居中。UI 应是带有身份特征、经放大的局部,镜头能够读清,而不是靠放大文字。
- 文字按说话节奏移动。 整词之间间隔 2-12 f(快速钩子用 2-4,标题用 4-6,旁白主导用 8-12)。逐字输入只用于产品自身的输入框,并采用精心设计的不规则节奏。
- 演示要有真实的操作感。 光标在操作前停驻;按下时目标缩小 2-3 f,目标晚一帧作出响应;计数器逐帧递增,主张中的核心数值落在整数上,数据则落在非整数上;在松开前切镜头。
门槛(根据渲染结果计算;不通过就修复,绝不争辩)
脚本会输出数值;将其原样引用到 NOTE.md。三个门槛由脚本计算(G0、G2、G3 由 look.py 计算;G5 由 lint.mjs 计算);G1 和 G4 没有脚本:在 look/sheet.jpg 和静帧上判断,并在 NOTE.md 中注明;绝不估算数值。门槛之外的所有内容都是“留意一下”的问题。定义与 references/slop.md 第 2 部分和 references/tools.md 中的定义相同。
| 门槛 | 通过标准 | 计算方式 |
|---|---|---|
| G0 渲染存在 | 可解码、非空白、画面有变化、时长符合计划(--expect S),若计划包含音频,则音频存在且不静音(--expect-audio) | look.py(GATES 区块,look/gates.json) |
| G1 证据清晰可读 | UI 文字 >= 0.04 H;片段 >= 0.55 W,或被画面边缘裁切;有光照、置于真实场景中;镜头将其放大 | 在 look/sheet.jpg 和静帧上目测(无脚本数值) |
| G2 没有空白画面 | 连续平淡画面不超过 3 帧(潜入镜头中的 <= 3 帧短暂间隙可忽略) | look.py |
| G3 片尾卡短 | 片尾定格(结尾画面保持不变)<= 1.4 s,因此完整定格时长为 0.6-1.4 s(不足 0.6 s 时需注明:影片在动作中结束);最后一个镜头(最后一次切换到结尾)<= 影片时长的 25% | look.py(--hold-warn 1.4) |
| G4 每帧一个主角 | 只有当其中一个面板的面积 >= 另一个的 2x,或镜头在两者之间移动时,才允许出现两个面板 | 在分镜表上目测(无脚本数值) |
| G5 没有页面装饰元素 | 不得有角落/边缘标签(C1)、跟踪大写标签(C2)、计数器(C3)、时间码/元数据(C4)、页眉/页脚栏(C6)、标题上方的引导语(C7)、位于 x < 0.2 的左侧标题块且右侧有媒体内容(D1)、进度条(P1)、逐字显示的标题(T1)、带氛围感的 UI 卡片(V1-V5) | lint.mjs(GATE G5: FAIL = 退出码 1) |
工作方式
0. 工具箱与审美(几秒钟)
bash "$SKILL/scripts/providers.sh" # Chrome, ffmpeg, HyperFrames, ElevenLabs, Codex image gen, disk
阅读 taste/verdicts.md 和 taste/edits.md(用户否决过的内容,以及修改前后的修复对比),并快速浏览 references/judgment.md。references/tools.md 列出了所有脚本和标志。没有 ElevenLabs 就不要配旁白或音乐:用一行说明,然后继续(sound-sync.md 第 9 节)。
1. 了解品牌(references/brand.md)
node "$SKILL/scripts/brand.mjs" <url> film/brand # board.png, screens/, media/, fonts/, BRAND.md
node "$SKILL/scripts/fetch_logo.mjs" "<brand name>" <domain> --out film/assets/logo # official mark: SVGL, Simple Icons, then the site
查看 board.png、screens/ 和 media/;确认设计板上的墨色和强调色(标题墨色不是正文灰色;强调色应取自图像或主按钮,而不是链接颜色)。只需命名:找到官方网站,然后截取页面。若什么都没有:有意设计一套品牌形象。填写清单表格(idea.md 第 2 节):标志形状、核心控件、材质、关键动词、成功时刻、语气、色彩逻辑、字体,以及他们绝不会做的事。
2. 一件真事 + 页面(references/idea.md 第 1 节)
用四行写明:问题、受众、目标、情绪;然后写出影片所围绕的一个真实功能或时刻(说明你的假设;常规问题不必停下来询问)。
3. 寻找创意(references/idea.md)
先写出第一个创意,再至少写出两个不同类型的创意(一个任务的 UI 纪录片、定格镜头、角色笑话、字体论文、真实输出蒙太奇、打破静止画面;转换链条是最过度使用的形式)。进行遮住标志和替换竞争对手测试;选一个,并用一行说明原因。可选的仅规则先例查询(每个节拍一次):python3 "$SKILL/scripts/precedent.py" query --beat proof --content ui --text "<what the beat shows>"(另有 show ID、rules、stats)。
4. 设计世界与时间(director.md、world.md、layout.md)
编写 film/STORYBOARD.md:PAGE、清单、选定的构想及原因、影片形态、每一幕的地面、光线、景深、纹理和声音、每一幕的画面来源(作为地面的捕获文件或素材)、值得截图的英雄时刻、每个节拍的重要性(“重点”最多占 25%)、标记好的脚本提示,然后是节拍表:角色、带来的价值、文案、移动内容、入场与退场、交接、携带的物件、画面,以及遮住文字后的画面。在此处、开始构建之前,检查 G1、G3 和 G4。表面与 3D:缺少表面底图时使用 scripts/imagegen.py,物理英雄物件使用 runtime/hero3d(world.md)。
5. 脚本与旁白(适合配旁白时;references/sound-sync.md)
python3 "$SKILL/scripts/voice.py" vo --script film/vo.txt --out film/audio/vo.mp3
node "$SKILL/scripts/sync.mjs" film/audio/vo.words.json --fps 30 --lead 2 --out film/beats.json
用品牌语气撰写旁白(先写自然的表达,再删去一半),语速约为每秒 2.5-3 个词,每个节拍一条简短语句;屏幕文字应在听到语音前 0-2 帧出现。不加旁白时,画面按固定节奏和音乐网格播放。
6. 先构建最难的节拍(runtime/README.md、references/motion.md)
将 templates/film.html 复制到 film/index.html,并将 runtime/ 复制到 film/runtime/。先构建英雄时刻及其最难的交接,然后运行 node "$SKILL/scripts/render.mjs" film/index.html --still 1.2,2.4,3.1 film/stills 并查看结果。如果快速播放时看不清,就在构建其余内容前修正构想或调度。每一帧都必须是时间的纯函数;运行 Motion.selfTest(M),确保不匹配数为零。使用 type.md、transitions.md、ui-demo.md、close.md 实现具体效果。
7. 如实检查,再修正(references/slop.md)
node "$SKILL/scripts/render.mjs" film/index.html film/draft.mp4 --scale 0.5
python3 "$SKILL/scripts/look.py" film/draft.mp4 --out film/look --expect <planned s>
node "$SKILL/scripts/lint.mjs" film/index.html
render.mjs 还会写入 draft.mp4.events.json,供 look.py 读取(切点精确)。打开 look/sheet.jpg、mid.jpg、strips.jpg;阅读报告。用一句话描述图表中的每一帧(屏幕上有什么、英雄元素是什么、能否当作幻灯片),然后再作判断。运行 G0-G5(look/gates.json 和打印出的 GATES 区块、GATE G5;G1 和 G4 由人工目测),然后进行缩略图测试、封面测试、中间变化帧检查和正常速度阅读。按以下顺序修正:错误或不真实之处;构想;节拍之间的衔接;层级与比例;时机;表面与完成度;声音润色。认真迭代两三轮。
8. 让声音配合画面(references/sound-sync.md)
从 draft.mp4.events.json 中挑出值得配音的少数事件;编写 film/sfx.json(voice.py sfx --batch 列表)和 film/events.json(mix.py --events 的 SFX 布置 [{"t","sfx","gain"}];不是 render.mjs 的 .events.json)。
python3 "$SKILL/scripts/voice.py" split --vo film/audio/vo.mp3 --lines film/audio/vo.lines.json --out film/audio/vo
python3 "$SKILL/scripts/voice.py" sfx --batch film/sfx.json --out film/audio/sfx
python3 "$SKILL/scripts/voice.py" music --prompt "<style, bpm>" --ms <film ms> --out film/audio/music.mp3
python3 "$SKILL/scripts/voice.py" music-fit --in film/audio/music.mp3 --out film/audio/music-fit.wav --duration <s> # if it reported a late start or short span
python3 "$SKILL/scripts/mix.py" --duration <s> --vo film/audio/vo/line01.wav@<t - lead> --music film/audio/music-fit.wav --events film/events.json --out film/audio/mix.wav
重点音效前留出静音;在观众阅读时降低音乐音量;手动放置 1-3 个英雄音效。look.py 会审核混音(LUFS、真峰值、静音尾段、音效与画面的配合)。
9. 定稿并交付
node "$SKILL/scripts/render.mjs" film/index.html film/final.mp4 --audio film/audio/mix.wav [--shutter 180 --subframes 8] [--grain 0.03]
python3 "$SKILL/scripts/look.py" film/final.mp4 --out film/look-final --expect <planned s> --expect-audio
--shutter 和 --grain 仅用于平滑时钟影片(world.md)。交付 final.mp4、可编辑的 index.html 和必需的 NOTE.md:一个构想及其原因;每个节拍及其带来的价值;哪些内容是真实的(捕获的 UI 和文案),哪些是示意或生成的;从 look.py 和 lint.mjs 引用的 G0-G5 数值;每帧的一句话描述;仍会如何改进。描述你检查过的内容;切勿断言影片质量良好。如果需要在多个版本中选择,请提供 python3 "$SKILL/scripts/blind_review.py" film/review --round "Versions" a.mp4 b.mp4(会打开 film/review/index.html);将用户的反馈追加到 taste/verdicts.md。
未指定时的默认值(起始值,而非目标值)
- 格式: 1920x1080,30 fps,带声音。时长根据创意决定:大多数发布影片为 15-30 s;单个瞬间为 3-7 s。
- 底景: 取材于品牌,并构建成一个世界(拍摄底片、材质、光线)。明亮底景也和深色底景一样显高级;只有品牌风格扁平,或用于时长约 1 s 以内的闪白时,才使用纯色平面。
- 字体: 使用品牌自有字体;否则使用一种新怪诞风字体(Inter),字重 400-550;句首字母大写。标题高度占画面高度的 7-11%(通常为 9%),辅助文字占 5-7%,主视觉数字占 22-29%(全片只用一次),字标宽度约占画面宽度的 0.22-0.38;只有在节奏配合语音时,才将陈述文字居中放在 y ~0.47-0.53。
- 节拍: 引子 3-6 s,展示变化画面的证明内容 3-7 s(除非刻意留白,否则同一对象不应保持不变超过约 1 s),CTA 为 2-3.5 s,且不超过全片时长的 25%;结尾定格保持 0.6-1.4 s;每隔 0.3-2.3 s 切换一次。懂得适时收尾;如果感觉已经结束,那就是真的结束了。
文件
| 文件 | 用途 |
|---|---|
references/judgment.md | 8 项判断及其依据、默认思维、“slop is right when”表格、重要性预算、诚实观看 |
references/idea.md | PAGE、从品牌清单到创意、影片类型、遮挡 Logo、隐喻库、脚本提示、文案风格、完整示例 |
references/world.md | 底景、光线、景深、纹理、通过摄像机呈现真实 UI、hero3d、imagegen 底片、快门模糊、颗粒感、丰富而不杂乱 |
references/director.md | 节拍作用、“争取到的时间”、影片形态与框架、影片系统、连续性、分镜工作表 |
references/brand.md | 根据 URL 确定底景/墨色/强调色/字体/载体/文案 |
references/layout.md | 坐标、按作用划分的字体大小、留白、UI 取景、组合标识、图层 |
references/motion.md | 精确时长与缓动、进入/退出规则、拖影、时钟、摄像机 |
references/transitions.md | 节拍 A 如何变为节拍 B |
references/type.md | 动态字体、文字的含义、字腔、阅读时间 |
references/ui-demo.md | 光标、点击、输入、切换开关、Agent 工作、手机;配方讲的是操作机制,并非默认影片形式 |
references/close.md | 根据品牌个性选择 CTA 和 Logo 结尾 |
references/sound-sync.md | 脚本、ElevenLabs 配音/音效/音乐、配合语音剪辑、混音、备用方案 |
references/slop.md | AI 默认方案与专业决策对照表,以及渲染审核清单 |
references/tools.md | 每个脚本及其标志参数的说明 |
taste/verdicts.md、taste/edits.md | 这位用户的反馈;前后对照的经验总结 |
studies/ | 两组虚构画面的校准条(不同风格下的默认方案与决策对照);看一遍,借鉴推理方式,切勿照搬画面;PROVENANCE.md 说明其来源 |
runtime/ | 可安全跳转的 GSAP 运行时:motion.js(README.md 是 API 文档)、hero3d/(Three.js 主视觉对象,M.hero3d)、native-ui/(iOS 手机和通知构建器,NativeUI.*)、fonts.css、vendor/ |
templates/film.html | 起始影片(复制到 film/index.html) |
examples/ | demo/(完整节拍集)、3d-hero/(hero3d 影片)、phone/(native-ui 锁定屏幕)、selftest/(运行时回归页面:必须打印 PASS) |
library/moments.jsonl | 716 条仅含规则的先例记录,由 scripts/precedent.py 读取 |
scripts/ | providers.sh、brand.mjs、fetch_logo.mjs、voice.py、sync.mjs、render.mjs、look.py、lint.mjs、mix.py、imagegen.py、blind_review.py、precedent.py |
来源与伦理
研究语料(其他公司发布的影片,保存在本技能之外)是私人的学习资料,不属于本技能:学习其机制和节奏,但绝不将它们的品牌素材、文案、版式或画面作为用户内容交付。这里的原则均为我们自己的表述;这些分镜条带是原创的虚构品牌图片。生成的图像仅用于补足缺失的表面内容,绝不用于文本、徽标、UI 或以真实身份呈现的人物,并会在 NOTE.md 中声明。3D 内容在影片自身的渲染器(hero3d)中构建,而不是从其他工具导出。如果本技能与 HyperFrames 的既定风格不一致(装饰元素、幽灵文字、细线、眉题或进度样式、粗体标题),以本技能为准。