星空头部追踪

星空头部追踪

《星空》的平面屏幕头部追踪——无需VR头显。使用网络摄像头、手机或任何兼容OpenTrack的追踪器,在移动头部时环顾四周,同时鼠标/手柄保持瞄准。兼容Steam和Xbox/Game Pass版本。

[size=5]Starfield 头部追踪[/size]

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

一个非官方的《Starfield》头部追踪模组,让你的视角随头部移动,同时鼠标或控制器继续负责瞄准。由网络摄像头、手机或任何兼容 OpenTrack 的追踪器驱动,无需 VR 头显。

用头部环顾四周并倾斜身体。鼠标或控制器仍然负责瞄准。兼容 Xbox 和 Steam 版本的游戏。

[size=4][b]功能[/b][/size]

- [b]视角与瞄准解耦[/b]:头部追踪移动视角,鼠标/控制器继续瞄准
- [b]6DOF 追踪[/b]:偏航、俯仰和翻滚,外加位置倾斜、探头和蹲伏
- [b]兼容任何 OpenTrack 兼容追踪器[/b] - 为 PC、iOS 和 Android 提供免费方案

[b][size=4]要求[/size][/b]

- 在 Xbox 应用/PC Game Pass 或 Steam 上的 [url=https://www.xbox.com/en-US/games/starfield]Starfield[/url]。
- 一个追踪源:[url=https://github.com/opentrack/opentrack]OpenTrack[/url] 配合网络摄像头或受支持设备,或一个支持 OpenTrack UDP 协议的手机应用。
- Windows 10 或 11,64 位。
- Ultimate ASI Loader 和一个兼容 OpenTrack 的追踪器 - 见依赖项。
[b][size=4]
依赖项[/size][/b]

[b]Ultimate ASI Loader(必需,未捆绑)[/b]

此加载器运行模组的 .asi 文件。下载 [url=https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases/download/v9.7.2/Ultimate-ASI-Loader_x64.zip]Ultimate-ASI-Loader_x64.zip[/url]。

1. 关闭游戏并打开加载器 ZIP。
2. 取出其中的 dinput8.dll 并将其重命名为 winmm.dll
3. 将其放在相对于游戏安装文件夹的 winmm.dll 位置。

该文件夹中已有加载器?保留另一个模组使用的兼容加载器。不要用相同文件名覆盖无关的 DLL;在替换任何现有文件之前先备份。

[b]OpenTrack 或兼容追踪器(必需,未捆绑)[/b]

OpenTrack 将网络摄像头或头显的运动转换为模组接收的头部姿态数据包。从 [url=https://github.com/opentrack/opentrack/releases]OpenTrack 官方下载页[/url]下载 Windows 安装程序。

1. 使用正常的 Windows 安装选项安装 OpenTrack。
2. 如下所述配置输入和 UDP 输出,然后按 Start。

网络摄像头方案不需要单独的模组加载器或标记硬件。发送相同 UDP 协议的手机追踪器可以直接发送。已有 OpenTrack?保留现有安装并为其配置输出以适配此模组。

[b][size=4]安装说明[/size][/b]

1. 关闭游戏并安装上述依赖项。
2. 从 Files 标签页下载此模组的 ZIP。
3. 将其解压到游戏安装文件夹,保持其目录结构。游戏可执行文件是相对于该文件夹的 Starfield.exe。ZIP 包含以下文件:

- CHANGELOG.md
- LICENSE
- README.md
- StarfieldHeadTracking.asi
- THIRD-PARTY-NOTICES.md
- licenses/cameraunlock-core-LICENSE.txt

4. 启动你的追踪器,启动游戏,并加载游戏进程。

成功的标志是:HeadTracking.ini 存在,且 HeadTracking.log 记录了模组启动。追踪器发送数据后,游戏视角会跟随你的头部。

[b][size=4]设置 / 配置[/size]
[/b]
[b]OpenTrack(PC 网络摄像头)[/b]
- 输入:neuralnet tracker,无需标记,无需红外硬件
- 输出:UDP over network,主机 127.0.0.1,端口 4242
- 映射偏航、俯仰和翻滚,如需位置追踪则再加上 X、Y 和 Z
- 按 Start,然后启动游戏

[b]VR 头显[/b]

1. 通过 Air Link、Virtual Desktop 或连接线将头显连接到此 PC。
2. 启动 SteamVR。
3. 在 OpenTrack 中,将输入设置为 SteamVR 追踪器。
4. 将输出保持为 UDP over network,主机 127.0.0.1,端口 4242,然后按 Start。

[b]手机应用[/b]

- 模组只接受一样东西,即端口 4242 上的 OpenTrack UDP 协议,因此应用必须自行发送该协议,或附带一个 PC 端配套程序来发送
- 将其指向此 PC 的 IP 地址(运行 ipconfig 查看),UDP 端口 4242,开始追踪,然后启动游戏
- [url=https://headcam.app]Headcam [/url]是我自己的免费手机追踪器;它在设备上过滤,因此可以直接发送,任何过滤足够好的应用都以相同方式工作
- 如果头部静止时视角漂移或抖动,将手机数据发送到备用端口(例如 5252,在防火墙中打开)上的 OpenTrack,再从 OpenTrack 输出到 127.0.0.1:4242,这样 OpenTrack 的滤波器可以清理数据
[b][size=4]
控制 / 使用[/size][/b]

两组等效的按键绑定 - 使用你键盘上有的那组。导航键区
按键和组合键功能完全相同。

| 操作 | 导航键区 | 组合键 |
|--------------------------|-------------|----------------|
| 切换追踪 | End | Ctrl+Shift+Y |
| 循环追踪模式 | Page Up | Ctrl+Shift+G |
| 切换地平线锁定 | Page Down | Ctrl+Shift+H |
| 循环瞄准镜行为 | Insert | Ctrl+Shift+U |

Page Up / Ctrl+Shift+G 循环追踪模式:

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

[b]瞄准镜的行为[/b]

Insert / Ctrl+Shift+U 循环三种瞄准镜瞄准方式。模组
从第二种开始。三种方式下腰射都完全被追踪;变化的是
瞄准镜画面,以及模组是否绘制自己的标记。

1. [b]原版,仅翻滚。[/b] 举镜时,只有头部翻滚会影响到画面。
翻滚围绕你视线方向旋转画面,并将准心留在画面
中央,因此瞄准镜画面是游戏自身的。转动或
倾斜头部不会有任何效果,直到你放下武器。
2.[b] 追踪,模组准星。[/b] 举镜时完全头部追踪,并绘制模组
自己的标记,沿你瞄准的方向。
3. [b]追踪,游戏准星。[/b] 举镜时完全头部追踪,不绘制额外
标记。游戏自身的准心仍然跟随你的瞄准。

Page Down 在地平线锁定的偏航和围绕相机自身向上轴的偏航之间切换。

[b][size=4]故障排除[/size][/b]

首先阅读 HeadTracking.log 以获取启动消息和错误。

- [b]模组未加载。[/b] 确认 winmm.dllStarfieldHeadTracking.asi
都在 Starfield.exe 旁边。检查启动后 HeadTracking.log 是否出现在同一
目录中;如果没有,说明 ASI 加载器未运行。以
dinput8.dll 安装的加载器在此处无效,因为 Starfield.exe
不导入它。
- [b]无追踪响应。[/b] 你的追踪器必须向
127.0.0.1:4242 发送 UDP。HeadTracking.log 在有任何数据到达时会记录 First tracker sample received
以及连接被归类为本地还是远程;如果该行不存在,说明追踪器未到达游戏,
因此确认 UDPPort 匹配且 Windows 防火墙未阻止
环回。对于手机应用,使用你 PC 的局域网地址而非 127.0.0.1
如果日志显示端口无法绑定,说明有其他程序占用:模组保持加载并每秒重试两次,
因此关闭那个程序后约半秒即可开始追踪,无需重启。
- [b]追踪抖动或不稳定。[/b] 提高追踪器
实际使用的平滑值:网络上的手机或其他设备用 RemoteSmoothing
此 PC 上运行的追踪器用 LocalSmoothing。两者同时涵盖旋转和
位置。网络摄像头追踪最受益于更亮、更均匀
的光照。
- [b]某个轴方向相反。[/b] 在你的追踪器中修复,而非此处。
OpenTrack 在 Options 中有逐轴反转,手机应用通常也有
相同设置;在那里设置意味着同一配置在每个
游戏中行为一致。如果仅在极端向上或向下角度时视角或倾斜感觉不对,
那是地平线锁定而非故障:用 Page Down 切换。
- [b]游戏中无反应,且日志显示没有构建配置文件。[/b]
自本版本以来 Starfield 已更新,因此模组无法识别
你的构建。HeadTracking.log 显示 No build profile for the running game
列出它从 exe 读取的三个数字,并说明你的构建是
比已知的更新还是更旧。然后它保持休眠:不安装钩子,
游戏内没有任何修改,因此玩起来与未安装模组时完全相同。
查看 Files 标签页以获取更新。
- [b]报告崩溃。[/b] HeadTracking.log 位于 Starfield.exe 旁边,每次启动时
从头重写。上一次启动保存为
HeadTracking.prev.log,因此崩溃的会话在随后的重启中得以保留
- 附上两个文件。

[b][size=4]更新[/size][/b]

1. 关闭游戏并从 Files 标签页下载新 ZIP。
2. 将其解压到同一游戏文件夹,覆盖之前的模组文件。
3. 启动游戏。

此 ZIP 不包含 HeadTracking.ini,因此你的设置会保留。如果发行说明更改了默认值或重命名了某个键,备份并删除该配置文件,以便模组写入新的。

[b][size=4]卸载[/size][/b]

关闭游戏并删除相对于游戏安装文件夹的以下路径:

- StarfieldHeadTracking.asi - 模组主体
- HeadTracking.ini - 此模组的配置,如果你也想移除其设置
- HeadTracking.log - 当前日志
- HeadTracking.prev.log - 之前的日志,如存在

ZIP 的文档也可以移除,前提是它仍是此模组的副本:CHANGELOG.mdLICENSEREADME.mdTHIRD-PARTY-NOTICES.mdlicenses/cameraunlock-core-LICENSE.txt

移除主体后,头部追踪模组不再加载。

winmm.dll 是 ASI 加载器。只有在没有其他模组需要时才移除它;恢复你备份的任何原始 DLL。OpenTrack 是独立应用程序,可以保留安装或单独移除。

[b][size=4]社区与支持[/size][/b]

- [url=https://discord.com/invite/dxyZdyFNT9]Discord[/url] - 设置帮助、错误报告、新游戏请求和新版本公告
- [url=https://lopari.app]Lopari[/url] - 免费 Windows 启动器,一键安装并启动头部追踪模组
-[url=https://headcam.app] Headcam[/url] - 免费应用,将你的手机变成头部追踪器

[b][size=4]鸣谢[/size][/b]

- Starfield (c) Bethesda Game Studios / Bethesda Softworks。
- [b]Zarlorne[/b],就在 Nexus Mods 这里,赠送我 Steam 版本以便我添加兼容性
- [url=https://github.com/ThirteenAG/Ultimate-ASI-Loader]Ultimate ASI Loader[/url] (MIT),作者 ThirteenAG。
- [url=https://github.com/opentrack/opentrack]OpenTrack[/url] (ISC)。
- [url=https://github.com/TsudaKageyu/minhook]MinHook[/url] (BSD-2-Clause),作者 Tsuda Kageyu,以及其基于的 Vyacheslav Patkov 的 Hacker Disassembler Engine。
- [url=https://github.com/benhoyt/inih]inih[/url] (BSD-3-Clause),作者 Ben Hoyt。
- [url=https://github.com/Starfield-Reverse-Engineering/CommonLibSF]CommonLibSF[/url],其发布的结构体布局为本模组读取的两个数字提供了有用的参考。此处未使用其任何代码。
- [url=https://github.com/itsloopyo/cameraunlock-core]CameraUnlock Core[/url] (MIT),此模组背后的共享头部追踪库。

[b][size=4]源代码[/size][/b]

[url=https://github.com/itsloopyo/starfield-headtracking]https://github.com/itsloopyo/starfield-headtracking[/url] - MIT 许可证