【问题标题】:SteamVR override Controller inputs?SteamVR 覆盖控制器输入?
【发布时间】:2021-07-19 06:45:49
【问题描述】:

我想覆盖我的控制器输入。例如交换控制器按钮动作。我的方法是使用 OpenVR 创建一个自定义控制器,但是我无法检索我的控制器输入并将它们提供给我创建的控制器。

我知道我可以获得控制器输入,只是为了阅读。但是我如何覆盖它们,有可能吗? 任何帮助将不胜感激。 谢谢。

【问题讨论】:

  • 如果您只需要交换输入,为什么不直接更改当前控制器的绑定?更少的工作和更好的表现
  • @okawo 好吧,我需要的是实时交换控件,这样我就可以将玩家的运动方向与耳机分离。通常在游戏中,我们会朝着我们所看的方向移动。我想使用我的驱动程序向我指示的方向移动。我只需要在运行中为操纵杆添加一些偏移量
  • ohhhhhhhhh,你应该在问题中添加一个澄清,顺便说一句,它是可行的,但如果你想使用自己的包装器驱动程序,它会更难并且很可能会增加延迟,那里是另一种方法。我会尽快发布一个详细说明的答案
  • @okawo 我很期待。希望你能尽快发布。
  • 抱歉耽搁了,现实生活又来了xd

标签: c++ openvr steamvr


【解决方案1】:

艰难的路

制作自己的封装驱动程序并不容易,openvr 驱动程序 API 大多没有文档记录(在 Linux 上几乎没有功能......)而且非常混乱

但有可能,如果我正确理解您的问题,您想要实现类似 DecaMove(如果我正确理解来自 their website 的信息,现在可以与手机一起使用)

现在了解如何...您需要制作自己的驱动程序来捕获耳机驱动程序的输入并对其进行修改,启动 here 并阅读大多数与驱动程序相关的 wiki,您将需要它,阅读通过openvr_driver.h(其中的代码 cmets 是它拥有的最新文档)

然后阅读 openvr 的唯一官方驱动示例...可以找到here,将其用作参考,但永远不要将驱动程序建立在它之上!

在文档方面就是这样,一些提示:

  • 尝试查看设备更新事件,这些事件可能包含您需要拦截的跟踪/输入数据
  • 不要触摸您的 HMD,甚至不要尝试为您的 HMD 制作包装设备!显示组件未记录在案,很难制作并正常工作
  • 在您的 Steam 配置中启用 "activateMultipleDrivers" in steamvr.vrsettings,否则您将无法同时使用您的驱动程序和耳机驱动程序启动 Steamvr

如果你最终选择制作自己的驱动程序,我祝你好运

简单的方法

如上所述,DecaMove 现在可以与手机一起使用,请参阅他们的网站了解更多信息

(我也想推荐openvr输入模拟器,但是看了他们的代码后我才知道它有多老了,而且它似乎也被废弃了......所以是的,不要使用它)

【讨论】:

  • 我还发现 openvr 输入模拟器确实使用钩子来完成任务。所以我想我将不得不硬着头皮去。啊,没有 DecaMove 移动设备不适合我 :) 非常感谢!
  • @Aimkiller 祝你好运:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多