This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
UnigineEditor
界面概述
资产工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
Setting Up Properties
照明
Landscape Tool
Sandworm
使用编辑器工具执行特定任务
Extending Editor Functionality
嵌入式节点类型
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

关节

关节提供了限制,从而消除了 body 的自由度,并用于连接成对的body。每个关节都有一个锚点,默认情况下,该锚点位于连接实体的质心之间。每个连接的属性取决于所选的关节类型及其参数。联合参数可以分为两组:

  • 通用参数 -所有关节共享的基本参数集。
  • 类型特定的参数-每种关节类型的一组特定参数。

也可以看看#

添加关节#

假设您有两个分配了物理物体的对象。请记住,物体必须具有指定的形状。要通过 UnigineEditor 使用关节来连接它们,请执行以下步骤:

  • 打開 World Hierarchy 窗口。
  • 选择第一个要连接的主体
  • 转到 Parameters窗口中的Physics選項卡。
  • Joints 部分中,选择适当的关节类型,然后单击Add

    Adding a joint

  • 在对话框窗口中选择第二个主体的名称,然后单击Ok
    Selecting a body
  • Joints部分中设置关节参数。

您可以通过选中Helpers面板→Physics项目→Joints选项(应启用Visualizer)来启用关节的可视化。

Fixed Joint#

固定关节以严格保持彼此位置的方式连接两个物体。

Fixed joint
Fixed Joint
Fixed Joint参数

此关节的基本约束参数包括:

Rotation 0 指定第一个实体相对于锚点的方向。
Rotation 1 指定第二个实体相对于锚点的方向

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参见JointFixed Class描述。 此处

在我们的物理视频教程中观看固定关节的插图。

Hinge Joint#

铰链关节允许连接的实体在锚点处沿关节的轴旋转。该关节连接了一个有角度的 motor

Hinge joint Hinge joint
Hinge Joint
Hinge Joint参数

此关节的基本约束参数包括:

Joint axis 身体绕其旋转的关节轴的坐标。
Angular damping 铰链接头的角阻尼系数。
Angular limit from 铰链停止运动范围内的最小角度。角度在[ -180 中以度为单位指定; 180 ]范围。
Angular limit to 铰链停止运动范围内的最大角度。角度在[ -180 中以度为单位指定; 180 ]范围。
Angular spring 弹簧刚度系数确定关节抵抗旋转的强度。如果将刚度设置为 0 ,则会禁用弹簧。
Angular angle 附加角弹簧的目标角度。弹簧(如果已启用)将尝试使连接的主体之间保持指定的角度。
電機參數
Angular Torque 角度电机的最大扭矩。 0 拆下电动机。
Angular Velocity 附加角电机的目标速度。

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参见JointHinge Class描述。可以在此处找到使用铰链接头连接两个物体的示例。

在我们的物理视频教程中观看铰链关节设置的图示。

Ball Joint#

球形接头提供了一个连接对象可以围绕其旋转的点。

Ball joint Ball joint
Ball Joint
Ball Joint参数

此关节的基本约束参数包括:

Joint axis 关节轴的坐标。
Angular limit angle 摆动角度限制,指定连接的物体可以从关节轴弯曲多少。
Angular limit from 围绕关节轴扭转范围内的最小角度。角度在[ -180 中以度为单位指定; 180 ]范围。
Angular limit to 在围绕关节轴的扭曲范围内的最大角度。角度在[ -180 中以度为单位指定; 180 ]范围。

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参考 JointBall类描述。可以在此处找到使用球形接头连接两个物体的示例。

在我们的物理视频教程中观看球形关节设置的图示。

Prismatic Joint#

棱形关节允许沿关节轴移动。该关节具有连接的线性 motor

Prismatic joint Prismatic joint
Prismatic Joint
Prismatic Joint参数

此关节的基本约束参数包括:

Joint axis 关节轴的坐标。
Linear damping 棱柱形接头的线性阻尼系数。
Linear limit from 物体之间沿关节轴的最小距离。
Linear limit to 物体之间沿关节轴的最大距离。
Linear spring 弹簧刚度系数,确定接头抵抗线性运动的强度。如果将刚度设置为 0 ,则会禁用弹簧。
Linear distance 所连接弹簧的目标线性距离。弹簧(如果启用)会尝试保持连接的实体之间的指定距离。
電機參數
Linear Force 连接的直线电动机的最大力。 0 拆下电动机。
Linear Velocity 附加直线电机的目标速度。

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参见JointPrismatic Class描述。可以在此处找到使用棱镜连接两个物体的示例。

