Composer本身没有帧率设置——它的时间轴单位是秒而非帧,不控制播放FPS;所谓帧率均由外部工具(如FFmpeg)或同名软件(如Avid Media Composer)提供,与PHP composer或SOLIDWORKS Composer无关。

Composer 本身没有时间轴帧率设置——它不控制播放 FPS,也不按“帧”组织动画。你看到的帧率相关操作,要么来自外部导出工具(如 FFmpeg),要么是误把其他同名软件(如 Avid Media Composer)的功能套用到 PHP 的 composer 或 SOLIDWORKS Composer 上。
为什么在时间轴上找不到 FPS 设置选项
因为 SOLIDWORKS Composer 的时间轴单位是秒(s),不是帧(frame)。它内部使用浮点时间戳驱动插值,例如 0.0、2.0、4.5,而非 0f、48f 这类帧编号。所谓“24fps 时间轴”只是用户根据项目需求自行换算的时间刻度参考,并非 Composer 解析或渲染的依据。
- 时间轴右键菜单里没有
Set Frame Rate或FPS选项 -
动画选项卡 → 时间轴设置中可改的是关键帧采样率(Keyframe Sampling Rate),不是播放帧率;设为60表示每秒最多插入 60 个关键帧位置,用于捕捉高频运动,但不影响最终播放速度 - 导出视频时的帧率由外部编码器决定:比如用 FFmpeg 导出,才用
-r 30控制输出帧率;Composer 自身导出仅支持 AVI(无压缩)、MP4(调用系统编码器)、GIF(依赖 imagick)等格式,且不暴露帧率参数界面
画面不同步的真正原因:时间点错位 + 插值断裂
你以为是“帧率没对齐导致卡顿”,实际是关键帧时间值毫秒级偏差,叠加插值类型混用,造成播放器在循环边界计算出错。人眼看到的“跳帧”“顿挫”,本质是 Composer 在 2.001s 和 2.0s 之间强行做线性外推,结果运动矢量突变。
- 关闭
Snap to Frame(快捷键Ctrl+Shift+S),否则拖动关键帧会强制对齐到最近整数帧,背后真实时间可能是1.998或2.003 - 手动双击时间轴下方数字,输入精确值如
0.0、3.0、6.0,不要依赖拖动 - 选中整个循环段(如
0s–3s和3s–6s),右键 →Interpolation → Bezier统一插值,禁止混用Linear和Hold - 检查首尾帧数值是否完全一致:若
0s时position.z = -100,则3s必须也是-100,哪怕只差0.0001,循环也会硬停
导出时画面同步失败?先确认导出链路里谁管帧率
Composer 导出 MP4 不等于“生成标准视频”。它只是把每一帧渲染图交给系统编码器(Windows Media Foundation / macOS VideoToolbox),而这些组件默认按项目窗口刷新率或显示器垂直同步输出,不是按你想象的 30fps 固定节奏。
- 导出前务必确认时间轴终点 ≥ 循环总时长(如 3 秒 × 3 次 =
9.0s),否则末尾被截断,播放器自动跳回第 0 帧 - 若需精确控制输出帧率,绕过 Composer 内置导出:用
File → Export → Image Sequence输出 PNG 序列,再用 FFmpeg 命令重采样:ffmpeg -i frame_%04d.png -r 30 -c:v libx264 output.mp4 - 用 imagick 生成 GIF 时,帧率由
setImageDelay()控制,例如$imagick->setImageDelay(3)≈ 33fps(3 × 10ms),但浏览器可能向下 clamp 到 20ms(50fps 上限)
最常被忽略的一点:你在时间轴上拖动预览时看到的“卡顿”,和最终导出视频是否同步,是两回事。前者受显卡驱动、阴影/环境光遮蔽开关、模型面数影响;后者只取决于关键帧时间精度与导出链路是否可控。别试图靠调“帧率”解决预览卡顿——关掉 Shadows 和 Ambient Occlusion,比调任何 FPS 都管用。











