6DOF关节节点
6DOF关节节点是IdeaXR关节节点中功能最全的,6DOF关节节点可以通过锁定某些轴的旋转或平移来实现各种关节类型。
描述
该节点的前3个DOF轴是线性轴,代表物体的平移,也就是直线限制,直线平移,直线弹簧这三个。后3个DOF轴代表角运动,也就是角度限制、角动力、角弹簧这三个。每个轴(XYZ)都可以被锁定,也可以被限制。通过对每个轴的限制以及指定节点自身的物理特性实现不同关节的模拟。
准备场景
由于6DOF关节节点的强大泛用性,所以导致这个节点的属性非常多,接下来我们先来实现一个弹簧力的模拟以理解该节点的基本使用方法。我们会使用一个静态刚体作为固定点,链接一个刚体并在两个节点之间施加弹力。
6DOF关节节点接收两个节点,并跟根据其位置对这两个节点应用关节效果,这两个节点必须是拥有物体特性的节点,也就是物理实体下的这些节点:
首先创建一个新场景,并在其中添加一个6DOF关节节点。
让我们再添加两个网格实例,将网格指定为cubemesh
,使用引擎自带的方法将其转化为一个刚体和一个静态刚体:
之后将其位置进行调整,大致调整为静态刚体在上,刚体在下,并将6DOF节点放在两个节点中间,作为“关节”。
设置6DOF关节
你可能已经注意到6DOF关节节点旁边有一个警告符号,那是因为我们还没有指定两个关节点,让我们在6DOF关节节点的属性栏中找到关节->节点,将节点A设置为静态刚体节点,节点B设置为刚体节点
之后我们就需要修改6DOF关节节点中的各项属性,给每个轴向施加力和限制,由于属性非常多,在这里我们就先修改y轴方向,在 IdeaXR 中y轴向上,所以修改y轴方向可以实现一个上下浮动的弹簧效果。
让我们找到Y轴直线限制属性,将启用勾选去除。
接下来让我们启用并修改Y轴直线弹簧,由于修改节点中的任何属性和值都会影响到最终的效果,所以为了实现理想中的效果,需要不断地对每个值进行微调,后续你可以自己探索。在这里我们先将数值调整为下图中的情况。
最后,我们将刚体的质量调整一下:
运行场景,我们可以看到下方的刚体在上下浮动,仿佛和上面的静态刚体之间存在一个弹簧。
note
如果下方的刚体碰到地面,可以将整个关节结构往上移动,但是相对位置最好不变,不然会影响最终效果。
我们还可以对6DOF关节节点的X轴,Z轴部分进行和Y轴相同的设置,之后把场景中飞行相机删除,换成第三人称相机,控制人物接触下方的刚体施加方向上的力。