火柴人动画技能(animation-skill-main)
生成确定性、工作室级别的 2D/3D 火柴人动画(1080×1920 竖屏 9:16,30.0 FPS)。通过 HTML5 Canvas + WebGL2 / Three.js 渲染,零打包步骤;利用无头 Chromium 确定性捕获帧(window.seekToFrame(f)),并使用 ffmpeg 拼接为 MP4。
10 步生产管线
- 解释与推断参数:
1080×1920(9:16 竖屏),30.0 FPS,确定性帧定位。 - 节拍表与短视频留存公式:
- 钩子(
0–3s):立即的视觉动作 + 以事实陈述的悖论。 - 铺垫与升级:每
1.5–2.5s发生视觉变化或相机重构图(A-B-A-C 镜头交替)。 - 转折 / 科学:5 个不同且不重复的物理切出或类比演示(绝不重复同一个示意图两次)。
- 高潮与回报:情感/讽刺反转以及大型起重机后拉镜头。
- 钩子(
- 分解为镜头(
story.json/timeline.js):每个镜头定义相机pos、look、fov、focusDist、dofStrength以及演员姿势。 - 组装资源(
library/js/rig.js):- 硬性规则:始终使用直的 2 骨关节肢体(
solveIK([shoulder, elbow, hand])和solveIK([hip, knee, foot]))—— 绝不用曲线面条臂。 - 植草摆线运动:支撑脚锁定在 3D 地面坐标上,同时摆动脚沿世界空间摆线弧运动(零脚滑步)。
- 3 阶段绘画运动学:(1)将画笔浸入 3D 铬桶(
0.00..0.16),(2)沿 3D 大梁线性垂直上划(0.16..0.58),(3)线性垂直下划(0.58..1.00),伴随手腕旋转和刷毛张开反转。
- 硬性规则:始终使用直的 2 骨关节肢体(
- 渲染故事板关键帧(
scripts/capture_frames.mjs)。 - 自我检查故事板(
references/11-ship-gates.md):剪影可读性、三分法眼部放置、无遮挡视线。 - 使用非线性缓动动画(
library/js/easing.js):相机移动使用对称smootherstep(glide),减速使用power2Out,撞击/折断使用 7 帧符号翻转冲击踢。 - 捕获帧并拼接(
scripts/stitch.mjs):真正的 30.0 FPS 非量化捕获(无卡住或冻结帧)。 - 联系表最终 QA(
scripts/contact_sheet.py)。 - 交付:可定位的
.html工作室播放器 +1080×1920H.264.mp4。