English | 简体中文
一个通过网页触控界面远程控制 VRChat 内置相机参数的工具。无需在头显内操作菜单,即可在平板或手机上精细调整相机设置,非常适合虚拟摄影师使用。
- 双操控模式:提供两种触控逻辑,适应不同操作习惯。
- 区域分割模式:屏幕左侧控制焦距(Focal Distance)和光圈(Aperture),右侧控制变焦(Zoom)和曝光(Exposure)。
- 手指计数模式:单指控制变焦/曝光,双指控制焦距/光圈,通过滑动方向区分具体功能。
- 直观的视觉反馈:实时显示触摸点,并提供当前操作模式的文字提示。
- OSC 通信:通过 WebSocket 和 OSC 协议与 VRChat 稳定通信。
- 响应式设计:适配各种移动设备屏幕,支持全屏操作。
- 参数限制与节流:服务器端确保相机参数在合理范围内,并对高频操作进行节流,保证流畅性。
观看实际操作演示,了解 TouchCamVR 的工作方式:
- 前端: HTML5, CSS3, Vanilla JavaScript (使用 Touch Events API)
- 后端: Python 3, Tornado (WebSocket 服务器), python-osc
- 通信协议: WebSocket, OSC (Open Sound Control)
-
确保 VRChat 启用 OSC:
- 在 VRChat 设置中,找到
OSC选项卡。 - 启用 OSC 选项。
- 在 VRChat 设置中,找到
-
启动 TouchCamVR 服务器:
python main.py
-
连接设备:
- 确保你的移动设备(手机/平板)和运行 VRChat 的电脑在同一个局域网下。
- 在移动设备的浏览器中访问:
http://<你的电脑IP地址>:8888 - 例如:
http://192.168.1.100:8888
-
开始控制:
- 界面上的两个按钮分别用于切换全屏和切换控制模式(需双击)。
- 根据屏幕提示或按钮上显示的模式名称,在触控区域内使用手势即可控制 VRChat 相机。
服务器启动前,你可以根据你的网络环境修改 main.py 文件中的配置项:
HTTP_PORT = 8888 # 网页服务器端口,如果冲突可以修改
OSC_IP = "127.0.0.1" # OSC 目标 IP,通常不需要修改(除非 VRChat 在其他电脑上)
OSC_PORT = 9000 # OSC 目标端口,确保与 VRChat 设置中的 OSC 监听端口一致
OSC_SEND_INTERVAL = 1.0 / 60.0 # OSC 发送频率限制(秒),默认 ~60Hz-
克隆本项目:
git clone https://github.com/ggg123124/TouchCamVR cd TouchCamVR -
安装 Python 依赖:
pip install tornado python-osc
-
运行服务器:
python main.py
-
按照上方 使用说明 的步骤操作即可。
- 左侧屏幕区域:
- 垂直滑动:控制 Focal Distance (焦距距离)
- 水平滑动:控制 Aperture (光圈)
- 右侧屏幕区域:
- 垂直滑动:控制 Zoom (变焦)
- 水平滑动:控制 Exposure (曝光)
- 单指触摸:进入
Zoom/Exposure控制状态。- 首次滑动方向决定后续操作:
- 垂直滑动:控制 Zoom
- 水平滑动:控制 Exposure
- 首次滑动方向决定后续操作:
- 双指(及以上)触摸:进入
Focal/Aperture控制状态。- 首次滑动方向决定后续操作:
- 垂直滑动:控制 Focal Distance
- 水平滑动:控制 Aperture
- 首次滑动方向决定后续操作:
Q: 连接不上怎么办? A: 请依次检查:
- VRChat 中的 OSC 是否已启用。
- 电脑的防火墙是否允许了
8888端口的连接。 - 移动设备输入的 IP 地址和端口是否正确。
Q: 操作没有反应? A: 请检查:
main.py中的OSC_IP和OSC_PORT是否与 VRChat 设置匹配。- 浏览器控制台 (Console) 和服务器日志是否有错误信息。
- 实现更多相机参数的控制(如 FlySpeed, TurnSpeed 等)。
- 提供 Web 界面的参数自定义面板。
- 增加多语言支持。
- 打包为桌面应用或移动端 App,简化部署流程。
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT 许可证。详见 LICENSE 文件。
免责声明: 此工具与 VRChat Inc. 无关。请合理使用,遵守 VRChat 社区准则。