SteamVR Input:如何为新控制器重新绑定VR游戏
文章相关引用及参考:映维网
V社表示,他们将继续优化这项功能,并鼓励大家积极通过SteamVR论坛提供反馈。
(映维网 2018年10月29日)Valve正在努力优化SteamVR Input,而他们在整体系统和用户体验方面已经取得了进展。
V社日前更新了SteamVR beta版本,优化了Controller Binding UI,令重新绑定尚未实现新SteamVR Input API的游戏变得更加简单。现在,玩家和开发者可以更轻松地为任何当前和未来控制器创建和共享VR游戏的新绑定。
要选择加入beta,请在库>工具中右键单击SteamVR,选择Betas选项卡,然后点击SteamVR beta。
另外,V社提供了一份相关的指南,介绍了如何重新绑定三款有着不同控制机制与需求的游戏。下面映维网整理了《Jeeboman》这个示例:
如何重新绑定游戏的第一个示例是《Jeeboman》。这是一款直截了当的车轮战式射击游戏,是Vive的首发游戏之一。控制十分容易上手,所以这是一个很好的入门案例。
如果你没有《Jeeboman》,你可以通过免费试用版执行下面的相同步骤。
1. 定义游戏的“action”
我们的第一步是确定游戏的action,从而判断可以绑定什么。确定这些action的最佳方式是,使用游戏开发者用于测试的控制器来运行游戏。对于《Jeeboman》,开发者选择的是Vive控制器,它包含四个action:射击,选择武器,护盾,以及暂停/菜单。
我们现在可以在绑定界面中进行设置。你可以在SteamVR状态窗口的“Device”菜单下打开UI,也可以在头显中使用它。打开后,从游戏列表中选择《Jeeboman》(前提是你近期已经运行过游戏)。然后在绑定的控制器类型下选择“Edit”。我的情况是:“Knuckles Legacy Defaults”。
然后选择“Set Up Legacy Action”选项卡:
在这里,你将看到游戏可以使用旧输入API查询的所有位数数据(输入)列表。SteamVR不知道游戏将这些位元用来做什么,只是知道游戏可能正在使用它们。要重新绑定Legacy游戏,重点是确定游戏使用了什么位数,然后对它们进行标记和组织,以便UI的其余部分可供人类使用。
由于SteamVR对游戏知之甚少,因此默认情况下这个屏幕会显示大量的选项。我们在这一步要需要为游戏关注的内容提供名称,并隐藏其他所有内容。要做到这一点,我们要问自己三个问题。
1.1 游戏是否可以互换使用控制器?
是的。每只手都有相同的四个action。任何一只手都可以使用武器,而按钮影响他们操作的手。
这意味着我们要勾选标有“This game expects the left and right hands to use the same actions(该游戏希望左右手使用相同action)”的选项框。请注意,执行此操作时,其他选项卡将重命名为“Legacy Bindings(Mirrored)”,从而反映右手是左手镜像的事实。
1.2 游戏有什么简单的“action”?
这款游戏公开了四个action:
- 射击:单击扳机键点击
- 选择武器:单击触控板
- 护盾:单击握柄按钮
- 暂停/菜单:单击菜单键
现在我们知道了《Jeeboman》的action,接下来可以提供我们关心内容的名称,并隐藏其他内容。我们先从暂停/菜单开始。当游戏获取菜单键单击事件时,暂停/菜单action就会出现。接下来我们将其命名为Pause/Menu(暂停/菜单)。《Jeeboman》不使用“Application Menu Button Touch”事件(因为在游戏开发时Vive控制器尚不存在这个选项),所以我们隐藏这个action。
为其他三个action执行相同的操作,并隐藏其他内容。最终的界面如下所示:
如果你无意中隐藏了错误的action,你总是可以点击“Show Hidden Actions”,找到这个action,并勾选“Show”。
1.3 游戏有什么复杂或“模拟”action?
没有。我们最初是因为这是一个简单的示例才选择《Jooboman》。我们将在其他的示例中探讨这个问题。
2. 将action绑定至新控制器
现在我们已经命名了action,下一步是将它们绑定到控制器上的输入。具体如何做到这一点取决于游戏,但同时取决于你的个人喜好。如果你不喜欢绑定的方式,你随时都可以返回并重新绑定它。另外,如果你从某人已经完成第一步的绑定开始,你可以使用他们的命名并直接跳到第二步。
我们希望绑定的第一个action是“Fire(射击)”。扳机键是这个action的明显选择。通常来说,扳机键都是映射为按钮,因此SteamVR Input将应用阈值,并在扳机键部分按下时激活action。为此,我们为扳机键添加“Button”模式。单击Trigger旁边的“+”,然后选择“Button”。
在添加按钮模式后,我们希望改变绑定至“Click”的action:
下一步是绑定Select Weapon(选择武器),亦即Vive控制器触控板。我们将选择武器绑定到A按钮:按照与上面相同的步骤使A Button成为“Button”类型,并设置Click以“Select Weapon”。
暂停/菜单已绑定到Vive控制器上的菜单按钮,但Knuckles上没有此类按钮。所以我们将这个action绑定到B按钮。
护盾位于握柄按钮。但Knuckles上的握柄按钮设计有所不同,因此我们需要确保获得与此action绑定的正确值。在这种情况下,我们希望挤压握柄以激活护盾,而不是单单闭合手掌就能激活。这样做的第一步是添加“Button”模式。然后单击齿轮图标以显示该模式的设置。
从这里单击“Generate Click From”以选择单击来自何处。“Force”是我们想要的选项,这样我们就会使用力传感器。另一种选择是“Pull”,这对Knuckles来说意味着手柄上的电容(接近和触摸)传感器。对于某些游戏和action来说,这是正确的选择,但我们正在寻找一个挤压的选项。
单击“Close”以保存设置。然后设置Grip> Button > Click - “Shield”。
现在我们只需要将姿势和触觉action绑定到某些值,这样游戏就可以获得合理的控制器位置并发送触觉反馈。Valve计划在这里添加更多的功能,现在它暂时只是使用原始姿势和控制器的标准触觉。你可以在“Edit Action Poses”和“Edit Haptics”下面找到这些设置。
对于Pose,按照下面的方式设置“Left Hand Raw”-“Pose”:
对于Haptics,按照下面的方式设置“Left Hand Haptic”-“haptic”
随着我们一直在为左手绑定action,相同的绑定将自动为右手设置。这为使用镜像输入的游戏节省了大量工作。
4. 测试你的绑定
你在绑定UI中所做的任何更改都会自动应用于游戏。这时只需启动《Jeeboman》并拿起控制器,然后就能看看具体的效果。
5. 向社区分享绑定
既然我们已经完成了绑定,我们可以将其分享给任何想要用Knuckles控制器开玩《Jeeboman》的玩家。要做到这一点,只需单击绑定窗口底部的“Publish to Workshop”按钮即可。
为你的绑定命名并提供一定的描述,然后点击Save进行分享。
在完成分享后,你的绑定就可以成为其他用户的一个选项。
V社最后表示,他们将继续优化这项功能,并鼓励大家积极通过SteamVR论坛提供反馈。