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

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python进阶之列表推导式的10个核心技巧

《Python进阶之列表推导式的10个核心技巧》在Python编程中,列表推导式(ListComprehension)是提升代码效率的瑞士军刀,本文将通过真实场景案例,揭示列表推导式的进阶用法,希望对... 目录一、基础语法重构:理解推导式的底层逻辑二、嵌套循环:破解多维数据处理难题三、条件表达式:实现分支

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块