关于控制器臂模型Daydream的NDK指南

时间:2017-01-12 20:26:18

标签: google-vr google-vr-sdk

我需要一些关于如何按照以下要求为Daydream控制器实现Arm模型的指导:https://developers.google.com/vr/distribute/daydream/design-requirements#UX-C1

背景/问题: 我正在尝试使用Android NDK和Pixel的控制器交互开发一个白日梦应用程序,使用来自[1]等参考的ControllerApi。但是,似乎没有任何我们可以在Android Daydream SDK / NDK中使用的GVR Arm Model辅助类,也没有关于Daydream的SDK文档站点的任何文档指南。

因此,我的问题是:

1)是否有GVR Arm Model辅助类,或者这是开发人员单独实现的东西吗?如果是后者,是否有关于如何做到这一点的文件?

2)如果我们自己实现它,我们可以通过假设来简化问题:

  • 绝对空间中的肘关节的固定点(假定的Vector3f位置)
  • 前臂和手臂长度 那么根据手腕+肘部周围的旋转来计算控制器的位置/旋转?或者是否有单独的推荐方法?

[1] - https://developers.google.com/vr/android/ndk/reference/group/controller#gvr_controller_state_create

1 个答案:

答案 0 :(得分:0)

  

1)是否有GVR Arm Model辅助类,或者这是开发人员单独实现的东西吗?如果是后者,是否有关于如何做到这一点的文件?

Android NDK中不包含GVR Arm Model辅助类。但是,Unreal和Unity Daydream集成都内置了可以使用的Arm Model代码。我建议使用作为Unreal的一部分包含的arm模型的C ++版本。 arm模型不依赖于Unreal代码,因此您应该能够将其集成到您的应用程序中,而无需进行过多的重构。

虚幻中的C ++ Arm模型就像Daydream Home中的arm模型一样。它暴露了相对于用户头部的手腕位置和手腕旋转,以及推荐控制器的α值,使得它不会不舒服地夹在用户的头部。它还提供了一个角度,激光应该从手腕向下倾斜,以便在指向物体时符合人体工程学的舒适度。有关Arm模型的更多信息,请访问:https://developers.google.com/vr/unity/controller-support

  

2)如果我们自己实现它,我们可以通过假设来简化问题:

我强烈建议您使用虚幻C ++ Arm模型作为起点,但是您应该随意修改并调整它以满足应用程序的需要。