【Locomotor运动模块】攀爬

文章目录

    • 一、攀爬主体“伪身体”
        • 1、“伪身体”的设置
        • 2、“伪身体”和“真实身体”,为什么同步移动
        • 3、“伪身体”和“真实身体”,碰到墙时不同步的原因
            • ①现象
            • ②原因
            • ③解决
    • 二、攀爬
        • 1、需要的组件:“伪身体”、Climbing、Climbable及Interactor
        • 2、联系和设置
    • 二、爬不上墙头的原因及解决方法
        • 1、原因
        • 2、解决方法
        • 另外,加一座山

一、攀爬主体“伪身体”

1、“伪身体”的设置

①它追踪(Tracking)的“源头”(Source)是头盔(HeadSet)——也就是说,跟着谁动——伪身体跟随头盔
OffSet偏移(为什么是PlayAreaAlias,留有疑问)
【Locomotor运动模块】攀爬_第1张图片

2、“伪身体”和“真实身体”,为什么同步移动

“伪身体”跟随头盔,头盔代表“真实身体”——因而移动“真实身体”,伪身体会跟着移动

移动真实身体的逻辑
【Locomotor运动模块】攀爬_第2张图片

3、“伪身体”和“真实身体”,碰到墙时不同步的原因

①现象

“真实身体”进入到了自建的立方体(墙)内,伪身体进不去
【Locomotor运动模块】攀爬_第3张图片
【Locomotor运动模块】攀爬_第4张图片

②原因

在这里插入图片描述
也就是说“伪身体”上有碰撞器,穿不了墙

③解决

让“伪身体”StillDiverged事件,监听SolveBodyCollisions解算身体碰撞体方法(原理是让两种身体同步,强迫“真实身体”头盔更新到“伪身体”的位置),如果还抖动(强制两种身体同步导致的),调节厚度(图二)
【Locomotor运动模块】攀爬_第5张图片
【Locomotor运动模块】攀爬_第6张图片

二、攀爬

1、需要的组件:“伪身体”、Climbing、Climbable及Interactor

Climbing是个中间件,负责把“伪身体”和Climbable联系起来
Climbable实质是“可交互物体”(Interactable),因而需要“交互器”(Interactor)设置GrabAction和Velocity Tracker两个属性(但不需要设置Interactale的主次抓取)
在这里插入图片描述

2、联系和设置

把“伪身体”(PseudoBody)拖入Climbing,再把Climbing拖入Climbable
【Locomotor运动模块】攀爬_第7张图片
【Locomotor运动模块】攀爬_第8张图片
“交互器”(Interactor)设置GrabAction和Velocity Tracker
【Locomotor运动模块】攀爬_第9张图片

二、爬不上墙头的原因及解决方法

1、原因

一旦手柄和墙脱离,抓取事件就停止了(或说Interactor停止接触可抓取物体时,抓取也停止了)

2、解决方法

关闭墙(“可抓取物体”Interactable)的Untouched事件
【Locomotor运动模块】攀爬_第10张图片

【Locomotor运动模块】攀爬_第11张图片

另外,加一座山

可抓取物体下面,加了一个山(注意,它是先把预设体给Unpack,然后加上的山)
【Locomotor运动模块】攀爬_第12张图片

你可能感兴趣的:(VRTK4.0,攀爬,Climbable,PseudoBody,Climbing)