游戏中加载动画的方法和装置与流程

文档序号:12119893阅读:704来源:国知局
本发明的实施方式涉及网络游戏
技术领域
:,更具体地,本发明的实施方式涉及游戏中加载动画的方法和装置。
背景技术
::本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。Unity3D是由UnityTechnologies开发的了可以轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。动画控制器(AnimationController)是Unity中用于配置动画状态机的机制,用户配置好相关状态转化和对应状态下的动画卡片(AnimationClip)后,在游戏中可以按照配置的模式进行播放。重写控制器(OverrideController)是Unity提供的用于可以重定向原有AnimationController里面的动画文件,方便用于进行大动画文件下的快捷修改,用户可以用它进行动画修改。技术实现要素:但是,现有技术中,Unity的机制是有引用立即加载,用户配置好AnimationController以后,用不同的OverrideController加载,那么OverrideController中大量的动画信息将会被一次性载入内存中,即用户在启动游戏时,会将所有的动画信息全部载入内存中。但是,由于在游戏过程中,通常情况下,只需要播放其中的部分动画文件,如果在游戏启动时将全部的动画信息载入内存中,造成了内存浪费,降低了游戏加载速度,而且由于加载全部的动画信息占用了大量内存,增加了内存开销,降低了游戏运行速度。为此,非常需要一种改进的游戏中加载动画的方法,以降低内存开销,提高游戏加载速度和运行速度。在本上下文中,本发明的实施方式期望提供一种游戏中加载动画的方法和装置。在本发明实施方式的第一方面中,提供了一种游戏中加载动画的方法,包括:在游戏中需要播放游戏动作对应的动画文件时,根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件;读取所述游戏动作对应的动画文件并进行播放。优选地,所述方法应用于游戏引擎Unity中。可选地,在根据预先定义的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件之前,还包括:配置重写控制器OverrideController为空。可选地,在读取所述游戏动作对应的动画文件并加载之前,还包括:判断内存中是否存在所述游戏动作对应的动画文件;以及读取所述游戏动作对应的动画文件并进行播放,具体包括:如果内存中存在所述游戏动作对应的动画文件,则从内存中读取所述游戏动作对应的动画文件并进行播放;如果内存中不存在所述游戏动作对应的动画文件,则从硬盘中读取游戏动作对应的动画文件并进行播放。优选地,从硬盘中读取游戏动作对应的动画文件并进行播放,具体包括:从硬盘中读取动画卡片适配器AnimationClipAdapter文件;从所述AnimationClipAdapter文件中查找需要播放的游戏动作对应的动画卡片AnimationClip文件;根据查找到的AnimationClip文件更新所述OverrideController;加载更新后的OverrideController进行播放。可选地,在加载更新后的OverrideController之后进行播放之前,还包括:根据更新后的OverrideController对所述游戏引擎进行重配置。在本发明实施方式的第二方面中,提供了一种游戏中加载动画的装置,包括:确定单元,用于在游戏中需要播放游戏动作对应的动画文件时,根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件;加载单元,用于读取所述游戏动作对应的动画文件并进行播放。优选地,所述装置应用于游戏引擎Unity中。可选地,所述装置,还包括:第一配置单元,用于在所述确定单元根据预先定义的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件之前,配置重写控制器OverrideController为空。可选地,所述装置,还包括判断单元,其中:所述判断单元,用于在所述加载单元读取所述游戏动作对应的动画文件并加载之前,判断内存中是否存在所述游戏动作对应的动画文件;所述加载单元,具体用于如果所述判断单元的判断结果为是,则从内存中读取所述游戏动作对应的动画文件并进行播放;如果所述判断单元的判断结果为否,则从硬盘中读取游戏动作对应的动画文件并进行播放。优选地,所述加载单元,包括:读取子单元,用于从硬盘中读取动画卡片适配器AnimationClipAdapter文件;查找子单元,用于从所述AnimationClipAdapter文件中查找需要播放的游戏动作对应的动画卡片AnimationClip文件;更新子单元,用于根据查找到的AnimationClip文件更新所述OverrideController;加载子单元,用于加载更新后的OverrideController进行播放。可选地,所述装置,还包括:第二配置单元,用于在所述加载子单元加载更新后的OverrideController之后进行播放之前,根据更新后的OverrideController对所述游戏引擎进行重配置。在本发明实施方式的第三方面中,提供了一种游戏中加载动画的方法,包括:建立动画文件和游戏动作标识间的映射关系;在运行游戏时,根据游戏动作被调用的顺序,逐步加载游戏动作标识对应的动画文件至内存并进行播放。在本发明实施方式的第四方面中,提供了一种游戏中加载动画的装置,例如,可以包括存储器和处理器,其中,处理器可以用于读取存储器中的程序,执行下列过程:在游戏中需要播放游戏动作对应的动画文件时,根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件;读取所述游戏动作对应的动画文件并进行播放。在本发明实施方式的第五方面中,提供了一种程序产品,其包括程序代码,当所述程序产品运行时,所述程序代码用于执行以下过程:在游戏中需要播放游戏动作对应的动画文件时,根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件;读取所述游戏动作对应的动画文件并进行播放。根据本发明实施方式的游戏中加载动画的方法和装置,通过预先建立游戏动作标识与动画文件之间的对应关系,这样,在游戏运行过程中需要播放任一游戏动作对应的动画文件时,可以根据预先建立的对应关系即时读取该游戏动作对应的动画文件进行播放,而无需在启动时一次性将全部的动画文件都读入到内存中备用,提高了游戏启动时的加载速度,而且,由于内存中只需存储游戏运行过程中即时读取的部分动画文件,而无需存储全部的动画文件,从而节约了内存开销,提高了游戏运行速度,为用户带来了更好的体验。附图说明通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:图1示意性地示出了根据本发明实施方式的游戏中加载动画的方法流程示意图;图2示意性地示出了根据本发明实施方式的建立游戏动作标识与相应的动画文件之间的对应关系的流程示意图;图3示意性地示出了根据本发明又一实施例的游戏中加载动画的方法流程示意图;图4示意性地示出了根据本发明再一实施例的从硬盘中读取该游戏动作对应的动画文件并进行播放的流程示意图;图5示意性地示出了根据本发明再一实施例的游戏中加载动画的方法的实施流程示意图;图6示意性地示出了根据本发明一实施例的游戏中加载动画的装置结构示意图;图7示意性地示出了根据本发明一实施例的游戏中加载动画的装置的结构示意图;图8示意性地示出了根据本发明一实施例的游戏中加载动画的装置的程序产品示意图;在附图中,相同或对应的标号表示相同或对应的部分。具体实施方式下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。根据本发明的实施方式,提出了一种游戏中加载动画的方法和装置。在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。发明概述本发明人发现,现有的游戏引擎在启动游戏时会一次性将全部的动画文件读入从内存中备用,如果游戏运行过程中需要播放某个动画文件,则从内存中读取相应的动画文件进行播放,但是由于游戏运行过程中,可能只需要播放其中的一部分动画文件,这样,在游戏启动时一次性加载全部的动画文件需要耗费较长的时间,降低了游戏加载速度;而在游戏运行过程中,加载的动画文件越多,占用的内存开销越大,影响了游戏运行速度。有鉴于此,本发明实施例中预先定义动作标识与动画文件之间的对应关系,在游戏启动时加载一个空的文件,这样,提高了游戏加载速度,而在游戏运行中,根据实际需求在需要执行一个动作时即时读取其对应的动画文件进行播放,这样,实现了按需读取动画文件,将内存中存储的动画文件大大减少,减少了内存开销,提高了游戏运行速度。在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。应用场景总览本发明实施例提供的游戏中加载动画的方法适用于游戏引擎中,游戏适用于于Unity游戏引擎。需要说明的是,上述应用场景仅是为了便于理解本发明的精神和原理,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。示例性方法如图1所示,为本发明实施例提供的游戏中加载动画的方法的实施流程示意图,包括以下步骤:S11、建立动画文件和游戏动作标识之间的映射关系。具体实施时,根据游戏实际需要,针对可能出现的游戏动作制作相应的动画文件,例如,走路、踢腿、弯腰、跑、跳等游戏动作对应的动画文件,并建立游戏动作标识与相应的动画文件之间的对应关系。如图2所示,其为建立的映射关系一种可能的示意。S12、在运行游戏时,根据游戏动作被调用的顺序,逐步加载游戏动作标识对应的动画文件至内存并进行播放。本步骤中,在游戏运行过程中,根据游戏动作被调用的顺序,逐步加载游戏动作标识对应的动画文件至内存中进行播放。例如,游戏角色直走后左转,在游戏角色开始走时,首先将游戏动作“走”对应的动画文件读入内存并播放,在游戏角色需要时再将游戏动作“左转”对应的动画文件读入内存并播放,由此,可以根据游戏动作被调用的顺序逐步加载游戏动作标识对应的动画文件至内存并进行播放。需要说明的是,为了提高播放动画文件的速度,在读取游戏动作对应的动画文件时,可以首先判断内存中是否存在该游戏动作对应的动画文件,如果有则可以直接播放相应的动画文件,如果没有,则再从硬盘中将相应的动画文件读入内存中再进行播放。基于此,步骤S12可以按照以下流程实施:判断内存中是否存在所述游戏动作对应的动画文件,如果内存中不存在所述游戏动作对应的动画文件,则通过重新赋值给重写控制器,将对应的硬盘中的动画文件加载至内存并进行播放。针对Unity游戏引擎,本发明实施例中,可以用一个空的OverrideController替换原OverrideController,由于新的OverrideController是一个空文件,其中不包含任何的动画文件,因此,避免了在游戏启动时加载定义的全部游戏动作对应的动画文件的问题,因此,提高了游戏启动速度;而在游戏运行过程中,根据游戏需要加载部分动画文件,与加载全部的动画文件相比,节约了内存开销,提高了游戏运行速度。基于步骤S11中建立的动画文件和游戏动作标识之间的映射关系,如图3所示,为根据本发明又一实施例的游戏中加载动画的方法实施流程示意图,可以包括以下步骤:S31、在游戏中需要播放游戏动作对应的动画文件时,根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件。步骤S31中,在游戏运行后,根据游戏角色需要如果需要执行某游戏动作时,根据需要执行的游戏动作的游戏动作标识在游戏动作标识与动画文件的对应关系中,查找到游戏动作标识对应的动画文件。S32、读取所述游戏动作对应的动画文件并进行播放。根据步骤S31查找到的动画文件,将相应的动画文件读入内存中并进行播。需要说明的是,在将本发明实施例应用于游戏引擎Unity中,在执行步骤S31之前,还需要配置OverrideController(重写控制器)为空,这样,在游戏启动过程中加载OverrideController,由于OverrideController为空文件,里面没有任何内容,因此,能够提高游戏加载速度。具体实施时,对于已经读入内存的动画文件可以缓存在内存中,在游戏运行过程中,在执行步骤S32之前还可以包括以下步骤:判断内存中是否存在所述游戏动作对应的动画文件。具体地,在游戏中需要播放游戏动作对应的动画文件时,首先根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件,然后,根据内存加载动画文件的缓存记录,判断内存中是否缓存有该游戏动作对应的动画文件,如果有,则直接从内存中读取相应的动画文件进行播放,如果内存中不存在该游戏动作对应的动画文件,则从硬盘中读取游戏动作对应的动画文件并进行播放,即首先将相应的动画文件从硬盘中读入内存,然后再从内存中读取相应的动画文件进行播放。具体实施时,从可以按照图4所示的流程从硬盘中读取该游戏动作对应的动画文件并进行播放:S41、从硬盘中读取动画卡片适配器AnimationClipAdapter文件。S42、从AnimationClipAdapter文件中查找需要播放的游戏动作对应的动画卡片AnimationClip文件。S43、根据查找到的AnimationClip文件更新所述OverrideController。S44、加载更新后的OverrideController进行播放。具体实施时,由于修改了OverrideController,因此,在执行步骤S44之前,还需要根据更新后的OverrideController对所述游戏引擎进行重配置。需要说明的是,在每次游戏退出时,将会清除读入内存中的动画文件,在下一次游戏启动时,根据游戏需要在逐步加载相应的动画文件至内存中。如图5所示,其为本发明实施例提供的游戏中加载动画的方法的实施流程示意图,可以包括以下步骤:S51、建立动画文件和游戏动作标识间的映射关系。具体实施时,以游戏引擎Unity为例,可以将原有OverrideController进行剥离,提取其包含的所有映射信息,再利用自定义的格式通过ScriptableObject进行转存,记录OverrideController中原有游戏动作标识与动画文件以及新载入游戏动作标识与动画文件之间的映射关系。S52、启动游戏。需要说明的是,根据本发明实施例,通过将OverrideController配置为空,使得在启动游戏过程中,无需预先加载任何动画文件至内存中,由此,提高了游戏加载速度。S53、游戏运行过程中,需要播放游戏动作对应的动画文件时,根据建立的游戏动作标识与动画文件的对应关系,确定游戏动作对应的动画文件。具体实施时,可以根据游戏动作标识在图2所示的表格中查找对应的动画文件。S54、判断内存中是否存在该游戏动作对应的动画文件,如果是,则执行步骤S55,否则,执行步骤S56。S55、从内存中读取游戏动作对应的动画文件并进行播放,流程结束。S56、从硬盘中读取动画卡片适配器AnimationClipAdapter文件。S57、从所述AnimationClipAdapter文件中查找需要播放的游戏动作对应的动画卡片AnimationClip文件。S58、根据查找到的AnimationClip文件更新OverrideController。S59、根据更新后的OverrideController对游戏引擎进行重配置。S510、加载更新后的OverrideController进行播放。根据本发明实施例提供的游戏中加载动画的方法,在游戏启动时,不加载任何动画文件至内存中,因此,提高了游戏加载速度,在游戏运行过程中,根据需求逐步加载相应的动画文件至内存中,由于加载至内存中的动画文件仅为本次游戏运行过程中涉及的游戏动作对应的动画文件,而非针对游戏设计的全部动画文件,从而减少了内存开销,提高了有序运行速度。示例性设备在介绍了本发明示例性实施方式的方法之后,接下来,参考图6对本发明示例性实施方式的、游戏中加载动画的装置进行说明。如图6所示,其为本发明实施例提供的游戏中加载动画的装置的结构示意图,包括:确定单元61,用于在游戏中需要播放游戏动作对应的动画文件时,根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件;加载单元62,用于读取所述游戏动作对应的动画文件并进行播放。优选地,本发明实施例提供的游戏中加载动画的装置可以应用于游戏引擎Unity中。可选地,本发明实施例提供的游戏中加载动画的装置,还可以包括:第一配置单元63,用于在所述确定单元61根据预先定义的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件之前,配置重写控制器OverrideController为空。可选地,本发明实施例提供的游戏中加载动画的装置,还可以包括判断单元64,其中:所述判断单元64,用于在所述加载单元62读取所述游戏动作对应的动画文件并加载之前,判断内存中是否存在所述游戏动作对应的动画文件;所述加载单元62,具体用于如果所述判断单元64的判断结果为是,则从内存中读取所述游戏动作对应的动画文件并进行播放;如果所述判断单元64的判断结果为否,则从硬盘中读取游戏动作对应的动画文件并进行播放。优选地,所述加载单元62,包括:读取子单元621,用于从硬盘中读取动画卡片适配器AnimationClipAdapter文件;查找子单元,622用于从所述AnimationClipAdapter文件中查找需要播放的游戏动作对应的动画卡片AnimationClip文件;更新子单元623,用于根据查找到的AnimationClip文件更新所述OverrideController;加载子单元624,用于加载更新后的OverrideController进行播放。可选地,本发明实施例提供的游戏中加载动画的装置,还可以包括:第二配置单元65,用于在所述加载子单元624加载更新后的OverrideController之后进行播放之前,根据更新后的OverrideController对所述游戏引擎进行重配置。在一些可能的实施方式中,根据本发明游戏中加载动画的装置可以包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式游戏中加载动画的方法中的各种步骤。例如,所述处理单元可以执行如图3中所示的步骤S31,在游戏中需要播放游戏动作对应的动画文件时,根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件,步骤S32,读取所述游戏动作对应的动画文件并进行播放。下面参照图7来描述根据本发明的这种实施方式的游戏中加载动画的装置70。图7显示的游戏中加载动画的装置仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图7所示,游戏中加载动画的装置70可以以通用计算设备的形式表现,例如其可以为服务器设备。游戏中加载动画的装置70的组件可以包括但不限于:上述至少一个处理单元71、上述至少一个存储单元72、连接不同系统组件(包括存储单元72和处理单元71)的总线73。总线73表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。存储单元72可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)721和/或高速缓存存储器722,还可以进一步包括只读存储器(ROM)723。存储单元72还可以包括具有一组(至少一个)程序模块724的程序/实用工具725,这样的程序模块724包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。游戏中加载动画的装置70也可以与一个或多个外部设备74(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与该游戏中加载动画的装置70交互的设备通信,和/或与使得该游戏中加载动画的装置70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口75进行。并且,游戏中加载动画的装置70还可以通过网络适配器76与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器76通过总线73与游戏中加载动画的装置70的其它模块通信。应当明白,尽管图中未示出,可以结合游戏中加载动画的装置70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。示例性程序产品在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的游戏中加载动画的方法中的步骤,例如,所述终端设备可以执行如图3中所示的步骤S31、在游戏中需要播放游戏动作对应的动画文件时,根据预先存储的游戏动作标识与动画文件的对应关系,确定所述游戏动作对应的动画文件,步骤S32,读取所述游戏动作对应的动画文件并进行播放。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。如图8所示,描述了根据本发明的实施方式的游戏中加载动画的程序产品80,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1