5 各硬件产品开发指南

本章将介绍SDK在Pico各硬件产品上的使用方法,开发者根据需要选择看相应内容即可。

5.1 G2/G2 4K

5.1.1 使用指南

使用Pico G2控制器,请遵循如下步骤:

1、给游戏中的默认Pawn类添加MotionController组件,使其与Camera组件同级:

_images/5.1.png

图5.1 添加MotionController组件

该组件不受Hand属性的影响,如更换左右手,请去系统设置中修改。

_images/5.2.png

图5.2 勾选Disable Low Latency Update

打包安装后,该组件将跟随Pico 手柄的位置/姿态运动。

2、为MotionController添加模型:

进入MotionController细节面板的Visualization子项下添加模型(同样需勾选“Show Plugin Content”方可显示):

_images/5.3_2.png

图5.3添加Pico控制器模型

需要说明的是,在我们的插件目录下,我们将带按键动画的手柄封装成了Actor,如想复用请将其附加到您关卡中的Pawn或Character上。

5.1.2 输入说明

1. 按键说明

Pico G2控制器按键如下:

G2控制器按键 输入绑定 蓝图节点
_images/5.4.1.png _images/5.4.2.png _images/5.4.3.png
_images/5.4.13_2.png _images/5.4.14.png _images/5.4.15.png
_images/5.4.16_2.png _images/5.4.17.png _images/5.4.18.png
_images/5.4.4.png _images/5.4.5.png _images/5.4.6.png
_images/5.4.11.png _images/5.4.7.png _images/5.4.8.png
_images/5.4.12.png _images/5.4.9.png _images/5.4.10.png

G2系列控制器的轴输入仅含触摸板,触摸板的示意图如下:

_images/5.4.png

图5.4 G2系列控制器示意图

通过如下节点可获得相应的输入值:

_images/5.7.png

图5.5 获取触摸板轴值的方法

5.1.3 相关蓝图节点

对于G2控制器,我们还提供了如下蓝图接口:

_images/5.1.3.1.png 功能 设置手柄连接断开及重连的响应事件
输入 OnPicoControllerConnected:重连时的响应事件 OnPicoControllerDisconnected:断开时响应事件
输出
返回值
_images/5.1.3.2.png 功能 设置arm Model Gaze模式
输入 Gaze模式
输出
返回值
_images/5.1.3.3.png 功能 获取arm Model Gaze模式
输入
输出 Gaze模式
返回值
_images/5.1.3.4.png 功能 设置arm model 肘高度
输入 肘高度偏移量0~0.2
输出
返回值
_images/5.1.3.5.png 功能 获取arm model 肘高度
输入
输出 肘高度偏移量
返回值
_images/5.1.3.6.png 功能 设置arm model 肘深度
输入 肘深度偏移量0~0.2
输出
返回值
_images/5.1.3.7.png 功能 获取arm model 肘深度
输入
输出 肘深度偏移量
返回值
_images/5.1.3.8.png 功能 设置arm model Pointer Tilt 角度
输入 0~30
输出
返回值
_images/5.1.3.9.png 功能 获取arm model Pointer Tilt 角度
输入
输出 Pointer Tilt 角度
返回值
_images/5.1.3.10.png 功能 选择运动控制器的跟踪环节
输入 Wrist-手腕,Elbow-手肘,Shoulder-肩膀
输出
返回值
_images/5.1.3.11.png 功能 获取运动控制器当前使用的环节
输入
输入 Wrist-手腕,Elbow-手肘,Shoulder-肩膀
返回值
_images/5.1.3.12.png 功能 循环切换运动控制器的跟踪关节,依次为手腕、手肘、肩膀
输入
输出
返回值
_images/5.1.3.13.png 功能 获取手柄电量
输入
输出 电量等级为1~5,返回5时,电量最高。
返回值
_images/5.1.3.14.png 功能 获取手柄的位置和方向
输入
输出 手柄的位置和方向
返回值

5.2 Pico Neo2/ Neo3

5.2.1 使用指南

  1. 给游戏中的默认Pawn类添加两个MotionController组件,分别命名为MotionController_Left、MotionController_Right,使其与Camera组件同级:
_images/5.14.1.png

图5.6 添加MotionController组件

  1. 选中MotionController_Left,在其细节面板中找到Hand属性,将其修改为Left,如此以来该组件将跟随主手柄运动:
_images/5.14.2.png

图5.7 设置Hand属性

  1. 同样,对于MotionController_Right,则需将其Hand属性设置为Right。
  2. 为MotionController添加模型:

进入MotionController细节面板的Visualization子项下添加模型(同样需勾选“Show Plugin Content”方可显示):

