欢迎来到天天文库
浏览记录
ID:22628636
大小:2.06 MB
页数:24页
时间:2018-10-30
《silverlight.xna(c#)跨平台3d游戏研发手记:(九)3d 骨骼动画》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Silverlight5和WindowsPhone7.1都已具备SL.XNA模式,这意味着我们可以在相关平台上制作高性能的3D游戏及软件产品而无需二次编码。本节,我将借助一些工具为大家讲解SL.XNA的3D实现原理,并演示如何加载并解析一个功能齐全带贴图和骨骼动画的角色模型。从今天开始,通向3D之大门正全方位为您开启!关于传统3D游戏的原理并不是本文重点,不再赘述。我们更迫切的需要了解XNA对哪些3D格式支持以便我们可以快速的开始配置开发环境。默认的,XNA开发游戏最常用到.X和.FBX;至于其他的3D文件格式呢?比如Obj、3ds
2、、Md2等等。其实说到底,这与2D游戏中对精灵帧图的解析原理一样,无论什么类型的3D格式,其本质不过就一树形结构文本而已,http://fenzu.fuhao2.com只是内容较多且相对复杂些罢了;通过之前的教程学习,相信大家都已掌握了如何解析自定义的xml文件,那么通过代码或事先编写好的工具对各类3D文件格式进行解析相信亦并非难事,然后再将之与XNA的3DAPI对接,从而最终达到展示模型及运行骨骼动画等功能。不难看出,XNA游戏的核心也是最关键环节便是对资源的承载与解析,我们通常称之为内容管道(ContentPipline),该管
3、道提供了相应接口可随意扩展,从而达到高度自由且全方位覆盖的目的。3D比起2D来说水深得多,因此为了效率同时也为了降低入门成本,我们完全可以通过一些网上现有资源或开源项目来获取编写好的3D模型内容管道,在此和大家分享我的经验:1)SkinningSample–官方提供的XNA入门级骨骼动画演示Demo(实用度★)这是微软官方为初学者提供的XNA解析.FBX格式骨骼动画之经典案例,http://wangming.qqq90.com从此,Dude这个名字变得家喻户晓。该源码的核心部分是以下两个类库:然而实际情况并不乐观:我曾用它测试不下百
4、个FBX带骨骼动画的模型,能够正确解析并正常显示的寥寥无几,尤其对骨骼数支持方面问题尤为严重。提示大家,仅作为示例学习学习便可,除非你有能力对该内容管道进行二次拓展,否则实用性极低。2)KiloWattAnimation(实用度★★)这是一款开源的3D骨骼动画解析示例,支持XNA4.0,但目前版本不支持WindowsPhone,同时亦测试过十多款.X骨骼动画模型,支持率不高。3)AnimationComponent(实用度★★★)一位韩国3D游戏大师开发的XNA骨骼动画解析开源组件,功能还蛮全的,而且也附带了比较详细的英文教程,暂时
5、还不支持XNA4.0和WindowsPhone。4)XNAnimation(实用度★★★)巴西人制作的开源的高性能3D骨骼动画支持演示,据作者说将发布XNA4.0版本,可以保持关注。5)3DFPSSource(实用度★★★)很难得的比较完整的XNA3D射击游戏源码,包含的知识点元素很多,只可惜同样不支持XNA4.0和WindowsPhone。6)Axiom(实用度★★★★)作者介绍如下:AxiomEngineisanOpen-source,cross-platform3Drenderingenginefor.NETandMonoli
6、censedusingtheLGPL.Theengineisahigh-performanceC#portofthepowerfulOGREengineandprovidesfullsupportforDirectX,OpenGLandXNAonWindows,Linux,Android,iPhoneandWindowsPhone. 说实话,如果真的有作者所述之强大,其前途无可掂量;但至少来说,我暂时还未完全实验成功…7)XNACommunity(实用度★★★★)超多的XNA各平台游戏源码分享,称其为XNA入门级开发者的福音绝不
7、为过。比如运行于WP7平台上的劳拉RPGDemo,该源码对极复杂(各种资源混合压缩)的MD3(雷神之锤3)格式的骨骼动画解析近乎完美,运行效果非常流畅:8)Mono(实用度★★★★★)不用多做介绍了吧,搞.NET若不知道真可以撞墙了。WriteOncePlayEverywhere是MONO的终极目标,也是XNA要实现全方位跨平台的主流方法。然而,Mono却又并非微软官方所支持的解决方案,这确实是个令人纠结的技术难题。9)EngineNine(实用度★★★★★)一款跨微软所有游戏平台(Windows/Xbox360/WindowsPh
8、one7/Silverlight)的完全开源3D项目源码(若在商业项目中用到它,请保留EngineNine的标志,或者…这个你懂的),包含的游戏知识面比较很广,总的来说至少可以搭建一套完整的XNA3DRPG游戏。综合各种对比分析,并经
此文档下载收益归作者所有