Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38868
  • 博文数量: 59
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 328
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-11 09:27
文章分类
文章存档

2015年(7)

2014年(52)

我的朋友

分类: 信息化

2015-01-12 10:22:25

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

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

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

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

   注: 一个 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 为不可延展。 使用该属性可让您的关节移动和延展得更多。


以下是对应约束类型的专有属性。

  球窝接头
球窝接头约束关节可以模拟球窝结合,即一个刚体在第二个刚体的基座中绕中心点旋转,该中心点位于需要放置关节的位置。

除了位于约束共有属性中的共有属性之外,这一约束不包含任何属性,

铰链
铰链约束可在 2 个刚体之间模拟类似铰链的动作。 铰链约束的作用是限制,尤其是限制被连接刚体可旋转的最大角度,这有利于避免贯通。

以下是与铰链物理约束有关的属性。 铰链约束属性列表中也呈现图形的朝向组。

Limits Settings(限制设置):

Use Limits(使用限制): 该属性设为 TRUE 即激活约束的限制。

Limit Max(最大限制): 该属性设置约束的最大限制角度,以度为单位。 0 ? 最大限制 ?(360 + 最小限制)。

Limit Min(最小限制): 该属性设置约束的最小限制角度,以度为单位。 (-360 + 最大限制)? 最小限制 ?0。

要查看所有约束共有的其他属性,请检查约束共有属性。

人偶

人偶约束关节限制了依附对象与另一参照对象之间的运动角度;有助于创建人和动物的肢体关节。

以下是与人偶物理约束有关的属性。

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 的描述。

要查看所有约束共有的其他属性,请检查约束共有属性。

硬弹簧
硬弹簧约束将刚体分开一定距离。 硬弹簧作用于每个刚体中的一个点。 刚体可绕该点自由移动和旋转,但两点相对距离固定不变。

除了位于约束共有属性中的共有属性之外,这一约束不包含任何属性,

约束示例
以下示例简单地演示了如何使用约束系统。

铰链约束类型
使用铰链约束类型的示例

  铰链示例
创建 2 个实体,为每个实体添加一个 Havok? 刚体组件。 底部的实体要设成固定类型,使其不会移动或掉落;顶部实体需为动态。 将顶部实体放在如下图所示的位置,然后创建 2 个锚点图形并将它们分别放置在两个实体中,在世界和图形列表中都要放置在实体中。

然后创建一个约束,将其放置到您希望建立约束的位置。

将约束类型属性设为铰链。 然后使用链接工具,将约束链接到两个实体中的 2 个锚点。 按下运行按钮查看模拟运行状况。

使用铰链的绳索
创建一条使用铰链的链绳的示例。

要创建这一链绳,先创建 6 个水平排列的实体,然后在每个实体中放置一个 Havok? 刚体组件。 设置 2 端,使其固定在 Havok? 刚体组件中。 创建 6 个锚点图形,在场景和图形列表中将其分别放置到每个实体的中心。

创建 5 个 Havok? 约束图形,分别放置在 6 个实体间的空隙中。 将约束类型属性设为铰链。

使用链接工具;选择第一个约束图形,然后链接约束两侧的两个锚点。 重复这一步骤,直到将所有约束与锚点链接,如下图所示:

球窝接头约束类型
球窝接头约束关节示例。

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

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

硬弹簧约束类型

硬弹簧约束关节示例。

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


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


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

摆球示例


要创建摆球效果,


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


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


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

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

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

转自:
阅读(173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~