HoloLens2基础交互功能开发(一):3D对象操纵

1. 3D对象导入

1.1 Unity3d支持的三维模型格式

种类 网络 材质 动画 骨骼
Maya的.mb和.mal格式
3D Studio Max的.maxl格式
Cinema 4D的.c4dl 2格式
Autodesk FBX的.dae格式

大部分都采用FBX格式的三维模型

2. 3D对象放置

  • MRTK建立了一种以MixedRealityPlayspace中的Main Camera为中心的三维坐标系,摄像头代表用户的头部.
  • Unity中的1个单位在物理世界中大约为1米

3. 3D对象操纵

3.1 实现步骤

实现的主要步骤是:

  1. 添加Collider 组件, 例如:Box Collider
  2. 添加Object Manipulator (Script)组件
  3. 添加NearInteractionGrabbable组件
  4. 按需(是/否 需要边框)添加BoundsControl组件

HoloLens2基础交互功能开发(一):3D对象操纵_第1张图片

3.2 Object Manipulator (Script)组件

3.2.1 组件功能
  • 使用一/两个手实现对象的移动、扩展、旋转
  • 可以将对象操纵器配置为控制对象如何响应各种输入。
  • 该脚本应适用于大多数形式的交互,例如HoloLens 2关节手,HoloLens 2手射线
3.2.2 组件使用注意事项
  • 首先确保向对象添加碰撞器,使其与可抓取边界匹配。
  • 要使对象对手势输入的响应更精准,请同时添加NearInteractionGrabbable脚本。
  • 可以通过向对象添加刚体组件,启用对象操纵器的物理行为。
  • 可以通过向对象添加操纵约束组件来约束操纵。
3.2.3 组件属性

对象操纵器| 混合现实工具包文档

操纵事件:

  • OnManipulationStarted:操作开始时触发。
  • OnManipulationEnded:操作结束时触发。
  • OnHoverStarted:当手/控制器将可操纵的鼠标悬停在附近或远处时触发。
  • OnHoverEnded:当手/控制器将可操作的,接近或远离的鼠标悬停时触发。

用于操作的事件触发顺序为:
OnHoverStarted- > OnManipulationStarted- > OnManipulationEnded- > OnHoverEnded

如果不进行任何操作,您仍然会按照以下触发顺序获得悬停事件:
OnHoverStarted- > OnHoverEnded

3.3 NearInteractionGrabbable组件

功能:向任何具有可碰撞对象的GameObject添加一个NearInteractionGrabbable组件,以使该可碰撞对象接近可抓取对象。

Class NearInteractionGrabbable | Mixed Reality Toolkit Documentation

3.4 BoundsControl组件

3.4.1 功能

  • 该BoundsControl.cs脚本提供了在混合现实中转换对象的基本功能。
  • 边界控件将在全息图周围显示一个框,以指示可以与之交互。盒子角落和边缘上的手柄允许缩放,旋转或平移对象。
  • bounds控件也会对用户输入做出反应。例如,在HoloLens 2上,bounds控件响应手指的接近程度,提供视觉反馈以帮助感知与对象的距离。

3.4.2 主要组件属性

3.4.2.1 Activation behavior属性

有几个选项可以激活边界控制接口:

  • 在开始时激活:一旦场景开始,边界控制就可见。
  • 近距离激活:当关节的手靠近物体时,边界控制变得可见。
  • 指针激活:当指针指向边界时,边界控制变得可见。
  • 由接近和指针激活:边界控制变得可见时,它是由一个手射线指针或一个铰接的手接近对象。
  • 手动激活:边界控件不会自动可见。你可以手动操作
3.4.2.2 Bounds override属性

对于复杂对象,自动边界计算的行为可能不符合预期。使用现有的BoxCollider(甚至在子对象上)手动确定边界控制的边界

3.4.2.3 Visuals属性

当前的边界控制提供配置对象选项为以下功能:

  • Handles:Scale handles/Rotation handles/Translation handles
  • Links / Wireframe
  • Box display
  • Proximity effect

HoloLens2 style得边框属性风格:
HoloLens2基础交互功能开发(一):3D对象操纵_第2张图片

你可能感兴趣的:(HoloLens2,hololens,unity3d)