在我们的物理学视频教程中观看棱柱关节的图示。

Cylindrical Joint#

圆柱关节就像棱柱形关节一样,具有额外的自由度:绕关节轴旋转。该关节具有线性和成角度的电动机

Cylindrical joint Cylindrical joint
Cylindrical Joint
Cylindrical Joint参数

此关节的基本约束参数包括:

Joint axis 关节轴的坐标。
Linear damping 圆柱接头的线性阻尼系数。
Linear limit from 物体之间沿关节轴的最小距离。
Linear limit to 物体之间沿关节轴的最大距离。
Linear spring 弹簧刚度系数,确定接头抵抗线性运动的强度。如果将刚度设置为 0 ,则会禁用弹簧。
Linear distance 所连接弹簧的目标线性距离。弹簧(如果启用)会尝试保持连接的实体之间的指定距离。
Angular damping 圆柱接头的角阻尼系数。
Angular limit from 围绕关节轴扭转范围内的最小角度。角度在[ -180 中以度为单位指定; 180 ]范围。
Angular limit to 在围绕关节轴的扭曲范围内的最大角度。角度在[ -180 中以度为单位指定; 180 ]范围。
Angular spring 弹簧刚度系数确定关节抵抗旋转的强度。如果将刚度设置为 0 ,则会禁用弹簧。
Angular angle 所连接的角弹簧的目标角度。弹簧(如果已启用)将尝试使连接的主体之间保持指定的角度。
電機參數
Angular Torque 角度电机的最大扭矩。 0 拆下电动机。
Angular Velocity 附加角电机的目标速度。
Linear Force 连接的直线电动机的最大力。 0 拆下电动机。
Linear Velocity 附加直线电机的目标速度。

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参见JointCylindrical Class描述。 此处

在我们的物理视频教程中观看圆柱关节的插图。

Wheel Joint#

车轮节用于制造射线铸型的车轮。它连接两个刚性实体:第一个实体是框架,第二个实体是轮子。无需为车轮指定形状:射线投射用于检测车轮与表面的碰撞。该关节连接了一个有角度的 motor

注意
主体的顺序,通过车轮接头事项连接!
  • 如果主体使用 UnigineEditor 连接:
    1. 选择车架。
    2. 添加车轮接头。
    3. 指定要安装的轮子。
  • 如果主体以编程方式连接:
    • b0是一个框架。
    • b1 是一個輪子.
Wheel joint Wheel joint
Wheel Joint
Wheel Joint参数

此关节的基本约束参数包括:

