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功能,这个相当有趣).

  • 相关阅读:
    MongoDB集群架构 调整,增加延迟备份节点服务器,删除仲裁节点(9)
    MongoDB 副本集管理-不定期更新(8)
    DML和查询操作说明(7)
    MongoDB 副本集权限认证(6)
    python之路——作业:Select FTP(仅供参考)
    python之路——作业:类Farbic主机管理程序(仅供参考)
    python之路——作业:高级FTP(仅供参考)
    python之路——RabbitMQ
    python之路——协程(greenlet、gevent、简单爬虫)
    python之路——多进程(进程间通信、进程池)
  • 原文地址:https://www.cnblogs.com/mavaL/p/3050382.html
Copyright © 2011-2022 走看看