
StreamBridge
通过你的Minecraft服务器驱动OBS:死亡、BOSS击杀和低血量时切换场景,切换源和滤镜,保存回放片段并通过obs-websocket v5编写文本覆盖层。附带游戏内仪表板和场景远程控制项目。
StreamBridge
你的 Minecraft 服务器驱动 OBS 运作。在直播中死亡,场景自动切换。
你被一只苦力怕炸死了。还没来得及对此说些什么,OBS 就已经保存了回放缓冲区,将 "Kiosk01 died: creeper" 显示在覆盖层上,切换到你的死亡场景,并在六秒后切了回来。
没有人触碰任何热键。是服务器完成的这一切。
StreamBridge 通过 obs-websocket v5 将 Minecraft 服务器连接到 OBS Studio,并将游戏中发生的事情转化为场景切换、源和滤镜开关、回放缓冲区保存、录制控制和文字覆盖层。
运作原理
三样东西,其中只有一样是你编辑的文件:
- 世界中发生了某件事。 玩家死亡、Boss 被击败、进度达成、某人生命值低于三颗心、某人进入下界。
- 规则匹配了该事件。 规则位于
config/streambridge.json中:哪个事件、可选条件、冷却时间,以及要执行的操作。 - OBS 执行操作。 该操作变为一个 obs-websocket 请求。场景切换、源开关、回放保存、字幕——随你列出什么。
/streambridge reload 应用更改而无需重启任何东西。
什么可以触发规则
- 死亡——包含死因、击杀者和发生地点
- Boss 击杀——末影龙、凋灵
- 进度达成——合成配方解锁已被过滤掉,不会刷屏
- 低生命值——当你低于阈值时触发一次,恢复生命后重新武装
- 维度切换——下界、末地、再回来
- 加入和离开
- 聊天消息——包括仅限管理员的聊天命令
- 服务器启动和停止
每一个都在服务器端决定。除了通过上述事件,任何玩家都无法触发任何操作,且每个手动控制都会首先检查你的权限等级。
规则可以在 OBS 中做什么
- 切换节目场景 或工作室模式的预览场景,并触发它们之间的过渡
- 切换场景中的某个源 的开关——按名称操作,无需查找场景项目 ID
- 切换源上的滤镜
- 保存回放缓冲区——刚刚发生事情的片段
- 设置文字源的文本,使用事件中的值:
{player} died: {cause} - 开始、停止或暂停录制,开始或停止直播
- 按名称触发任何 OBS 热键
- 发送协议接受的任何原始 obs-websocket 请求,用于处理上述列表之外的任何内容
操作可以延迟执行:从一个规则中,现在就切到死亡场景,六秒后再切回来。
控制面板
/streambridge dashboard,或右键点击一个尚未绑定任何内容的场景遥控器。
它列出了 OBS 实际报告的场景——而非你必须先手动输入到配置文件中的列表。点击一个场景即可切换过去。正在直播的场景会被标记出来。每个场景旁边都有一个 绑定 按钮,可将该场景写入你手中的场景遥控器。
在右侧,它列出 你的规则,每条规则都显示触发次数、可点击的测试触发按钮,以及当某条规则在直播中捣乱时可用的开关。开关状态持续到下次重新加载;配置文件仍是最权威的来源。
底部一行:重新加载配置、保存回放片段、开始或停止录制。
场景遥控器
一件物品对应一个场景。把一个绑定到 Intro,一个绑定到 Just Chatting,一个绑定到 Death,把它们放到你的快捷栏中——切换场景只需右键点击,无需切换窗口,也无需 Stream Deck。
绑定的场景包含在物品名称中,因此一整栏的遥控器一眼就能读出来。潜行 + 右键点击可重新打开控制面板以重新绑定。
每个操作都会在服务器端根据你的权限等级进行检查。把遥控器递给别人,并不等于把你的直播交给他。
聊天命令
条件可以是正则表达式,而正则表达式会将捕获组传递给操作。这意味着一条规则就能覆盖你拥有的所有场景:
{
"on": "chat.message",
"when": { "op": "true", "message": "regex:^!scene (?<scene>.+)$" },
"do": [ { "type": "scene", "scene": "{scene}" } ]
}
在游戏中输入 !scene Just Chatting,OBS 就会切换。"op": "true" 条件的设置是有原因的——没有它,你服务器上的任何人都可以操控你的直播。
人们用它来做什么
- 自动剪辑并切入的死亡镜头,精彩片段不再需要直播结束后整理
- 你登出瞬间出现、回来时消失的 "BRB" 场景
- 生命值低于三颗心时出现的红色边框覆盖层
- 穿过传送门时自动开启的下界调色滤镜
- 服务器启动时、任何人加入前播放的开场场景
- 自动录制自身的 Boss 战
专为在活跃服务器上运行而设计
- 不会阻塞服务器线程。 规则匹配是映射查找;OBS 套接字在其自己的线程上运行。
- 当 OBS 关闭时,请求会被丢弃而非排队。 延迟四十秒到来的场景切换比没有更糟。
- 全局速率限制(5 个操作/秒,突发上限 10)意味着刷怪塔不会把一千次死亡变成一千次场景切换。
- 每条规则的冷却时间在重新加载后依然生效,因此重新加载不是绕过它们的方法。
- 损坏的配置永远不会拖垮服务器。 无效规则会被跳过并在
/streambridge status中列出。 - 错误的 OBS 密码会停止重连循环,而不是永远狂轰 OBS。
要求
- Minecraft 1.21.11
- NeoForge 21.11 或更新版本
- OBS Studio 28 或更新版本,并启用 WebSocket 服务器 (工具 → WebSocket 服务器设置)
- 在客户端和服务器端都安装——控制面板和场景遥控器是已注册的内容
OBS 和 Minecraft 服务器必须能够互相访问。对于远程服务器,这意味着需要隧道;切勿将 obs-websocket 暴露在开放互联网上。
诚实的局限性
这是 0.1.0 版本。 协议层、规则引擎和速率限制已由 51 个自动化测试覆盖,包括针对模拟 OBS 服务器的完整握手。但尚未经过数月实际使用的是游戏端。
聊天回传通道目前是单向的。 事件从游戏流向 OBS。让 Twitch 和 YouTube 聊天驱动游戏已列入计划,但尚未发布。
没有客户端侧触发器。 没有东西会对你所看到的内容做出反应,只对服务器所知道的内容做出反应。这是一个刻意的边界,而非疏忽。
控制面板和遥控器尚未经过真实直播测试。 它们能针对 1.21.11 编译,背后的逻辑也已测试过,但首次实际运行还在前面。
未来方向
- 将 Twitch 和 YouTube 聊天作为输入,带有逐命令白名单和对聊天可接触内容的硬性限制
- Fabric 版本
- 通过 OBS 热键支持 Stream Deck
- 针对同时有多个主播在线的服务器的逐玩家规则范围
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。