[发明专利]利用flash脚本实现的三维骨骼动画控制系统及方法无效
申请号: | 201210173387.1 | 申请日: | 2012-05-30 |
公开(公告)号: | CN102810210A | 公开(公告)日: | 2012-12-05 |
发明(设计)人: | 刘艳;韩智攀 | 申请(专利权)人: | 天津大学 |
主分类号: | G06T13/20 | 分类号: | G06T13/20 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 李素兰 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 flash 脚本 实现 三维 骨骼 动画 控制系统 方法 | ||
技术领域
本发明涉及电脑动画设计领域,特别是一种三维动画的控制方法。
背景技术
在二维游戏领域里,Flash脚本技术已经十分成熟。但是在应用程序方面的游戏早已是三维的天下。三维的场景让玩家有更高的代入感和真实感,这是它的优势。游戏潮流的三维化已经是当前势不可挡的大趋势。如果能将三维应用集成于目前的Flash应用中,必然能让用户体验到更加震撼的效果。
区别于图形渲染,动画控制是三维技术中重要的一个组成部分。当前动画控制技术包括:基于运动学知识的运动序列设定,正向与反向的运动学技术运用,基于运动动力学的动画控制,采用运动捕获技术来达到控制动画的目的等技术。动画控制技术的应用在三维游戏中的体现得尤其重要。游戏中的动画一部分涉及到游戏对象的自身动作,在三维游戏中主要是通过骨骼动画实现;另一部分是游戏中对象的运动,大部分的游戏都会涉及到物体的运动。例如一个对象的巡逻,追逐,自动寻路等行为动作。游戏动画关系着角色实体的仿真动作,使得游戏具有更强的真实性和代入感。然而现有的动画控制技术只能形成简单的动作,无法达到游戏中物体动作的要求,并且目前还没有很好的方法来应用于flash开发之中。在具体的应用中,动作效果往往相对复杂,并且需要一定的智能性——例如给出运动的起点,使得客体在躲避障碍物的情况下找到最短路径或者触发某些机关,到达指定的终点。本发明针对这一点,将脚本控制运用到flash骨骼动画的控制当中,使得动画制作人员无需了解运动学及物理学即可获得真实的骨骼运动方式。使其工作精力集中在动画的创意创作上,而不是专注于动作的生成方法和过程。
发明内容
基于上述现有技术存在的问题,本发明提出了一种利用flash脚本控制三维骨骼动画的方法,而骨骼动画相比顶点动画要求更高的处理器性能,但同时它也具有更多的优点,骨骼动画可以更容易、更快捷地创建。不同的骨骼动画可以被编辑在一起——例如,模型可以转动头部、射击并且同时也在走路。虽然说骨骼动画的创建方便快捷,但是将不同的骨骼动画结合在一起的过程较为困难。目前广泛应用的渲染引擎只能提供简单的骨骼动画,在具体应用中需要开发者按照需求进行组合。
本发明提出了一种利用flash脚本实现的三维骨骼动画控制系统,该系统设置于上层的玩家和游戏开发人员界面与底层的Away3D Flash3D图形引擎和ActionScript3脚本之间的中间层,其特征在于,该系统3D开发的场景信息建立和脚本控制系统两部分,其中:
所述场景信息建立涉及到了三个核心对象,即质点对象、二维向量和地图网格;
所述脚本控制系统,包括脚本文本、脚本解析器、脚本对象、脚本管理器、触发控制器以及指令处理器,在该系统执行以下操作:
脚本文本在游戏场景被创建同时写入脚本解析器,经解析生成为脚本对象,所述脚本对象被输入到场景的脚本管理器中;所述脚本对象是一个包含触发器、执行指令和控制目标的实体;当某一条脚本对象进入脚本管理器时,对应的触发事件将被加入场景的触发控制器进行管理;对应的触发事件类向脚本管理器发出触发信号,脚本管理器根据触发信号将该脚本对象中触发事件所对应的响应指令输入指令处理器,指令处理器生成相应的指令并且负责每一帧更新指令列表中活动的指令以及该指令的执行。当一条指令被创建时,该指令首先将初始化自己的参数,获取场景信息;指令开始监听与指令相关联的事件,如果自己是一个复合指令,它同时初始化自己的子指令队列。最终指令将自己的状态置为等待。系统自动执行该指令完成指令所要完成的三维骨骼动画控制任务。
每条所述指令对应文件中的一个控制对象,但是一个场景中的对象同时受到多条指令的控制;活动的指令由它的父级指令进行更新,整个系统中的指令是一个树状的结构,指令处理器是这个树的根节点。
所述指令的执行,具体包括以下步骤:
当收到开始执行的消息后,初始化指令参数,即当前指令将被其父级指令加入更新队列,并将指令状态置为运行;开启监听线程;指令涉及的处理事件的相关处理函数由具体指令指定;将指令链接到相应的控制目标;执行当前指令或依次递归式地执行当前指令的子指令,将迭代地更新所有处于运行状态的子指令;执行过程中指令不停地更新,挑选当前应该执行的指令进行执行;判断当前指令及其子指令是否结束,向当前指令的父级指令发送指令结束的信息,同时将自己的状态置为僵尸态;父级指令接受到消息后将把该指令从指令队列中移除,从而失去对它的引用;至此,一条指令的生命结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210173387.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:频率可重构数字滤波器及其均衡器
- 下一篇:缝纫机