Vision引擎中Havok 约束和锚点介绍

引言
Havok™ 物理约束是一种特殊的专用图形类型,可以链接到静态或动态的世界锚点图形,用于创建铰链、球窝接头和其他约束类型系统。 这些约束图形限制了被物理图形链接的所有对象的移动,为物理模拟增添真实感。 锚点图形可以无需父项地绑定到世界中(静态锚点),或以成为某实体子项的方式绑定到对象(动态锚点)。

Vision引擎中Havok 约束和锚点介绍

约束和锚点图形
约束图形位于 Havok™ 图形组,锚点可在对象组中找到,从图形创建面板将这些图形拖拽到场景中即可完成添加。

Vision引擎中Havok 约束和锚点介绍

Vision引擎中Havok 约束和锚点介绍

连接物理对象
使用约束和锚点图形,可将附有刚体组件的实体物理链接到另一个此类实体。 必须首先将锚点放置在场景中,然后还要以从图形列表中拖拽实体的方式添加实体。

Vision引擎中Havok 约束和锚点介绍

在场景中添加约束后,该约束可以通过链接实用工具链接到实体锚点:

Vision引擎中Havok 约束和锚点介绍

Vision引擎中Havok 约束和锚点介绍

   注:一个 Havok™ 约束同时只能链接到两个锚点。
 
下图显示了实体、约束和锚点间的关系。

Vision引擎中Havok 约束和锚点介绍

术语
Tau: 较大的推动或推力可拉伸所有约束。 约束的 tau 值决定了以物理时间步进为单位的恢复速度。 值越高,约束恢复越快。 因此,tau 值影响两个点之间的恢复力强度。 取值范围为 0.0f 到 1.0f。 1/sqrt(系统中约束的数量)是不错的选值。
 
Strength(强度): 对象速度的强度因数。 通常,1.0 是完美的取值,仅当很多对象被约束在一起时,该参数才可能要设得略低,以实现更高的稳定性。
 
约束属性
约束属性会根据您所选择的物理约束类型而改变。 除了位置和图形设置等常见属性外,以下为其主要属性。
 
Constraint Type(约束类型): 使用下拉列表选择所需约束类型,您可以选择:
 
  共有属性
大部分约束共有很多属性,所有约束体的 Breakable(可破)和 Malleable(可延展)设置都一样。 以下为共有属性:
 
 
Breakable Settings(可破设置):
 
Is Breakable(可破): 如果您希望物理关节能被一定的力打破,就将该属性设为 TRUE,然后更改阈值。
 
Threshold(阈值): 约束被打破的阈值。 这是关节能承受而不破裂的最大力度。 该属性的取值范围为 0 到 无限大。 该属性仅在可破属性为 TRUE 时生效。
 
Revert Velocity On Break(破裂时倒转运动): 该属性为布尔值。 该属性用于设定是否倒转受影响刚体的运动方向。 该属性仅在可破属性为 TRUE 时生效。
 
Malleable Settings(可延展设置):
 
Is Malleable(可延展): 如果您希望关节更具延展性,就将该属性设为 TRUE。
 
Strength(强度): 关节强度。 0.0 为自由延展,1.0 为不可延展。 使用该属性可让您的关节移动和延展得更多。
 
 
以下是对应约束类型的专有属性。
 
  球窝接头
球窝接头约束关节可以模拟球窝结合,即一个刚体在第二个刚体的基座中绕中心点旋转,该中心点位于需要放置关节的位置。

Vision引擎中Havok 约束和锚点介绍

除了位于约束共有属性中的共有属性之外,这一约束不包含任何属性,
 
铰链
铰链约束可在 2 个刚体之间模拟类似铰链的动作。 铰链约束的作用是限制,尤其是限制被连接刚体可旋转的最大角度,这有利于避免贯通。
 
以下是与铰链物理约束有关的属性。 铰链约束属性列表中也呈现图形的朝向组。

Vision引擎中Havok 约束和锚点介绍

Limits Settings(限制设置):
 
Use Limits(使用限制): 该属性设为 TRUE 即激活约束的限制。
 
Limit Max(最大限制): 该属性设置约束的最大限制角度,以度为单位。 0 ⇐ 最大限制 ⇐(360 + 最小限制)。
 
Limit Min(最小限制): 该属性设置约束的最小限制角度,以度为单位。 (-360 + 最大限制)⇐ 最小限制 ⇐0。
 
要查看所有约束共有的其他属性,请检查约束共有属性。
 
人偶
 
人偶约束关节限制了依附对象与另一参照对象之间的运动角度;有助于创建人和动物的肢体关节。
 
以下是与人偶物理约束有关的属性。

Vision引擎中Havok 约束和锚点介绍

