Subnautica 头部追踪

Subnautica 头部追踪

使用OpenTrack为《深海迷航》添加6自由度头部追踪功能。你可以自由转动头部观察四周,同时准星保持独立——支持摄像头、手机应用或专用追踪设备。

游戏玩法

头部追踪 for 深海迷航

演示动图

使用任何兼容 OpenTrack 的追踪器(网络摄像头、手机应用或专用硬件)为深海迷航提供分离式头部追踪。

功能

  • 分离式视角+瞄准 - 用头部自由环顾四周,同时鼠标瞄准保持独立
  • 6自由度追踪 - 完整旋转(偏航、俯仰、横滚)和位置追踪(X、Y、Z)
  • 兼容任何 OpenTrack 数据源 - 网络摄像头、智能手机应用、TrackIR,或任何支持 OpenTrack UDP 协议的追踪器
  • 多实例支持 - 使用 Page Down 键循环切换 UDP 端口(4242–4245),支持同屏合作

需求

安装

  1. 将 BepInEx 5.4.23.4 (x64) 安装到你的游戏目录
  2. 启动一次深海迷航,让 BepInEx 完成初始化,然后关闭游戏
  3. 将本压缩包解压到游戏目录 - DLL 文件会自动放入 BepInEx/plugins/ 文件夹
  4. 配置你的追踪器,使其输出 UDP 数据到 127.0.0.1:4242
  5. 启动游戏

设置追踪器

使用 OpenTrack(PC 网络摄像头):

  • 下载并安装 https://github.com/opentrack/opentrack/releases
  • 将输入源设置为 "neuralnet tracker"(网络摄像头)或偏好的来源
  • 将输出设置为 UDP over network - 主机:127.0.0.1,端口:4242
  • 点击开始,然后启动游戏

使用手机应用:

  • 在手机上安装一个兼容 OpenTrack 的头部追踪应用
  • 设置应用发送数据到你的电脑 IP 地址(运行 ipconfig 命令查找)的 4242 端口
  • 在手机上开始追踪,然后启动游戏

注意:如果追踪质量不佳,可能需要通过 OpenTrack 对手机应用数据进行平滑处理 - 首先将数据发送到 OpenTrack 的某个端口(如 5252,确保防火墙开放此端口),然后由 OpenTrack 再将数据转发到本模组的 127.0.0.1:4242 端口。

控制

提供了两套等效的按键绑定 - 可根据你的键盘选择使用:

操作 导航键区 组合键
重新居中 Home Ctrl+Shift+T
切换追踪 End Ctrl+Shift+Y
循环追踪模式 Page Up Ctrl+Shift+G
切换偏航模式 Insert Ctrl+Shift+U
循环 UDP 端口 Page Down Ctrl+Shift+H

追踪模式:

  1. 常规头部追踪游戏模式
  2. 禁用位置追踪,启用旋转追踪
  3. 禁用旋转追踪,启用位置追踪
  4. 返回常规模式

偏航模式: 在相机局部(默认)和世界空间(与重力对齐)之间切换偏航。相机局部模式与水平面无关,因此在任何方向游泳时行为都正确;世界空间模式在你直立时使偏航保持与水平面平行。

UDP 端口: 循环切换 UDP 监听端口:4242 → 4243 → 4244 → 4245 → 4242(适用于在同一台电脑上运行多个游戏实例的同屏合作场景)。

配置

编辑 BepInEx/config/com.cameraunlock.subnautica.headtracking.cfg 文件,自定义灵敏度、平滑度、死区、方向反转、位置限制和热键绑定。

故障排除

模组未加载:

  • 确保游戏目录中存在 winhttp.dll 文件(由 BepInEx 安装)
  • 确认所有模组 DLL 文件都在 BepInEx/plugins/ 文件夹中
  • 确保你使用的是 BepInEx 5.x(而非 6.x)
  • 检查 BepInEx/LogOutput.log 日志文件中的错误信息

无追踪响应:

  • 确保你的追踪器正在运行并向 127.0.0.1:4242 输出数据
  • 按 End 键开启追踪
  • 按 Home 键重新居中
  • 查看 BepInEx 日志文件中的错误信息

画面抖动:

  • 增加追踪软件中的过滤程度
  • 增加配置文件中 SmoothingFactor (平滑系数) 的值
  • 为基于网络摄像头的追踪改善照明条件

卸载

<深海迷航目录>/BepInEx/plugins/ 文件夹中删除以下文件:

  • SubnauticaHeadTracking.dll
  • CameraUnlock.Core.dll
  • CameraUnlock.Core.Unity.dll

要移除所有模组,还需从游戏根目录删除 BepInEx 文件夹和 winhttp.dll 文件,然后通过 Steam 验证游戏文件完整性。

鸣谢

源代码

https://github.com/itsloopyo/subnautica-headtracking - 使用 MIT 开源许可