_images/5.14.3_2.png

图5.8 添加控制器模型

需要说明的是,在我们的插件目录下,我们将带按键动画的手柄封装成了Actor,如想复用请将其附加到您关卡中的Pawn或Character上。

5.2.2 Pico Neo2输入说明

Pico Neo2控制器所用按键相应的蓝图节点驱动事件如下:

_images/5.2.2.1.png 左手 _images/5.2.2.2.png _images/5.2.2.3.png
右手 _images/5.2.2.4.png _images/5.2.2.5.png
_images/5.2.2.6.png 左手 _images/5.2.2.7.png _images/5.2.2.8.png
右手 _images/5.2.2.9.png _images/5.2.2.10.png
_images/5.2.2.11.png 左手 _images/5.2.2.12.png _images/5.2.2.13.png
右手 _images/5.2.2.14.png _images/5.2.2.15.png
_images/5.2.2.16.png 左手 _images/5.2.2.17.png _images/5.2.2.18.png
右手 _images/5.2.2.19.png _images/5.2.2.20.png
_images/5.2.2.21.png 左手 _images/5.2.2.22.png _images/5.2.2.23.png
右手 _images/5.2.2.24.png _images/5.2.2.25.png
_images/5.2.2.26.png 左手 _images/5.2.2.27.png _images/5.2.2.28.png
右手 _images/5.2.2.29.png _images/5.2.2.30.png
_images/5.2.2.31.png 左手 _images/5.2.2.32.png _images/5.2.2.33.png
右手 _images/5.2.2.34.png _images/5.2.2.35.png

Pico Neo2系列控制器的轴输入分为触摸板与扳机,触摸板的示意图如下:

_images/5.4.png

图5.9 Pico Neo2控制器触摸板示意图

5.2.3 Pico Neo3输入说明

Pico Neo3控制器所用按键相应的蓝图节点驱动事件如下:

_images/5.36.png

图5.10 按键映射图(前视图)

_images/5.37.png

图5.11按键映射图(侧视图)

Neo3控制器特有的按键相应的蓝图节点驱动事件如下:

Home 左手 _images/5.2.3.1.png _images/5.2.3.2.png
右手 _images/5.2.3.3.png _images/5.2.3.4.png
Menu 左手 _images/5.2.3.5.png _images/5.2.3.6.png
右手 _images/5.2.3.7.png _images/5.2.3.8.png
Trigger 左手 _images/5.2.3.9.png _images/5.2.3.10.png
右手 _images/5.2.3.11.png _images/5.2.3.12.png
Grip 左手 _images/5.2.3.13.png _images/5.2.3.14.png
右手 _images/5.2.3.15.png _images/5.2.3.16.png
X/A 左手 _images/5.2.3.17.png _images/5.2.3.18.png
右手 _images/5.2.3.19.png _images/5.2.3.20.png
Y/B 左手 _images/5.2.3.21.png _images/5.2.3.22.png
右手 _images/5.2.3.23.png _images/5.2.3.24.png
Joystick 左手 _images/5.2.3.25.png _images/5.2.3.26.png
右手 _images/5.2.3.27.png _images/5.2.3.28.png

X CapTouch

A CapTouch

左手 _images/5.2.3.29.png _images/5.2.3.30.png
右手 _images/5.2.3.31.png _images/5.2.3.32.png

Y CapTouch

B CapTouch

左手 _images/5.2.3.33.png _images/5.2.3.34.png
右手 _images/5.2.3.35.png _images/5.2.3.36.png

Joystick

CapTouch

左手 _images/5.2.3.37.png _images/5.2.3.38.png
右手 _images/5.2.3.39.png _images/5.2.3.40.png

Trigger

CapTouch

左手 _images/5.2.3.41.png _images/5.2.3.42.png
右手 _images/5.2.3.43.png _images/5.2.3.44.png
Grip Axis 左手 _images/5.2.3.45.png _images/5.2.3.46.png
右手 _images/5.2.3.47.png _images/5.2.3.48.png

Pico Neo3系列控制器的轴输入分为触摸板与扳机,触摸板的示意图如下:

_images/5.4.png

图5.12 Pico Neo3控制器触摸板示意图

分别可通过如下蓝图节点获取主、副手柄触摸板的的值:

_images/5.15.png

图5.13 触摸板/摇杆相关蓝图节点

_images/5.15.1.png

图5.14 触摸板/摇杆相关蓝图节点2

扳机的输入范围为0~1,可通过如下蓝图节点获取主、副(左、右)手柄的扳机输入值:

_images/5.16.png

图5.15 扳机相关蓝图节点

5.2.4 相关蓝图节点

