时间:2024-06-18
徐 超(河南省工业设计学校 河南 郑州 450000)
骨骼动画技术探讨
徐超
(河南省工业设计学校河南 郑州 450000)
本文从骨骼动画技术在我国的发展情况入手,介绍一些与骨骼动画相关的知识,分析骨骼动画原理及其存在的优点与缺点,结合对骨骼动画的认识,浅谈骨骼动画技术。
网络模型;骨骼动画
骨骼动画(bones animation)的基本原理就是通过改变原有动画骨骼位置以及移动原动画朝向的方式生成新动画模型的模式。在骨骼动画当中,骨骼是一切的基础点,并且该技术随着近年来的不断完善,已经成为使用率最高且范围最广的一种动画技术。
随着科学技术的不断发展,骨骼动画已经悄然成为渲染3D角色模型的关键技术之一,并且在实际使用中,骨骼运动角色造型的真实感比较强。骨骼动画对处理器性能的要求极高,磁盘空间占用量比较小,所以可以更加便捷地创造模型。与传统的单一网格模型动画相比,骨骼动画更加灵活、逼真,克服了关节动画当中存在的接缝问题。骨骼动画只需要储存骨骼的变换数据即可,不必在所有帧当中储存顶点数据,不同骨骼动画都可以放到一起使用,部分引擎可以实现单体骨骼操作,使角色与环境更好地融入到一起[1]。
虽然骨骼动画的优点比较多,但是技术难度也相对比较高,但只要掌握了骨骼动画技术,在创建个人角色动画时,都不需要再次地模拟几何图形数据。骨骼动画的产生打破了传统工作模式,不需要提前进行预处理,可以在游戏运行过程中对动画进行计算,让动画效果在游戏中显得更加真实。并不是所有的引擎都支持骨骼动画,因为骨骼动动画必须要有大量的计算,所以给中央处理器带来的负担比较大,容易产生系统利用率不均衡等问题,降低骨骼动画绘制效率。该问题可以伴随CPU技术的不断发展而解决[2]。
骨骼动画包含了骨骼动画原理、骨骼动画创作、骨骼动画载入、骨骼动画实时驱动、骨骼动画优化处理以及骨骼动画设计实现等多方面内容,本文将对设计实现进行研究。
(一)顶点结构体
骨骼空间顶点的局部坐标数组当中所有的记录都应当记载在骨骼子空间局部坐标位置,相对应的骨骼空间顶点法线数组也应该记录在法线的坐标中。保存这两种数据,可以便于后期预处理,因为在骨骼动画计算时,单个骨骼的变换运算均是由局部坐标衍生而来的,所以可以通过预处理的方式保存这些数据,减少运算步骤[3]。将属性相同的顶点作为一个子对象,再将相同材质顶点放在相同的索引组当中,对其中所有骨骼点进行记录,记录父骨骼点,通过数组的方式来保存骨骼层次的信息。通常情况下骨骼点均在256个以下,所以可以用256单字节数组来实现骨骼设计[4]。
(二)关键函数与动画数据载入管理
在TSkeletonMesh分类中,deform Bone是比较重要的函数之一,将其传入到当前骨骼信息中,更新顶点。动画数据不仅是关键帧当中的数据,还包含了所有帧的信息,通过自定义的方式来明确数据结构,保存所有帧当中存在的关键信息。对TBone Anim Channel类型的动画数据进行设计,保存骨骼当中存在的关键帧信息,使用关键帧插值的方式来实现计算功能。可以通过获取最接近关键帧或者是获取两个最接近关键帧插值获取的方式来收获关键帧。对于完整的动画来说,可以通过设计TSkeleton Anim来管理其中存在的所有单体动画。该种类当中存在的get Key Frm Bone Nearest和get Key Frm Bone Linear才是获取关键帧数据的关键点,通过调节所有TBone Anim Channel对象getKey Frame Nearest的方式来实现关键帧数据获取,提升骨骼动画质量[5]。
(三)驱动实现
想要保证驱动骨骼动画,首先要将相关结构使用在模型数据以及动画数据的管理当中。其中,_postureLinear、calu Bone Refs以及deform是最为关键的函数,两者的功能侧重于计算在当前发展情况下如何变换以及更新骨骼局部以及如何去改善全局变换矩阵能力,保证更新顶点功能的正常发挥。驱动流程需要从多个环节进行优化。可以通过prevTranslate对是否要更新新平移信息进行研究,结合ahsChanged对信息内部产生的改变进行记录,以便于让顶点可以更好地进行简化运算,缩短运算环节与不必要工作时间,提升工作效率。
[1]季卓尔,张景峤.基于可编程图形处理器的骨骼动画算法及其比较[J].计算机工程与设计,2008,(21):5550-5554.
[2]董刚,赵龙,田尊华.基于智能体的群体动画创作方法的研究与实现[J].计算机仿真,2011,(12):143-146+150.
[3]张振华,徐波,王虓宇,周文理.骨骼动画在仿真中的应用[J].现代计算机,2013,(08):48-51.
[4]卢景峰.三维动画技术在二维动画中的应用探讨[J].现代计算机(专业版),2014,(07):59-62.
[5]李海燕,郭俊浩.正向运动学和关键帧系统的骨骼动画引擎实现[J].电脑编程技巧与维护,2010,(12):87-89.
徐超(1982-),从2006年9月至今在河南省工业设计学校艺术系任教。
J218.7
A
1007-0125(2015)03-0174-01
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!