骨骼动画程序

最近有人问我怎样实现骨骼动画,于是我就想起了我以前写的这篇文章,贴上来给大家看看。
一、文章编写目的
写这篇文章,是给程序员看的。目的在于给程序员介绍骨骼动画的原理、数据结构和程序实现的粗略方法。
骨骼动画的应用面很多,主要用在3D角色动画,不过现在也很多人用于2D动画。下面的内容不会直接的把程序列出,只会阐述原理,关键的步骤是使用矩阵做坐标系变换。原理明白之后,不管2D或者3D应该都能自己编写。
二、什么是骨骼动画
传统的动画,一般是对一个物体对象进行位移、旋转、缩放、变形,然后把关键帧的信息记录下来,在播放的时候按照关键帧时间对物体对象进行位移、旋转、缩放、变形,并在关键帧与关键帧之间做插值运算。
骨骼动画的特点是,需要做动画的物体对象本身不记录位移、旋转、缩放、变形信息,而是通过了第三方的“骨骼”物体记录动画信息,然后物体对象本身只记录受到骨骼物体影响的权重。在播放的时候,通过骨骼物体的关键帧和物体对象记录的权重,让动画重现。

更多内容,请访问技术社区

三、骨骼动画的好处
相对于传统动画,骨骼动画似乎多了2个记录:骨骼物体和权重。按道理来说,这种骨骼动画的资源容量和运行效率应该不如传统的动画,那为什么还要做骨骼动画呢?
好处有以下几点:
1、骨骼动画是影响到顶点级别的动画,而且可以多根骨骼根据权重影响同一个顶点,不论是2D或者3D使用,都可以让动画做得更丰富。
2、做到了对象和动画分离,我们只需要记录了物体对于骨骼的蒙皮权重,就可以单独的去制作骨骼的动画,在保证蒙皮信息和骨骼信息一致的情况下,还可以多个物体之间共享动画。
3、相对于2D的逐帧动画大大的节省资源容量。
4、3D角色动画离不开骨骼动画。

四、美术层面理解骨骼动画
由于骨骼动画一般是由美术人员,更准确的是由动画师来制作的,所以相对于程序员来说,美术人员接触的机会比较多。这篇文章是给程序员看的,不过在从数据级别操作骨骼动画之前,最好还是先了解一下美术层面制作骨骼动画的方法。至于2D还是3D的情况下做骨骼动画,其实原理是一样的,只是2D时少了几个点,然后一个轴固定值了而已。
这里以3DsMax来举例子。需要制作一个骨骼动画,需要这几样东西:
1、网格物体
2、骨骼物体
3、蒙皮修改器
4、关键帧
网格物体:
需要做动画的对象物体,如这个例子里面我们需要让这个长方体翘起来

骨骼物体:
严格的骨骼对象物体,3DsMax有2种,一种是Bone,一种是biped。其实所有的物体都可以作为骨骼,包括了多面体网格物体、辅助物体等,都可以作为骨骼使用。不过为了便于一般操作习惯和导出数据方便,我们都只用Bone和Biped这两种。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值