特效生成方法及装置与流程

文档序号:33388248发布日期:2023-03-08 09:24阅读:26来源:国知局
特效生成方法及装置与流程

1.本技术涉及计算机技术领域,特别涉及特效生成方法。本技术同时涉及特效生成装置,一种计算设备,以及一种计算机可读存储介质。


背景技术:

2.随着科学技术的发展和时代的进步,越来越多的领域涉及到特效的制作,例如,游戏领域、影视领域等。在目前的各种应用场景中,为了增强视觉效果,一般都会在游戏画面、动漫画面、影视画面等加入特效,但对于激光、闪电类的特效只能支持直射或者是固定曲线的特效。在unity引擎中,原生的曲率变化方案难以反推历史位置,难以制作特效所需的“粘滞感”,所制作出来的激光、闪电类特效难以动态变更,使得呈现出来的效果比较呆板,不自然,降低用户体验。


技术实现要素:

3.有鉴于此,本技术实施例提供了特效生成方法。本技术同时涉及特效生成装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的上述问题。
4.根据本技术实施例的第一方面,提供了一种特效生成方法,包括:
5.接收目标展示特效的特效生成指令,响应于所述特效生成指令确定所述目标展示特效的目标发射点和所述目标发射点的发射方向;
6.根据所述目标发射点和所述发射方向确定所述目标展示特效在当前图像帧中的目标位置;
7.基于所述目标位置获取所述目标展示特效的初始位置;
8.根据所述目标发射点和所述初始位置计算所述目标展示特效的至少一个目标锚点位置;
9.基于所述目标发射点、所述初始位置和所述至少一个目标锚点位置在所述当前图像帧中生成所述目标展示特效。
10.根据本技术实施例的第二方面,提供了一种特效生成装置,包括:
11.第一确定模块,被配置为接收目标展示特效的特效生成指令,响应于所述特效生成指令确定所述目标展示特效的目标发射点和所述目标发射点的发射方向;
12.第二确定模块,被配置为根据所述目标发射点和所述发射方向确定所述目标展示特效在当前图像帧中的目标位置;
13.第一获取模块,被配置为基于所述目标位置获取所述目标展示特效的初始位置;
14.计算模块,被配置为根据所述目标发射点和所述初始位置计算所述目标展示特效的至少一个目标锚点位置;
15.生成模块,被配置为基于所述目标发射点、所述初始位置和所述至少一个目标锚点位置在所述当前图像帧中生成所述目标展示特效。
16.根据本技术实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储
在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述特效生成方法的步骤。
17.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述特效生成方法的步骤。
18.本技术提供的特效生成方法,接收目标展示特效的特效生成指令,响应于所述特效生成指令确定所述目标展示特效的目标发射点和所述目标发射点的发射方向;根据所述目标发射点和所述发射方向确定所述目标展示特效在当前图像帧中的目标位置;基于所述目标位置获取所述目标展示特效的初始位置;根据所述目标发射点和所述初始位置计算所述目标展示特效的至少一个目标锚点位置;基于所述目标发射点、所述初始位置和所述至少一个目标锚点位置在所述当前图像帧中生成所述目标展示特效。
19.本技术一实施例通过确定目标展示特效的目标发射点和初始位置,并基于线性插值函数计算目标展示特效的至少一个目标锚点位置,可以实现动态变更目标展示特效的目标锚点位置,使得目标展示特效所呈现的展示效果根据目标锚点位置而变化,不再只是呈现直射状态进行移动变化,从而实现目标展示特效在移动变换的过程中能够呈现自然的弧形状态,呈现的效果更加自然灵活,提高用户体验。
附图说明
20.图1a是本技术一实施例提供的一种特效生成方法的场景示意图;
21.图1b是本技术一实施例提供的一种特效生成方法的场景俯视示意图;
22.图2是本技术一实施例提供的一种特效生成方法的流程图;
23.图3是本技术一实施例提供的目标展示特效对应的曲线示意图;
24.图4是本技术一实施例提供的一种应用于游戏场景的特效生成方法的处理流程图;
25.图5是本技术一实施例提供的一种特效生成装置的结构示意图;
26.图6是本技术一实施例提供的一种计算设备的结构框图。
具体实施方式
27.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
28.在本技术一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术一个或多个实施例。在本技术一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本技术一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
29.应当理解,尽管在本技术一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
30.首先,对本技术一个或多个实施例涉及的名词术语进行解释。
31.property binder:即属性绑定器,通过property binder可以向visual effect graph传输高度定制的数据。
32.线性插值:线性插值是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为零。线性插值相比其他插值方式,如抛物线插值,具有简单、方便的特点。
33.柏林噪声:柏林噪声是一种在程序化内容生成领域强有力的算法,其通常应用在游戏与诸如电影的视觉媒体方向。它可以用于生成地形,火焰的效果,并用来模拟水和云等特效。
34.现有的实际应用中,不管是游戏、影视领域,还是其他领域,都会涉及特效的制作与生成,但对于激光、闪电类的特效只能支持直射或者是固定曲线的特效,不能动态变更特效的曲线曲率,使得生成的特效所呈现的效果较为呆板且不自然。
35.在本技术中,提供了特效生成方法,本技术同时涉及特效生成装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
36.图1a和图1b分别示出了根据本技术一实施例提供的一种特效生成方法的场景示意图。
37.如图1a所示,分别示出了目标展示特效在初始图像帧与当前图像帧中的展示情况,目标展示特效在初始图像帧中的状态基本处于同一水平线上,在当前图像帧中,目标展示特效处于从初始位置向目标位置移动的状态,在移动过程中,可以明显看出目标展示特效呈现出一个弧度,并不如初始图像帧时处于同一水平状态。
38.图1b为目标展示特效在应用过程中的俯视图,如图1b所示,目标展示特效在由初始图像帧中的目标位置转换到当前图像帧中的目标位置,即初始位置与目标位置的转换过程中,目标展示特效呈现弧形状态。
39.本技术一实施例提供的特效生成方法,相较于现有的特效实现效果,可以实现动态变更目标展示特效的目标锚点位置,使得目标展示特效所呈现的展示效果根据目标锚点位置而变化,更加自然,提高用户体验。
40.图2示出了根据本技术一实施例提供的一种特效生成方法的流程图,具体包括以下步骤:
41.步骤202:接收目标展示特效的特效生成指令,响应于所述特效生成指令确定所述目标展示特效的目标发射点和所述目标发射点的发射方向。
42.其中,目标展示特效是指需要生成并展示的特效,例如,在游戏场景中,需要根据游戏玩家的操作所生成对应的鞭子的特效、射箭的特效;在动漫画面中需要生成展示的特效;在影视领域中挥动鞭子、舞剑的特效等。
43.特效生成指令是指用于生成目标展示特效的指令;目标发射点是指用于展示目标展示特效的起始位置,例如,游戏玩家挥动鞭子,则游戏玩家挥动鞭子的手所处的位置为目标发射点;发射方向,可以理解为目标展示特效的展示方向,例如,游戏玩家向正前方挥动鞭子,正前方则为发射方向,向右方挥动鞭子,右方则为发射方向。
44.具体的,可以由应用终端接收来自服务器发送的目标展示特效的特效生成指令,应用终端响应于特效生成指令确定目标展示特效进行展示的起始位置,即目标展示特效的
目标发射点,并确定目标展示特效的展示方向,即目标发射点的发射方向。应用终端可以为电脑、平板电脑、手机等智能设备。
45.在实际应用中,游戏、动漫、影视等领域都会涉及到特效的制作与生成,在本技术提供的一具体实施方式中,以游戏应用场景为例进行说明,接收游戏玩家生成闪电鞭特效的特效生成指令,响应于生成闪电鞭特效的生成指令,确定游戏玩家控制的游戏角色进行挥动闪电鞭特效的位置,该位置即为目标发射点,并确定该游戏角色挥动闪电鞭特效的方向为该游戏角色的正前方。
46.确定目标展示特效的目标发射点和发射方向是生成目标展示特效的前序步骤,在生成目标展示特效之前,先确定目标展示特效的目标发射点以及目标发射点的发射方向,有利于后续生成目标展示特效。
47.步骤204:根据所述目标发射点和所述发射方向确定所述目标展示特效在当前图像帧中的目标位置。
48.其中,目标位置是指目标展示特效基于目标发射点的发射方向从目标发射点出发所到达或击中的位置,以目标发射点为游戏角色为例,游戏玩家控制游戏角色向正前方挥动鞭子,鞭子所击中的位置即为目标展示特效在当前图像帧中的目标位置。
49.在实际应用中,目标展示特效在当前图像帧中的目标位置除了与上述目标发射点及其发射方向有关以外,也可以根据目标展示特效的发射距离进行确定。
50.基于此,本技术提供的一种实施方式中,根据所述目标发射点和所述发射方向确定所述目标展示特效在当前图像帧中的目标位置,包括:
51.基于所述目标发射点和预设距离,在所述发射方向上确定所述目标展示特效在当前图像帧中的目标位置。
52.其中,预设距离是指预先设置的在发射方向上从目标发射点发射出的距离,即目标展示特效基于发射方向从目标发射点发射的距离,预设距离可以从数据库或配置文件中获得。预设距离与生成目标展示特效对应的目标对象有关,目标对象可以为鞭子、宝剑等,例如,若生成的目标展示特效为鞭子,则预设距离可以为鞭子的长度,比如3米;若生成的目标展示特效为宝剑,则预设距离可以为宝剑的长度,比如1米。
53.具体的,在确定目标位置之前,可以从数据库或配置文件中获取预设距离,预设距离用于确定目标展示特效的目标位置,在获取到预设距离的情况下,即可以根据目标发射点、发射方向和预设距离进一步确定目标展示特效的目标位置。
54.沿用上例,以预设距离为3米为例,应用终端在基于目标展示特效的特效生成指令确定目标展示特效的目标发射点和发射方向后,从数据库或配置文件中获取预设距离为3米。在发射方向上距离目标发射点3米内没有障碍物的情况下,目标展示特效即可以基于发射方向从目标发射点展示3米,在发射方向上距离目标发射点3米的位置即为目标位置;在发射方向上距离目标发射点3米内有障碍物的情况下,则目标展示特效基于发射方向从目标发射点展示的距离为目标发射点到该障碍物的距离,该距离明显小于3米的预设距离,因此,基于发射方向从目标发射点到该障碍物上的位置即为目标位置。
55.在已经确定了目标展示特效在当前图像帧中的目标位置的情况下,可以根据目标位置进一步确定目标展示特效的初始位置,以使得最终生成的目标展示特效更具有真实性。
56.步骤206:基于所述目标位置获取所述目标展示特效的初始位置。
57.在生成目标展示特效的过程中,每一帧图像帧都会对应有目标展示特效在图像帧中的目标位置,基于此,初始位置可以理解为,目标展示特效在当前图像帧之前的初始图像帧中的目标位置。例如,当前图像帧为第30帧图像帧,初始位置则可以为目标展示特效在第10帧图像帧中的目标位置,也可以为目标展示特效在第20帧图像帧中的目标位置,初始位置的确定需要根据初始图像帧进行确定。
58.具体的,确定目标展示特效在当前图像帧中的位置,基于当前图像帧确定当前图像帧之前的一帧为初始图像帧,并在初始图像帧中进一步确定目标展示特效在初始图像帧中的初始位置。
59.在实际应用中,闪电、激光类的特效所呈现的效果是会不断变化的,这是因为闪电、激光类的特效所对应的每个位置都是不同的(特效的形态不同,而决定特效形态的是特效条带上锚点的位置),每个不同的位置可以参考不同的视频帧进行推算,为了使特效能够呈现更好的效果,需要使得每个位置对应的视频帧可以衔接转换。因此,在本技术提供的实施方式中,为了使得从初始视频帧到当前视频帧的特效转换自然,需要确定目标展示特效所处的不同的位置。
60.本技术提供的一种实施方式中,基于所述目标位置获取所述目标展示特效的初始位置,包括:
61.基于所述当前图像帧确定初始图像帧;
62.在所述初始图像帧中确定所述目标展示特效的初始位置。
63.基于上述内容,初始图像帧是指目标视频区间内的第一帧图像帧,目标视频区间是指需要生成目标展示特效的视频区间,例如,以目标视频区间对应的视频帧为第10帧图像帧到第30帧图像帧为例,当前图像帧为第30帧图像帧,初始图像帧为第10帧图像帧;以目标视频区间对应的视频帧为第20帧图像帧到第50帧图像帧为例,当前图像帧为第50帧图像帧,初始图像帧为第20帧图像帧。初始位置为目标展示特效在初始图像帧中的目标位置。沿用上例,初始图像帧为第10帧图像帧,则初始位置为目标展示特效在第10帧图像帧中的目标位置。
64.具体的,首先,基于当前图像帧确定目标视频区间,将目标视频区间的第一帧图像帧确定为初始图像帧,并将目标展示特效在初始图像帧中的目标位置确定为目标展示特效的初始位置。
65.沿用上例,根据当前图像帧为第30帧图像帧,确定目标视频区间为第10帧图像帧到第30帧图像帧,则可以确定初始图像帧为第10帧图像帧,将目标展示特效在第10帧图像帧中的目标位置确定为初始位置。
66.根据当前图像帧确定目标展示特效的初始图像帧,并在初始图像帧中确定目标展示特效的目标位置,该目标位置即为目标展示特效的初始位置。
67.进一步的,对于初始图像帧的确定,可以基于如下方式实现:
68.本技术提供的一种实施方式中,基于所述当前图像帧确定初始图像帧,包括:
69.获取视频帧率,并基于所述视频帧率确定图像调整帧数,其中,所述图像调整帧数为根据所述视频帧率设置的图像帧的数量;
70.根据所述图像调整帧数和所述当前图像帧确定初始图像帧。
71.具体的,视频帧率是指目标展示特效所属视频的视频帧率,视频帧率可以为25帧每秒、60帧每秒等,图像调整帧数是指根据目标展示视频所属视频的视频帧率设置的图像帧的数量。
72.在实际应用中,视频帧率通常为24帧每秒、25帧每秒、60帧每秒,在本技术一具体实施方式中,可以根据图像帧调整系数为不同的视频帧率设置不同的图像调整帧数,并构成对应的图像调整帧规则。例如,若设定图像帧调整系数为0.5,则视频帧率为24帧每秒对应的图像调整帧数为12帧,25帧每秒对应的图像调整帧数为13帧,60帧每秒对应的图像调整帧数为30帧;若设定图像帧调整系数为0.33,则视频帧率为24帧每秒对应的图像调整帧数为8帧,25帧每秒对应的图像调整帧数为8帧,60帧每秒对应的图像调整帧数为20帧。对于上述图像帧调整系数的设定可以根据实际应用情况进行设置,本技术在此不做任何限定,基于图像帧调整系数则可以确定对应的图像调整帧数。
73.获取目标展示特效所属视频的视频帧率,并从配置文件中获取该视频帧率对应的图像调整帧规则,基于图像调整帧规则确定图像调整帧数,根据当前图像帧以及图像调整帧数进一步确定初始图像帧。
74.以视频帧率为60帧每秒为例,获取视频帧率为60帧每秒对应的图像调整帧规则,若图像调整帧规则中设置的图像帧调整系数为0.5,则可以确定图像调整帧数为30帧,若当前图像帧为第50帧图像帧,那么,初始图像帧则为第20帧图像帧;若图像调整帧规则中设置的图像帧调整系数为0.33,则可以确定图像调整帧数为20帧,若当前图像帧为第50帧图像帧,那么,初始图像帧则为第30帧图像帧。
75.进一步的,确定初始图像帧后则可以在初始图像帧中确定目标展示特效的初始位置。
76.本技术提供的一种实施方式中,在所述初始图像帧中确定所述目标展示特效的初始位置,包括:
77.读取图像帧位置队列,其中,所述图像帧位置队列中保存有每个图像帧的图像帧信息和每个图像帧对应的目标位置;
78.在所述图像帧位置队列中查询所述初始图像帧,并确定所述初始图像帧对应的目标位置为所述目标展示特效的初始位置。
79.其中,图像帧位置队列是指用于保存每个图像帧的图像帧信息和每个图像帧对应的目标位置的队列。
80.在本技术提供的一具体实施方式中,在确定当前图像帧以及目标位置后,还需要根据当前图像帧以及目标位置进一步确定初始图像帧以及初始位置,在实施过程中,查询历史数据会加大应用终端的工作量,使得数据处理速度降低。因此,本技术提供的一具体实施方式通过创建图像帧位置队列来解决上述问题。
81.具体的,读取图像帧位置队列,并在图像帧位置队列中查询初始图像帧,在查询到初始图像帧的情况下,基于图像帧位置队列中存储的每个图像帧对应的目标位置,确定与初始图像帧对应的目标位置,并将该目标位置确定为目标展示特效在初始图像帧中的初始位置。
82.沿用上例,读取图像帧位置队列,在图像帧位置队列中查询到第20帧图像帧为初始图像帧,获取与第20帧图像帧对应的目标位置,并将与第20帧图像帧对应的目标位置确
定为目标展示特效的初始位置。
83.通过创建图像帧位置队列存储每个图像帧的图像帧信息和每个图像帧对应的目标位置,可以在执行过程中随时读取图像帧位置队列中的存储数据,实现即查即用,从而减少终端的计算工作量,提高处理速度。
84.通过确定目标展示特效的在初始图像帧中的目标位置,即目标展示特效的初始位置,可以为计算目标展示特效的至少一个目标锚点位置做铺垫。
85.步骤208:根据所述目标发射点和所述初始位置计算所述目标展示特效的至少一个目标锚点位置。
86.其中,目标锚点位置是指位于目标展示特效的目标发射点和初始位置之间的位置,具体的,图3示出了本技术提供的一实施例中的目标展示特效对应的曲线示意图,如图3所示,生成目标展示特效不仅需要上述目标发射点、目标位置以及初始位置,还需要根据目标发射点和初始位置计算目标展示特效的目标锚点位置。
87.在计算目标展示特效的目标锚点位置之前,首先需要确定的是目标锚点位置的数量,并根据目标锚点位置的数量计算相应数量的目标锚点位置。
88.本技术提供的一种实施方式中,根据所述目标发射点和所述初始位置计算所述目标展示特效的至少一个目标锚点位置,包括:
89.确定目标锚点的数量;
90.根据所述目标锚点的数量获取与每个目标锚点对应的线性插值参数;
91.基于所述目标发射点、所述目标位置、所述初始位置和所述每个线性插值参数计算每个目标锚点对应的目标锚点位置。
92.其中,线性插值参数为线性插值函数中用于进行插值计算的参数,线性插值函数可以为lerp插值函数,以lerp插值函数为例进行说明,参见下述公式(1):
93.lerp(y1,y2,weight)=y1+(y
2-y1)*weight
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
94.其中,y1为目标发射点,y2为目标位置或初始位置,weight为线性插值参数,weight的取值为[0,1]之间的实数。通过上述公式(1)计算所得到的lerp函数值即为目标展示特效的初始锚点位置或目标锚点位置。
[0095]
具体的,在确定目标展示特效的目标锚点的数量后,根据目标锚点的数量获取与每个目标锚点对应的线性插值参数,结合图3进行解释说明,图3中提供了3个目标锚点,分别为目标锚点1、目标锚点2以及目标锚点3,根据上述3个目标锚点以及目标发射点和初始位置即可确定目标发射点对应的线性插值参数为0,目标锚点1对应的线性插值参数为0.25,目标锚点2对应的线性插值参数为0.5,目标锚点3对应的线性插值参数为0.75,以及初始位置对应的线性插值参数为1。
[0096]
线性插值参数的取值与目标锚点的数量相关,目标锚点的数量不同,所对应的线性插值参数的取值不同。上述为目标锚点的数量为3个对应的线性插值参数的取值过程,若目标锚点的数量为7个,则目标发射点对应的线性插值参数为0,初始位置对应的线性插值参数为1,7个目标锚点对应的线性插值参数分别为0.125、0.25、0.375、0.5、0.625、0.75以及0.875。目标锚点的数量越多,线性插值参数的取值也相对越密集,所得到的目标展示特效的展示效果也会越平滑、越连续。对于目标锚点数量的确定可以根据上述图像调整帧数确定,具体可以根据实际应用情况进行确定,本技术在此不做任何限定。
[0097]
具体的,在本技术一具体实施方式中,需要根据上述公式(1)进行两次插值来确定目标展示特效的目标锚点位置。在第一次插值过程中,需要进行确定的是目标展示特效的初始锚点位置,初始锚点位置是指位于目标发射点与目标位置之间的位置,在此过程中,y1为目标发射点,y2为目标位置,weight的取值根据初始锚点的数量确定为[0,1]之间的实数,基于上述公式(1)计算得到每个初始锚点对应的第一次插值结果lerp1,lerp2,lerp3
……
等等,根据第一次插值结果即可获得每个初始锚点对应的初始锚点位置。
[0098]
在进行第二次插值过程之前,需要根据函数f计算出第二次插值需要使用的weight,进一步的,将上述每个初始锚点位置对应的第一次插值结果lerp1,lerp2,lerp3
……
分别代入函数f中进行计算得到对应的计算结果,所得到的计算结果将作为第二次插值计算的weight。其中,函数f需具备以下特征:
[0099]
a.定义域和值域都在0-1之间;b.单调递增。
[0100]
具体的,在第二次插值过程中,y1为目标发射点,y2为初始位置,并将新的weight代入上述公式(1)进行计算,得到新的插值结果lerp1’,lerp2’,lerp3
’……
等等。将计算所得到的lerp1’,lerp2’,lerp3
’……
赋予目标锚点,则可以得到每个目标锚点对应的目标锚点位置。
[0101]
函数f需要满足上述a与b两点特征,但对于函数f的具体公式本技术在此不做限定。
[0102]
具体的,函数f用于计算目标展示特效的曲线曲率,在函数f中,weight可以决定目标展示特效的曲线曲率,每个初始锚点位置经过上述第一次线性插值都可以得到对应的插值结果,在将插值结果通过函数f进行重映射计算并完成第二次插值后,将第二次插值结果赋予到每个对应的目标锚点上,得到每个目标锚点对应的目标锚点位置,从而可以使得目标展示特效呈现出曲线特征。相应的,函数f在直角坐标系中的图像中所表现的曲率特点,就是目标展示特效的曲线所能展现出的曲率特点。由于图像帧位置队列中的信息每帧都在更新,所以当目标位置停止移动之后,初始位置会随着目标位置的路径越来越接近目标位置,从而使曲率插值的y1和y2越发接近,使合成的曲线看起来“变直”。这个过程使目标展示特效的视觉效果有“回弹”的感觉。
[0103]
进一步的,在本技术提供的一种实施方式中,可以根据图像调整帧数确定目标展示特效的目标锚点的数量。
[0104]
本技术提供的一种实施方式中,确定目标锚点的数量,包括:
[0105]
根据图像调整帧数确定所述目标锚点的数量,其中,所述图像调整帧数为根据视频帧率设置的图像帧的数量。
[0106]
具体的,在计算目标展示特效的目标锚点位置之前,可以先确定目标锚点的数量,再对目标锚点位置进行计算,目标锚点的数量确定后会对应有每个目标锚点对应的线性插值参数,以使得利用线性插值参数对目标展示特效的每个目标锚点位置进行计算。在本技术提供的一种实施方式中,可以根据图像调整帧数进行确定目标锚点的数量。
[0107]
同样以视频帧率为60帧每秒为例进行说明,根据视频帧率为60帧每秒,确定图像调整帧数为30帧,若当前图像帧为第50帧图像帧,根据图像调整帧数为30帧确定初始图像帧为第20帧图像帧,即目标视频区间共包括31帧图像帧,除去初始图像帧和当前图像帧,可以确定剩余的图像帧共有29帧,则目标展示特效的目标锚点的数量为29个。
[0108]
需要注意的是,这29个目标锚点只是缓存下来,将在当前帧为第51-79帧时,作为初始位置来使用。视频特效每播放一帧,都需要将当前的目标位置登记进入队列,该帧会成为30帧后的那一帧的初始图像帧。
[0109]
步骤210:基于所述目标发射点、所述初始位置和所述至少一个目标锚点位置在所述当前图像帧中生成所述目标展示特效。
[0110]
具体的,在已经确定了目标展示特效的目标发射点、初始位置以及至少一个目标锚点位置后,可以将这些位置对应的点依次进行连接,并将连接后的展示效果在当前图像帧中进行展示,以生成目标展示特效。
[0111]
通过上述本技术提供的实施方式,不仅可以生成目标展示特效,还可以实现对目标展示特效的曲线变化的动态变更。在实际应用中,为了使得生成的目标展示特效的呈现效果更加平滑,还可以在生成的目标展示特效的基础上,为目标展示特效叠加噪声,以实现目标展示特效的呈现更平滑、更随机的效果。
[0112]
基于此,在本技术提供的一种实施方式中,基于所述目标发射点、所述初始位置和所述至少一个目标锚点位置在所述当前图像帧中生成所述目标展示特效之后,所述方法还包括:
[0113]
获取采样噪声;
[0114]
在所述目标发射点、所述初始位置和所述至少一个目标锚点位置上分别叠加所述采样噪声。
[0115]
其中,采样噪声是指用于叠加在目标展示特效上使其更平滑随机的噪声,该采样噪声可以为柏林噪声、simplex噪声、value噪声等。获取到采样噪声后,将采样噪声分别叠加到目标展示特效的目标发射点、初始位置以及其目标锚点位置上,以实现目标展示特效的平滑性、连续性。
[0116]
获取采样噪声的过程可以通过以下方式实现:
[0117]
本技术提供的一种实施方式中,获取采样噪声,包括:
[0118]
建立采样空间,并在所述采样空间中进行噪声采样以获得初始采样噪声;
[0119]
对所述初始采样噪声进行插值计算,得到所述采样噪声。
[0120]
其中,采样空间是指建立的用于进行采样噪声的空间,该采样空间可以是一维空间,可以是二维空间,也可以是三维空间,具体情况根据实际应用确定,本技术在此不做任何限定。
[0121]
初始采样噪声,可以理解为在采样空间中随机采集到的噪声,该初始采样噪声具有较强的随机性;采样噪声是指在初始采样噪声的基础上,进行插值计算所得到的噪声,采用采样噪声生成特效相较于初始采样噪声来说,生成的特效会更自然和平滑。
[0122]
具体的,建立采样空间,在采样空间中进行噪声采样得到初始采样噪声,对初始采样噪声进行插值计算以获得采样噪声。
[0123]
上述为获得采样噪声的过程,相应的,采样噪声的应用过程如下:
[0124]
本技术提供的一种实施方式中,在所述目标发射点、所述初始位置和所述至少一个目标锚点位置上分别叠加所述采样噪声,包括:
[0125]
分别计算与所述目标发射点、所述初始位置和所述至少一个目标锚点位置对应的采样噪声的采样偏移量;
[0126]
基于每个采样偏移量与所述目标发射点、所述初始位置和所述至少一个目标锚点位置的对应关系,将所述每个采样偏移量分别叠加到所述目标发射点、所述初始位置和所述至少一个目标锚点位置。
[0127]
其中,采样偏移量是指采样噪声与目标展示特效的目标发射点、初始位置以及目标锚点位置之间存在的位置偏差。
[0128]
具体的,计算目标展示特效的目标发射点、初始位置以及目标锚点位置与获取到的采样噪声之间存在的位置偏差,并基于各个位置对应的位置偏差,对目标展示特效的目标发射点、初始位置以及目标锚点位置的原始位置进行调整。
[0129]
以柏林噪声为例,计算柏林噪声与目标展示特效的目标发射点、初始位置以及目标锚点位置之间存在的位置偏差,并根据该位置偏差对目标展示特效的目标发射点、初始位置以及目标锚点位置的位置进行调整,以使得目标展示特效的呈现效果更自然、更平滑、更连续。
[0130]
通过为生成的目标展示特效叠加采样噪声,可以在已经生成的目标展示特效的基础上,对目标展示特效进一步做出调整,使得呈现出的目标展示特效更加平滑和自然。
[0131]
本技术提供的特效生成方法,接收目标展示特效的特效生成指令,响应于所述特效生成指令确定所述目标展示特效的目标发射点和所述目标发射点的发射方向;根据所述目标发射点和所述发射方向确定所述目标展示特效在当前图像帧中的目标位置;基于所述目标位置获取所述目标展示特效的初始位置;根据所述目标发射点和所述初始位置计算所述目标展示特效的至少一个目标锚点位置;基于所述目标发射点、所述初始位置和所述至少一个目标锚点位置在所述当前图像帧中生成所述目标展示特效。
[0132]
本技术一实施例通过确定目标展示特效的目标发射点和初始位置,并基于线性插值函数计算目标展示特效的至少一个目标锚点位置,可以实现动态变更目标展示特效的目标锚点位置,使得目标展示特效所呈现的展示效果根据目标锚点位置而变化,不再只是呈现直射状态进行移动变化,从而实现目标展示特效在移动变换的过程中能够呈现自然的弧形状态,呈现的效果更加自然灵活,提高用户体验。
[0133]
下述结合附图4,以本技术提供的特效生成方法在游戏场景的应用为例,对所述特效生成方法进行进一步说明。其中,图4示出了本技术一实施例提供的一种应用于游戏场景的特效生成方法的处理流程图,具体包括以下步骤:
[0134]
步骤402:接收闪电鞭特效的特效生成指令,响应于所述特效生成指令确定所述闪电鞭特效的目标发射点和所述目标发射点的发射方向。
[0135]
接收闪电鞭特效的特效生成指令,响应于特效生成指令确定闪电鞭特效的目标发射点a和目标发射点a的发射方向为正前方。
[0136]
步骤404:基于所述目标发射点和预设距离,在所述发射方向上确定所述闪电鞭特效在当前图像帧中的目标位置。
[0137]
基于目标发射点a和预设距离3厘米,在目标发射点a的正前方确定闪电鞭特效在第50帧图像帧中的目标位置b。
[0138]
步骤406:获取所述闪电鞭特效所属游戏的视频帧率,基于所述视频帧率确定图像调整帧数。
[0139]
获取闪电鞭特效所属游戏的视频帧率为60帧每秒,基于60帧每秒的视频帧率确定
图像调整帧数为30帧。
[0140]
步骤408:根据所述当前图像帧和所述图像调整帧数确定初始图像帧,并在初始图像帧中确定所述闪电鞭特效在所述初始图像帧中的初始位置。
[0141]
根据第50帧图像帧和图像调整帧数为30帧确定初始图像帧为第20帧图像帧,并在第20帧图像帧中确定闪电鞭特效在第20帧图像帧中的初始位置c。
[0142]
步骤410:根据所述图像调整帧数确定所述闪电鞭特效的目标锚点的数量,并获取与每个目标锚点对应的线性插值参数。
[0143]
根据图像调整帧数为30帧确定闪电鞭特效的目标锚点的数量为29,并获取与每个目标锚点对应的线性插值参数。
[0144]
步骤412:基于所述目标发射点、所述目标位置、所述初始位置和所述每个线性插值参数计算每个目标锚点对应的目标锚点位置。
[0145]
基于目标发射点a、目标位置b、初始位置c和与每个目标锚点对应的线性插值参数计算29个目标锚点位置。
[0146]
步骤414:基于所述目标发射点、所述目标位置、所述初始位置和所述至少一个目标锚点位置在所述当前图像帧中生成所述闪电鞭特效。
[0147]
基于目标发射点a、目标位置b、初始位置c和29个目标锚点位置在第50帧图像帧中生成闪电鞭特效。
[0148]
本技术一实施例通过确定目标展示特效的目标发射点和初始位置,并基于线性插值函数计算目标展示特效的至少一个目标锚点位置,可以实现动态变更目标展示特效的目标锚点位置,使得目标展示特效所呈现的展示效果根据目标锚点位置而变化,不再只是呈现直射状态进行移动变化,从而实现目标展示特效在移动变换的过程中能够呈现自然的弧形状态,呈现的效果更加自然灵活,提高用户体验。
[0149]
与上述方法实施例相对应,本技术还提供了特效生成装置实施例,图5示出了本技术一实施例提供的一种特效生成装置的结构示意图。如图5所示,该装置包括:
[0150]
第一确定模块502,被配置为接收目标展示特效的特效生成指令,响应于所述特效生成指令确定所述目标展示特效的目标发射点和所述目标发射点的发射方向;
[0151]
第二确定模块504,被配置为根据所述目标发射点和所述发射方向确定所述目标展示特效在当前图像帧中的目标位置;
[0152]
第一获取模块506,被配置为基于所述目标位置获取所述目标展示特效的初始位置;
[0153]
计算模块508,被配置为根据所述目标发射点和所述初始位置计算所述目标展示特效的至少一个目标锚点位置;
[0154]
生成模块510,被配置为基于所述目标发射点、所述初始位置和所述至少一个目标锚点位置在所述当前图像帧中生成所述目标展示特效。
[0155]
可选的,所述第二确定模块504,进一步被配置为:
[0156]
基于所述目标发射点和预设距离,在所述发射方向上确定所述目标展示特效在当前图像帧中的目标位置。
[0157]
可选的,所述第一获取模块506,进一步被配置为:
[0158]
基于所述当前图像帧确定初始图像帧;
[0159]
在所述初始图像帧中确定所述目标展示特效的初始位置。
[0160]
可选的,所述第一获取模块506,进一步被配置为:
[0161]
获取视频帧率,并基于所述视频帧率确定图像调整帧数,其中,所述图像调整帧数为根据所述视频帧率设置的图像帧的数量;
[0162]
根据所述图像调整帧数和所述当前图像帧确定初始图像帧。
[0163]
可选的,所述第一获取模块506,进一步被配置为:
[0164]
读取图像帧位置队列,其中,所述图像帧位置队列中保存有每个图像帧的图像帧信息和每个图像帧对应的目标位置;
[0165]
在所述图像帧位置队列中查询所述初始图像帧,并确定所述初始图像帧对应的目标位置为所述目标展示特效的初始位置。
[0166]
可选的,所述计算模块508,进一步被配置为:
[0167]
确定目标锚点的数量;
[0168]
根据所述目标锚点的数量获取与每个目标锚点对应的线性插值参数;
[0169]
基于所述目标发射点、所述目标位置、所述初始位置和所述每个线性插值参数计算每个目标锚点对应的目标锚点位置。
[0170]
可选的,所述计算模块508,进一步被配置为:
[0171]
根据图像调整帧数确定所述目标锚点的数量,其中,所述图像调整帧数为根据视频帧率设置的图像帧的数量。
[0172]
可选的,所述装置还包括:
[0173]
第二获取模块,被配置为获取采样噪声;
[0174]
叠加模块,被配置为在所述目标发射点、所述初始位置和所述至少一个目标锚点位置上分别叠加所述采样噪声。
[0175]
可选的,所述第二获取模块,进一步被配置为:
[0176]
建立采样空间,并在所述采样空间中进行噪声采样以获得初始采样噪声;
[0177]
对所述初始采样噪声进行插值计算,得到所述采样噪声。
[0178]
可选的,所述叠加模块,进一步被配置为:
[0179]
分别计算与所述目标发射点、所述初始位置和所述至少一个目标锚点位置对应的采样噪声的采样偏移量;
[0180]
基于每个采样偏移量与所述目标发射点、所述初始位置和所述至少一个目标锚点位置的对应关系,将所述每个采样偏移量分别叠加到所述目标发射点、所述初始位置和所述至少一个目标锚点位置。
[0181]
通过确定目标展示特效的目标发射点和初始位置,并基于线性插值函数计算目标展示特效的至少一个目标锚点位置,可以实现动态变更目标展示特效的目标锚点位置,使得目标展示特效所呈现的展示效果根据目标锚点位置而变化,不再只是呈现直射状态进行移动变化,从而实现目标展示特效在移动变换的过程中能够呈现自然的弧形状态,呈现的效果更加自然灵活,提高用户体验。
[0182]
上述为本实施例的一种特效生成装置的示意性方案。需要说明的是,该特效生成装置的技术方案与上述的特效生成方法的技术方案属于同一构思,特效生成装置的技术方案未详细描述的细节内容,均可以参见上述特效生成方法的技术方案的描述。
[0183]
图6示出了根据本技术一实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
[0184]
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
[0185]
在本技术的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本技术范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0186]
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
[0187]
其中,处理器620执行所述计算机指令时实现所述的特效生成方法的步骤。
[0188]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的特效生成方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述特效生成方法的技术方案的描述。
[0189]
本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述特效生成方法的步骤。
[0190]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的特效生成方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述特效生成方法的技术方案的描述。
[0191]
上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0192]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0193]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
[0194]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0195]
以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本技术的内容,可作很多的修改和变化。本技术选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1