- 联系我们
- 技术支持: vrsupport@qiyi.com
- 商务合作: business@iqiyismart.com
- 人才招聘: 查看职位 >
- 公司地址:北京市朝阳区宏泰东街绿地中心B座11层
SDK提供了奇遇手柄的功能接口。同时开发者可参考Unreal提供的控件交互组件实现场景内模型交互:https://docs.unrealengine.com/4.27/zh-CN/InteractiveExperiences/UMG/UserGuide/WidgetInteraction/ (opens new window)
手柄的位置同步通过MotionController组件来实现,开发者可将控制器绑定在MotionController组件上:

在按键设置位置可以看到QIYUVRInput标签,奇遇手柄所用按键相应的蓝图节点驱动事件如下:

标签内包含了按键触发事件:

| 按键 | 手柄 | 输入事件 | |
|---|---|---|---|
| Home/Menu | 左手 | QIYU Touch (L) Menu | ![]() |
| 右手 | QIYU Touch (R) Home | ![]() | |
| Trigger | 左手 | QIYU Touch (L) Trigger | ![]() |
| 右手 | QIYU Touch (R) Trigger | ![]() | |
| Grip | 左手 | QIYU Touch (L) Grip | ![]() |
| 右手 | QIYU Touch (R) Grip | ![]() | |
| X | 左手 | QIYU Touch (L) X Press | ![]() |
| A | 右手 | QIYU Touch (R) A Press | ![]() |
| Y | 左手 | QIYU Touch (L) Y Press | ![]() |
| B | 右手 | QIYU Touch (R) B Press | ![]() |
| Joystick | 左手 | QIYU Touch (L) Thumbstick | ![]() |
| 右手 | QIYU Touch (R) Thumbstick | ![]() | |
| X Touch | 左手 | QIYU Touch (L) X Touch | ![]() |
| A Touch | 右手 | QIYU Touch (R) A Touch | ![]() |
| Y Touch | 左手 | QIYU Touch (L) Y Touch | ![]() |
| B Touch | 右手 | QIYU Touch (R) B Touch | ![]() |
| Joystick Touch | 左手 | QIYU Touch (L) Thumbstick Touch | ![]() |
| 右手 | QIYU Touch (R) Thumbstick Touch | ![]() |
| 函数名称 | 函数解释 | ||
|---|---|---|---|
| 手柄连接状态 | 左手 | ![]() | bool isConnect |
| 右手 | ![]() | ||
| trigger 力度 | 左手 | ![]() | int32 triggerForce |
| 右手 | ![]() | ||
| grip 力度 | 左手 | ![]() | int32 gripForce |
| 右手 | ![]() | ||
| 是否显示手柄 | 左手 | ![]() | bool isShow |
| 右手 | ![]() | ||
| 电池电量 | 左手 | ![]() | int32 BatteryLevel |
| 右手 | ![]() | ||
| 摇杆坐标 | 左手 | ![]() | FVector2D JoyStickPos |
| 右手 | ![]() | ||
| 手柄位置 | 左手 | ![]() | FVector Position |
| 右手 | ![]() | ||
| 手柄四元数[1] | 左手 | ![]() | FQuat Rotation |
| 右手 | ![]() | ||
| 线速度 | 左手 | ![]() | FVector velocity |
| 右手 | ![]() | ||
| 线加速度 | 左手 | ![]() | FVector acceleration |
| 右手 | ![]() | ||
| 角速度 | 左手 | ![]() | FVector angVelocity |
| 右手 | ![]() | ||
| 角加速度 | 左手 | ![]() | FVector angAcceleration |
| 右手 | ![]() |
[1] : 为了达到更自然的手柄交互体验,从v1.5.0开始,手柄旋转四元数值做了调整,将手柄握持杆斜向上35°的姿态作为初始值,如下图所示。如果您在应用中调整过手柄角度,在升级SDK后,需要将模型角度水平向上旋转35°,达到自然的握持姿势。

注:如果应用需要使用奇遇手柄图片,可从此处 (opens new window)下载资源。
请优先通过QIYUController Start Vibration实现手柄震动。
QIYU 接口

Amplitude:震动强度,取值范围0~1。
Duration:震动时长,单位为毫秒,取值范围 20~200000 (不支持设置小于20ms 的震动时长)。
注意:振幅(Amplitude)需要保证在0~1范围内

同时,SDK还支持了如下震动相关的引擎标准。

作用:调用该接口,手柄会根据对应的强度和频率,震动对应的手柄两秒。
输入参数:
Target:应该输入PlayerController的引用。
Frequency:震动频率,SDK暂不支持该配置项。
Amplitude:震动强度,范围0~1。
Hand:目前仅支持Left、Right。

作用:停止手柄震动。
输入参数:
Target:应该输入PlayerController的引用。
Hand:目前仅支持Left、Right。

作用:禁用手柄震动。
输入参数:
Target:应该输入PlayerController的引用。
New Disabled:是否禁用。