消逝的光芒2头部追踪

消逝的光芒2头部追踪

使用OpenTrack为《消逝的光芒2》添加6自由度头部追踪。头部自由环顾四周,而瞄准保持独立——兼容网络摄像头、手机应用或专用追踪器。

消逝的光芒2 头部追踪

[img]https://raw.githubusercontent.com/itsloopyo/dying-light-2-headtracking/main/assets/readme-clip.gif[/img]

为《消逝的光芒2 人与仁之战》提供分离式头部追踪,兼容任何 OpenTrack 追踪器 —— 网络摄像头、手机应用或专用硬件。

功能

  • 分离式视角与瞄准 - 头部自由环顾四周,而准星和瞄准保持独立
  • 6自由度追踪 - 完全旋转(偏航、俯仰、翻滚)和位置追踪(X、Y、Z)
  • 兼容任何 OpenTrack 源 - 网络摄像头、智能手机应用、TrackIR 或任何支持 OpenTrack UDP 协议的追踪器
  • 完全可配置 - 每轴灵敏度、位置限制、平滑处理、轴反转、可自定义热键

安装

  1. 安装 Ultimate ASI Loader - 下载 Ultimate-ASI-Loader_x64.zip,将 dinput8.dll 重命名为 winmm.dll,然后放入游戏的 ph/work/bin/x64/ 文件夹中
  2. 将此模组的 ZIP 包解压至你的《消逝的光芒2》游戏文件夹(包含 ph/ 文件夹的目录)。

设置追踪器

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

  1. 下载并安装 OpenTrack
  2. 将输入设置为 "neuralnet tracker"(网络摄像头)或你偏好的信号源
  3. 将输出设置为 UDP over network - 主机:127.0.0.1,端口:4242
  4. 点击开始,然后启动游戏

使用手机应用:

  1. 在手机上安装兼容 OpenTrack 的头部追踪应用
  2. 将其设置为发送至电脑的 IP 地址(运行 ipconfig 查看)的 4242 端口
  3. 在手机上开始追踪,然后启动游戏

注意:手机应用可能需要通过 OpenTrack 进行平滑处理

控制

  • End - 开关头部追踪
  • Page Up - 开关位置追踪

热键可在 HeadTracking.ini 中自定义。

配置

编辑 ph/work/bin/x64/ 中的 HeadTracking.ini 进行自定义。删除该文件可恢复默认设置。

[Network]
UDPPort=4242              ; 追踪数据的 UDP 端口

[Sensitivity]
YawMultiplier=1.0         ; 水平旋转 (0.1 - 5.0)
PitchMultiplier=1.0       ; 垂直旋转 (0.1 - 5.0)
RollMultiplier=1.0        ; 倾斜 (0.0 - 2.0)

[Position]
SensitivityX=2.0          ; 每轴位置灵敏度 (0.1 - 10.0)
SensitivityY=2.0
SensitivityZ=2.0
LimitX=0.3                ; 最大偏移量(米)
LimitY=0.2
LimitZ=0.4
Smoothing=0.15            ; 0.0 = 无平滑,0.99 = 最大平滑
InvertX=false
InvertY=false
InvertZ=false
Enabled=true              ; false = 仅 3DOF 旋转

[General]
AutoEnable=true           ; 游戏启动时自动开始追踪
ShowNotifications=true    ; 屏幕状态消息

故障排除

模组未加载:

  • 确认 winmm.dll(ASI Loader)位于 ph/work/bin/x64/
  • 确认 DL2HeadTracking.asi 位于同一文件夹中
  • 检查该文件夹中的 HeadTracking.log 文件以查看错误信息

无追踪响应:

  • 确保你的追踪器正在运行并输出数据
  • 检查 UDP 端口在追踪器和 HeadTracking.ini 中是否一致
  • 按下 End 键开启追踪

镜头抖动:

  • 增加追踪器软件中的过滤设置
  • 降低 HeadTracking.ini 中的灵敏度倍率
  • 改善网络摄像头追踪的光照条件

卸载

ph/work/bin/x64/ 中删除:

  • DL2HeadTracking.asi
  • HeadTracking.ini
  • HeadTracking.log(如果存在)

如需移除所有模组,同时删除 winmm.dll

鸣谢

源代码

GitHub - MIT 许可证