Type Properties(类型属性):
 
  Cone Angle(锥体角度): 该属性设置了锥体绕扭转轴运动的角度,以度为单位。
 
   Plane Cone Min Angle(平面锥体最小角度): 该属性设置了围绕负平面轴的限制锥体的开放角度,以度为单位。
 
   Plane Cone Max Angle(平面锥体最大角度): 该属性设置了围绕正平面轴的限制锥体的开放角度,以度为单位。
 
   Twist Min Angle(扭转最小角度): 该属性设置了绕扭转轴旋转的最小角度,以度为单位。
 
   Twist Max Angle(扭转最大角度): 该属性设置了绕扭转轴旋转的最大角度,以度为单位。
 
   Max Friction Torque(最大摩擦扭矩): 该属性设置了约束所具有的摩擦量。
 
   Angular Limits Tau Factor(角度限制 Tau 因数): 该属性设置了限制角度的 Tau 因数。 默认值为 0.8。 见术语部分对 TAU 的描述。
 
要查看所有约束共有的其他属性,请检查约束共有属性。
 
硬弹簧
硬弹簧约束将刚体分开一定距离。 硬弹簧作用于每个刚体中的一个点。 刚体可绕该点自由移动和旋转,但两点相对距离固定不变。

Vision引擎中Havok 约束和锚点介绍

除了位于约束共有属性中的共有属性之外,这一约束不包含任何属性,
 
约束示例
以下示例简单地演示了如何使用约束系统。
 
铰链约束类型
使用铰链约束类型的示例
 
  铰链示例
创建 2 个实体,为每个实体添加一个 Havok™ 刚体组件。 底部的实体要设成固定类型,使其不会移动或掉落;顶部实体需为动态。 将顶部实体放在如下图所示的位置,然后创建 2 个锚点图形并将它们分别放置在两个实体中,在世界和图形列表中都要放置在实体中。

Vision引擎中Havok 约束和锚点介绍

然后创建一个约束,将其放置到您希望建立约束的位置。
 
将约束类型属性设为铰链。 然后使用链接工具,将约束链接到两个实体中的 2 个锚点。 按下运行按钮查看模拟运行状况。
 
使用铰链的绳索
创建一条使用铰链的链绳的示例。
 
要创建这一链绳,先创建 6 个水平排列的实体,然后在每个实体中放置一个 Havok™ 刚体组件。 设置 2 端,使其固定在 Havok™ 刚体组件中。 创建 6 个锚点图形,在场景和图形列表中将其分别放置到每个实体的中心。

Vision引擎中Havok 约束和锚点介绍

创建 5 个 Havok™ 约束图形,分别放置在 6 个实体间的空隙中。 将约束类型属性设为铰链。
 
使用链接工具;选择第一个约束图形,然后链接约束两侧的两个锚点。 重复这一步骤,直到将所有约束与锚点链接,如下图所示:

Vision引擎中Havok 约束和锚点介绍

球窝接头约束类型
球窝接头约束关节示例。
 
要创建球窝接头关节,先创建 2 个实体,然后在每个实体中放置一个 Havok™ 刚体组件。 在刚体组件中,将底部的实体设为固定类型。 放置一个锚点图形,在场景和图形列表中都要把它放在实体内。

Vision引擎中Havok 约束和锚点介绍

创建一个 Havok™ 约束;将约束类型设为球窝接头。 将其放置到 2 个实体当中,然后使用链接工具链接 2 个锚点图形。

Vision引擎中Havok 约束和锚点介绍

硬弹簧约束类型

硬弹簧约束关节示例。

Vision引擎中Havok 约束和锚点介绍

创建 5 个实体,在每个实体中分别放置一个 Havok™ 刚体组件。 将它们垂直摆放,如下图所示。 将顶部的实体刚体设为固定。

 

创建 5 个锚点,并在场景和图形列表中都放到图形内部。

 

创建 4 个约束,将每个约束都设为硬弹簧类型,并将约束放置到实体之间。 使用链接工具,将约束与毗邻的锚点链接起来。 按下运行按钮查看模拟结果。

Vision引擎中Havok 约束和锚点介绍

摆球示例

 

要创建摆球效果,

 

先创建一个实体,将实体设为球体,并添加刚体组件。

 

创建 2 个锚点,一个没有父项,另一个应成为子项并放置在实体中心。 具体设置见图。

 

创建一个约束并放置到没有父项的锚点下方。

Vision引擎中Havok 约束和锚点介绍

使用链接工具,将约束链接到 2 个锚点。

Vision引擎中Havok 约束和锚点介绍

然后运行示例,观看球体前后摆动。

你可能感兴趣的:(visio)