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

Fracture Body

Fracture body 可实现对对象的实时有说服力的销毁。当与某个物体发生碰撞时,一个可破坏的物体会被程序化破碎的碎片,反过来也可以破碎,直到达到所需的破坏水平。骨折体是相当便宜的类型,可以破碎成中等数量的碎片。

Slice Pieces

骨折体破碎成碎片
注意
Fracture body 只能分配给 Mesh Dynamic 对象,并且只能用于凸面网格。

也可以看看#

物理近似#

Fracture body(以及它分裂成的所有碎片)实际上是一个 Rigid body,它根据刚体动力学.因此,它具有以下特性:

物体断裂后,它的质量分布在碎片中,它们像刚体一样下落。

形状近似误差#

Fracture body 总是近似为凸包,其中可能包含过多的碰撞几何细节。通常,这是不必要的,因为高度详细的形状不会提供明显的视觉差异,同时会显着影响性能。近似误差可以控制最终碰撞形状中的顶点数量:

  • 通过0的值,形状精确地复制了网格;它的整个体积都是封闭的。
  • 值越高,创建的形状中的顶点越少,但跳过的细节越多,形状可能无法覆盖整个网格体积。最大值为 1
注意
Fracture body 的自动生成形状不会显示在 Parameters 窗口的 Physics 选项卡上的 Shapes 列表中。您不能删除它或将任何其他形状分配给 Fracture body

压裂#

压裂分为三种模式:

这些模式决定了与材料的不同机械性能(例如,其韧性和孔隙率)相关的断裂路径。断裂模式可用于在脚本级别进行选择。

切片#

切片是一种断裂模式,通过平面将网格体积分成两部分。平面通过身体的指定点。切片角度由指定的法线确定。

Slice Pieces

将体压裂成两片

要切片 Fracture body,请使用 createSlicePieces() 方法。

开裂#

裂纹是一种断裂模式,涉及从碰撞点形成径向裂纹。所有裂纹块的大小略有不同,以确保视觉真实感。此外,网格还可以沿同心环断裂,模拟脉冲的传播。材料(例如玻璃)越薄和越脆,通过破裂形成的环就越多。环之间的指定距离也随机变化以提供令人信服的结果。

Crack Pieces

创建具有不同数量的径向裂纹和同心环的裂纹片

要破解 Fracture body,请使用 createCrackPieces() 方法。

粉碎#

破碎是一种断裂模式,将网格体积随机分成指定数量的凸块。

Shatter Pieces

创建不同数量的碎片

要粉碎 Fracture body,请使用 createShatterPieces() 方法。

音量阈值#

随着身体骨折,尤其是几次骨折,小碎片可能会开始影响性能。体积阈值决定了破碎件的最小体积,从而控制了破碎水平。将不会生成小于指定值的所有块。

  • 通过 0 的最小值,模拟所有碎片,直到由压裂产生的最小碎片。
  • 通过更高的值,只生成足够大的块。如果没有碎片有足够的体积,则主体保持完整。

破碎的身体#

身体骨折后,它会获得一个 Broken 标志。取消设置此标志会使断裂的网格恢复到完整状态。破碎的身体仍然表示为一个节点UnigineEditor 层次结构.生成的碎块自动表示为 Fracture 体,它们继承了碎体的物理参数(如减震线速度和角速度,摩擦,归还和面具)。

注意
无法使用 UnigineEditor 操作破碎的碎片!

骨折面材料#

破碎网格时,必须设置将应用于所有新创建的断裂表面的材料。外部骨折块的那些面保留了初始材料。

断裂面特性#

还可以为所有断裂面指定一个新属性。它们定义了游戏行为和其他物理属性,但是,身体参数会覆盖它们。

物理交叉点#

物理交叉点可用作检查可破坏物体是否被射弹击中的快速方法。您可以使用 Physics Intersection Mask 为身体启用选择性交叉检测(例如,使其可被某些射弹击中)。仅在匹配时检测物理交叉点位掩码.

性能优化技巧#

Fracture body虽然是比较便宜的类型,但是在断片数量较多的情况下,对性能的影响可能会比较大。为避免性能下降,可以使用以下提示:

  • 音量阈值参数以减少断裂件的数量。
  • 从场景中移除骨折的身体碎片。

一个基于代码的示例,说明了如何从场景中移除(随着时间的推移逐渐消失)碎片,可以在 Physics 部分找到UnigineScript 示例.

分配骨折体#

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

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

    Adding a body

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