返回介绍

可配置关节(ConfigurableJoint)

发布于 2021-06-20 00:15:02 字数 10689 浏览 1126 评论 0 收藏 0

可配置关节 (Configurable Joint) 具有非常强的可自定义性。它们公开 PhysX 的所有与关节 (Joint) 相关的属性,因此能够创建与所有其他关节 (Joint) 类型类似的行为。


可配置关节 (Configurable Joint) 的属性

详细信息

可配置关节 (Configurable Joint) 可以执行两个主要功能:移动/旋转限制和移动/旋转加速。这些功能取决于一些相互依赖的属性。可能需要进行一些实验才能创建尝试实现的精确行为。我们现在将向您概述关节 (Joint) 的功能以便尽可能简单地进行实验。

移动/旋转限制

可按轴和运动类型指定限制。使用 X 运动 (XMotion)、Y 运动 (YMotion) 和 Z 运动 (ZMotion)可以定义沿该轴进行的变化。使用 X 角运动 (Angular XMotion)、Y 角运动 (Angular YMotion) 和 Z 角运动 (Angular ZMotion) 可以定义围绕该轴的旋转。这些属性中的每个属性都可以设置为自由 (Free)(未限制)、受限 (Limited)(基于可以定义的限制进行限制)或锁定 (Locked)(限制为零移动)。

限制运动

在将任何“运动”(Motion) 属性设置为受限 (Limited) 时,可以为该轴定义移动限制。可以通过更改限制”(Limit) 属性之一的值来执行此操作。

对于移动变化(非角向),线性限制 (Linear Limit) 属性定义对象相对于其原点可以移动的最大距离。任何设置为受限 (Limited) 的“运动”(Motion) 属性上的变化会根据线性限制 (Linear Limit) -> 限制 (Limit) 进行限制。可将此限制 (Limit) 属性视为针对对象设置围绕轴的边界。

弹力 (Bouncyness), 弹簧 (Spring) 和阻尼 (Damper) 会定义对象在任何受限 (Limited)“运动”(Motion) 轴上达到限制 (Limit)时的对象行为。如果所有这些值都设置为 0,则对象会在达到边界时立即停止。弹力 (Bouncyness) 会使对象从边界弹回。弹簧 (Spring) 和阻尼 (Damper) 会使用弹性力将对象推回到边界。这会软化边界,因此对象将能够穿过边界并被拉回而不是立即停止。

限制旋转

限制旋转的工作方式几乎与限制运动相同。差异在于三个“角运动”(Angular Motion) 属性全都对应于不同的“角限制”(Angular Limit) 属性。沿所有 3 个轴的变化限制由线性限制 (Linear Limit) 属性定义,沿 3 个轴中各个轴的旋转限制由每个轴的单独 “角限制”(Angular Limit) 属性定义。

X 角运动 (Angular XMotion) 限制最可靠,因为可以定义 X 角下限 (Low Angular XLimit) 和 X 角上限 (High Angular XLimit)。因此如果要定义 -35 度的旋转下限和 180 度的旋转上限,则可以执行此操作。对于 Y 和 Z 轴,旋转下限和上限相同,通过Y 角限制 (Angular YLimit) 或 Z 角限制 (Angular ZLimit) 的限制 (Limit) 属性一起设置。

此处应用“限制运动”部分中有关进行旋转限制时的对象行为的相同规则。

移动/旋转加速

在朝特定位置/旋转或按特定速率/角速率移动对象方面,指定对象移动或旋转。此系统的工作方式是定义要移动到的“目标”(Target) 值,并使用驱动”(Drive) 提供 对象朝该目标移动的加速度。每个“驱动”(Drive) 都具有模式 (Mode),用于定义对象朝向移动的“目标”(Target)。

变化加速

X 驱动 (XDrive)、Y 驱动 (YDrive) 和 Z 驱动 (ZDrive) 属性是使对象开始沿着该轴移动的内容。每个驱动 (Drive) 的模式 (Mode) 会定义对象是应朝目标位置 (Target Position) 或目标速率 (Target Velocity) 或两者来移动。例如,当X 驱动 (XDrive) 的模式设置为位置 (Position) 时,对象会尝试移动到目标位置 (Target Position) -> X 的值。

当某个驱动 (Drive) 在其模式 (Mode) 中使用位置 (Position) 时,其位置弹簧 (Position Spring) 值将定义对象朝目标位置 (Target Position) 移动的方式。同样,当某个驱动 (Drive) 在其模式 (Mode) 中使用速率 (Velocity) 时,其最大力 (Maximum Force) 值将定义对象加速到目标速率 (Target Velocity) 的方式。

旋转加速

旋转加速属性:X 角驱动 (Angular XDrive)、YZ 角驱动 (Angular YZDrive) 和球形线性插值驱动 (Slerp Drive) 的工作方式与变化驱动 (Drive) 相同。不过有一个重要差异。球形线性插值驱动 (Slerp Drive) 的行为方式与角驱动 (Angular Drive) 功能不同。因此可以通过从旋转驱动模式 (Rotation Drive Mode) 中选择一个,来使用两个角驱动 (Angular Drive) 或球形线性插值驱动 (Slerp Drive)。不能同时使用两者。

