可配置关节 (Configurable Joint)
可配置关节 (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) 毁坏 |