Unity Leap开发-核心Leap组件

在Unity环境中获取Hands的最快方法是使用Leap Rig预制件(用于VR / AR应用程序)或LeapHandController预制件(用于非VR / AR应用程序)。

 

The Providers

LeapProvider定义了我们的模块期望用于检索Frame数据的基本接口。这种抽象允许您创建自己的LeapProviders,这在Leap Controller硬件不能立即进行测试或开发时非常有用。

LeapServiceProvider是与您平台上运行的Leap服务通信的类,它为您的应用程序提供包含Leap hands的Frame对象。通常,任何需要来自传感器的Hand数据的类都需要引用LeapServiceProvider来获取该数据。

LeapXRServiceProvider是您应该用于XR应用程序的专用组件。将此组件直接放在您的XR相机上,这样它就可以正确地解决传感器和耳机姿势跟踪之间的跟踪时序差异。

最后,如果您的应用程序需要手动构建标准Hand管道的手数据或过滤通过LeapServiceProvider传递的手数据,则PostProcessProvider是一个方便的抽象类,您可以使用单个函数定义来实现。

The standard Hand pipeline(标准的Hand管道

Hand Model Manager通过Hand Models提供标准的Leap Hand数据流,主要用于驱动3D手模型的可视化表示,例如Capsule HandsRigged Hands

为了使Hand Model Manager能够运行,您必须将组添加到其Model Pool中 - 对于您打算在应用程序中使用的每对图形IHandModel或HandModel。

我们的标准钻机预制件将Hand Model Manager作为根Leap Rig对象的直接子项并作为主摄像机的兄弟。如果玩家的原始空间(Leap Rig变换)在场景周围移动,这可以防止手漂移。

Leap Motion XR rigs

使用Capsule Hands的基本XR装备设置。

大跃进钻机预制是一个现成的XR装备,让你开始建立使用Leap Motion的XR应用。它由以下对象组成:

飞跃钻机是根对象。如果你想在XR空间中移动你的玩家,这就是你应该操纵的变换。默认情况下,此对象包含可选的XRHeightOffset脚本,它提供了一种简单的方法,可以让您的播放器在Unity内置的不同XR平台上保持一致的高度。

主摄像机是大跃进钻机的直接孩子。它的本地位置和旋转由Unity的XR集成直接控制; 你将无法手动移动它(为此,你应该移动它的父级,Leap Rig,有时称为你的摄像机装备或只是你的“装备”)。

所述 LeapXRServiceProvider部件直接连接到主摄像机。它是一种特殊类型的LeapServiceProvider,可从传感器检索手部数据,还可以解释传感器与耳机姿势跟踪之间的延迟差异。(如果您在耳机中快速环顾四周,这可以防止被跟踪的手漂移。)

手模型管理的对象是主摄像机的兄弟,是你所有的HandModels,如父对象胶囊手操纵手

任何其他以玩家为中心的对象,例如Attachment Hands预制件,交互引擎中交互管理器预制件,或您自己的自定义播放器对象,也可以作为主摄像头的兄弟姐妹。

A basic set of Leap hands(一套基本的双手

这些指针可以立即为您提供原型设计,甚至可以满足简单XR应用程序的所有需求。

HandModel实现

HandModel实现由Hand Pool自动合并,但必须手动添加为Hand Pool中的组才能运行。放入预制件,然后在HandPool组件中添加对预制件的引用,以使这些指针呈现。

Rigged Hands

作为Core资产的最新成员, Rigged Hands是我们在构建演示或VR内容时在Leap使用的标准手。它们被实现为HandModels,这意味着它们需要作为一个组添加到LeapHandController对象的HandPool中才能运行。如果您对使用带有SkinnedMeshRenderer的自定义手形网格感兴趣,与Rigged Hands类似,则需要查看 Hands Module

注意:要使Rigged Hands看起来正确,您需要将您的设置设置Quality Settings/Other/Blend Weights为“4 Bones”(全局质量设置)或覆盖Skinned Mesh Renderers'Quality设置为“4 Bones”(覆盖Rigged Hands的质量设置,应该打开默认情况下)。如果你不这样做,那么被操纵的手会在手掌上出现奇怪的伸展。

胶囊手 (Capsule Hands

胶囊手生成一组球体和圆柱体来渲染使用大跃进第一手资料的手。它们以程序方式呈现Leap手中的所有原始数据。对CapsuleHand进行相对较小的更改。脚本,您可以快速创建一组符合您的应用程序的视觉风格的手。

Attaching objects to hand joints(将物体附着到手关节

                                 

                                                  附件手(Attachment Hands

Attachment Hands本身通常不用于举手; 相反,您可以将AttachmentHands预制件作为主摄像机的同级进行拖动,并使用脚本自动生成的变换来轻松地将对象附加到Leap指针或引用手上的特定目标关节。要将对象附加到手上,只需将其拖动为要将其附加到的关节的子项,然后根据需要对齐它。Attachment Hands不是手模型,因此不需要将它们添加到手模型管理器的模型池中来运行,它们只需要在场景中实现LeapProvider(例如 LeapServiceProvider)。

你可能感兴趣的:(unity,Unity,LeapMontion,Leap)