[发明专利]一种角色动画实现方法及系统无效
申请号: | 201110362512.9 | 申请日: | 2011-11-16 |
公开(公告)号: | CN102521866A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 戚军 | 申请(专利权)人: | 戚军 |
主分类号: | G06T13/40 | 分类号: | G06T13/40;G06F9/46 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 116000 辽宁省大连*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 角色 动画 实现 方法 系统 | ||
技术领域
本发明涉及一种角色动画实现方法及系统,其属于计算机图像显示技术领域。
背景技术
在游戏中,为了满足玩家个性化的需求,往往需要设计大量的图素,并通过复杂的换装系统丰富图素的输出。因此,动画显示技术中经常要面临以下问题。有的画面包括了大量的图素,例如一个游戏画面中包括了多个玩家角色,每个角色具有各不相同的造型,并且同时进行各不相同的动作操作。现有的动画输出技术包括动态加载和静态加载方式。所述动态加载是指当用到某一个图素时,才把该图素从硬件存储空间加载到内存;所述静态加载是指在程序开始时,把所有的图素加载到内存中,等待应用程序调用。当画面中包含大量图素的时候,若使用动态加载的方式输出画面,采用动态加载方式,如果画面图素过多,大量的数据会导致硬件输入I/O的阻塞而引起程序阻塞,导致动画画面输出不连续,影响动画输出质量;若使用静态加载的方式输出动画,该方法需要预先加载大量的数据,而导致启动程序时间过长和占用内存过多的问题。
为了解决上述问题,现有游戏中的动画显示技术多采用如下的方案:程序开始时,加载部分图素到内存中,可以根据需求,在程序中预先确定所要加载的图素;程序过程中,若当前要显示的图素不再内存当中,则淘汰内存中的部分图素,释放空间后加载要使用的图素。现有的方法的缺陷在于:由于在启动时,需要加载部分图素,因此导致较长的程序启动时间。专利ZL200510131814.X中提高了采用预置帧显示规则解决这个问题,但是其在加载图素前判断内存空间不足,采用淘汰内存中最久未使用的图素。但是最久为使用的图素可能在使用的时候被大量调用过,这样会导致图素的重复导入,浪费大量的时间和资源。
发明内容
为解决上述问题,本发明的目的是提供一种角色动画实现方法及系统,该方法能够减少动画加载过程中的硬件I/O阻塞,并减少内存占用容量。
为解决上述技术问题,本发明提供了一种角色动画实现方法及系统,包括:预置帧显示规则,用于选取组成动画的所有帧中的部分帧进行显示输出;根据所述的帧显示规则,获取当前显示循环中需要加载显示的帧的编号;判断所述需要加载显示的帧是否已被加载到内存,若是则直接显示;否则加载该编号的帧到内存并进行输出显示。
其中,所述规则为选取动画中编号为等差排列的帧进行显示。该规则的一种算法为:Xl=floor(floor(X/F)*F+mod(X,F)/P1)*P1,其中F为动画总帧数,P1为动画质量系数,X1为当前选取显示的帧编号,X为顺序播放F帧时当前显示循环对应于的帧编号。其中,动画质量系数P1以等比数列设置,以对应于不同帧缩减数;进而在动画显示之前通过确定动画质量系数P1。
在上述方法基础上,采用C++标准库提供的MAP储存所加载图素的信息,通过遍历MAP,判断当前要加载的图素是否已在内存中。
在上述方法基础上,进一步限制每一显示循环中图素的加载量;进而,若在确定的显示循环中需要显示的图素未能加载到内存,则调用该动画在内存中最近一次显示循环中加载的图素。具体的,限制图素加载量的方法可采用:判断已加载图素的总容量与当前要加载的图素容量之和是否不小于门限值,若大于则停止该显示循环中加载图素的操作。
在上述方法基础上,加载图素前判断内存空间大小,若内存空间不足,则采用下述方法淘汰图片,方法如下:
P=P1*a/b+P2*c/d;
其中:P1表示个人对最长时间没出现图片的偏好;P2表示个人对出现频率最少的图片的偏好;a表示一个图片出现的总次数;b表示运行总次数;c表示该图片出现的次数序号之和;d表示运行次数序号之和。
本发明在内存空间不足时,采用对最近未出现图片和出现频率最低的图片的权重,同时加入个人偏好,不但很好的降低了系统负荷,提高了动画输出的流畅性,同时也满足了不同人的不同要求,进步提高了此方法的可用性。
具体实施方式
本发明提供了一种角色动画实现方法及系统;所述动画由一组连续的并具有渐变效果的图片组成,每张图片称为一帧,一个动画通常用于表现一个完整的动作,帧数越多,动作表现得越平滑。所述帧即为每个显示循环中显示的图片(图素)例如,一个蝴蝶翅膀扇动的动画,由数幅翅膀位置不同的图片连续组成,当图片连续播放时即显示为翅膀扇动的效果。在动画中包含了若干个显示循环,动画画面的绘制是以时间为周期的循环过程,在每个显示循环内完成一次画面展现和必要的逻辑运算;每个显示循环内,画面内所有的动画都显示一帧,循环的时间可根据需要定制,例如,现有游戏中通常将动画显示循环的周期设置为50毫秒。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于戚军,未经戚军许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110362512.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种治疗少精子症的中药九子生精丸
- 下一篇:按摩用钢球