命令参考(Commands)
rive COMMAND
在终端运行 rive --help 查看此列表,运行 rive --version 打印已安装版本。
命令
| 命令 | 作用 |
|---|---|
rive create | 在本地搭建 Rive 项目脚手架。会创建:rive.yaml、scene.rml、AGENTS.md、.gitignore |
rive <project-dir> | 打开预览窗口,并在你编辑时重建。目录默认为 . |
rive login | 使用 Rive 账户登录 |
rive logout | 退出登录 |
rive whoami | 显示当前登录身份 |
rive docs | CLI 自带的创作文档 |
rive samples | 把可运行的示例项目克隆到本机 |
rive schema | 查阅类型 |
rive inspect | 打印解析后的场景 |
rive doctor | 检查环境:版本、鉴权、端口、项目 |
rive lsp | 通过 stdio 提供语言服务器,用于编辑器集成 |
rive update | 安装最新发布的 CLI |
rive switch | 选择一个 CLI 版本,或按名称选中 |
rive uninstall | 移除已缓存的 CLI 版本 |
rive analytics | 查看或设置用量分析(on | off) |
update、switch和uninstall仅支持~/.rive/bin下的安装器构建。若通过 Homebrew 安装 CLI,请使用brew方法管理 CLI 版本与更新。
项目标志
这些标志适用于 rive <project-dir>。
构建模式
互斥,因此只能选一个。捕获(Capture) 下的 --screenshot 也算其中一种。若不指定任何模式,CLI 会打开预览窗口并在你编辑时重建。
| 标志 | 作用 |
|---|---|
--verify | 检查项目但不写出 .riv。出错时退出码为 1 |
--once | 写出未签名的 .riv。出错时退出码为 1 |
--publish | 写出已签名的 .riv。需要 rive login,并且可能给输出加水印,见下方说明。出错时退出码为 1 |
--test | 运行 Tests 脚本。失败时退出码为 6 |
在项目绑定到你账户中的 Rive 文件之前,
--publish会写出带水印的构建。绑定会把
push.fileId记录到rive.yaml中,由即将推出的rive push完成。无论项目是否包含脚本,水印都会生效。
修饰符
这些标志会附加到你选择的模式上。
| 标志 | 作用 |
|---|---|
--init | 若缺少 rive.yaml 则写入一份,然后继续 |
--rev=<path> | 同时写出编辑器 .rev。需要 rive login。可与 --once 或 --publish 组合;单独使用时也会做一次 --once 构建。不能与 --verify、--test 和 --screenshot 一起使用 |
捕获
| 标志 | 作用 |
|---|---|
--screenshot[=<path>] | 构建、在不打开窗口的情况下渲染一帧、写出 PNG。默认为 build/<name>.png |
--viewport=<WxH> | 场景布局所用的尺寸:配合 --screenshot 时为捕获尺寸,监视时为窗口尺寸。默认为画板自身尺寸 |
--bench=<frames> | 构建、在不打开窗口的情况下为指定帧数计时,报告推进与渲染统计以及 WASM 内存增长 |
--bench 会代替 --screenshot 运行,而不是与它并行。同时传入两者会为帧计时且不写出 PNG,且不会提示。它本身就是一种构建模式,因此不能与 --verify、--once、--publish 或 --test 组合。它按画板自身尺寸渲染并忽略 --viewport,并在计时前先运行 300 帧预热。
驱动场景
| 标志 | 作用 |
|---|---|
--data=<path=value> | 在场景运行前设置一个视图模型属性。重复该标志可设置多个属性 |
--pointer=<kind@x,y> | 在画板坐标处模拟一次指针事件。可重复 |
--advance=<N|Ns|Nms> | 将场景向前步进。可重复,并按与其他交互相同的顺序运行 |
--data-dump[=<path>] | 把绑定的视图模型值、全局量和嵌套画板写成 JSON。默认为 build/<name>.data.json;- 或 stdout 写到标准输出 |
--data-dump-filter=<paths> | 只保留这些属性路径,逗号分隔。允许 glob,例如 battery/*,score |
--data-dump-every=<N|Ns|Nms> | 每隔 N 帧采样一次,而不是只在结束时采样一次,格式为 JSON Lines |
--artboard=<name> | 启动时显示的画板。未知名称会回退到第一个画板,且不发出警告 |
交互按你写下的顺序运行,--pointer 和 --advance 需要 --screenshot。
推进时间
--advance 会在其他交互之间步进场景。裸数字表示 60fps 下的整帧数;1s 或 250ms 是动画时间,按 1/60s 的帧步进,余数用一帧较短的帧补齐。时间形式支持小数点,因此 1.5s 是 90 帧。
rive myproject --screenshot=out.png --advance=60 # 60 帧
rive myproject --screenshot=out.png --advance=1s # 同样的时长,用时间写法
rive myproject --screenshot=out.png --advance=250ms
按需 求放置它:
| 位置 | 作用 |
|---|---|
| 手势之前 | 在交互落地前播放开场 |
| 两次手势之间 | 让一次动作的过渡在下一次开始前完成 |
| 最后一次手势之后 | 在捕获前让场景稳定下来 |
rive myproject --screenshot=out.png \
--advance=1s \
--pointer=click@120,60 \
--advance=20
带符号、空白、尾随文本、裸帧数上的小数点,或超过 32 位无符号整数的值会被拒绝,退出码为 2。
--advance取代了--frame。裸的--advance=N就是以前--frame=N的含义,因此--frame=20应写成--advance=20。传入--frame会报错并提示使用--advance。
--bench使用自己的帧数,不能与--advance、--pointer、--gamepad、--semantics或--semantic-action组合。