轨道族
本插件提供四种轨道范式。Event Trigger 轨道在播放头经过分段起点时触发离散动作,详情请参阅动作参考文档。本页介绍其余三种轨道(Keyframeable、Continuous State 和 Media Sync),以及共享的轨道架构与分段类型。
轨道架构
| 范式 | 行为 | 适用场景 |
|---|---|---|
| Event Trigger | 播放头经过分段起点时触发动作 | 离散命令(StartRecord、SwitchScene、SaveReplay) |
| Keyframeable | 通过曲线编辑器关键帧对数值进行插值 | 平滑动画(音量淡入淡出、变换运动、颜色渐变) |
| Continuous State | 播放头位于分段内时持续应用状态 | 临时覆盖(分段内静音、强制可见性、保持转场) |
| Media Sync | OBS 媒体游标跟随 Sequencer 时间轴 | 同步视频播放,拖拽预览时跳转媒体位置 |
Keyframeable 属性轨道
除事件触发外,本插件还支持 keyframeable 轨道,用于对 OBS 属性进行平滑插值:
| 轨道类型 | 属性 | 适用场景 |
|---|---|---|
| OBS Volume | 音量(dB) | 音频淡入淡出、闪避、平滑电平变化 |
| OBS Balance | 平衡(0.0-1.0) | 立体声声像、左右定位、沉浸式音频 |
| OBS Transform | 位置 X/Y、缩放 X/Y、旋转、裁剪 L/T/R/B | 来源动画、画中画、裁剪揭示 |
| OBS Filter Setting | 任意数值滤镜属性 | 动画化模糊、色彩校正、色度键阈值 |
| OBS Transition Duration | 时长(ms) | 动态转场时长、戏剧性场景切换 |
| OBS Color Source | RGBA(每通道 0.0-1.0) | 动画背景、颜色渲染、氛围灯光 |
| OBS Media Cursor | 游标位置(ms) | 时间轴同步、将媒体拖拽预览至特定时刻 |
主要特性
- 使用 Unreal 的原生曲线编辑器进行关键帧插值。
- 增量阈值可防止频繁向 OBS 发送请求(仅在数值发生显著变化时才发送)。
- 播放停止时恢复动画前状态。
- 支持按轨道选择目标(音量/平衡使用输入名称,变换使用场景 + 来源)。
注意: 目标(例如
InputName)设置在轨道上,而非分段上,因此同一 keyframeable 轨道上的所有分段均指向同一输入/来源。
增量阈值
每个属性均有经过调优的阈值,以平衡响应性与网络效率:
| 属性 | 阈值 | 原因 |
|---|---|---|
| 音量 | 0.1 dB | 人耳几乎无法察觉小于 0.5dB 的变化 |
| 平衡 | 0.005 | 范围较小(0.0-1.0),需要高精度以实现平滑声像 |
| 位置 | 0.5 px | 亚像素变化在大多数显示器上不可见 |
| 缩放 | 0.001 | 与 OBS 内部精度匹配 |
| 旋转 | 0.1° | 亚度级变化无法感知 |
| 裁剪 | 1 px | 整数像素,OBS 不支持亚像素裁剪 |
| 滤镜设置 | 0.01 | 滤镜设置可能较为敏感,使用小阈值以保证精度 |
| 转场时长 | 10 ms | 时长变化是离散步进,在界面中可见 |
| 颜色通道 | 0.004 | 约 1/255,最小可见的 8 位颜色变化 |
| 媒体游标 | 16 ms | 约 60fps 下的 1 帧,跳转不可察觉 |
轨道设置
| 设置 | 默认值 | 描述 |
|---|---|---|
bRestoreStateOnStop | true | 序列停止时恢复原始 OBS 数值 |
bMuted | false | 禁用轨道而不删除关键帧 |
OBS Filter Setting 轨道
Filter Setting 轨道是一种通用实现,可对任意数值滤镜设置进行动画化:
| 轨道属性 | 描述 |
|---|---|
SourceName | 应用了该滤镜的 OBS 来源(例如,“Camera”) |
FilterName | 滤镜实例名称(例如,“Color Correction”) |
FilterKind | 可选。启用验证提示(例如,“color_filter”) |
SettingName | 要动画化的 JSON 键(例如,“brightness”) |
已知含界面提示的滤镜设置:
- color_filter: brightness, contrast, saturation, gamma, hue_shift, opacity
- chroma_key_filter: similarity, smoothness, spill, opacity
- color_key_filter: similarity, smoothness, opacity
- sharpness_filter: sharpness
- scroll_filter: speed_x, speed_y
- gain_filter: db
- compressor_filter: ratio, threshold, attack_time, release_time, output_gain
- limiter_filter: threshold, release_time
- noise_suppress_filter: suppress_level
- three_band_eq_filter: low_gain, mid_gain, high_gain
未知设置同样有效。轨道接受任意 JSON 键名。
OBS Transition Duration 轨道
对当前转场的时长(50 至 20000ms)进行动画化。无需配置目标,因为此轨道始终作用于当前激活的转场。
注意: 固定时长的转场(例如切割)无法修改其时长。轨道会优雅地处理此情况并记录警告日志。
Continuous State 轨道
Continuous State 轨道在播放头位于分段内时应用固定状态。分段本身没有关键帧,其存在即是触发条件。进入分段时捕获原始状态,退出时恢复。
| 轨道类型 | 目标 | 应用的状态 | 适用场景 |
|---|---|---|---|
| OBS Mute State | 音频输入 | 静音/取消静音 | 过场动画期间静音麦克风,为配音静音游戏音频 |
| OBS Monitor Type State | 音频输入 | 监听类型(None/MonitorOnly/MonitorAndOutput) | 在特定片段启用音频监听 |
| OBS Visibility State | 场景 + 场景项目 | 可见/隐藏 | 片头显示叠加层,特定镜头隐藏水印 |
| OBS Lock State | 场景 + 场景项目 | 锁定/解锁 | 直播片段期间防止意外移动 |
| OBS Blend Mode State | 场景 + 场景项目 | 混合模式(Normal/Additive 等) | 转场期间应用效果 |
| OBS Filter Enabled State | 来源 + 滤镜 | 启用/禁用 | 场景转场时启用模糊,切换色彩校正 |
| OBS Studio Mode State | 全局 | 启用/禁用 | 为预览片段启用工作室模式 |
| OBS Transition State | 转场名称 | 强制指定转场 | 为特定场景切换使用 Stinger 转场 |
与 Keyframeable 的主要区别
- 无曲线编辑器:分段要么”开启”,要么”关闭”。
- 状态是二元的(轨道配置的数值与原始数值之间切换)。
- 对于开/关行为,设置更为简单。
- 动画前状态的恢复是自动进行的。
Media Sync 轨道
Media Sync 轨道将 OBS 媒体源(VLC、Media Source)与 Sequencer 时间轴同步。与其他轨道不同,它同时主动控制播放状态和游标位置。
轨道属性
| 属性 | 默认值 | 描述 |
|---|---|---|
InputName | (必填) | 要控制的 OBS 媒体输入 |
bRestoreStateOnStop | true | 序列停止时恢复原始媒体状态 |
bRestoreCursorPosition | true | 序列停止时恢复原始游标位置 |
bMuted | false | 禁用同步而不删除轨道 |
分段属性
| 属性 | 默认值 | 描述 |
|---|---|---|
StartTimeOffsetMs | 0 | 分段开始时媒体的偏移量(例如,5000 = 从视频第 5 秒开始) |
bControlPlayback | true | Sequencer 播放/暂停控制 OBS 播放/暂停 |
bSyncOnScrub | true | 拖拽预览时间轴时跳转 OBS 媒体位置 |
bLooping | false | 分段时长超过媒体时长时循环媒体 |
ExitBehavior | Pause | 退出分段时的动作(Pause/Stop/Continue) |
同步行为
- Sequencer 播放时 → OBS 媒体播放。
- Sequencer 暂停时 → OBS 媒体暂停。
- 拖拽预览时 → OBS 媒体跳转至对应位置。
- 漂移校正在播放过程中自动保持媒体同步。
示例用例
- 将背景视频与游戏序列同步。
- 在时间轴的精确位置播放片头视频。
- 编辑时拖拽预览视频以找到合适的时刻。
分段类型
动作具有不同的触发行为:
| 类型 | 行为 | 示例 |
|---|---|---|
| Instant | 播放头经过分段起点时触发一次 | StartRecord、SaveReplayBuffer、SplitRecordFile、SaveScreenshot |
| State | 进入时触发,可选择在退出时还原 | SwitchScene、MuteInput、SetVolume |
有关 State 类型分段在退出时如何还原的详情,请参阅高级主题 → 退出动作。