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

2015年(7)

2014年(52)

我的朋友

分类: 信息化

2015-01-14 11:26:07

引言
Havok? 物理人偶组件让您为模型骨架设置物理模拟。 每块骨骼在物理上都以刚体表示。 刚体由约束连接,以形成分层结构,而该结构与骨架的分层结构对应。 使用 3ds Max 或 Maya,整个刚体分层结构都需导出为 .hkt 文件,然后由组件载入。

可附加的图形类型
该组件可附加到以下任何图形类型上:

   实体

人偶组件属性
以下是与 Havok? 刚体组件有关的属性。

ComponentID(组件 ID): 可选组件名称,用于在附加组件中标识该组件

Enabled(启用): 指定该人偶是否激活。 取消激活后,该对象从 Havok? 世界中移除,也就是说该组件不再进行任何物理模拟。

Ragdoll Collision File(人偶碰撞文件): 刚体在其本地空间中的重心。

Debug Render(调试渲染): 启用或关闭物理调试渲染。

Debug Color(调试色): 用于显示调试几何体的颜色。

导出人偶碰撞文件
为了让人偶组件工作,须使用 Havok 内容工具(HCT)导出包含刚体 / 约束分层结构的 .hkt 文件。 Havok? Vision 物理引擎插件使用对象名称来查找刚体和角色骨架骨骼的对应关系。 有两种命名机制可让您在 3ds Max 和 Maya 中指定这些对应关系。

Havok 内容工具命名机制

使用 Havok? 人偶工具箱可轻松创建刚体的分层结构。 Havok? 人偶工具箱自动分配给新创建的刚体的对象名称会被直接使用,用于在 Havok? Vision 中查找对应的骨骼。 刚体名称包含骨骼名称:

Ragdoll_{BoneName}xx(例如Ragdoll_Biped Pelvis001 → Biped Pelvis)。

其中 xx 是任意长度的数字序列。
     注: 因为刚体名称以数字序列结尾,所以骨骼名称不得以数字序列结尾,否则映射将存在歧义。

这一点应在使用 3ds Max 和 Maya 创建人偶之前检查。 除此之外不需要任何手动重命名。

骨骼到刚体的命名机制
这一命名机制不存在产生歧义的可能。 它使用冒号将骨骼名称与对应刚体名称隔开。 所以在该命名机制下,骨骼名称包含了刚体的名称:

{BoneName}:{RigidBodyName}(例如 Biped Pelvis:Rb_Pelvis → Rb_Pelvis)。

通过 HCT 过滤器管理器导出
所产生的 .hkt 文件应仅包含人偶的刚体和约束。 其实现方式为启用 Visible Only(仅可见) 或 Selected Only(仅选中)勾选框,这两个勾选框位于 HCT 导出选项的场景数据部分。 不使用 Havok? 动画的应用程序可使用以下过滤器顺序:

Transform Scene(转换场景)(核心过滤器)
Create Rigid Bodies(创建刚体)(物理过滤器)
Create Constraints(创建约束)(物理过滤器)
Create World(创建世界)(物理过滤器)
Write to Platform(写至平台)(核心过滤器)
Transform Scene 过滤器用于为 Havok? 物理效果设置缩放(相对于 Havok? Vision 通常为 0.01)。 Create World Filter 会为刚体分配合适的碰撞过滤器信息。 这些信息是创建多个不会互相碰撞的系统组所需的,能够让刚体的物理模拟更加稳定。 在 Create World 选项中,碰撞过滤设为 GROUP_FILTER,Auto Assignment(自动分配)设为启用:

层应设为 1,即 Vision 中的动态对象层。 如果 Havok? 动画可用,Create World 可被 Create Ragdoll 过滤器替代,后者会自动分配碰撞过滤器信息。

为了最小化 .hkt 文件的尺寸,建议使用 Prune Types(删减类型)过滤器,并启用移除 All Scene Data(所有场景数据)的勾选框。 这样一来,只有确实需要的刚体和约束数据会被导出:

关于如何创建人偶刚体分层结构和导出 .hkt 文件的信息可在 Havok? 内容工具文档和对应教程中找到。

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