“初始状态”(Initial State)节点

InitialState 节点用于存储几何体快照和包含在刚体集中的对象变换。系统会将该信息及物理学属性设置传递给解算器,以定义模拟的初始状态。

碰撞属性(Collision Attributes)

可以指定对象类型,或指定用于模拟解算对象的网格。选择“长方体”(Box)“球体”(Sphere)“胶囊”(Capsule)“壳线”(Hull)“圆柱体”(Cylinder)
注: 最好使对象的形状与受此形状影响的碰撞行为尽可能匹配。
碰撞形状类型(Collision Shape Type)
碰撞形状用于通过不同的对象模拟碰撞。虽然它们没有世界位置,但会被附加到刚体并显示为基本体形状。您可以为多个刚体使用同一碰撞形状,这有助于加快解算。请参见“刚体集”(Rigid Set)选项

使用基于基本体(如壳线、球体、长方体和圆柱体)的碰撞形状可简化碰撞算法,创建更平滑、更快的解算,我们建议使用这些碰撞形状。可从下列形状类型中选择:

提示: 考虑哪种形状可以最佳表示需要的模拟效果。例如,使用长方体碰撞形状类型模拟大理石落在地面上可能会快速解算,但大理石不会翻滚。
长方体(Box)
快速解算且简单的形状。
球体
建议用于更快解算且更真实的翻滚行为。不需要覆盖球体的“碰撞形状边界”(Collision Shape Margin)值。
胶囊(Capsule)
带有球体封口的圆柱体,对于为 humanoid 角色建模很有用。
圆柱体
圆柱体类似于长方体形状,但翻滚操作更出色。
壳线(Hull)
这是成本最高的形状类型,虽然解算精确,但速度不快。壳线形状类型由许多顶点定义,而形成的形状是包含这些顶点的最小凸面形状。
碰撞过滤器类型(Collision Filter Type)
用于指定此刚体的碰撞组,默认情况下,刚体属于 DefaultFilter 组。第一个 16 位整数确定碰撞过滤器组。碰撞过滤器组的显示名称是由 Bullet 解算器的碰撞过滤器属性定义的。
碰撞过滤器遮罩(Collision Filter Mask)
用于指定可与此刚体发生碰撞的其他刚体,默认情况下,此刚体将与属于 DefaultFilter 组的刚体发生碰撞。第一个 16 位整数确定碰撞过滤器遮罩。碰撞过滤器遮罩的显示名称是由 Bullet 解算器的碰撞过滤器属性定义的。与碰撞对象过滤器遮罩(碰撞对象)相同。针对该对象要与之碰撞的对象组输入位遮罩值。例如,如果指定为 1,该对象可以与属于组 1 的对象碰撞。
碰撞形状边界(Collision Shape Margin)
定义要碰撞的刚体对象之间的间隙大小。

“碰撞形状边界”(Collision Shape Margin)犹如每个碰撞形状周围的缓冲区。

打开“碰撞形状边界”(Collision Shape Margin)可加快模拟速度,并使模拟更稳定。

“碰撞形状边界”(Collision Shape Margin)行为的注释:

“碰撞形状边界”(Collision Shape Margin)的默认设置为 0.040(等于 4 厘米),接触的对象将反应激活解算的时刻。如果使用粘合形状(Glue Shapes)选项,并且粘合的对象接触或相交,请将“碰撞形状边界”(Collision Shape Margin)滑块设置为 0.00,这样就不会创建即时碰撞。将“碰撞形状边界”(Collision Shape Margin)设置为 0.00 可将边界减少为无,解算器将知道这些片段会自动发生碰撞。

默认情况下,Bullet 使用碰撞形状的小碰撞边界来提高碰撞检测的性能和可靠性。我们建议您不要修改默认的“碰撞形状边界”(Collision Shape Margin) (0.040),因为如果使用一个正值,零边界可能会引入问题。

根据您使用的碰撞形状,碰撞边界具有不同的含义。通常,“碰撞形状边界”(Collision Shape Margin) 展开对象,创建一个小间隙。若要补偿创建的间隙,某些形状会从对象的实际大小中减去边界。例如,Bullet 长方体碰撞形状从一半范围中减去碰撞边界,而球体碰撞形状使用其整个半径作为碰撞边界,以确保没有间隙。(不需要覆盖球体的“碰撞形状边界”(Collision Shape Margin),也不建议这么做。)

对于凸面壳体、圆柱体和圆锥体,边界将与对象范围相加,因此会出现间隙,除非您调整图形网格或碰撞大小。