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

相关文章

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

C#图表开发之Chart详解

《C#图表开发之Chart详解》C#中的Chart控件用于开发图表功能,具有Series和ChartArea两个重要属性,Series属性是SeriesCollection类型,包含多个Series对... 目录OverviChina编程ewSeries类总结OverviewC#中,开发图表功能的控件是Char

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom