2014游戏之骨骼动画.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最近有人问我怎样实现骨骼动画,于是我就想起了我以前写的这篇文章,贴上来给大家看看。 ? 一、文章编写目的 写这篇文章,是给程序员看的。目的在于给程序员介绍骨骼动画的原理、数据结构和程序实现的粗略方法。 骨骼动画的应用面很多,主要用在3D角色动画,不过现在也很多人用于2D动画。下面的内容不会直接的把程序列出,只会阐述原理,关键的步骤是使用矩阵做坐标系变换。原理明白之后,不管2D或者3D应该都能自己编写。 ? ? 二、什么是骨骼动画 传统的动画,一般是对一个物体对象进行位移、旋转、缩放、变形,然后把关键帧的信息记录下来,在播放的时候按照关键帧时间对物体对象进行位移、旋转、缩放、变形,并在关键帧与关键帧之间做插值运算。 骨骼动画的特点是,需要做动画的物体对象本身不记录位移、旋转、缩放、变形信息,而是通过了第三方的“骨骼”物体记录动画信息,然后物体对象本身只记录受到骨骼物体影响的权重。在播放的时候,通过骨骼物体的关键帧和物体对象记录的权重,让动画重现。 ? ? 三、骨骼动画的好处 相对于传统动画,骨骼动画似乎多了2个记录:骨骼物体和权重。按道理来说,这种骨骼动画的资源容量和运行效率应该不如传统的动画,那为什么还要做骨骼动画呢? ? ? 好处有以下几点: ? 1、骨骼动画是影响到顶点级别的动画,而且可以多根骨骼根据权重影响同一个顶点,不论是2D或者3D使用,都可以让动画做得更丰富。 2、做到了对象和动画分离,我们只需要记录了物体对于骨骼的蒙皮权重,就可以单独的去制作骨骼的动画,在保证蒙皮信息和骨骼信息一致的情况下,还可以多个物体之间共享动画。 3、相对于2D的逐帧动画大大的节省资源容量。 4、3D角色动画离不开骨骼动画。 ? ?更多内容,请访问Unity3D技术社区【狗刨学习网】 四、美术层面理解骨骼动画 ? 由于骨骼动画一般是由美术人员,更准确的是由动画师来制作的,所以相对于程序员来说,美术人员接触的机会比较多。这篇文章是给程序员看的,不过在从数据级别操作骨骼动画之前,最好还是先了解一下美术层面制作骨骼动画的方法。至于2D还是3D的情况下做骨骼动画,其实原理是一样的,只是2D时少了几个点,然后一个轴固定值了而已。 这里以3DsMax来举例子。需要制作一个骨骼动画,需要这几样东西: 1、网格物体 2、骨骼物体 3、蒙皮修改器 4、关键帧 网格物体: 需要做动画的对象物体,如这个例子里面我们需要让这个长方体翘起来 ? ? 骨骼物体: 严格的骨骼对象物体,3DsMax有2种,一种是Bone,一种是biped。其实所有的物体都可以作为骨骼,包括了多面体网格物体、辅助物体等,都可以作为骨骼使用。不过为了便于一般操作习惯和导出数据方便,我们都只用Bone和Biped这两种。 ? 蒙皮修改器: 3DsMax有2种蒙皮修改器,Skin和Physique。作用都一样,都是给网格物体的顶点赋予权重。也没有谁好谁坏之说,看个人使用习惯。不过由于大部分的模型导出插件都不支持Physique蒙皮修改器,所以一般来说,都是使用Skin。 蒙皮修改器可以使用范围框、笔刷或者逐个点来调节权重,不过本质都是一样的,最后得到的是几根骨骼相对于某个顶点的影响权重。 ? ? ? 上图中的顶点受到骨骼bone01的0.25的影响,受到bone02的0.75的影响。这种情况下,该顶点虽然同时受到2根骨骼的影响,但bone02对它的影响会比较多一点。 ? ? 正常的情况下,一个顶点受到多根骨骼影响的权重加起来应该等于1。 ? ? 关键帧: 关键帧信息包括了 l 时间 l 位移旋转缩放的值 l 过渡插值的方式 ? ? 注意的是,软件操作上打了关键帧的物体才会动,不打关键帧的物体不会动或者跟随着父级物体动。所以很多动画师对一些由于不需要动的物体不打关键帧的。但由于每种动画导出插件的处理不一样,有些插件的编写作者也是忽略了这种情况,而导致了在动画解析的过程中缺少了部分的数据,导致动画播放不正常。 ? ? 五、程序层面理解骨骼动画 ? 相对于美术层面,程序方面需要以下的几个数据: ? 1、顶点索引数据 相对于美术只用关系网格物体的原始的位移旋转缩放,程序关心的是网格物体的每一个顶点的位置坐标,还有顶点之间组成网格的索引顺序。所谓的原始,指的是物体在没有进行蒙皮之前的位置。 如果是做2D,那么数据就会变成每个面片的四个顶点的坐标,而索引就要自己用算法去生成。当然索引只是在3d渲染时才用到,如果是纯2d,你可能只关心四个顶点的位置,然后绘制出面片。 由于之后一直都需要针对每一个顶点去储存和提取数据,所以在一开始的时候,就要把这些顶点的顺序固定下来。 ? ? 2、骨骼物体数据 骨骼物体我

文档评论(0)

eVitcbOBqM + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档