一个集成了与csgo、vts、obs和其他直播前端交互的项目,是一个个人直播的中控中心。
- 使用和修改了 Sonic853 的 CSGO 交互项目,整合了不同的事件回调
- 包装了一个 VTubeStudioJS 客户端,用于和Vtube Studio进行Websocket交互,实现对表情或者热键进行调整和触发
- 包装了一个 obs-websocket-js 客户端,用于和Obs Studio进行Websocket交互,实现对Obs的源可见等进行调整
- 架设了一个主要用于 直播前端 转场的交互后端
- 在
streaming_center/src/configs/connection_properties.ts
中配置csgo、vts、obs和交互后端的配置信息:- csgo的配置信息需要包含:
port: number
*服务端的端口steamid: string
需要监听的steamid(当该steam用户为第一人称时监听,该项为空时则不论谁的第一人称视角都有事件回调)auth.token: string
用于和检查csgo发来请求的auth.token,为空时则不检查
- vts的配置信息需要包含:
url: string
*连接VTS websocket的url(带端口)(如: 127.0.0.1:8001)
- 推流obs的配置信息需要包含:
url: string
*连接OBS websocket的url(带端口)(如: 127.0.0.1:4455)password: string
用于需要身份验证的obs websocket连接
- 交互后端的配置信息需要包含:
port: number
*服务端的端口
- csgo的配置信息需要包含:
- 将
csgo_integration/gamestate_integration_luis.cfg
文件复制到CSGO根目录/csgo/cfg/
中,如需要修改,请参考 CSGO Integration文档,其中的port
对应 使用教程 中 csgo 配置项的端口port
- 根目录中依次运行以下命令编译代码(需要提前安装tsc):
npm install npm run build
- 运行
npm run start
- CSGO与VTS、OBS的交互
- 通过
csgo_integration
获取当前第一人称玩家的信息,并发出事件,如生命值
mvp
等事件 - 通过包装好的
csgo
实例对事件进行回调,通过回调操控OBS和VTS实现不同效果
- 通过
- 直播界面前后端
- 通过 http 请求通知后端转场(比如我的情况是使用 TouchPortal 点击实现obs转场的同时通知后端)
- 后端通过 Websocket 广播在直播界面中的前端web,进行转场动画
有任何的问题和建议欢迎提出