zoukankan      html  css  js  c++  java
  • Ogre集成Havok ragdoll

      贴一个星际2虫群之心的单位死亡动画演示~很给力哟,请自行FQ

      https://www.youtube.com/watch?v=RlM2K-rHi9k

      毕业做毕设时用过PhysX的Wheel,它家的机车示例跟我后来考察的Havok家的相比,后者显然十分霸气和豪华,自此Havok给我留下了很好的印象.

       前段时间在工作中使用了PhysX的Max插件做ragdoll,本以为它已经很不错了,这段时间玩了Havok的Max插件+FilterManager+HCT 来制作ragdoll后,我感到很给力,不光Havok的文档,Demo代码很齐全和详尽,而且它技术支持做得真是好,试用版的使用者在论坛提出的每个问题,团队都会一一耐心解答.

      我这里集成Havok的ragdoll到Ogre时,没有使用Havok的Animation模块来替换掉Ogre的,因为我想保持Ogre原生的代码,以后想扩展animation blend tree等进一步功能时,自己能手动进行改造.就Havok的ragdoll这一块来说,已经把物理层的繁琐细节都封装起来了,提出了skeleton mapper的概念,暴露给外部的是hkaRagdollInstance这个类.通过下面明确的几个步骤,就能在抽象层次比较高的层面完成Ogre和Havok物理的交互,而不用纠缠于rigid body, constraint.....


      1) map high-res pose to ragdoll pose
      2) drive ragdoll rigid bodies and step physics
      3) map ragdoll pose to high-res pose
      4) render

      

      目前已经成功导入了Havok肢解demo的资源:zombie. Skin和ragdoll的max文件都有,我们需要自己导出.mesh和.hkt.

      十分需要注意的几点有:

    1. ragdoll(.hkt)的导出坐标系要与Ogre的一致,也就是yz互换,z变负.通过Havok的TransformScene filter即可.

              

    2. ragdoll和mesh导出时的reference pose要一致.

    3. The Triangle Pelvis Setup...参看Havok user guide的Skeleton Mappers章节

    4. Twist Bones for Ragdolls...同上.  以上4点都是ragdoll制作中可能遇到的问题,毕竟布娃娃这个东西大部分是要靠美术手工制作的.

    5. 代码中禁止掉ragdoll各部分间的自碰撞.否则会出现癫痫表现...

      相关的代码和资源都在我github上,有需要的朋友可以自行查看.需要注意的是,目前只成功运转了这个zombie,我尝试制作了SC2角色的ragdoll(枪兵和光头哥),都不能正常运作.无奈于对Max的骨骼动作相关制作不甚了解,这里就先搁置了(本来我的计划是成功后继续集成肢解dismemberment功能,这个相当有趣).

  • 相关阅读:
    Unity3D Shader入门指南(二)
    Unity3D Shader入门指南(一)
    NGUI 减少drawcall规则
    linux系统date命令详解
    使用Installutil安装系统服务方法
    各大视频网站广告屏蔽代码
    C#--无边框窗体实现拖动、最大化、最小化、关闭(转)
    C# 如何在winform窗体自定义一个扁平化控件(转)
    C# winform 界面美化技巧(扁平化设计) (转)
    VC6插件安装--Unable to register this add-in because its DllRegisterServer returns an error (转)
  • 原文地址:https://www.cnblogs.com/mavaL/p/3050382.html
Copyright © 2011-2022 走看看