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),也不建议这么做。)
对于凸面壳体、圆柱体和圆锥体,边界将与对象范围相加,因此会出现间隙,除非您调整图形网格或碰撞大小。