This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
专业(SIM)
UnigineEditor
界面概述
资源工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
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
创建内容
内容优化
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

Rigid Body

Rigid body 可以根据Rigid body 动态.这种类型的车身是最常用的,在性能方面也是最有效的。

注意
Rigid body 必须至少有一次碰撞形状分配。

Rigid bodies

一个Rigid body的参数集按照Rigid body 动态包括以下内容:

也可以看看#

编程实现:

基于形状的质量参数#

Rigid body 的体积可以近似为几个形状(例如,一个凹对象被分成一组凸包或一个 Ragdoll body)。每个形状都有它的大量的密度.因此,Rigid body 的某些参数,例如其总质量、质心和惯性张量,由其形状决定。如果启用了 Shape-based 选项,则可以自动计算这些参数。

通过以下方式为身体启用此选项统一编辑器执行以下步骤:

  1. 选择指定为 Rigid body 的所需对象。
  2. 转到 Parameters 窗口中的 Physics 选项卡。
  3. Body 部分,选中 Shape-based 选项。
注意
设置形状的各个质量或密度是实现身体正确物理行为的最直观方法。即使被覆盖通过身体参数,它们仍然用于确定物体内的质量分布。

Shapes that approximate rigid bodies

根据几何形状近似为不同形状的刚体

覆盖形状参数#

禁用Shape-based选项可以手动重新定义主体的一些总参数。

通过以下方式为身体禁用此选项统一编辑器执行以下步骤:

  1. 选择指定为 Rigid body 的所需对象。
  2. 转到 Parameters 窗口中的 Physics 选项卡。
  3. Body 部分,选中 Shape-based 选项。身体的总参数字段将被激活。
  4. 手动设置身体参数。

质心#

可以将任意点设置为质心的身体。可能需要校正对象的运动以提供理想的外观。例如,一个球形的倾斜娃娃需要不均匀的质量分布:它的质心应该位于更靠近底部的位置,所以它在倾斜时总是站起来。

注意
质心设置为该点在身体局部空间中的坐标。

惯性矩#

转动惯量是质量的旋转模拟,描述了物体对不同方向旋转的阻力。它是由质量在整个身体体积中的分布决定的。质心离旋转轴越远,物体的转动惯量越大。

允许计算关于任意轴的惯性矩的惯性张量表示为矩阵 I

Ixx     Ixy     Ixz    
Iyx     Iyy     Iyz    
Izx     Izy     Izz    

其中 Iij 设置当主体围绕 j 轴旋转时围绕 i 轴的转动惯量。

注意
要绕旋转轴均匀地旋转身体,矩阵应该是对角的,即主对角线之外的所有值都设置为 0。否则,身体可能会开始混乱地旋转。

至于转动惯量的值:

  • 值越高,必须施加越大的扭矩来围绕特定轴旋转主体。
  • 值越低,越容易改变物体绕特定轴的角速度。

    注意
    不建议设置小于 0.011 的值!否则,矩阵将无法正确反转,这是应用碰撞脉冲所必需的。

相对于平均值校正值以提供更平滑的移动。

例如,下图显示了三个具有不同惯性张量的框。黄色框有很高的惯性:

100         0         0    
    0     100         0    
    0         0     100    

正因为如此,它只有落在倾斜的平面上时才能向下滑动。相反,红色框的惯性最低,旋转得最急切。

Different Inertia tensors

覆盖基于形状的参数的不同惯性张量

冷冻体#

如果为 Rigid body 设置了 Freezable 标志,则其模拟被冻结必要时。

注意
建议始终为除 Player Actor 之外的所有刚体设置 Freezable 标志。冻结玩家会导致它对用户的输入做出反应,时滞很小,但仍然可以察觉。

不可移动#

Immovable 标志打开和关闭 Rigid body 的静态模式。如果设置了标志,则身体将忽略世界上的所有力并保持其位置,同时仍然是对撞机对象。

指定刚体#

通过将 Rigid body 分配给对象统一编辑器执行以下步骤:

  1. 打开 World Hierarchy 窗口。
  2. 选择要为其分配 Rigid body 的对象。
  3. 转到 Parameters 窗口中的 Physics 选项卡并分配一个物理身体通过选择 Body -> Rigid 到选定的对象。

    Adding a body

  4. 如有必要,设置主体名称并更改其他参数。
最新更新: 2022-10-10
Build: ()