对于Pico Neo系列控制器,我们以蓝图节点的形式提供了若干API,在事件图表中点击鼠标右键,展开Pico Neo->Controller,可以看到这些API:

_images/5.20.png

图5.16 Pico Neo控制器API

这些API的详细用法如下:

_images/5.2.4.1.png 功能 设置手柄断开、回连时的自定义事件
输入 OnMainControllerConnect:主手柄回连 OnMainControllerDisconnect:主手柄断开 OnSubControllerConnect:副手柄回连 OnSubControllerDisconnect:副手柄断开
输出
返回值
_images/5.2.4.2.png 功能 获取主手柄的电量
输入
输出 主手柄的电量,1~5
返回值 True:获取成功 False:获取失败
_images/5.2.4.3.png 功能 获取副手柄的电量
输入
输出 主手柄的电量,1~5
返回值 True:获取成功 False:获取失败
_images/5.2.4.4.png 功能 判断主手柄是否链接
输入
输出
返回值 true-链接,false-未连接
_images/5.2.4.5.png 功能 判断副手柄是否链接
输入
输出
返回值 true-链接,false-未连接
_images/5.2.4.6.png 功能 判断主手柄是否支持6Dof跟踪
输入
输出
返回值 true-支持,false-不支持(即为3Dof跟踪)
_images/5.2.4.7.png 功能 判断副手柄是否支持6Dof跟踪
输入
输出
返回值 true-支持,false-不支持(即为3Dof跟踪)
_images/5.2.4.8.png 功能 设置主手柄arm model
输入 arm model相关参数
输出
返回值
_images/5.2.4.9.png 功能 获取主手柄arm model
输入
输出 arm model相关参数
返回值
_images/5.2.4.10.png 功能 设置副手柄arm model
输入 arm model相关参数
输出
返回值
_images/5.2.4.11.png 功能 获取副手柄arm model
输入
输出 arm model相关参数
返回值
_images/5.2.4.12.png 功能 震动主手柄(Neo2左手柄)
输入
输出
返回值
_images/5.2.4.13.png 功能 震动副手柄(Neo2右手柄)
输入
输出
返回值
_images/5.2.4.14.png 功能 Neo2手柄震动
输入 Strength 震动强度,范围 0–1 Time 震动时间,范围0–65535 ms Hand:0 左手柄,1 右手柄
输出
返回值

注意: 该接口同样适用于Neo 3

_images/5.2.4.15.png 功能 获取Neo2惯用手
输入
输出 0-左 1-右
返回值
_images/5.2.4.16.png 功能 获取Neo2左手柄线加速度或Neo主手柄的线加速度
输入
输出 线加速度,单位mm/s^2
返回值
_images/5.2.4.17.png 功能 获取Neo2右手柄线加速度或Neo副手柄的线加速度
输入
输出 线加速度,单位mm/s^2
返回值
_images/5.2.4.18.png 功能 获取Neo2左手柄角速度或Neo主手柄的角速度
输入
输出 角速度,单位rad/s
返回值
_images/5.2.4.19.png 功能 获取Neo2右手柄角速度或Neo副手柄的角速度
输入
输出 角速度,单位rad/s
返回值
_images/5.2.4.20.png 功能 获取Neo2左手柄的线速度
输入
输出 线速度,单位mm/s
返回值
_images/5.2.4.21.png 功能 获取Neo2右手柄的线速度
输入
输出 线速度,单位mm/s
返回值

5.2.5 安全边界

接口见6.2章节。

5.2.6 关闭位置追踪功能

如需开发3Dof应用,可以关闭位置追踪功功能,请执行如下操作:

打开菜单Edit->Project Settings…,找到Plugins子项,根据需要对以下的两个选项进行勾选:

_images/5.21.png

图5.17 Neo2 6 Dof选项

5.2.7 模型角度调整

Pico Neo3手柄硬件结构与Pico Neo2不同,Pico Neo3手柄握持与水平方向有一个34度的夹角,如下图。

_images/5.2.7.png

图5.18 Pico手柄角度示意图

新版本SDK为了支持Pico Neo3应用在Pico Neo2上的兼容,对手柄模型增加了角度的调整,以保证Neo3上开发的应用可以在Neo2上正常使用;如果您需要使用新SDK在Neo2上开发应用,则需要对模型角度作调整,您需要将俯仰角调整34度。

5.3 Pico一体机按键

下表是Pico一体机上的按键与UE里的键值对应关系。

HMD按键 UE输入键
确认键 _images/5.21.1.png
Home键 Android标准 HOME(被系统占用)
音量加键 Android标准VOLUME_UP
音量减键 Android标准VOLUME_DOWN
返回键 Android标准BACK