【Locomotor运动模块】抓取

文章目录

    • 前言
    • 一、主要组件及其设置
    • 二、案例:右手柄抓取立方体
    • 三、“次抓取” 五种方式
    • 四、“可交互物体” 的两个属性
        • 第一部分,FollowTracking
        • 第二部分,Grab Offset
    • 五、改变抓取点的位置

前言

参照B站VRTK4.0教程:L30 可以抓取的物体

一、主要组件及其设置

Interactor交互器 :设置Grab Action、Velocity Tracker
Interactable可交互物体:设置“主抓取”、“次抓取”

提示① 抓在手里的物体,被扔出去时,需要有初速度——初速度由Velocity Tracker速度跟踪器提供。

提示② 主抓取和次抓取是指在虚拟现实交互中,用户使用的主要抓取方式和次要抓取方式。主抓取通常是用户首选的抓取方式,用于操作物体或进行其他交互动作。次抓取是备用的抓取方式,当主抓取不可用或不方便使用时,用户可以选择使用次抓取。

二、案例:右手柄抓取立方体

1、RightControllerAlias右手柄别名下的Interactor交互器:
设置GrabAction:RightTrigger_Press 右手柄扳机键按下
设置Velocity Tracker:RightControllerAlias 右手柄别名

Interactable可交互物体:默认“主抓取”、“次抓取”都是Custom(用户自定义)

【Locomotor运动模块】抓取_第1张图片
【Locomotor运动模块】抓取_第2张图片

2、此时,是抓取不了的——需设置主抓取为Follow
Follow是说被抓取的物体,跟随交互器
【Locomotor运动模块】抓取_第3张图片

3、此时,右手柄松开扳机键,立方体没有掉落——原因:运行出现了错误——解决:次抓取,至少设置为None
【Locomotor运动模块】抓取_第4张图片

三、“次抓取” 五种方式

【Locomotor运动模块】抓取_第5张图片
【Locomotor运动模块】抓取_第6张图片

1、主抓取为Follow,次抓取为None——比如,右手柄抓取物体后,左手柄去抓,将抓不到

2、主抓取为Follow,次抓取为Follow——比如,右手柄抓取物体后,左手柄去抓,能抓到,但松开右手柄抓取键,左手柄上的物体会掉

3、主抓取为Follow,次抓取为Swap(交换)——比如,右手柄抓取物体后,左手柄去抓,能抓到,但松开右手柄抓取键,左手柄上的物体不会掉

4、主抓取为Follow,次抓取为ControlDirection——比如,比如,右手柄抓取物体后,左手柄可以拨动物体,改变它的旋转

5、主抓取为Follow,次抓取为Scale——比如,比如,右手柄抓取物体后,左手柄可以拉动物体,改变它的尺寸

四、“可交互物体” 的两个属性

第一部分,FollowTracking

里面不同选项的区别
【Locomotor运动模块】抓取_第7张图片

1FollowTransform能随意穿过带Collider的物体,
2FollowRigidbody碰撞穿不了
3FollowRigidbodyForceRotate效果像是手柄和被抓取物体有根橡皮筋相连,注意得同时修改Grab Offset,下图两项都可以
【Locomotor运动模块】抓取_第8张图片

4FollowTransformPositionDiffrenceRotation手柄围着物体转圈,物体跟着转(但抓不起来)
5FollowRotateAroundAngularVelocity晃动手柄时,物体绕着某个轴进行旋转(轴可全部勾选)
示例如下图——只围绕Y轴进行旋转
【Locomotor运动模块】抓取_第9张图片

第二部分,Grab Offset

【Locomotor运动模块】抓取_第10张图片
None/OritentationHandle时,默认抓取的点,是“交互器”里的GrabAttachPoint (下图一)
PrecisionPoint/ForcePrecisionPoint则是“交互器”里的PrecisionAttachPoint(下图二)(PrecisionPoint、ForcePrecisionPoint区别,留)
【Locomotor运动模块】抓取_第11张图片
【Locomotor运动模块】抓取_第12张图片

五、改变抓取点的位置

1、改变交互器里,
抓取点GrabAttachPoint的位置(GrabOffset抓取偏移是None或OrientationHandle时)

抓取点PrecisionAttachPoint的位置(GrabOffset抓取偏移是PrecisionPoint或ForcePrecisionPoint时)
示例:视图里手柄抓取物体时,不一定恰巧贴合物体(如下图)——可通过改变GrabAttachPoint的位置,使之贴合
【Locomotor运动模块】抓取_第13张图片
【Locomotor运动模块】抓取_第14张图片

2、改变交互物体
如果其它的可抓取物体与手柄贴合的都很好,只有当下的,没贴合好——就只能改变当下“可交互物体”里相应点的位置了
示例:GrabOffset是rientationHandle时,可以通过其下的ShowOrientationContainer按钮找到相应的点,然后进行修改
【Locomotor运动模块】抓取_第15张图片

你可能感兴趣的:(VRTK4.0,抓取,主抓取,次抓取)