Funscript 是什么?

funscript 是一个用 JSON 编写的小型文本文件,按时间列出位置:在视频的第多少毫秒,处于 0 到 100 之间的某个位置。播放器随视频一起读取它,并让已连接的设备从一个点移动到下一个点,使设备跟随屏幕上发生的事情。

已于 2026 年 9 月 21 日对照应用代码核实。

文件里有什么

funscript 的核心是一个名为 actions 的列表。每个 action 是一对数字:

at
该点的时间,从视频开始算起的整数毫秒。
pos
设备在那一刻应处的位置,为 0 到 100 的整数。

actions 周围有几个头部字段。version 是格式版本,通常为 "1.0"inverted 表示位置是否应上下颠倒解读。range 通常为 100。metadata 是一个自由格式的对象,用于记录脚本的相关信息,例如由哪个程序制作。许多文件还带有其他键,例如章节或备注;逐字段格式参考介绍了每一个。

按照惯例,actions 按时间排序,且没有两个点共用同一个 at。没有固定的速率:点位于动作转向的地方,所以慢节奏场景的点少,快节奏场景的点多。

一个小示例

视频前一秒半内的两次完整行程:

{
  "version": "1.0",
  "inverted": false,
  "range": 100,
  "metadata": {},
  "actions": [
    {"at": 0,    "pos": 10},
    {"at": 400,  "pos": 90},
    {"at": 800,  "pos": 10},
    {"at": 1200, "pos": 90},
    {"at": 1600, "pos": 10}
  ]
}

可以这样理解:从 10 开始,0.4 秒时到达 90,0.8 秒时回到 10,依此类推。设备在这些时刻之间做的一切,都由播放器或设备自行补全。

播放器和设备如何使用它

通常的约定是脚本与视频放在同一文件夹中,基本文件名相同:scene.mp4scene.funscript。AutoScript Sync 在两个方向上都遵循这一约定。打开视频时会自动载入旁边的同名 .funscript,生成完成的脚本也保存在那里。

视频播放时,播放器读取自己的时钟,并驱动设备朝下一个点移动,时间安排使其与视频同时到达。具体如何实现取决于设备。在 AutoScript Sync 中有两种方式。

Autoblow AI Ultra:设备自己播放脚本

当你按下 Send Script to Device 时,应用会按 Ultra 的限值适配脚本,并通过 Autoblow 的云端上传一次。此后它只发送开始、停止和偏移指令,并每隔 1.5 到 5 秒比较设备的播放时间与视频,校正漂移。电脑和 Ultra 都需要联网。详情见 Autoblow AI Ultra 页面。这是我们唯一在真实硬件上测试过的设备。

通过 Intiface 连接的往复式设备:逐点实时传输

对于通过 Intiface 连接的往复式设备,应用会把每个点作为一次定时移动发送,使其到达下一个点,从你按下播放或跳转的那一刻起按电脑的时钟运行。不上传任何内容,这种方式也没有延迟测量或漂移校正。在已发布的应用中,这些设备收到的是未经塑形的脚本:你的行程设置和设备的速度上限将从下次更新起对它们生效。详见 Intiface 兼容性页面。我们已经用模拟服务器和模拟设备测试过这种方式,但尚未在真实的往复式设备上测试。

无论哪种方式,如果感觉不同步,都可以用一个 Offset 设置让设备相对视频提前或推后。

脚本从哪里来

有两种来源,Funscript 制作指南对两者进行了比较。

  • 手工制作。有人在 OpenFunscripter 等 funscript 编辑器中逐步浏览视频,在动作的每个转折处放置一个点。这种方式很慢,其精确程度取决于制作的人。
  • 从视频生成。AutoScript Sync 等软件分析画面并写出这些点。AutoScript Sync 完全在你的电脑上完成这一切:它用光流测量采样帧中的运动,可选地加入姿态和深度模型,在每次动作换向处放置一个点,并把结果作为标准 .funscript 保存在视频旁。Funscript 生成器页面解释了你会得到什么。

无论用哪种方式制作,脚本都是同一类文件。AutoScript Sync 也能打开其他工具制作的脚本,可以通过 Load Funscript…、拖放,或在脚本位于视频旁时自动载入。

Funscript 不是什么

  • 它不是视频。文件中没有画面、声音或帧,只有数字和少量文本字段。离开为之制作的视频,它就毫无用处,而且只能与那个特定剪辑版本对齐:重新剪辑或裁剪过的副本会让每个点都发生偏移。
  • 它不绑定某一台设备。位置是 0 到 100,而不是毫米或电机步数。AutoScript Sync 保存的是未经适配的文件。在已发布的应用中,它只在上传到 Autoblow AI Ultra 时按设备的速度上限适配一份副本;Intiface 设备按保存时的原样播放脚本,对它们进行同样的适配将在下次更新中推出。
  • 它并不总是匿名的。metadata 对象可以说明文件由哪个程序制作,以及更多信息。AutoScript Sync 生成的脚本带有分析细节,包括每个两秒窗口的场景类型标签,所以分享之前请先查看元数据。应用上传到设备的内容会去除这些元数据。

常见问题

我可以用文本编辑器打开 funscript 吗?

可以。它是纯 JSON 文本。记事本就能显示它;Funscript 校验器还能告诉你它的格式是否正确并绘制图表,全部在你的浏览器中进行,无需上传。

AutoScript Sync 能播放我下载或自己制作的脚本吗?

能。用 Load Funscript… 载入、拖放到窗口上,或者按视频命名并放在同一文件夹中。之后它就能像生成的脚本一样在 Autoblow AI Ultra 或 Intiface 设备上播放。

应用制作或播放脚本时会上传我的视频吗?

不会。视频分析在你的电脑上运行,视频从不发送到互联网。使用 Autoblow AI Ultra 时,适配后的脚本(不含分析元数据)会上传到 Autoblow 的云端,因为该设备就是这样播放脚本的。使用 Intiface 设备时不上传任何内容。

我可以在其他播放器中使用 AutoScript Sync 的脚本吗?

保存的文件是标准的 funscript JSON,所以任何能读取该格式的程序都能打开它。File → Export Script (as played) 还会写出一份应用了你的行程范围、强度、反向和行程深度设置的副本,让其他播放器带来同样的感受。

延伸阅读

为你自己的视频制作脚本

AutoScript Sync 在你的电脑上从视频生成 funscript;试用版就是完整应用,可用一天。