Unity Leap开发-核心Leap组件

2024-01-06 04:08
文章标签 组件 开发 unity 核心 leap

本文主要是介绍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

Basic_XR_Rig.png

使用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组件中添加对预制件的引用,以使这些指针呈现。

RiggedHands.png

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的质量设置,应该打开默认情况下)。如果你不这样做,那么被操纵的手会在手掌上出现奇怪的伸展。

CapsuleHands.png

胶囊手 (Capsule Hands

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

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

                                 AttachmentHands.png

                                                  附件手(Attachment Hands

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

这篇关于Unity Leap开发-核心Leap组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/575165

相关文章

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

详解MySQL中DISTINCT去重的核心注意事项

《详解MySQL中DISTINCT去重的核心注意事项》为了实现查询不重复的数据,MySQL提供了DISTINCT关键字,它的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据... 目录DISTINCT 六大注意事项1. 作用范围:所有 SELECT 字段2. NULL 值的特殊处

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

java中Optional的核心用法和最佳实践

《java中Optional的核心用法和最佳实践》Java8中Optional用于处理可能为null的值,减少空指针异常,:本文主要介绍java中Optional核心用法和最佳实践的相关资料,文中... 目录前言1. 创建 Optional 对象1.1 常规创建方式2. 访问 Optional 中的值2.1

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解