5 各硬件产品开发指南¶
本章将介绍SDK在Pico各硬件产品上的使用方法,开发者根据需要选择看相应内容即可。
5.1 G2/G2 4K¶
5.1.1 使用指南¶
使用Pico G2控制器,请遵循如下步骤:
1、给游戏中的默认Pawn类添加MotionController组件,使其与Camera组件同级:
图5.1 添加MotionController组件
该组件不受Hand属性的影响,如更换左右手,请去系统设置中修改。
图5.2 勾选Disable Low Latency Update
打包安装后,该组件将跟随Pico 手柄的位置/姿态运动。
2、为MotionController添加模型:
进入MotionController细节面板的Visualization子项下添加模型(同样需勾选“Show Plugin Content”方可显示):
图5.3添加Pico控制器模型
需要说明的是,在我们的插件目录下,我们将带按键动画的手柄封装成了Actor,如想复用请将其附加到您关卡中的Pawn或Character上。
5.1.2 输入说明¶
1. 按键说明¶
Pico G2控制器按键如下:
G2控制器按键 | 输入绑定 | 蓝图节点 |
---|---|---|
G2系列控制器的轴输入仅含触摸板,触摸板的示意图如下:
图5.4 G2系列控制器示意图
通过如下节点可获得相应的输入值:
图5.5 获取触摸板轴值的方法
5.1.3 相关蓝图节点¶
对于G2控制器,我们还提供了如下蓝图接口:
功能 | 设置手柄连接断开及重连的响应事件 | |
输入 | OnPicoControllerConnected:重连时的响应事件 OnPicoControllerDisconnected:断开时响应事件 | |
输出 | 无 | |
返回值 | 无 |
功能 | 设置arm Model Gaze模式 | |
输入 | Gaze模式 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取arm Model Gaze模式 | |
输入 | 无 | |
输出 | Gaze模式 | |
返回值 | 无 |
功能 | 设置arm model 肘高度 | |
输入 | 肘高度偏移量0~0.2 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取arm model 肘高度 | |
输入 | 无 | |
输出 | 肘高度偏移量 | |
返回值 | 无 |
功能 | 设置arm model 肘深度 | |
输入 | 肘深度偏移量0~0.2 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取arm model 肘深度 | |
输入 | 无 | |
输出 | 肘深度偏移量 | |
返回值 | 无 |
功能 | 设置arm model Pointer Tilt 角度 | |
输入 | 0~30 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取arm model Pointer Tilt 角度 | |
输入 | 无 | |
输出 | Pointer Tilt 角度 | |
返回值 | 无 |
功能 | 选择运动控制器的跟踪环节 | |
输入 | Wrist-手腕,Elbow-手肘,Shoulder-肩膀 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取运动控制器当前使用的环节 | |
输入 | 无 | |
输入 | Wrist-手腕,Elbow-手肘,Shoulder-肩膀 | |
返回值 | 无 |
功能 | 循环切换运动控制器的跟踪关节,依次为手腕、手肘、肩膀 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取手柄电量 | |
输入 | 无 | |
输出 | 电量等级为1~5,返回5时,电量最高。 | |
返回值 | 无 |
功能 | 获取手柄的位置和方向 | |
输入 | 无 | |
输出 | 手柄的位置和方向 | |
返回值 | 无 |
5.2 Pico Neo2/ Neo3¶
5.2.1 使用指南¶
- 给游戏中的默认Pawn类添加两个MotionController组件,分别命名为MotionController_Left、MotionController_Right,使其与Camera组件同级:
图5.6 添加MotionController组件
- 选中MotionController_Left,在其细节面板中找到Hand属性,将其修改为Left,如此以来该组件将跟随主手柄运动:
图5.7 设置Hand属性
- 同样,对于MotionController_Right,则需将其Hand属性设置为Right。
- 为MotionController添加模型:
进入MotionController细节面板的Visualization子项下添加模型(同样需勾选“Show Plugin Content”方可显示):
图5.8 添加控制器模型
需要说明的是,在我们的插件目录下,我们将带按键动画的手柄封装成了Actor,如想复用请将其附加到您关卡中的Pawn或Character上。
5.2.2 Pico Neo2输入说明¶
Pico Neo2控制器所用按键相应的蓝图节点驱动事件如下:
左手 | |||
右手 |
左手 | |||
右手 |
左手 | |||
右手 |
左手 | |||
右手 |
左手 | |||
右手 |
左手 | |||
右手 |
左手 | |||
右手 |
Pico Neo2系列控制器的轴输入分为触摸板与扳机,触摸板的示意图如下:
图5.9 Pico Neo2控制器触摸板示意图
5.2.3 Pico Neo3输入说明¶
Pico Neo3控制器所用按键相应的蓝图节点驱动事件如下:
图5.10 按键映射图(前视图)
图5.11按键映射图(侧视图)
Neo3控制器特有的按键相应的蓝图节点驱动事件如下:
Home | 左手 | ||
右手 |
Menu | 左手 | ||
右手 |
Trigger | 左手 | ||
右手 |
Grip | 左手 | ||
右手 |
X/A | 左手 | ||
右手 |
Y/B | 左手 | ||
右手 |
Joystick | 左手 | ||
右手 |
X CapTouch A CapTouch |
左手 | ||
右手 |
Y CapTouch B CapTouch |
左手 | ||
右手 |
Joystick CapTouch |
左手 | ||
右手 |
Trigger CapTouch |
左手 | ||
右手 |
Grip Axis | 左手 | ||
右手 |
Pico Neo3系列控制器的轴输入分为触摸板与扳机,触摸板的示意图如下:
图5.12 Pico Neo3控制器触摸板示意图
分别可通过如下蓝图节点获取主、副手柄触摸板的的值:
图5.13 触摸板/摇杆相关蓝图节点
图5.14 触摸板/摇杆相关蓝图节点2
扳机的输入范围为0~1,可通过如下蓝图节点获取主、副(左、右)手柄的扳机输入值:
图5.15 扳机相关蓝图节点
5.2.4 相关蓝图节点¶
对于Pico Neo系列控制器,我们以蓝图节点的形式提供了若干API,在事件图表中点击鼠标右键,展开Pico Neo->Controller,可以看到这些API:
图5.16 Pico Neo控制器API
这些API的详细用法如下:
功能 | 设置手柄断开、回连时的自定义事件 | |
输入 | OnMainControllerConnect:主手柄回连 OnMainControllerDisconnect:主手柄断开 OnSubControllerConnect:副手柄回连 OnSubControllerDisconnect:副手柄断开 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取主手柄的电量 | |
输入 | 无 | |
输出 | 主手柄的电量,1~5 | |
返回值 | True:获取成功 False:获取失败 |
功能 | 获取副手柄的电量 | |
输入 | 无 | |
输出 | 主手柄的电量,1~5 | |
返回值 | True:获取成功 False:获取失败 |
功能 | 判断主手柄是否链接 | |
输入 | 无 | |
输出 | 无 | |
返回值 | true-链接,false-未连接 |
功能 | 判断副手柄是否链接 | |
输入 | 无 | |
输出 | 无 | |
返回值 | true-链接,false-未连接 |
功能 | 判断主手柄是否支持6Dof跟踪 | |
输入 | 无 | |
输出 | 无 | |
返回值 | true-支持,false-不支持(即为3Dof跟踪) |
功能 | 判断副手柄是否支持6Dof跟踪 | |
输入 | 无 | |
输出 | 无 | |
返回值 | true-支持,false-不支持(即为3Dof跟踪) |
功能 | 设置主手柄arm model | |
输入 | arm model相关参数 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取主手柄arm model | |
输入 | 无 | |
输出 | arm model相关参数 | |
返回值 | 无 |
功能 | 设置副手柄arm model | |
输入 | arm model相关参数 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取副手柄arm model | |
输入 | 无 | |
输出 | arm model相关参数 | |
返回值 | 无 |
功能 | 震动主手柄(Neo2左手柄) | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 震动副手柄(Neo2右手柄) | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | Neo2手柄震动 | |
输入 | Strength 震动强度,范围 0–1 Time 震动时间,范围0–65535 ms Hand:0 左手柄,1 右手柄 | |
输出 | 无 | |
返回值 | 无 |
注意: 该接口同样适用于Neo 3
功能 | 获取Neo2惯用手 | |
输入 | 无 | |
输出 | 0-左 1-右 | |
返回值 | 无 |
功能 | 获取Neo2左手柄线加速度或Neo主手柄的线加速度 | |
输入 | 无 | |
输出 | 线加速度,单位mm/s^2 | |
返回值 | 无 |
功能 | 获取Neo2右手柄线加速度或Neo副手柄的线加速度 | |
输入 | 无 | |
输出 | 线加速度,单位mm/s^2 | |
返回值 | 无 |
功能 | 获取Neo2左手柄角速度或Neo主手柄的角速度 | |
输入 | 无 | |
输出 | 角速度,单位rad/s | |
返回值 | 无 |
功能 | 获取Neo2右手柄角速度或Neo副手柄的角速度 | |
输入 | 无 | |
输出 | 角速度,单位rad/s | |
返回值 | 无 |
功能 | 获取Neo2左手柄的线速度 | |
输入 | 无 | |
输出 | 线速度,单位mm/s | |
返回值 | 无 |
功能 | 获取Neo2右手柄的线速度 | |
输入 | 无 | |
输出 | 线速度,单位mm/s | |
返回值 | 无 |
5.2.5 安全边界¶
接口见6.2章节。
5.2.6 关闭位置追踪功能¶
如需开发3Dof应用,可以关闭位置追踪功功能,请执行如下操作:
打开菜单Edit->Project Settings…,找到Plugins子项,根据需要对以下的两个选项进行勾选:
图5.17 Neo2 6 Dof选项
5.2.7 模型角度调整¶
Pico Neo3手柄硬件结构与Pico Neo2不同,Pico Neo3手柄握持与水平方向有一个34度的夹角,如下图。
图5.18 Pico手柄角度示意图
新版本SDK为了支持Pico Neo3应用在Pico Neo2上的兼容,对手柄模型增加了角度的调整,以保证Neo3上开发的应用可以在Neo2上正常使用;如果您需要使用新SDK在Neo2上开发应用,则需要对模型角度作调整,您需要将俯仰角调整34度。
5.3 Pico一体机按键¶
下表是Pico一体机上的按键与UE里的键值对应关系。
HMD按键 | UE输入键 |
---|---|
确认键 | |
Home键 | Android标准 HOME(被系统占用) |
音量加键 | Android标准VOLUME_UP |
音量减键 | Android标准VOLUME_DOWN |
返回键 | Android标准BACK |