基于XML文件的动画编辑与播放系统设计
2015-07-13李志岩等
李志岩等
摘要:该文所介绍的动画编辑和播放是一种“快速动画”,可应用于教师上课的动画演示,学生的程序设计的逻辑能力培训等场景中。动画的编辑和播放是通过XML文件联系的,动画数据存储在XML文件中,播放器读取XML文件数据进行播放。整个过程不需要复杂的操作,制作简单。
关键词:动画编辑;动画播放;XML
中图分类号:TP311 文献标志码:A 文章编号:1009-3044(2015)13-0195-02
Abstract:The animation editing and playing in this paper is a kind of“Fast animation”,which can be applied to some scenarios,like animation presentation on a class by teachers,training the logical skills of students in programming,and so on.The animation editing and playing are contacted by XML files,the data of animation is stored in XML files,and then the player read the data in XML files and play the animation.There are no complex operations in the whole process,and it is very convenient.
Key words:animation editing; animation playing; XML
近年来,随着计算机知识的不断普及,越来多的人投入到使用计算机工作的队伍中。人们在工作中沟通时往往需要直观的动画来介绍、描述某个语言难以表达的信息或情景。
微软发布的图形子系统WPF(Windows Presentation Foundation )为本类软件提供了技术基础。而本文所谓的“快速动画”相较真正意义上的动画创作方式而言,这里的“快速”,指的是不必逐帧对动画进行描绘,仅通过直观的交互动作设计或脚本编辑方式即可完成动画的设计工作。比如Scratch就是一款由麻省理工学院(MIT)研究开发的动画编辑工具, MIT 做了相当深入研究和颇具针对性的设计开发,构成程序的命令和参数通过积木形状的模块来实现此外这款软件还提供了动作预览,可以很方便地随时查看动作效果。
本系统主要对简单的动画制作和播放进行开发,动画文件的存储以及解析是本系统研究的核心。该系统主要的主要功能动画的制作和播放,具体包括:场景的添加,角色脚本的制作,角色动作的编辑,动画的预览,动画播放。
1 关键技术
1.1 XML文件
动画数据用XML文件存储,其定义的标签有XML中的标签有:scences(总场景) scence (场景)players(总角色)player(角色),X,Y(坐标)rolestyles(角色总造型)style(角色造型)rolemusics (角色音乐)roleactions (角色总动作)roleaction(角色动作)actionname(动作名称)。文件结构为:总场景中包含若干个场景,每个场景中包含若干个角色,每个角色又包含自己相应的若干属性。
1.2 WPF
WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架一部分。他提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作交互用户界面。其的核心是一个与分辨率无关并且基于向量的呈现引擎,旨在利用现代图形硬件的优势。WPF 通过一整套应用程序开发功能扩展了这个核心,这些功能包括可扩展应用程序标记语言 (XAML)、控件、数据绑定、布局、二维和三维图形、动画、样式、模板、文档、媒体、文本和版式。本文中的动画的播放和控制是基于WPF平台做的二次动画开发。
2 系统设计
2.1 整体架构
系统的整体框架如图1所示:
动作库、人物库、场景库、音乐库,作为动画制作的资源,舞台是实现制作过程中的实时显示。XML文件作为制作平台和播放器之间的桥梁,有着至关重要的作用。
2.2动画编辑流程
动画编辑的过程包括:素材的载入、动作的编辑、整体的预览3部分。
动画编辑中所需的素材在相应的库中保存,直接在相应的库中打开预览效果,满足动画编辑的效果时才载入素材,当没有素材满足时,可以将相应的素材导入素材库,之后可以方便的从素材库中载入。
动作的编辑是动画制作的灵魂。在动作库中已存在动画编辑所需的所有的动作,可以直接通过点击相应的按钮来触发相应的动作。至于某些动作比较复杂,可以在控制类动作中选择相应的控制选项来完成复杂的动作,类似于高级语言的编辑。
动画编辑完成后,可以进行整体的预览,让动画预览到某一动作后停止,查看效果。如果动画的播放效果满意则播放下一段动作;如果不满意可以进行局部的微型调整,以满足动画的效果。整体预览的效果如图2所示。
2.3 解析流程
解析流程主要分为3个步骤:解析XML文件、查询动作库、读入数据。
解析XML文件过程就是读取动画的脚本文件,解析出动作类型及其概念上的数据。由于动作的类型和动作的数据是分开的,所以需要从动作库中查询动作类型所对应的数据。就像是上文所示的XML文件中“向下移动10步”这个动作,这是一个移动动作的类型,具体的“向上”、“10步”的概念,计算机并不能直接识别,所以需要把这个动作映射到动作类中。动作类中存储有具体操作的数据,“向上”涉及到方向的问题,“10步”涉及到到底体现在计算机中是多少像素的问题等等。所以查询动作库的目的就是读出各个动作的操作数据。最后就是将读出的数据动态加载系统中。
2.4播放处理流程
整个动画过程是许多个动画单位(如一个移动就是一个动画单位)连续播放而成的,XML文件的解析以及动画的还原,只是一个动画单位的过程,在整个动画的播放过程中一直在不断的进行着“解析——还原”的过程直到所有的动画播放完成。如图3所示:
这种控制的方式有一个好处,可以优化动画播放时对内存的利用。由于在动画播放的时候,主要加载的是图片资源,并且还要需要时间控制,如果事先把所有的资源都加在进来,放在一条时间轴上,就会使消耗掉大量的内存,对电脑造成一定的负面影响。但是本文中采用的是一边解析一边播放的方式:先解析一个单位的动画,然后播放,播放完成后释放资源,再解析另一个动画播放,这样就可以降低内存的使用率。其播放效果图如图4 所示。
3 结束语
动画编辑与播放平台就是一个集动画剧本创作和动画交互式演播于一体的多媒体动画创作系统。此动画编辑与播放系统操作简单,易于使用,可以帮助人们快速建立动画原型、快速建立动画剧本,从而达到便捷建立动画演示的目的。
在实际的应用中,它可以帮助人们快速展示课件中无法建立的动画效果,可以辅助商业用户进行多媒体展示,可以用来培养学生的程序设计的逻辑能力,也可以用来培养儿童们的动手能力。
参考文献:
[1] Matthew MACDonald. WPF编程宝典-C#2010版[M]. 王德才,译.北京:清华大学出版社,2011.
[2] 严蔚敏,李冬梅,吴伟民,等. 数据结构(C语言版)[M].北京:人民邮电出版社, 2013.
[3] 王小科,王军,赵会东. C#编程宝典(十年珍藏版)[M].北京:人民邮电出版社, 2011.
[4] Kolko. 交互设计沉思录[M]. 方舟,译.北京:机械工业出版社,2013.
[5] Introduction to WPF,MSDN Library[Z].