`
plmkome
  • 浏览: 41508 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
引言
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 个锚点。

然后运行示例,观看球体前后摆动。
分享到:
评论

相关推荐

    Havok物理引擎

    Havok在授权文档中称,Intel将全数负担所有游戏开发商购买Havok引擎授权的费用。实际上,由于Havok已经是 Intel的全资子公司,这就相当于Intel将Havok引擎全免费送给了所有游戏开发商。目前需要付费购买Havok物理和...

    物理引擎Havok教程

    Havok引擎,全称为Havok游戏动力开发工具包(Havok Game Dynamics SDK),一般称为Havok,是一个用于物理系统方面的游戏引擎,为电子游戏所设计,注重在游戏中对于真实世界的模拟。使用碰撞功能的Havok引擎可以让更...

    Havok无力引擎介绍

    全球知名的物理引擎,英文简,感兴趣可以了解一下,想要进一步了解资料,联系我dashao001@126.com

    Havok_2012-2-0_Content_Tools手册汉化.CHM

    Havok内容工具包含大量强大的功能...工具程序员:任何人都试图将Havok内容工具集成到内部工具管道中,扩展它们或自动化它们. 每个部分根据使用的Havok产品进一步划分.如果您使用的是多种Havok产品,请查看每种产品的指南.

    UnrealEngine3.tar.gz_Havok_UNREALENGINE_UnrealEngine.i_编辑器_虚幻3引擎

    虚幻引擎3(UnrealEngine3)源代码,包含编辑器和引擎部分的源代码。比较完整。

    Havok教程示例代码_SimpleBoxes

    Havok物理引擎教程(四)示例代码,在Havok中模拟了一系列的Box刚体,用Ogre渲染

    ogre和havok第三部分

    一个简单的ogre和havok的整合 利用开源图形库OGRE,物理库havok,界面库cegui,以及他们用到的依赖库ois、boost等,在vs2010编译平台上开发出一个易于拓展的三维游戏框架。 应为我的相关库比较多,所以这个项目的...

    havok ogre model importerering

    import havok mesh give me points,

    ogre和havok第二部分

    一个简单的ogre和havok的整合 利用开源图形库OGRE,物理库havok,界面库cegui,以及他们用到的依赖库ois、boost等,在vs2010编译平台上开发出一个易于拓展的三维游戏框架。 应为我的相关库比较多,所以这个项目的...

    Havok动画渲染Demo(使用Ogre) 测试程序和源代码

    Havok动画渲染Demo(使用Ogre) 测试程序和源代码

    ogre和havok第一部分

    一个简单的ogre和havok的整合 利用开源图形库OGRE,物理库havok,界面库cegui,以及他们用到的依赖库ois、boost等,在vs2010编译平台上开发出一个易于拓展的三维游戏框架。 应为我的相关库比较多,所以这个项目的...

    Havok教程资料

    Havok教程资料是基于软件,用于游戏开发的一款可使用性软件

    Havok Animation Ogre

    实现Ogre地形跟Havok的物理计算,车辆系统跟地形的实时碰撞检测。Havok物理动画通过Ogre渲染,感兴趣的加入110120763群

    Havok Animation

    由于个人上传文件最大50MB,所以分三次上传 TerrainHavok.part1.rar,TerrainHavok.part2.rar,TerrainHavok.part3.rar

    PhysicsEngine:一个面向对象的物理引擎,它抽象了 PhysX(也许最终是 Havok)API

    一个面向对象的物理引擎,它抽象了 PhysX(也许最终是 Havok)API 汇编: 此项目需要访问 Nvidia PhysX SDK 版本 3.3.0 要编译,请在 VS2013 中打开项目并编辑 Include 和 Lib 文件夹以包含 PhysX SDK Include 和...

    DSLuaDecompiler:LuaHavokScript 反编译器用于 Dark SoulsBloodborneSekiro AI lua 文件和 Havok 行为脚本 (hks)

    DS3、Bloodborne 和 Sekiro 还使用 HavokScript,这是 Lua 5.1 的一个经过大量修改的版本,将游戏与 Havok 行为系统连接起来,并且大部分角色动画逻辑都在 HavokScript 中。 这个反编译器将反编译这些游戏中使用的 ...

    开源物理引擎bullet

    Bullet是一个开源的物理模拟计算引擎,世界三大物理模拟引擎之一(另外两种是Havok和PhysX)。广泛应用于游戏开发和电影制作中。Bullet也是AMD开放物理计划成员之一。 Bullet是一个跨平台的物理模拟计算引擎。支持...

    基于Ogre的Havok演示代码

    包含.scene读取,Havok角色控制/关卡/网络/VisualDebugger等

    欧拉公式求圆周率的matlab代码-havok2fbx:将Havok文件转换为AutodeskFBX

    欧拉公式求长期率的matlab代码Havok 2 FBX转换器0.1a 将Havok 2014-1-0 x32文件转换为FBX 2014.2.1的实用程序 支持 x32 .hkt / .hkx / .xml动画/骨架 设置 所需的库/应用程序: Havok SDK 2014-1-0 FBX SDK 2014.2.1...

    FairyGUI-vision

    将来支持Unity,Cocos2dx,Cry Engine,Havok Vision / Project无政府状态,白鹭,LayaAir,Haxe,Pixi,Flash,Starling和Unreal,LibGDX,Three.js。 特征 所见即所得,对艺术家友好。 复杂的UI组件可以直接在...

Global site tag (gtag.js) - Google Analytics