手机网游开发指南-更复杂的动画
本文将介绍手机网游客户端内容的重要展现形式:动画。此动画和的基本原理和动画片的原理一致,只是出于资源瘦身、多次利用的目的,它的结构更为复杂。
(本文来自博客园的Agent`K,转载请注明出处)
以下为手机网游动画的创建过程,以被踢飞的灰太狼为例:
- 美术经过构思、绘制,制作出一张或多张灰太狼的图片。(仅此过程美术人员所使用的工具是标准的制图工具如Photoshop,之后的操作全部在动作编辑器中完成)
- 将灰太狼按一定规则“切开”,成为多张小图块,如脑袋、身子、腿、胳膊等,省去空白部分以降低文件大小。
- 将小图块再次拼接成灰太狼,此时的产物称之为“帧”。
- 重复3,因为灰太狼被踢飞的过程需要多个帧来完成。灰太狼在飞行的过程中可能出现翻滚、旋转,此时可以将相同的图块(比如脑袋)进行翻转、旋转等操作,来减少原始图块的个数(图形绘制API支持这些操作,所以并不需要一个上下颠倒的脑袋)。
- 定义一个基准点(可以理解为地平线),将“帧”摆上去,称为“动画帧”(其实就是给帧增加了坐标属性)。设置这个动画帧的停留时间。
- 重复5。如果灰太狼是竖着飞上天的话,就只需要一个帧,但在多个动画帧中使用,改变下每个动画帧里的帧的坐标即可,这就说明帧可以多次利用。实际情况是灰太狼是画了个完美的抛物线飞出的,那就需要比较多的帧了。
- 将动画帧以它们各自的停留时间依次绘制,嗯嗯,灰太狼就灰出去了。
重复上面的过程,制作出灰太狼的其他动作。
原理就这么多。
制作具体的工具就复杂了,图形化的界面,涉及图片切割、元素拖拽、图形翻转旋转绘制、动画的播放等。另外,还需要设计两种文件格式,一种用于保存2中的图块,另一种用于保存制作好的动作集合。为什么不存在同一个文件里呢?答案是:要尽可能多的共享资源。如果灰太狼有个表弟和它长得差不多,只是眼睛大了一些,很显然我们就没必要再画那些胳膊腿儿了。
重要提示:
l 请务必为数据格式设定版本号,否则在出现格式变动时将很难进行兼容。
l 编辑器的产出文件很难直接用在客户端上,必然有一个格式转换的过程,所以数据格式的定义不必太拘泥,深入的优化完全可以在转换的过程中进行。
l 为了便于进行资源的版本控制、修改对比,最好将这些文件保存为文本形式。