悬架轴(Axis 0 垂直轴的坐标,其作用类似于提供转向和阻尼的圆柱关节。
车轮主轴轴(Axis 1 车轮绕其旋转的水平轴的坐标。它们在以下字段中设置:
  • Axis 10-在框架的坐标系中(即body 0
  • Axis 11-在车轮坐标系中(即body 1
Linear damping 悬架的线性阻尼系数。
Linear limit from 悬架行驶下限。
Linear limit to 悬架行驶上限。
Linear spring 悬架弹簧刚度系数确定关节抵抗垂直线性运动的强度。如果将刚度设置为 0 ,则会禁用弹簧。
Linear distance 目标悬架高度。悬架弹簧(如果启用)会尝试保持指定的高度。
Angular damping 车轮旋转的角阻尼系数。
電機參數
Angular Torque 角度电机的最大扭矩。 0 拆下电动机。
Angular Velocity 附加角电机的目标速度。

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参见JointWheel Class描述。有关说明使用车轮节的示例,请参见使用车轮节创建汽车文章。

在我们的物理视频教程中,观看如何使用Wheel关节模拟车轮。

Suspension Joint#

警告
此联合类型已被弃用,并将在以后的版本中删除。建议改用车轮接头

悬架用于制造车辆的车轮悬架。它连接两个刚性实体:第一个实体是框架,第二个实体是轮子。该关节连接了一个有角度的 motor

注意
车身的顺序,通过悬架连接事项
  • 如果主体使用 UnigineEditor 连接:
    1. 选择车架。
    2. 添加悬架接头。
    3. 指定要安装的轮子。
  • 如果主体以编程方式连接:
    • b0是一个框架。
    • b1 是一個輪子.
Suspension joint Suspension joint
Suspension Joint
Suspension Joint参数

此关节的基本约束参数包括:

悬架轴(Axis 0 垂直轴的坐标,其作用类似于提供转向和阻尼的圆柱关节。
车轮主轴轴(Axis 1 车轮绕其旋转的水平轴的坐标。它们在以下字段中设置:
  • Axis 10-在框架的坐标系中(即body 0
  • Axis 11-在车轮坐标系中(即body 1
Linear damping 悬架的线性阻尼系数。
Linear limit from 悬架行驶下限。
Linear limit to 悬架行驶上限。
Linear spring 悬架弹簧刚度系数确定关节抵抗垂直线性运动的强度。如果将刚度设置为 0 ,则会禁用弹簧。
Linear distance 目标悬架高度。悬架弹簧(如果启用)会尝试保持指定的高度。
Angular damping 车轮旋转的角阻尼系数。
電機參數
Angular Torque 角度电机的最大扭矩。 0 拆下电动机。
Angular Velocity 附加角电机的目标速度。

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参见JointSuspension Class描述。可以在此处找到使用悬架关节连接两个物体的示例。

有关悬架和车轮关节之间的区别,请参见我们的有关物理的视频教程

Path Joint#

路径关节用于将刚体附加到路径体,并使其沿该路径移动。该接头可用于使火车沿着轨道移动。该关节具有连接的线性 motor

注意
形状分配给刚体,然后再将其连接到路径体!
使用此關節連接的物理物體的順序很重要
  • 如果主体使用 UnigineEditor 连接:
    1. 选择刚体。
    2. 添加路径关节。
    3. 指定路径主体。
  • 如果主体以编程方式连接:
    • b0 是一個 BodyRigid
    • b1 是一個 BodyPath
Path joint
Path Joint
Path Joint参数

此关节的基本约束参数包括:

Rotation 指定主体相对于路径的方向。
Linear damping 路径关节的线性阻尼系数。
電機參數
Linear Force 连接的直线电动机的最大力。 0 拆下电动机。
Linear Velocity 附加直线电机的目标速度。

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参见JointPath Class描述。可以在此处找到使用路径关节连接两个物体的示例。

我们的物理视频教程显示了如何使用“路径”关节将刚体连接到路径体。

Particles Joint#

粒子关节用于将衣服主体绳索主体固定到刚性主体布娃娃主体虚拟主体

注意
主体的顺序,通过粒子连接要点连接!
  • 如果主体使用 UnigineEditor 连接:
    1. 选择刚体,布娃娃体或虚拟体。
    2. 添加粒子关节。
    3. 指定布料主体或绳索主体。
  • 如果主体以编程方式连接:
    • b0 是一個 BodyRigid / BodyRagdoll / BodyDummy
    • b1 是一個 BodyCloth / BodyRope
Particles joint
Particles Joint
Particles Joint参数

此关节的基本约束参数包括:

Threshold 确定将布料或绳索主体的顶点固定到另一个主体的距离。
Size 指定将布料或绳索主体的顶点固定到另一个主体的区域。

此关节还具有一组由所有关节类型共享的通用参数

有关更多信息,请参见JointParticles Class描述。可以在此处找到一个示例,该示例说明了使用粒子关节连接衣服主体

可以在此处找到使用绳体和粒子关节的示例。

我们的物理视频教程展示了如何使用“粒子”关节将绳索或布料连接到其他物体。

共同关节参数#

通用关节参数

所有关节,无论其类型如何,都有一些共同的参数:

Enabled 指示是否启用关节的标志。
Collision 一个标志,指示是否在连接的主体之间启用碰撞检测
Anchor 约束关节运动的锚点位置。默认情况下,锚点位于连接的实体的重心之间。
Linear restitution 关节的线性刚度。定义补偿两个物体之间线性坐标变化的速度。将物体拉开时,恢复力控制施加在两个物体上的力的大小,以使它们的锚点再次对齐。
  • 1 表示关节将在整个1个物理滴答中返回到位。
  • 0.2 表示关节将在整个5个物理滴答中将物体返回到位。
注意
1 的最大值可能导致物理不稳定(因为施加的力过大)。
Angular restitution 关节的角刚度。定义补偿两个物体之间角度变化的速度。当物体彼此相对旋转时,恢复力控制施加到两个物体的力的大小,以使它们的锚点再次对齐。
  • 1 表示关节将在整个1个物理滴答中返回到位。
  • 0.2 表示关节将在整个5个物理滴答中将物体返回到位。
注意
1 的最大值可能导致物理不稳定(因为施加的力过大)。
Linear softness 关节的线弹性。定义在拉伸关节时是否将实体的线速度平均化。
  • 0 表示关节是刚性的。第一和第二物体的速度是独立的。
  • 1 表示关节具有弹性(果冻状)。如果第一个物体的速度发生变化,则第二个物体的速度将与其相等。
Angular softness 关节的角度弹性。定义在扭曲关节时是否将实体的线速度平均化。
  • 0 表示关节是刚性的。第一和第二物体的速度是独立的。
  • 1 表示关节具有弹性(果冻状)。如果第一个物体的速度发生变化,则第二个物体的速度将与其相等。
Max force 可以在关节上施加的最大力。如果超过此限制,则关节会断裂。默认值为 inf ,即关节是不可破坏的。
Max torque 可以施加在关节上的最大扭矩。如果超过此限制,则关节会断裂。默认值为 inf ,即关节是不可破坏的。
Number of iterations 关节像碰撞一样被迭代计算。此参数指定用于求解关节的迭代次数。请注意,如果此值太低,则会影响计算的精度。

马达和弹簧#

关节可以具有与之关联的电动机和弹簧。

弹簧尝试使物体与关节保持一定的距离(线性)或角度(角度)。特定弹簧的性能取决于其刚度和阻尼系数。

电动机通过向关节的自由度施加扭矩(或力),使与关节连接的物体彼此相对运动或旋转。有 linear angular 个电动机会向关节施加有限的力,推动或旋转连接的物体。

Springs and Motors

电动机具有两个参数:

  • Target velocity
  • 可以达到该速度的Maximum force(或扭矩)。

这是现实生活中的电机非常简单的模型。但是,在建模电动机时非常有用,该电动机在连接到关节之前先用齿轮箱减速。此类设备通常是通过设置目标速度来控制的,并且只能产生最大功率以达到该速度(这对应于关节处可用的一定量的力)。

启动角度电动机,请执行以下步骤:

  1. 设置angular velocity-电动机的目标角速度,该值确定电动机可以旋转的速度。
    • 正值-电动机逆时针旋转。
    • 负值-电动机顺时针旋转。
  2. 设置angular torque-电机达到目标速度所施加的最大转矩。该值确定电动机达到最大速度的速度。
    • 0 禁用电动机。
    • 如果提供负值,则将使用 0

启动线性电动机,请执行以下步骤:

  1. 设置linear velocity-电动机的目标线速度,该值确定电动机可以推动多快。
    • 正值-电动机向前推动。
    • 负值-电动机向后拉动。
  2. 设置linear force-电机达到目标速度所施加的最大力。该值确定电动机达到最大速度的速度。
    • 0 禁用电动机。
    • 如果提供负值,则将使用 0

汽车#

车辆在实时游戏中很重要,因此,将分别对其进行描述。有两种模拟移动车辆的方法。每种方法都有对应的关节类型,用于将车轮连接至车身。

  • 第一种方法使用suspension joint并假定将车轮表示为具有形状的物理物体。由于每个车轮都具有对撞机形状,因此可以正确处理与地面上的物体的碰撞。例如,这种汽车在路缘上平稳行驶。这种方法需要进行更多的计算,并且在需要更精确的仿真时尤其是对于阶状地面和形状复杂的车轮时应使用。
  • 第二种方法使用wheel joint并假定车轮是虚拟的。车轮不会与路面碰撞。取而代之的是,将射线从车身投射下来以检测表面不平整。在这种情况下,不能正确处理地形的陡峭变化。这种方法比第一种更快,并且可以为平滑地形提供可接受的结果,例如用于赛车模拟。但是,在越野地形上,它可能无法正常工作。

两个关节都有一个与它们关联的 motor ,它使车轮旋转并向前推动车辆。

Problems with ray cars and steep obstacles

使用射线投射模拟车轮的问题
最新更新: 2021-04-09
Build: ()