创建Android - 控制器 - SteamVr通信

时间:2017-09-25 16:37:02

标签: android steam openvr

我试图做的是: 我的智能手机将其方向(Gyro,Accel和Magnetic的融合)发送到控制器,控制器进一步处理数据,使其可以被SteamVr访问,而SteamVr又会向我发送我要发送回智能手机的帧。

到目前为止我取得的成就: 我实现了一个基本的android程序,它已经捕获了它的方向,将其打包成UDP数据报并将其发送到给定的IP地址。

我写了一个小的Java程序来验证它的功能,它已经可以运行了。

现在我想转到第2步:将此数据提供给SteamVr。 现在我不在乎将视频流回到android。

假设我想使用像C#或Java这样的高级语言,有人可以给我一些帮助吗?我可以使用OpenVr吗?如果是,怎么样? (这不是很好的记录)。

编辑:

我有一个临时解决方案。我将使用FreePie通过UDP向OpenTrack发送方向(我修改了FreePie.apk以平滑结果)。 OpenTrack通过UDP将其发送到localhost。

我必须修改SteamVr以使用Null-Driver才能接受 不存在的HMD。

通过Moonlight的HeadTracking和Stream效果很好,但现在 还有另一个问题: 当SteamVR启动FullScreen HMD-Display-Window时,我无法做到 对任何游戏使用通常的输入。

游戏通常在一个单独的窗口启动,接受 在HMD显示VR-Experience时输入。 现在,VR-Window有一个很大的问题。 当没有聚焦时,它既不显示也不从OpenTrack获取输入。 这意味着没有视频,没有头像。 有些游戏以VR模式开始,所以我可以使用 此窗口获取KeyboardInput和视频,但禁用了Headtracking, 如前所述。

简而言之: - FreePie - > OpenTrack - > SteamVR NULL-Driver - 月光 - > Android的 适用于所有不需要输入的内容

这里唯一的解决方案是: 第二显示。 - 将第二个显示设为主。 - 将所有内容移至第二个扩展显示器 - 启动steamVR(将在第二个显示中打开), - 开始游戏。 现在,当焦点切换到VR-Window时,它会突然出现 在PC主要插入显示器(仅用笔记本电脑+电视测试)。 所以月光将捕获视频而第二(当前主要)屏幕焦点 在GameWindow上捕获输入。

我的新问题是: 如何解决第二个显示器的需求?

1 个答案:

答案 0 :(得分:1)

好的。这是我的解决方案和指南:

如何将Android智能手机用作SteamVr的VR-HMD

你需要什么:

设备:

  • 2个智能手机(1个智能手机用于VR,一个可以便宜,平板电脑也可以)
  • 具有足够VR功能的Nvidia GameStream PC,

软件:

  • SteamVr
  • OpenVr-OpenTrack(https://github.com/r57zone/OpenVR-OpenTrack
  • OpenTrack 2.3-rc20(我选择这个,因为只有可提取的拉链适用于我)
  • FreePIE IMU apk for Android(已经在OpenTrack文件夹中)
  • 适用于Windows和Android的Spacedesk
  • Android的月光

如何:

  • 安装Steam和SteamVR(以及您想玩的任何游戏)
  • 安装OpenVR-OpenTrack(按照页面上的指南)
  • 安装OpenTrack
  • 在Android手机上安装FreePIE IMU for VR
  • 在Android手机上安装Moonlight for VR

现在确保VR-Phone和您的PC在同一网络中。 在OpenTrack中设置:

追踪器 - > FreePIE UDP接收器,音高+180。 将端口设置为与FreePIE Android App中的相同

协议 - > UDP接收器 IP:127.0.0.1 港口:4242

如果您启动FreePIE App和OpenTrack,您应该会看到它正常工作。

后续步骤:

  • 在Windows上安装Spacedesk和便宜的手机
  • 连接两者。
  • 在PC上设置为扩展显示。
  • 将第二个显示设为主显示

  • 现在启动SteamVR和你的游戏(游戏应该处于窗口模式)。

  • 将游戏窗口移至第二(主)显示(如果尚未显示)。
  • 专注于SteamVR-Window(现在应该是红色/黑色的那个)
  • 点击进入屏幕。

现在,窗口应显示在您的PC显示屏上 游戏本身仍然在Android-Display上。

  • 点击以关注游戏窗口。
  • 在VR手机上启动Moonlight并启动桌面 (有关如何流式传输桌面的教程,请使用谷歌)

你准备玩了。 当您的PC监视器显示VR窗口时,它会 显示内容并接受Android-Orientations。 当扩展(主) - 监视器显示游戏窗口时, 游戏将接受控制器/键盘/鼠标输入。

是的,这是一个非常疯狂的工作,并且会给你带来压力 (W)局域网。 如果你有一个可以减少路由器流量的备用设备,你也可以使用物理第二台显示器。

尝试使用WarThunder和Project CARS Pagani Edition,它可以使用!