对骨骼动画的分析与思考
2014-04-15邵辉
邵辉
摘 要 主要介绍目前应用最为广泛的骨骼动画的一些相关知识,简要分析骨骼动画的原理及优缺点,并结合自己的理解对骨骼动画的发展及其在中等职业教育中的应用进行研究。
关键词 骨骼动画;网格模型;顶点;中等职业教育
中图分类号:TP317.4 文献标识码:B
文章编号:1671-489X(2014)04-0086-02
1 概述
随着计算机动画在电影、游戏、虚拟现实等领域的广泛应用,越来越多的人们经常会听到一个最流行的词语——骨骼动画(bones animation)。所谓骨骼动画,就是通过改变骨骼的位置和朝向来移动和编辑一个模型而生成的动画。理解骨骼动画可以先从骨骼开始。在骨骼动画中,骨骼是基础,是关键点。目前在各类实时动画应用中骨骼动画已经成为使用最广泛的动画技术,使用骨骼动画技术,可以设计塑造出很多栩栩如生、形象逼真的动画角色,特别是对于人和其他脊椎动物的造型设计。如大家熟知的很多游戏(如魔兽世界、合金装备等)中的造型,都是骨骼动画技术的运用。
本文将对骨骼动画的一些相关知识进行分析与思考,进而探索骨骼动画在中等职业教育中应用的可行性。
2 骨骼动画的原理
骨骼动画的基本原理 在自然界中,人和大多数动物的运动都是由骨骼的运动带动依附于对应骨骼的皮毛血肉一起运动完成的,骨骼动画正是起源于这一点。一般来说,在骨骼动画中每一个角色主要是由两部分表示的,即骨架和皮肤。骨架是按照一定层次组织起来的骨骼的总称。而皮肤主要是指蒙在骨骼之上的网格模型。网格模型即角色的多边形模型,该多边形模型一般由三角形面片组成,而三角形又是由顶点组成的,同时还需要确定哪些骨骼影响哪些顶点,当骨骼运动时依附于骨骼的顶点会随着一起运动,这样就实现了动画中角色的运动。
骨骼动画的细节分析 在骨骼动画中,骨骼按照动画角色的特点形成一个层次结构,即骨骼结构。骨骼结构就是一系列的骨头相结合形成的骨层级,这些骨骼按照父子关系是以树状结构组织起来的,形成角色模型的整个骨骼框架。位于树根处的骨头称为根骨骼,它是形成骨骼结构的关键点。而其他所有的骨骼被称为子骨骼或者兄弟骨骼,它们都附属于根骨骼,都直接或间接连接到根骨骼上。骨骼动画中一般每块骨骼都带有两个矩阵,一个是初始变换矩阵,又称相对矩阵,用于表示骨骼的初始位置;另一个是组合变换矩阵,又称绝对矩阵,它是骨骼的最终矩阵,可以通过相对矩阵和其父骨骼的绝对矩阵相乘计算得到,主要用于对骨骼进行变换。相邻的骨骼由关节连在一起,可以做相对的运动。当相邻骨骼之间的夹角或位移发生改变时,组成动画角色的骨骼就可以做出不同的动作,从而实现不同的动画效果。而作为皮肤的网格模型则用于规定动画角色的外在形象,它是在骨骼运动影响下变化的一个可变形网格。
组成网格模型的每一个顶点都会受到一个或多个骨骼的影响。当一个顶点受到一个或多个骨骼运动影响时,不同的骨骼按照其与该顶点的关系可以确定出对该顶点的影响权重,这一权重信息既可以通过建模软件计算,也可以用手工设置完成。按照网格模型中各个顶点中保存的相应的权重信息和影响它的骨骼索引,可以计算出该顶点的新位置,在骨骼动画中骨骼的位置是随时间变化的,而顶点的位置是随骨骼变化的。如果要改变顶点的位置,只需移动模型中对应的一根骨头就可以,这样就能实现在骨骼驱动下的单一网格动画。
在骨骼动画文件中,一般只有一帧的顶点位置信息,而其他帧的顶点信息完全是在动画运行中实时计算出来的,计算的方式,就是要了解骨骼的作用。也就是说,每一帧的顶点信息都是依靠“骨骼”计算出来的。这种时间换空间的做法,相对于顶点来说,骨骼需要的存储量会少很多,但却多了一些运算。
3 骨骼动画的优缺点
如今骨骼动画已经成为渲染3D角色模型的主要技术,在计算机图形学中基于骨骼运动的角色造型具有很强的真实感。它对处理器性能的要求很高,占用磁盘空间相对比较小,可以更容易、更快捷地创建角色模型,不但比单一的网格模型动画更加灵活、逼真,还克服了关节动画中的接缝问题。骨骼动画只需要存储骨骼变换数据,不需要在每一帧中存储各个顶点的数据,因此使用骨骼动画可以节省许多磁盘空间,并且能够较好地控制网格模型的变换。不同的骨骼动画可以被组合到一起使用,一些引擎可以实时操纵单个骨骼,这样可以使角色和环境更加准确地进行交互。
目前骨骼动画被广泛地应用在很多领域,特别是网络游戏制作方面。骨骼动画具有很多优势,但其技术难度也很高。有了骨骼动画这种技术,在创建角色动画时,不再需要动画模拟几何图形数据。有了骨骼动画,就不用提前做好预处理,可以在游戏运行时计算动画,这样在游戏中可以有更真实的运动效果。因为不是所有的引擎都支持骨骼动画,骨骼动画中大量的计算,对中央处理器来说是一个很大的负担,容易造成系统利用率的不平衡,使骨骼动画的绘制效率降低。这一问题随着可编程GPU技术的广泛研究,一种基于GPU实现骨骼动画的方法被提出,已经得以解决。
4 骨骼动画的发展与应用
近年来国内外有很多学者都在研究骨骼动画,目前已经取得了一些成果。如孔德慧等提出了一种增强骨骼动画运动细节的关键帧插值方法,实现了对变速运动和手臂摆动运动模拟的动画效果。张典华等提出用顶点索引法存贮数据,大大降低了骨骼动画的运算量。陈志荣等讨论并实现了骨骼混合算法。Merrick等研究与分析了几种骨骼动画算法的性能。季卓尔等提出了一种可以提升骨骼动画绘制效率的方法。骨骼动画有很强的兼容性,它可以与动作捕捉技术、可编程Shader技术和正向反向动力学等技术进行结合。
研究骨骼动画的计算过程发现,骨骼动画的计算量特别大,因为当一个顶点受到许多骨骼影响时,求一个顶点的新位置会牵涉到大量的矩阵与乘法运算,骨骼动画技术也因此一度发展比较缓慢。现在,随着计算机计算能力的不断提高,特别是3D硬件技术的快速发展,骨骼动画已经走向成熟,并且已经广泛应用于电影、游戏、虚拟现实、建筑和教育等领域。
我国中等职业教育培养的是高素质的劳动者,需要学生在就业前具备很强的实践操作能力,即学生在接受中等职业教育阶段应该熟练掌握相关专业对应的岗位所需要的理论知识和基本技能。目前,中等职业教育主要还是以教师讲授为主,尽管增加了很多实训课,但还远远不够,不能满足实际教学需求,特别是汽修、数控和计算机专业。学生来源主要是初中毕业生,这些学生绝大多数的基础都很差,更缺乏自我约束力和学习能力,很多专业知识无法理解,比较厌学。这一状况一直困扰着中职教育工作者。同时,中等职业学校的学生因为年龄偏低,喜欢动画和游戏,有很强的好奇心和模仿力。因此,作为一名中等职业学校的计算机专业教师,帮助认为如果能将骨骼动画技术应用于中等职业教学环节,模拟各个就业岗位中的实际动画效果开展教学与实训,可以使学生看到以往只能在动画电影中才能看到的各种生动逼真的动画效果,亲身体会学习和工作带来的快感,来激发学生的学习兴趣,这样会得到事半功倍的效果。
将骨骼动画技术引入中职课堂教学,是一件庞大的工程,需要一个教师团队和一些企业单位共同参与来完成。可以先选择一个专业的某一门课程进行试点,利用骨骼动画技术的实时性、灵活性和仿真性,通过对企业工作岗位的调研分析,结合课程内容制作教学动画或游戏。在教学过程中使用这些教学动画或游戏,让学生有身临其境的感受,在玩中学,这将是中等职业教育的一次大的变革。
5 结论与展望
本文以一名中等职业学校计算机专业教师的视角简要分析了骨骼动画的原理及其发展与应用。目前,骨骼动画是最流行也是最复杂的动画技术,随着这一技术的发展与普及,可以想象,在不久的将来,骨骼动画的应用领域会更加广泛,一定能在中等职业教育的课堂中展现出无穷的魅力。
参考文献
[1]张振华,徐波,王虓宇,等.骨骼动画在仿真中的应用[J].现代计算机,2013(8):48-51.
[2]袁会杰.骨骼动画技术的研究与实现[D].成都:电子科技大学,2010.
[3]王蕊,万旺根,王瑞,等.基于iPhone平台的骨骼动画研究与实现[J].计算机工程与设计,2010(23):5043-5047.
[4]丁鹏,贾月乐,张静,等.骨骼蒙皮动画设计与实现[J].技术与市场,2009(10):11-12.
[5]张俊文.基于VC的3D角色动画的实现[J].中国水运,2008(12):107-108.
[6]Pipho E. Focus On 3D Models[M].Portland: Premier Press,2003:71.