【Locomotor运动模块】攀爬

一、攀爬主体“伪身体”

1、“伪身体”的设置

①它追踪(Tracking)的“源头”(Source)是头盔(HeadSet)——也就是说,跟着谁动——伪身体跟随头盔
OffSet偏移(为什么是PlayAreaAlias,留有疑问)
在这里插入图片描述

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

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

移动真实身体的逻辑
在这里插入图片描述

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

①现象

“真实身体”进入到了自建的立方体(墙)内,伪身体进不去
在这里插入图片描述
在这里插入图片描述

②原因

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

③解决

让“伪身体”StillDiverged事件,监听SolveBodyCollisions解算身体碰撞体方法(原理是让两种身体同步,强迫“真实身体”头盔更新到“伪身体”的位置),如果还抖动(强制两种身体同步导致的),调节厚度(图二)
在这里插入图片描述
在这里插入图片描述

二、攀爬

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

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

2、联系和设置

把“伪身体”(PseudoBody)拖入Climbing,再把Climbing拖入Climbable
在这里插入图片描述
在这里插入图片描述
“交互器”(Interactor)设置GrabAction和Velocity Tracker
在这里插入图片描述

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

1、原因

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

2、解决方法

关闭墙(“可抓取物体”Interactable)的Untouched事件
在这里插入图片描述

在这里插入图片描述

另外,加一座山

可抓取物体下面,加了一个山(注意,它是先把预设体给Unpack,然后加上的山)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42935398/article/details/132642452