CN111857812A - 游戏界面中的动画曲线的迁移方法及装置 - Google Patents
游戏界面中的动画曲线的迁移方法及装置 Download PDFInfo
- Publication number
- CN111857812A CN111857812A CN202010743889.8A CN202010743889A CN111857812A CN 111857812 A CN111857812 A CN 111857812A CN 202010743889 A CN202010743889 A CN 202010743889A CN 111857812 A CN111857812 A CN 111857812A
- Authority
- CN
- China
- Prior art keywords
- animation
- time
- target
- points
- key point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000033001 locomotion Effects 0.000 claims abstract description 167
- 230000008859 change Effects 0.000 claims abstract description 24
- 238000004422 calculation algorithm Methods 0.000 claims description 34
- 238000013508 migration Methods 0.000 abstract description 31
- 230000005012 migration Effects 0.000 abstract description 31
- 238000009877 rendering Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 43
- 230000008569 process Effects 0.000 description 19
- 230000001133 acceleration Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种游戏界面中的动画曲线的迁移方法及装置,包括:在第一引擎中,生成目标动画的动画曲线;获取并存储该动画曲线中的关键点信息;其中,关键点为表征目标动画的运动变化趋势的点,关键点信息包括横纵坐标值、关键点左侧切线的斜率值和关键点右侧切线的斜率值;在第二引擎中加载该关键点信息;根据关键点信息确定目标动画在各个时刻点的运动状态值,从而生成目标动画所对应的动画曲线。本申请实施例,获取的关键点信息包含关键点的矢量化特征信息,因此,在第二引擎中只需要加载几个关键点的关键点信息就可以实现目标动画所对应的动画曲线的渲染,从而减少了信息存储量,节省了存储空间,以及减少了数据迁移量。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种游戏界面中的动画曲线的迁移方法及装置。
背景技术
随着计算机技术的快速发展,以及随着人们生活节奏的不断加快,游戏则成为越来越多人的日常消遣之一。对于一款游戏而言,不同的玩家可能会通过不同的途径进行游戏,例如,有的玩家可能会下载该游戏应用程序进行游戏,有的玩家可能会通过浏览器进行网页版游戏等等。因此,为了满足不同玩家的不同需求,一款游戏需要支持多种引擎。这样,就会存在开发人员需要将某款游戏的游戏安装包迁移至其他引擎中的情况。但是,对于游戏这一特殊场景而言,由于其涉及到较多的动画效果,即动画界面较多,而动画界面的动画效果一般通过动画曲线表征。因此,在进跨引擎迁移游戏项目时,会涉及到动画曲线的迁移。
现有技术中,为了实现将动画曲线从一个引擎迁移至另外一个引擎,一般需要采集动画曲线上较多的点的横纵坐标值,尤其是在动画曲线的斜率变化比较明显的地方更需要采集较多的点的横纵坐标值。由于需要采集的点的信息较多,因此,使得动画曲线的信息存储量较大,从而占用较大的存储空间,并且还会增加数据迁移量。
因此,有必要提出一种技术方案,以解决动画曲线的迁移时,动画曲线的信息存储量较大,从而导致占用较大的存储空间,以及增加数据迁移量的问题。
发明内容
本申请实施例的目的是提供一种游戏界面中的动画曲线的迁移方法及装置,以解决现有技术中动画曲线的迁移时,动画曲线的信息存储量较大,从而导致占用较大的存储空间,以及增加数据迁移量的问题。
为解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供了一种游戏界面中的动画曲线的迁移方法,用于将所述游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎;所述方法包括:
在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线;其中,所述动画曲线的横坐标表示时间,所述动画曲线的纵坐标表示运动状态值;
获取所述动画曲线中的关键点所对应的关键点信息,并存储所述关键点信息;其中,所述关键点为构成所述动画曲线的各个点中表征所述目标动画的运动变化趋势的点,且所述关键点至少包括起始时刻点和终止时刻点,所述关键点信息包括所述关键点的横坐标值、所述关键点的纵坐标值、所述关键点左侧切线的斜率值和所述关键点右侧切线的斜率值;
在所述第二引擎中加载所述关键点信息;
根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,并根据所述各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线。
本申请还实施例提供了一种游戏界面中的动画曲线的迁移装置,用于将所述游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎;所述装置包括:
生成模块,用于在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线;其中,所述动画曲线的横坐标表示时间,所述动画曲线的纵坐标表示运动状态值;
第一执行模块,用于获取所述动画曲线中的关键点所对应的关键点信息,并存储所述关键点信息;其中,所述关键点为构成所述动画曲线的各个点中表征所述目标动画的运动变化趋势的点,且所述关键点至少包括起始时刻点和终止时刻点,所述关键点信息包括所述关键点的横坐标值、所述关键点的纵坐标值、所述关键点左侧切线的斜率值和所述关键点右侧切线的斜率值;
加载模块,用于在所述第二引擎中加载所述关键点信息;
第二执行模块,用于根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,并根据所述各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线。
本申请实施例提供了一种游戏界面中的动画曲线的迁移设备,用于将所述游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎;所述设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线;其中,所述动画曲线的横坐标表示时间,所述动画曲线的纵坐标表示运动状态值;
获取所述动画曲线中的关键点所对应的关键点信息,并存储所述关键点信息;其中,所述关键点为构成所述动画曲线的各个点中表征所述目标动画的运动变化趋势的点,且所述关键点至少包括起始时刻点和终止时刻点,所述关键点信息包括所述关键点的横坐标值、所述关键点的纵坐标值、所述关键点左侧切线的斜率值和所述关键点右侧切线的斜率值;
在所述第二引擎中加载所述关键点信息;
根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,并根据所述各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线。
本申请实施例还提供了一种存储介质,用于将所述游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎;所述存储介质用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:
在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线;其中,所述动画曲线的横坐标表示时间,所述动画曲线的纵坐标表示运动状态值;
获取所述动画曲线中的关键点所对应的关键点信息,并存储所述关键点信息;其中,所述关键点为构成所述动画曲线的各个点中表征所述目标动画的运动变化趋势的点,且所述关键点至少包括起始时刻点和终止时刻点,所述关键点信息包括所述关键点的横坐标值、所述关键点的纵坐标值、所述关键点左侧切线的斜率值和所述关键点右侧切线的斜率值;
在所述第二引擎中加载所述关键点信息;
根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,并根据所述各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线。
本申请实施例提供的游戏界面中的动画曲线的迁移方法,首先在第一引擎中生成目标动画所对应的动画曲线,然后获取该动画曲线中能够表征目标动画的运动变化趋势的关键点的关键点信息,并存储所获取的关键点的关键点信息;其中,关键点信息包含关键点的横纵坐标值、左侧切线的斜率值和右侧切线的斜率值,即存储的为该关键点的矢量化特征信息,然后,在第二引擎中,根据上述关键点信息可确定出目标动画在各个时刻点所对应的运动状态值,从而渲染出目标动画所对应的动画曲线;在本申请实施例中,由于获取的关键点信息包含关键点的矢量化特征信息,因此,只需要加载所获取的几个关键点的关键点信息就可以在第二引擎中实现目标动画所对应的动画曲线的渲染,从而减少了信息存储量,节省了存储空间,以及减少了需要迁移至第二引擎中的数据迁移包的大小,即减少了数据迁移量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的游戏界面中的动画曲线的迁移方法的方法流程图之一;
图2为本申请实施例提供的游戏界面中的动画曲线的迁移方法中,在第一引擎中所生成的动画曲线的示意图;
图3为本申请实施例提供的游戏界面中的动画曲线的迁移方法中,在动画曲线上所选取的关键点的示意图;
图4为本申请实施例提供的游戏界面中的动画曲线的迁移方法的方法流程图之二;
图5为本申请实施例提供的游戏界面中的动画曲线的迁移方法的方法流程图之三;
图6为本申请实施例提供的游戏界面中的动画曲线的迁移方法的方法流程图之四;
图7为本申请实施例提供的游戏界面中的动画曲线的迁移装置的模块组成示意图;
图8为本申请实施例提供的游戏界面中的动画曲线的迁移设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例的思想在于,在将目标动画的动画曲线进行跨引擎迁移时,首先需要对该动画曲线中能够表征目标动画的运动变化趋势的关键点的关键点信息进行存储,各个关键点的关键点信息除了包含横纵坐标值外,还包含左侧切线的斜率值和右侧切线的斜率值,即存储的为该关键点的矢量化特征信息;这样,这样减少所存储的数据量,并且,在第二引擎中,只需要加载所获取的几个关键点的关键点信息就可以实现目标动画所对应的动画曲线的渲染,从而减少了数据迁移包的大小。基于此,本申请实施例提供了一种游戏界面中的动画曲线的迁移方法、装置、设备及存储介质,下述将一一进行介绍。
其中,本申请实施例提供的方法,可以应用于任意游戏迁移场景中,本申请实施例并不对上述游戏的具体类型或者种类进行限定。
本申请实施例提供的方法的一种具体应用场景可以是,开发人员将针对应用程序(Application,APP)所开发的一款游戏的游戏安装包迁移至某浏览器中,即实现该游戏的网页版;假设该APP版本的游戏所采用的引擎为Unity引擎,浏览器所支持的引擎为laya引擎,对于该游戏中涉及到的动画曲线的迁移时,为了减少所迁移数据包括的大小,可以采用本申请实施例提供的方法进行动画曲线的迁移。
首先,本申请实施例提供了一种游戏界面中的动画曲线的迁移方法,该方法用于将游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎,其中,第一引擎和第二引擎为不同的引擎;图1示出了本申请实施例提供的游戏界面中的动画曲线的迁移方法的第一种方法流程图,如图1所示,该方法至少包括:
步骤102,在第一引擎中,根据目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成目标动画所对应的动画曲线。
其中,上述动画曲线的横坐标表示时间,动画曲线的纵坐标表示目标动画的运动值。
可选的,在具体实施时,目标动画可以为滚动的小球、缓慢切入界面的文字、行走的人物等等。上述目标动画在各个时刻点所对应的运动状态值可以为速度值、加速度值或者位移值中的任意一种。
例如,若是上述运动状态值为加速度值,则目标动画的动画曲线则为目标动画的加速度曲线;若是上述运动状态值为速度值,则目标动画的动画曲线则为目标动画的速度曲线;若是上述运动状态值为位移值,则目标动画的动画曲线则为目标动画的位移曲线。
当然,上述运动状态值除加速度值、速度值和位移值之外,还可以为其他表征运动的参数,本申请实施例只是以上述运动状态值可以为加速度值、速度值和位移值为例进行示例性说明,并不构成对运动状态值的限定。
为便于理解本申请实施例所提及到的动画曲线,下述将距离进行说明。
例如,在一种具体实施方式中,目标动画为在游戏界面中滚动的小球,为了表征该小球的运动状态,可以以时间为横坐标、速度为纵坐标,绘制小球的动画曲线。其中,所绘制的小球的一种可能的动画曲线的示意图如图2所示。
在图2所示的动画曲线中,当曲线上升时,表明小球处于加速运动状态,当曲线下降时,表明小球处于减速运动状态;图2所示的动画曲线,所表征的小球的运动过程为“加速运动-减速运动-加速运动”。当然,图2只是示例性说明,并不构成对本申请实施例中所绘制的动画曲线的限制。
步骤104,获取上述动画曲线中的关键点所对应的关键点信息,并存储该关键点信息。
其中,上述关键点为构成动画曲线的各个点中表征目标动画的运动变化趋势的点,且上述关键点至少包括起始时刻点和终止时刻点,上述关键点信息包括关键点的横坐标值、关键点的纵坐标值、关键点左侧切线的斜率值和关键点右侧切线的斜率值。
另外,需要说明的是,在本申请实施例中,所选取的关键点至少包括目标动画运动的起始时刻点和终止时刻点,除此之外,还包括目标动画的动画曲线上其他可表征目标动画的运动变化趋势的点。所选取的关键点的数量依据实际的动画曲线而定,例如,对于某动画曲线而言,若是包含四个能表征其所对应目标动画的运动变化趋势的点,则所选取的关键点的数量则为四个;若是包含六个能表征其所对应目标动画的运动变化趋势的点,则所选取的关键点的数量则为六个。
在本申请实施例中,在获取关键点的关键点信息时,除了获取该关键点的横纵坐标值外,还获取能够表征该关键点的矢量化特征的信息,即该关键点左侧切线的斜率值和右侧切线的斜率值。由于所获取的关键点信息包含该关键点的矢量化特征信息,因此,只需要保存几个关键点的关键点信息即可在第二引擎中实现目标动画所对应的动画曲线的渲染,减少了数据存储量和需要迁移至第二引擎中的数据包的数据量大小。
另外,需要说明的是,在本申请实施例中,关键点左侧切线的斜率值,表征该关键点所对应的进切线的切线斜率值,关键点右侧切线的斜率值,表征该关键点所对应的出切线的切线斜率值。
步骤106,在第二引擎中加载上述关键点信息。
步骤108,根据各个关键点确定目标动画在起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,并根据各个时刻点所对应的运动状态值,生成目标动画所对应的动画曲线。
在本申请实施例中,首先在第一引擎中生成目标动画所对应的动画曲线,然后获取该动画曲线中能够表征目标动画的运动变化趋势的关键点的关键点信息,并存储所获取的关键点的关键点信息;其中,关键点信息包含关键点的横纵坐标值、左侧切线的斜率值和右侧切线的斜率值,即存储的为该关键点的矢量化特征信息,然后,在第二引擎中,根据上述关键点信息可确定出目标动画在各个时刻点所对应的运动状态值,从而渲染出目标动画所对应的动画曲线;在本申请实施例中,由于获取的关键点信息包含关键点的矢量化特征信息,因此,只需要加载所获取的几个关键点的关键点信息就可以在第二引擎中实现目标动画所对应的动画曲线的渲染,从而减少了信息存储量,以及需要迁移至第二引擎中的数据迁移包的大小,即减少了数据迁移量。
可选的,在一种具体实施方式中,上述步骤108中,根据关键点信息确定目标动画在起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,具体包括如下过程:
根据各个关键点的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值,确定目标算法函数的系数;其中,目标算法函数用于计算各个时刻点所对应的运动状态值;确定起始时刻和终止时刻的范围内的多个时刻点;分别将上述多个时刻点中的每个时刻点输入至目标算法函数中,基于所确定的目标算法函数的系数,计算目标动画在每个时刻点所对应的运动状态值。
其中,需要说明的是,在本申请实施例中,上述所选取的起始时刻和终止时刻的范围内的时刻点的数量为任意的。在具体实施时,可以从起始时刻开始,依次按照设定时间间隔选取时刻点,直至到达终止时刻。当然,所选取的各个时刻点之间的时间间隔可以相同、也可以不相同,本申请实施例并不对此进行限定。
为便于理解,下述将举例进行说明。
例如,在一种具体实施方式中,在界面开启的第3分钟03秒时插入目标动画,在界面启动后的第3分06秒时目标动画运动结束,也即,目标动画运动开始的时刻为界面启动后第3分钟03秒,结束时刻为界面启动后第3分06秒。
假设可以按照0.5秒的时间间隔选取时刻点,因此所选取的时刻点可以为3分03秒、3分03.5秒、3分04秒、3分04.5秒、3分05秒、3分05.5秒以及3分06秒。当然,也可以在3分03秒和3分06秒之间随机选取多个时刻点。此处只是示例性说明确定时刻点的其中一种或几种具体实现过程,并不构成对本申请实施例的限定。
可选的,在一种具体实施方式中,上述用于计算目标动画在各个时刻点所对应的运动状态值的目标算法函数可以为样条曲线函数,具体的,该样条曲线函数可以为插值样条曲线函数或者逼近样条曲线函数。此外,该样条曲线函数可以为二次样条函数、也可以为三次样条函数;只要是可以用于计算各个时刻所对应的运动状态值的样条函数均可,本申请实施例并不对上述计算目标动画在各个时刻点的运动状态值所采用的具体样条曲线函数进行限定。
可选的,在一种具体实施方式中,为了使得在第二引擎中所渲染的目标动画所对应的动画曲线能够尽可能的百分之百的逼近目标动画在第一引擎中所对应的动画曲线,所选取的目标算法函数可以为分段三次Hermite样条曲线函数;
因此,在具体实施时,上述分别将多个时刻点中的每个时刻点输入至目标算法函数中,基于所确定的目标算法函数的系数,计算目标动画在每个时刻点所对应的运动状态值,具体包括如下过程:
分别将多个时刻点中的每个时刻点输入至如下公式,通过如下公式计算目标动画在每个时刻点所对应的运动状态值;
P(t)=B1+B2*t+B3*t+B4*t
其中,在上述公式中,其中,在上述公式中,B1、B2、B3和B4均表示系数,t表示时刻点,P(t)表示目标动画在时刻点t所对应的运动状态值。
其中,B1、B2、B3和B4则是根据各个关键点的关键点信息所确定出的。
在本申请实施例中,基于所选取的目标动画所对应的动画曲线中的关键点的关键点信息(包括横纵坐标值、左侧切线的斜率值和右侧切线的斜率值),并基于上述关键点信息确定分段三次Hermite样条曲线函数的函数系数,从而将目标动画运动的起始时刻和终止时刻的范围内的多个时刻点分别输入至上述分段三次Hermite样条曲线函数中,从而计算得到目标动画在各个时刻点所对应的运动状态值,从而实现在第二引擎中进行目标动画的动画曲线的渲染;在本申请实施例中,基于分段三次Hermite样条曲线函数进行目标动画在各个时刻点所对应的运动状态值的计算,使得在第二引擎中所渲染的目标动画所对应的动画曲线能够尽可能的百分之百的逼近目标动画在第一引擎中所对应的动画曲线。
实际上,在本申请实施例中,根据上述所选取的关键点的关键点信息确定目标算法函数的系数,实际上可以理解为,目标算法函数的训练过程。
可选的,在一种具体实施方式中,上述步骤104中,存储关键点信息,具体包括:
将上述各个关键点所对应的关键点信息写入json文件中,并按照预先设置的存储路径存储该json文件;
相应的,上述步骤108中,在第二引擎中加载上述关键点信息,包括:
在第二引擎中从上述存储路径加载该json文件,并解析该json文件中所存储的各个关键点所对应的关键点信息。
其中,在本申请实施例中,可以将上述各个关键点所对应的关键点信息以json格式的形式写入json文件中。当然,此处只是以以json格式存储各个关键点所对应的关键点信息为例进行示例性说明,除此之外,还可以以其他格式存储各个关键点所对应的关键点信息,此处并不构成对本申请实施例的限定。
在本申请实施例中,将各个关键点所对应的关键点信息以json格式的形式写入json文件中,便于开发人员直接将其应用于目标动画所对应的动画曲线的渲染中。
可选的,在一种具体实施方式中,上述步骤102中,在第一引擎中,根据目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成目标动画所对应的动画曲线,具体包括如下过程:
在第一引擎中运行预先创建的脚本文件,以生成目标动画所对应的动画曲线;
其中,上述脚本文件中包含有目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值。
需要说明的是,在第一引擎中运行上述脚本文件时,需要选择载体,即需要在载体上运行上述脚本文件,其中,上述载体可以为第一引擎所包含场景中的任意一个物体。
可选的,在一种具体实施方式中,上述脚本文件可以为开发人员创建的,在上述脚本文件中包含有目标动画在各个时刻点所对应的运动状态值,这样,当在第一引擎的目标载体上运行该脚本文件时,便可直接生成目标动画所对应的动画曲线。
另外,需要说明的是,在本申请实施例中,上述脚本文件中所包含的目标动画在各个时刻所对应的运动状态值中的“各个时刻点”可以通过如下方式确定:
从起始时刻开始按照设定时间间隔依次选取时刻点直至到终止时刻位置;或者,从起始时刻到终止时刻的范围内随机选取时刻点。其中,上述设定时间间隔的具体取值可以根据实际应用场景进行设置,一般情况下,上述设定时间间隔的取值越小,则所选取的时刻点的数量越多,所生成的动画曲线越能表征目标对象的实际运动情况。
当然,此处只是示例性的介绍上述时刻点的两种可能的选取方式,并不构成对本申请实施例的限定。
可选的,在具体实施时,为了便于对第一引擎所生成的动画曲线进行编辑,在创建上述脚本文件时,还需要声明一个公有Animation Curve类型的标量curve。这样,在第一引擎中生成目标动画所对应的动画曲线后,通过点击curve属性可以对该动画曲线进行编辑。
可选的,在一种具体实施方式中,上述步骤104中,获取上述动画曲线中关键点所对应的关键点信息,具体包括如下过程:
获取用户在上述动画曲线上执行选取操作的操作位置信息,以及,获取该操作位置信息所对应的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值;将上述操作位置信息所对应的动画曲线上的点确定为关键点,将上述横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值确定为该关键点所对应的关键点信息。
一般的,当上述动画曲线处于可编辑状态时(即点击curve属性时),用户可以通过鼠标双击该动画曲线上的任意一个点(该曲线可以显示在电脑的屏幕上),从而实现关键点的选取。在检测到用户在该动画曲线上执行选取操作时,则获取该点所对应的横坐标值、纵坐标值、该点左侧切线的斜率值和该点右侧切线的斜率值。
其中,在动画曲线上所选取的关键点的一种示意图如图3所示。如图3所示,该动画曲线为目标动画的运动速度曲线,即横坐标表示时间,纵坐标表示速度,P1、P2、P3和P4为表征目标对象的运动状态变化的关键点,其中,在P1点目标动画开始运动,并且做加速运动,到达一定时刻直至,目标动画所对应的运动速度降低,即目标动画开始减速运动,即目标动画的运动过程包括先加速再减速,因此,为了表征目标动画此运动过程,需要在目标动画减速的过程中选取一个点作为关键点,即P2点,P2点为目标动画减速运动过程中的点。当目标动画的运动速度降到一定值之后,目标动画所对应的运动速度又开始增加,即目标动画开始加速运动,当目标动画所对应的运动速度达到一定之后,目标动画开始减速运动,即在此过程中,目标动画又是先加速运动再减速运动,因此,需要在目标动画加速运动的过程中选取一个点作为关键点,即P3,P3点目标动画减速运动过程中的点。当目标动画的运动速度再次降到一定之后,目标动画开始加速运动,直至运动结束,因此最后可以选取目标动画运动的终止时刻所对应的点作为关键点,即P4。
当然,此处只是示例性介绍上述关键点的一种可能的选取方式,关键点的选取方式不唯一、并且关键点所对应的点的位置也不唯一,此处只是示例性说明,并不构成对本申请实施例的限定。
图4为本申请实施例提供的游戏界面中的动画曲线的迁移方法的方法流程图之二,如图4所示,该方法至少包括:
步骤402,在第一引擎中运行预先创建的脚本文件,以生成目标动画所对应的动画曲线;其中,上述脚本文件中包含有目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值。
其中,上述动画曲线的横坐标表示时间,纵坐标表示目标动画在各个时刻点的运动状态值。
步骤404,在该动画曲线处于编辑状态时,获取该动画曲线中的关键点所对应的关键点信息。
其中,上述关键点为构成动画曲线的各个点中表征目标动画的运动变化趋势的点,且该关键点至少包括起始时刻点和终止时刻点。
步骤406,将各个关键点所对应的关键点信息写入json文件中,并按照预先设置的存储路径存储该json文件。
步骤408,在第二引擎中从上述存储路径中加载该json文件,并解析该json文件中所存储的各个关键点所对应的关键点信息。
步骤410,根据上述各个关键点的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值,确定目标算法函数的系数。
其中,上述目标算法函数用于计算目标动画在各个时刻所对应的运动状态值。
步骤412,确定上述起始时刻和终止时刻的范围内的多个时刻点。
步骤414,分别将上述多个时刻点中的每个时刻点输入至目标算法函数中,基于所确定的目标算法函数的系数,计算目标动画在每个时刻点所对应的运动状态值。
步骤416,在第二引擎中,根据目标动画在各个时刻点所对应的运动状态值,生成目标动画所对应的动画曲线。
为便于理解本申请实施例提供的游戏界面中的动画曲线的迁移方法,下述将以第一引擎为unity引擎,第二引擎为laya引擎为例,介绍本申请实施例提供的方法。图5为本申请实施例提供的游戏界面中的动画曲线的迁移方法的方法流程图之三,如图5所示,该方法至少包括:
步骤502,在unity引擎中运行预先创建的脚本文件,以生成目标动画所对应的动画曲线;其中,上述脚本文件中包含有目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的速度值。
其中,上述动画曲线的横坐标表示时间,纵坐标表示目标动画在各个时刻点的速度值。
步骤504,在上述动画曲线的curve属性被点击后,获取用户在该动画曲线上执行双击操作的操作位置信息,并获取该操作位置信息所对应的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值。
步骤506,将上述操作位置信息所对应的点确定为表征目标动画的运动变化趋势的点,将操作位置信息处的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值确定为该关键点所对应的关键点信息。
步骤508,将各个关键点所对应的关键点信息写入json文件中,并按照预先设置的存储路径存储该json文件。
步骤510,在laya引擎中从上述存储路径中加载该json文件,并解析该json文件中所存储的各个关键点所对应的关键点信息。
步骤512,根据上述各个关键点的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值,确定分段三次Hermite曲线函数的系数。
步骤514,确定上述起始时刻和终止时刻的范围内的多个时刻点。
步骤516,分别将上述多个时刻点中的每个时刻点输入至分段三次Hermite曲线函数中,基于所确定的分段三次Hermite曲线函数的系数,计算目标动画在每个时刻点所对应的运动状态值。
步骤518,在laya引擎中,根据目标动画在各个时刻点所对应的运动状态值,生成目标动画所对应的动画曲线。
前述介绍了将本申请实施例提供的方法应用于将目标动画的动画曲线从第一引擎迁移至第二引擎(其中,第一引擎和第二引擎为不停的引擎)这种场景,除此之外,本申请实施例所提供的方法还可以应用于将在本地所创建的目标动画的动画曲线传输至服务器端的场景。
例如,在一种具体应用场景中,开发人员在开发了一款游戏,该游戏中涉及到多个动画界面中的动画的动画曲线,该游戏需要在服务器端进行运行,因此,需要将在本地所创建的游戏安装包上传至服务器。而需要上传至服务器的游戏安装包中包括各个动画的动画曲线,因此,可以采用本申请实施例提供的方法将动画曲线迁移至服务器端,这样,可以减少从本地上传到服务器的数据量,从而减少通信资源的浪费,并且还可以提高传输速率。
针对上述应用场景,下述将结合具体实施例进行说明。图6为本申请实施例提供的游戏界面中的动画曲线的迁移方法的方法流程图之四,如图6所示,该方法至少包括如下步骤:
步骤602,根据目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成目标动画所对应的动画曲线。
其中,上述动画曲线的横坐标表示时间,纵坐标表示运动状态值。
步骤604,获取上述动画曲线中的关键点的关键点信息。
其中,上述关键点为构成动画曲线的各个点中表征目标动画的运动变化趋势的点,且上述关键点至少包括起始时刻点和终止时刻点,该关键点信息包括关键点的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值。
步骤606,将上述关键点所对应的关键点信息以json格式存储至json文件中。
步骤608,将上述json文件发送给服务器。
步骤610,服务器解析上述json文件,以得到上述各关键点所对应的关键点信息。
步骤612,服务器根据上述关键点信息和分段三次Hermite样条曲线函数计算目标动画在起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,并根据各个时刻点所对应的运动状态值,渲染目标动画所对应的动画曲线。
本申请实施例提供的游戏界面中的动画曲线的迁移方法,首先在第一引擎中生成目标动画所对应的动画曲线,然后获取该动画曲线中能够表征目标动画的运动变化趋势的关键点的关键点信息,并存储所获取的关键点的关键点信息;其中,关键点信息包含关键点的横纵坐标值、左侧切线的斜率值和右侧切线的斜率值,即存储的为该关键点的矢量化特征信息,然后,在第二引擎中,根据上述关键点信息可确定出目标动画在各个时刻点所对应的运动状态值,从而渲染出目标动画所对应的动画曲线;在本申请实施例中,由于获取的关键点信息包含关键点的矢量化特征信息,因此,只需要加载所获取的几个关键点的关键点信息就可以在第二引擎中实现目标动画所对应的动画曲线的渲染,从而减少了信息存储量,以及需要迁移至第二引擎中的数据迁移包的大小,即减少了数据迁移量。
对应上述实施例所提供的方法,基于相同的思路,本申请实施例还提供了一种游戏界面中的动画曲线的迁移装置,用于将游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎;其中,该装置用于执行本申请实施例提供的方法。图7为本申请实施例提供的游戏界面中的动画曲线的迁移装置的模块组成示意图,如图7所示,该装置至少包括:
生成模块702,用于在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线;其中,所述动画曲线的横坐标表示时间,所述动画曲线的纵坐标表示运动状态值;
第一执行模块704,用于获取所述动画曲线中的关键点所对应的关键点信息,并存储所述关键点信息;其中,所述关键点为构成所述动画曲线的各个点中表征所述目标动画的运动变化趋势的点,且所述关键点至少包括起始时刻点和终止时刻点,所述关键点信息包括所述关键点的横坐标值、所述关键点的纵坐标值、所述关键点左侧切线的斜率值和所述关键点右侧切线的斜率值;
加载模块706,用于在所述第二引擎中加载所述关键点信息;
第二执行模块708,用于根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,并根据所述各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线。
可选的,上述第二执行模块708,包括:
第一确定单元,用于根据各个所述关键点的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值,确定目标算法函数的系数;其中,所述目标算法函数用于计算所述目标动画在各个时刻点所对应的运动状态值;
第二确定单元,用于确定所述起始时刻和所述终止时刻的范围内的多个时刻点;
执行单元,用于分别将所述多个时刻点中的每个所述时刻点输入至所述目标算法函数中,基于所确定的所述目标算法函数的系数,计算所述目标动画在每个所述时刻点所对应的运动状态值。
可选的,上述执行单元,具体用于:
分别将所述多个时刻点中的每个所述时刻点输入至如下公式中,通过如下公式计算所述目标动画在每个所述时刻点所对应的运动状态值;
P(t)=B1+B2*t+B3*t+B4*t
其中,在上述公式中,B1、B2、B3和B4均表示系数,t表示所述时刻点,P(t)表示所述目标动画在时刻点t所对应的运动状态值。
可选的,上述第一执行模块704,包括:
写入单元,用于将各个所述关键点所对应所述关键点信息写入json文件中;
存储单元,用于按照预先设置的存储路径存储所述json文件;
相应的,上述加载模块706,包括:
加载单元,用于在所述第二引擎中从所述存储路径加载所述json文件;
解析单元,用于解析所述json文件中所存储的各个所述关键点所对应的关键点信息。
可选的,上述生成模块702,包括:
运行单元,用于在所述第一引擎中运行预先创建的脚本文件,以生成所述目标动画所对应的动画曲线;
其中,所述脚本文件中包含有所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值。
可选的,上述第一执行模块704,包括:
获取单元,用于获取用户在所述动画曲线上执行选取操作的操作位置信息,以及,获取所述操作位置信息所对应的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值;
第三确定单元,用于将所述操作位置信息所对应的点确定为所述关键点,将所述横坐标值、所述纵坐标值、所述左侧切线的斜率值和所述右侧切线的斜率值确定为所述关键点所对应的关键点信息。
本申请实施例提供的游戏界面中的动画曲线的迁移装置中各个模块、单元所对应功能的具体实现过程可参考图1-图6所示方法实施例,此处不再赘述。
本申请实施例提供的游戏界面中的动画曲线的迁移装置,首先在第一引擎中生成目标动画所对应的动画曲线,然后获取该动画曲线中能够表征目标动画的运动变化趋势的关键点的关键点信息,并存储所获取的关键点的关键点信息;其中,关键点信息包含关键点的横纵坐标值、左侧切线的斜率值和右侧切线的斜率值,即存储的为该关键点的矢量化特征信息,然后,在第二引擎中,根据上述关键点信息可确定出目标动画在各个时刻点所对应的运动状态值,从而渲染出目标动画所对应的动画曲线;在本申请实施例中,由于获取的关键点信息包含关键点的矢量化特征信息,因此,只需要加载所获取的几个关键点的关键点信息就可以在第二引擎中实现目标动画所对应的动画曲线的渲染,从而减少了信息存储量,以及需要迁移至第二引擎中的数据迁移包的大小,即减少了数据迁移量。
进一步地,基于上述的方法,本申请实施例还提供了一种设备,该设备用于将游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎。图8为本申请实施例提供的游戏界面中的动画曲线的迁移设备的结构示意图。
如图8所示,游戏界面中的动画曲线的迁移设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器801和存储器802,存储器802中可以存储有一个或一个以上存储应用程序或数据。其中,存储器802可以是短暂存储或持久存储。存储在存储器802的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对游戏界面中的动画曲线的迁移设备中的一系列计算机可执行指令。更进一步地,处理器801可以设置为与存储器802通信,在游戏界面中的动画曲线的迁移设备上执行存储器802中的一系列计算机可执行指令。游戏界面中的动画曲线的迁移设备还可以包括一个或一个以上电源803,一个或一个以上有线或无线网络接口804,一个或一个以上输入输出接口805,一个或一个以上键盘806等。
在一个具体的实施例中,游戏界面中的动画曲线的迁移设备包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述游戏界面中的动画曲线的迁移方法实施例的各个过程,具体包括以下步骤:
在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线;其中,所述动画曲线的横坐标表示时间,所述动画曲线的纵坐标表示运动状态值;
获取所述动画曲线中的关键点所对应的关键点信息,并存储所述关键点信息;其中,所述关键点为构成所述动画曲线的各个点中表征所述目标动画的运动变化趋势的点,且所述关键点至少包括起始时刻点和终止时刻点,所述关键点信息包括所述关键点的横坐标值、所述关键点的纵坐标值、所述关键点左侧切线的斜率值和所述关键点右侧切线的斜率值;
在所述第二引擎中加载所述关键点信息;
根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,并根据所述各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线。
可选的,计算机可执行指令在被执行时,所述根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,包括:
根据各个所述关键点的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值,确定目标算法函数的系数;其中,所述目标算法函数用于计算所述目标动画在各个时刻点所对应的运动状态值;
确定所述起始时刻和所述终止时刻的范围内的多个时刻点;
分别将所述多个时刻点中的每个所述时刻点输入至所述目标算法函数中,基于所确定的所述目标算法函数的系数,计算所述目标动画在每个所述时刻点所对应的运动状态值。
可选的,计算机可执行指令在被执行时,所述分别将所述多个时刻点中的每个所述时刻点输入至所述目标算法函数中,基于所确定的所述目标算法函数的系数,计算所述目标动画在每个所述时刻点所对应的运动状态值,包括:
分别将所述多个时刻点中的每个所述时刻点输入至如下公式中,通过如下公式计算所述目标动画在每个所述时刻点所对应的运动状态值;
P(t)=B1+B2*t+B3*t+B4*t
其中,在上述公式中,B1、B2、B3和B4均表示系数,t表示所述时刻点,P(t)表示所述目标动画在时刻点t所对应的运动状态值。
可选的,计算机可执行指令在被执行时,所述存储所述关键点信息,包括:
将各个所述关键点所对应所述关键点信息写入json文件中,并按照预先设置的存储路径存储所述json文件;
相应的,所述在所述第二引擎中加载所述关键点信息,包括:
在所述第二引擎中从所述存储路径加载所述json文件,并解析所述json文件中所存储的各个所述关键点所对应的关键点信息。
可选的,计算机可执行指令在被执行时,在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线,包括:
在所述第一引擎中运行预先创建的脚本文件,以生成所述目标动画所对应的动画曲线;
其中,所述脚本文件中包含有所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值。
可选的,计算机可执行指令在被执行时,所述获取所述动画曲线中的关键点所对应的关键点信息,包括:
获取用户在所述动画曲线上执行选取操作的操作位置信息,以及,获取所述操作位置信息所对应的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值;
将所述操作位置信息所对应的点确定为所述关键点,将所述横坐标值、所述纵坐标值、所述左侧切线的斜率值和所述右侧切线的斜率值确定为所述关键点所对应的关键点信息。
本申请实施例提供的游戏界面中的动画曲线的迁移设备,首先在第一引擎中生成目标动画所对应的动画曲线,然后获取该动画曲线中能够表征目标动画的运动变化趋势的关键点的关键点信息,并存储所获取的关键点的关键点信息;其中,关键点信息包含关键点的横纵坐标值、左侧切线的斜率值和右侧切线的斜率值,即存储的为该关键点的矢量化特征信息,然后,在第二引擎中,根据上述关键点信息可确定出目标动画在各个时刻点所对应的运动状态值,从而渲染出目标动画所对应的动画曲线;在本申请实施例中,由于获取的关键点信息包含关键点的矢量化特征信息,因此,只需要加载所获取的几个关键点的关键点信息就可以在第二引擎中实现目标动画所对应的动画曲线的渲染,从而减少了信息存储量,以及需要迁移至第二引擎中的数据迁移包的大小,即减少了数据迁移量。
进一步地,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述游戏界面中的动画曲线的迁移方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种游戏界面中的动画曲线的迁移方法,其特征在于,用于将所述游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎;所述方法包括:
在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线;其中,所述动画曲线的横坐标表示时间,所述动画曲线的纵坐标表示运动状态值;
获取所述动画曲线中的关键点所对应的关键点信息,并存储所述关键点信息;其中,所述关键点为构成所述动画曲线的各个点中表征所述目标动画的运动变化趋势的点,且所述关键点至少包括起始时刻点和终止时刻点,所述关键点信息包括所述关键点的横坐标值、所述关键点的纵坐标值、所述关键点左侧切线的斜率值和所述关键点右侧切线的斜率值;
在所述第二引擎中加载所述关键点信息;
根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,并根据所述各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线。
2.如权利要求1所述的方法,其特征在于,所述根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,包括:
根据各个所述关键点的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值,确定目标算法函数的系数;其中,所述目标算法函数用于计算所述目标动画在各个时刻点所对应的运动状态值;
确定所述起始时刻和所述终止时刻的范围内的多个时刻点;
分别将所述多个时刻点中的每个所述时刻点输入至所述目标算法函数中,基于所确定的所述目标算法函数的系数,计算所述目标动画在每个所述时刻点所对应的运动状态值。
3.如权利要求2所述的方法,其特征在于,所述分别将所述多个时刻点中的每个所述时刻点输入至所述目标算法函数中,基于所确定的所述目标算法函数的系数,计算所述目标动画在每个所述时刻点所对应的运动状态值,包括:
分别将所述多个时刻点中的每个所述时刻点输入至如下公式中,通过如下公式计算所述目标动画在每个所述时刻点所对应的运动状态值;
P(t)=B1+B2*t+B3*t+B4*t
其中,在上述公式中,B1、B2、B3和B4均表示系数,t表示所述时刻点,P(t)表示所述目标动画在时刻点t所对应的运动状态值。
4.如权利要求1-3任一项所述的方法,其特征在于,所述存储所述关键点信息,包括:
将各个所述关键点所对应所述关键点信息写入json文件中,并按照预先设置的存储路径存储所述json文件;
相应的,所述在所述第二引擎中加载所述关键点信息,包括:
在所述第二引擎中从所述存储路径加载所述json文件,并解析所述json文件中所存储的各个所述关键点所对应的关键点信息。
5.如权利要求1所述的方法,其特征在于,在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线,包括:
在所述第一引擎中运行预先创建的脚本文件,以生成所述目标动画所对应的动画曲线;
其中,所述脚本文件中包含有所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值。
6.如权利要求1所述的方法,其特征在于,所述获取所述动画曲线中的关键点所对应的关键点信息,包括:
获取用户在所述动画曲线上执行选取操作的操作位置信息,以及,获取所述操作位置信息所对应的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值;
将所述操作位置信息所对应的点确定为所述关键点,将所述横坐标值、所述纵坐标值、所述左侧切线的斜率值和所述右侧切线的斜率值确定为所述关键点所对应的关键点信息。
7.一种游戏界面中的动画曲线的迁移装置,其特征在于,用于将所述游戏界面中目标动画的动画曲线从第一引擎迁移至第二引擎;所述装置包括:
生成模块,用于在所述第一引擎中,根据所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线;其中,所述动画曲线的横坐标表示时间,所述动画曲线的纵坐标表示运动状态值;
第一执行模块,用于获取所述动画曲线中的关键点所对应的关键点信息,并存储所述关键点信息;其中,所述关键点为构成所述动画曲线的各个点中表征所述目标动画的运动变化趋势的点,且所述关键点至少包括起始时刻点和终止时刻点,所述关键点信息包括所述关键点的横坐标值、所述关键点的纵坐标值、所述关键点左侧切线的斜率值和所述关键点右侧切线的斜率值;
加载模块,用于在所述第二引擎中加载所述关键点信息;
第二执行模块,用于根据所述关键点信息确定所述目标动画在所述起始时刻和所述终止时刻的范围内的各个时刻点所对应的运动状态值,并根据所述各个时刻点所对应的运动状态值,生成所述目标动画所对应的动画曲线。
8.如权利要求7所述的装置,其特征在于,所述第二执行模块,包括:
第一确定单元,用于根据各个所述关键点的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值,确定目标算法函数的系数;其中,所述目标算法函数用于计算所述目标动画在各个时刻点所对应的运动状态值;
第二确定单元,用于确定所述起始时刻和所述终止时刻的范围内的多个时刻点;
执行单元,用于分别将所述多个时刻点中的每个所述时刻点输入至所述目标算法函数中,基于所确定的所述目标算法函数的系数,计算所述目标动画在每个所述时刻点所对应的运动状态值。
9.如权利要求8所述的装置,其特征在于,所述执行单元,具体用于:
分别将所述多个时刻点中的每个所述时刻点输入至如下公式中,通过如下公式计算所述目标动画在每个所述时刻点所对应的运动状态值;
P(t)=B1+B2*t+B3*t+B4*t
其中,在上述公式中,B1、B2、B3和B4均表示系数,t表示所述时刻点,P(t)表示所述目标动画在时刻点t所对应的运动状态值。
10.如权利要求7-9任一项所述的装置,其特征在于,所述第一执行模块,包括:
写入单元,用于将各个所述关键点所对应所述关键点信息写入json文件中;
存储单元,用于按照预先设置的存储路径存储所述json文件;
相应的,所述加载模块,包括:
加载单元,用于在所述第二引擎中从所述存储路径加载所述json文件;
解析单元,用于解析所述json文件中所存储的各个所述关键点所对应的关键点信息。
11.如权利要求7所述的装置,其特征在于,所述生成模块,包括:
运行单元,用于在所述第一引擎中运行预先创建的脚本文件,以生成所述目标动画所对应的动画曲线;
其中,所述脚本文件中包含有所述目标动画在运动的起始时刻和终止时刻的范围内的各个时刻点所对应的运动状态值。
12.如权利要求7所述的装置,其特征在于,所述第一执行模块,包括:
获取单元,用于获取用户在所述动画曲线上执行选取操作的操作位置信息,以及,获取所述操作位置信息所对应的横坐标值、纵坐标值、左侧切线的斜率值和右侧切线的斜率值;
第三确定单元,用于将所述操作位置信息所对应的点确定为所述关键点,将所述横坐标值、所述纵坐标值、所述左侧切线的斜率值和所述右侧切线的斜率值确定为所述关键点所对应的关键点信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010743889.8A CN111857812A (zh) | 2020-07-29 | 2020-07-29 | 游戏界面中的动画曲线的迁移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010743889.8A CN111857812A (zh) | 2020-07-29 | 2020-07-29 | 游戏界面中的动画曲线的迁移方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111857812A true CN111857812A (zh) | 2020-10-30 |
Family
ID=72946701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010743889.8A Withdrawn CN111857812A (zh) | 2020-07-29 | 2020-07-29 | 游戏界面中的动画曲线的迁移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857812A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2258790A (en) * | 1991-08-12 | 1993-02-17 | Cambridge Animation Syst | Animation |
CN105719330A (zh) * | 2014-12-05 | 2016-06-29 | 腾讯科技(北京)有限公司 | 动画曲线的生成方法及装置 |
CN109658484A (zh) * | 2018-12-21 | 2019-04-19 | 上海哔哩哔哩科技有限公司 | 一种动画自动生成方法及动画自动生成系统 |
-
2020
- 2020-07-29 CN CN202010743889.8A patent/CN111857812A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2258790A (en) * | 1991-08-12 | 1993-02-17 | Cambridge Animation Syst | Animation |
CN105719330A (zh) * | 2014-12-05 | 2016-06-29 | 腾讯科技(北京)有限公司 | 动画曲线的生成方法及装置 |
CN109658484A (zh) * | 2018-12-21 | 2019-04-19 | 上海哔哩哔哩科技有限公司 | 一种动画自动生成方法及动画自动生成系统 |
Non-Patent Citations (1)
Title |
---|
小漂少年: "分段三次Hermite样条曲线的应用(Unity 动画曲线AnimationCurve的实现方法的还原)", pages 1 - 4, Retrieved from the Internet <URL:https://blog.csdn.net/fucun1984686003/article/details/81086630/> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020220915A1 (zh) | 虚拟对象显示方法、装置、电子设备及存储介质 | |
US12017145B2 (en) | Method and system of automatic animation generation | |
CN108897567B (zh) | 基于Unity的软件加载文件的方法、装置、设备及存储介质 | |
CN111408138A (zh) | 基于游戏引擎的渲染方法、装置及电子设备 | |
CN112755534B (zh) | 一种数据处理方法、装置和存储介质 | |
JP7439331B2 (ja) | 一様なデータプラットフォームのためのデータモデル | |
WO2022095526A1 (zh) | 图形引擎和适用于播放器的图形处理方法 | |
US8768680B2 (en) | Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores | |
CN113204412B (zh) | 用于任务调度的方法、电子设备和计算机存储介质 | |
CN114742928A (zh) | 动画渲染方法、装置、电子设备及介质 | |
CN107295075A (zh) | 一种基于会话保持的跨终端应用状态迁移方法 | |
CN107092514A (zh) | 一种页面内容展示方法及装置 | |
CN111857812A (zh) | 游戏界面中的动画曲线的迁移方法及装置 | |
CN113918126A (zh) | 一种基于图算法的ai建模流程编排方法和系统 | |
EP3752914B1 (en) | Techniques for native runtime of hypertext markup language graphics content | |
CN111698210A (zh) | 一种云手机手柄数据处理方法、系统和存储介质 | |
CN105556471A (zh) | 自适应远程计算 | |
CN114820895B (zh) | 动画数据处理方法、装置、设备及系统 | |
CN104156999A (zh) | 一种三维场景渲染方法 | |
CN106548501B (zh) | 一种图像绘制方法及设备 | |
US9162145B2 (en) | Unified game scripting language with multi-platform interpreter | |
CN116152405B (zh) | 一种业务处理方法、装置及计算机设备、存储介质 | |
CN116700703B (zh) | 一种业务处理方法、装置、设备及存储介质 | |
CN112604304B (zh) | 一种虚拟对象的交互控制方法及装置 | |
CN116166241A (zh) | 积木渲染方法、装置、计算机设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201030 |