属性

属性:功能:
锚点 (Anchor)定义关节 (Joint) 中心的点。所有基于物理的模拟都使用此点作为计算的中心
轴 (Axis)基于物理模拟定义对象自然旋转的局部坐标轴
辅助轴 (Secondary Axis)轴 (Axis) 和辅助轴 (Secondary Axis) 定义关节 (Joint) 的局部坐标系。第三个轴设置为与其他两个轴正交。
X 运动 (XMotion)允许沿 X 轴的移动为“自由”(Free)、完全“锁定”(Locked) 或“受限”(Limited),具体取决于线性限制 (Linear Limit)
Y 运动 (YMotion)允许沿 Y 轴的移动为“自由”(Free)、完全“锁定”(Locked) 或“受限”(Limited),具体取决于线性限制 (Linear Limit)
Z 运动 (ZMotion)允许沿 Z 轴的移动为“自由”(Free)、完全“锁定”(Locked) 或“受限”(Limited),具体取决于线性限制 (Linear Limit)
X 角运动 (Angular XMotion)允许围绕 X 轴的旋转为“自由”(Free)、完全“锁定”(Locked) 或“受限”(Limited),具体取决于 X 角下限 (Low Angular XLimit) 和 X 角上限 (High Angular XLimit)
Y 角运动 (Angular YMotion)允许围绕 Y 轴的旋转为“自由”(Free)、完全“锁定”(Locked) 或“受限”(Limited),具体取决于 Y 角下限 (Low Angular YLimit) 和 Y 角上限 (High Angular YLimit)
Z 角运动 (Angular ZMotion)允许围绕 Z 轴的旋转为“自由”(Free)、完全“锁定”(Locked) 或“受限”(Limited),具体取决于 Z 角下限 (Low Angular ZLimit) 和 X 角上限 (High Angular ZLimit)
线性限制 (Linear Limit)用于基于相对于关节 (Joint) 原点的距离定义移动限制的边界
限制 (Limit)单位计的从原点到边界墙壁的距离
弹力 (Bouncyness)当对象达到限制 (Limit) 时应用于对象的弹回力的量
弹簧 (Spring)为将对象移动回限制 (Limit) 而应用的力的强度任何非 0 数值都会隐式地软化边界
阻尼 (Damper)对弹簧 (Spring) 的阻力强度
X 角下限 (Low Angular XLimit)用于基于相对于原始旋转的差值定义旋转下限的边界
限制 (Limit)对象旋转不应低于的旋转(以度数为单位)
弹力 (Bouncyness)当对象旋转达到限制 (Limit) 时应用于对象的弹回扭矩的量
弹簧 (Spring)为将对象移动回限制 (Limit) 而应用的力的强度任何非 0 数值都会隐式地软化边界
阻尼 (Damper)对弹簧 (Spring) 的阻力强度
X 角上限 (High Angular XLimit)用于基于相对于原始旋转的差值定义旋转上限的边界
限制 (Limit)对象旋转不应超过的旋转(以度数为单位)
弹力 (Bouncyness)当对象旋转达到限制 (Limit) 时应用于对象的弹回扭矩的量
弹簧 (Spring)为将对象移动回限制 (Limit) 而应用的力的强度任何非 0 数值都会隐式地软化边界
阻尼 (Damper)对弹簧 (Spring) 的阻力强度
Y 角限制 (Angular YLimit)用于基于相对于原始旋转的差值定义旋转限制的边界
限制 (Limit)对象旋转不应超过的旋转(以度数为单位)
弹力 (Bouncyness)当对象旋转达到限制 (Limit) 时应用于对象的弹回扭矩的量
弹簧 (Spring)为将对象移动回限制 (Limit) 而应用的扭矩的强度任何非 0 数值都会隐式地软化边界
阻尼 (Damper)对弹簧 (Spring) 的阻力强度
Z 角限制 (Angular YLimit)用于基于相对于原始旋转的差值定义旋转限制的边界
限制 (Limit)对象旋转不应超过的旋转(以度数为单位)
弹力 (Bouncyness)当对象旋转达到限制 (Limit) 时应用于对象的弹回扭矩的量
弹簧 (Spring)为将对象移动回限制 (Limit) 而应用的扭矩的强度任何非 0 数值都会隐式地软化边界
阻尼 (Damper)对弹簧 (Spring) 的阻力强度
目标位置 (Target Position)关节 (Joint) 应移动到的所需位置
目标速率 (Target Velocity)关节 (Joint) 移动时应采用的所需速率
X 驱动 (XDrive)关节 (Joint) 移动沿其局部坐标 X 轴的行为方式的定义
模式 (Mode)根据目标位置 (Target Position)、目标速率 (Target Velocity) 或两者设置以下属性
位置弹簧 (Position Spring)朝定义方向拉橡皮筋的力度。仅在模式 (Mode) 包含位置 (Position) 时使用
位置阻尼 (Position Damper)对位置弹簧 (Position Spring) 的阻力强度。仅在模式 (Mode) 包含位置 (Position) 时使用
最大力 (Maximum Force)将物体朝定义方向推动的力度。仅在模式 (Mode) 包含速率 (Velocity) 时使用
Y 驱动 (YDrive)Definition of how the joint's movement will behave along its local Y axis
模式 (Mode)根据目标位置 (Target Position)、目标速率 (Target Velocity) 或两者设置以下属性
位置弹簧 (Position Spring)朝定义方向拉橡皮筋的力度。仅在模式 (Mode) 包含位置 (Position) 时使用
位置阻尼 (Position Damper)对位置弹簧 (Position Spring) 的阻力强度。仅在模式 (Mode) 包含位置 (Position) 时使用
最大力 (Maximum Force)将物体朝定义方向推动的力度。仅在模式 (Mode) 包含速率 (Velocity) 时使用
Z 驱动 (YDrive)Definition of how the joint's movement will behave along its local Z axis
模式 (Mode)根据目标位置 (Target Position)、目标速率 (Target Velocity) 或两者设置以下属性
位置弹簧 (Position Spring)朝定义方向拉橡皮筋的力度。仅在模式 (Mode) 包含位置 (Position) 时使用
位置阻尼 (Position Damper)对位置弹簧 (Position Spring) 的阻力强度。仅在模式 (Mode) 包含位置 (Position) 时使用
最大力 (Maximum Force)将物体朝定义方向推动的力度。仅在模式 (Mode) 包含速率 (Velocity) 时使用
目标旋转 (Target Rotation)这是四元数。它定义关节 (Joint) 应旋转到的所选旋转
目标角速率 (Target Angular Velocity)这是 Vector3。它定义关节 (Joint) 应旋转达到的所需角速率
旋转驱动模式 (Rotation Drive Mode)单独使用 X 和 YZ 或球形线性插值驱动 (Slerp Drive) 控制对象的旋转
X 角驱动 (Angular XDrive)关节 (Joint) 旋转围绕其局部坐标 X 轴的行为方式的定义。仅在旋转驱动模式 (Rotation Drive Mode) 为摇摆和扭曲 (Swing & Twist) 时使用
模式 (Mode)根据目标旋转 (Target Rotation)、目标角速率 (Target Angular Velocity) 或两者设置以下属性
位置弹簧 (Position Spring)朝定义方向拉橡皮筋的力度。仅在模式 (Mode) 包含位置 (Position) 时使用
位置阻尼 (Position Damper)对位置弹簧 (Position Spring)的阻力强度。仅在模式 (Mode) 包含位置 (Position) 时使用
最大力 (Maximum Force)将物体朝定义方向推动的力度。仅在模式 (Mode) 包含速率 (Velocity) 时使用
YZ 角驱动 (Angular YZDrive)关节 (Joint) 旋转围绕其局部坐标 Y 和 Z 轴的行为方式的定义。仅在旋转驱动模式 (Rotation Drive Mode) 为摇摆和扭曲 (Swing & Twist) 时使用
模式 (Mode)根据目标旋转 (Target Rotation)、目标角速率 (Target Angular Velocity) 或两者设置以下属性
位置弹簧 (Position Spring)朝定义方向拉橡皮筋的力度。仅在模式 (Mode) 包含位置 (Position) 时使用
位置阻尼 (Position Damper)对位置弹簧 (Position Spring)的阻力强度。仅在模式 (Mode) 包含位置 (Position) 时使用
最大力 (Maximum Force)将物体朝定义方向推动的力度。仅在模式 (Mode) 包含速率 (Velocity) 时使用
球形线性插值驱动 (Slerp Drive)关节 (Joint) 旋转围绕所有局部坐标轴的行为方式的定义。仅在旋转驱动模式 (Rotation Drive Mode) 为摇摆和扭曲 (Swing & Twist) 时使用
模式 (Mode)根据目标旋转 (Target Rotation)、目标角速率 (Target Angular Velocity) 或两者设置以下属性
位置弹簧 (Position Spring)朝定义方向拉橡皮筋的力度。仅在模式 (Mode) 包含位置 (Position) 时使用
位置阻尼 (Position Damper)对位置弹簧 (Position Spring)的阻力强度。仅在模式 (Mode) 包含位置 (Position) 时使用
最大力 (Maximum Force)将物体朝定义方向推动的力度。仅在模式 (Mode) 包含速率 (Velocity) 时使用
投影模式 (Projection Mode)用于跟踪以在对象偏离太多时使对象对齐回其受约束位置的属性
投影距离 (Projection Distance)与对象突然重返可接受位置之前必须超过的连接体 (Connected Body) 之间的距离
投影角度 (Projection Angle)与对象对齐回可接受位置之前必须超过的连接体 (Connected Body) 之间的角度差
在世界坐标空间中配置 (Congfigure in World Space)如果启用,则会在世界坐标空间而不是对象的局部坐标空间中计算所有目标值。
折断力 (Break Force)超过此数字的应用力值会导致关节 (Joint) 毁坏
折断扭矩 (Break Torque)超过此数字的应用扭矩值会导致关节 (Joint) 毁坏

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文