CN117523042A - 特效生成方法、装置、计算机设备和计算机可读存储介质 - Google Patents
特效生成方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117523042A CN117523042A CN202311386973.9A CN202311386973A CN117523042A CN 117523042 A CN117523042 A CN 117523042A CN 202311386973 A CN202311386973 A CN 202311386973A CN 117523042 A CN117523042 A CN 117523042A
- Authority
- CN
- China
- Prior art keywords
- motion
- virtual object
- track
- target virtual
- special effect
- 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.)
- Pending
Links
- 230000000694 effects Effects 0.000 title claims abstract description 189
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000033001 locomotion Effects 0.000 claims abstract description 621
- 239000013598 vector Substances 0.000 claims description 71
- 230000006870 function Effects 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 15
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000010276 construction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012790 confirmation Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 241000251468 Actinopterygii Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000010171 animal model Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30241—Trajectory
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例公开了一种特效生成方法、装置、计算机设备和计算机可读存储介质,包括:获取待构建特效中的虚拟对象、待构建特效对应的总帧数,以及虚拟对象在总帧数内的总运动距离;根据总运动距离确定虚拟对象在待构建特效中的运动速度;若运动速度不符合预设的速度条件,则在总帧数内构建虚拟对象对应的预设运动轨迹,并对预设运动轨迹进行分割,得到多条运动子轨迹;根据多条运动子轨迹对虚拟对象进行复制处理,得到多个目标虚拟对象,将各目标虚拟对象引入分别引入至各运动子轨迹;根据多个运动子轨迹和多个目标虚拟对象,构建待构建特效,得到目标特效,实现了虚拟对象在特效中运动位置的精确衔接,使得特效表现效果更自然。
Description
技术领域
本申请涉及计算机领域,具体涉及一种特效生成方法、装置、计算机设备和计算机可读存储介质。
背景技术
视频动态的特效生成往往需要在周期内实现,即在单个循环周期内虚拟对象需要有衍生和消失。当前,传统的特效生成可以通过对周期内的虚拟对象循环进行拆解,将每个虚拟对象在单位时间内的移动单位缩小,然后按照缩小比例复制每个虚拟对象的偏移距离,由此实现虚拟对象运动的特效。
在对现有技术的研究和实践过程中,本申请的发明人发现,由于虚拟对象的出生与消失的位置是随机变化的,并虚拟对象的生命周期也是随机的,因此导致在通过传统的虚拟对象循环运动而后拼接的方式实现特效时,则往往会存在虚拟对象运动位置偏差较大,运动位置无法进行精确衔接的问题。
发明内容
本申请实施例提供一种特效生成方法、装置、计算机设备和计算机可读存储介质,可以解决特效生成运动时位置偏差大的技术问题。
本申请实施例提供的一种特效生成方法,包括:
获取待构建特效中的虚拟对象、所述待构建特效对应的总帧数,以及所述虚拟对象在所述总帧数内的总运动距离;
根据所述总运动距离确定所述虚拟对象在所述待构建特效中的运动速度;
若所述运动速度不符合预设的速度条件,则在所述总帧数内构建所述虚拟对象对应的预设运动轨迹,并对所述预设运动轨迹进行分割,得到多条运动子轨迹;
根据多条所述运动子轨迹对所述虚拟对象进行复制处理,得到多个目标虚拟对象,将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,一个所述目标虚拟对象的运动轨迹为多条所述运动子轨迹中的一条运动子轨迹;
根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效。
进一步的,上述根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效,包括:
根据所述总帧数和所述待构建特效对应的帧速率,确定所述目标虚拟对象的总运动时长;
基于所述总运动时长控制各所述目标虚拟对象在各所述运动子轨迹的起始位置开始运动,采集所述总运动时长中的时间进度,根据所述时间进度确定各所述目标虚拟对象在各所述运动子轨迹上的运动位置;
当各所述目标虚拟对象运动至各所述运动子轨迹的终止位置时,控制所述目标虚拟对象回到各所述运动子轨迹的起始位置,以构建得到各所述目标虚拟对象在各所述运动子轨迹上进行循环运动的特效,得到所述目标特效。
进一步的,上述根据所述时间进度确定各所述目标虚拟对象在各所述运动子轨迹上的运动位置,包括:
根据所述时间进度,确定各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量;
基于运动向量和运动位置的预设映射关系,确定各所述当前运动向量对应的目标位置,得到各所述目标虚拟对象在各所述运动子轨迹上的运动位置。
进一步的,上述根据所述时间进度,确定各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量,包括:
获取各所述目标虚拟对象在各所述运动子轨迹上的初始偏移位置;
根据所述时间进度、所述初始偏移位置、所述总帧数和所述总运动距离,计算得到各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量。
进一步的,上述将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,包括:
获取所述预设运动轨迹的预设分割段数,根据所述预设分割段数对所述预设运动轨迹进行分割,得到所述预设运动轨迹上的多条运动子轨迹;
获取各所述目标虚拟对象在所述预设运动轨迹上的曲线位置,根据所述曲线位置将各所述目标虚拟对象引入至多条所述运动子轨迹中对应的运动子轨迹。
进一步的,上述获取各所述目标虚拟对象在所述预设运动轨迹上的曲线位置,包括:
获取各所述运动子轨迹的单位轨迹长度,以及各所述目标虚拟对象在所述预设运动轨迹上对应的轨迹序号;
根据所述轨迹序号和所述单位轨迹长度,计算各所述目标虚拟对象在所述预设运动轨迹上的曲线位置。
进一步的,上述根据所述曲线位置将各所述目标虚拟对象引入至多条所述运动子轨迹中对应的运动子轨迹,包括:
构建各所述运动子轨迹的循环函数,并获取各所述循环函数的属性值;
根据所述属性值和所述循环函数,将各所述目标虚拟对象按照所述曲线位置引入至对应的运动子轨迹。
相应的,本申请实施例还提供的一种特效生成装置,包括:
获取模块,用于获取待构建特效中的虚拟对象、所述待构建特效对应的总帧数,以及所述虚拟对象在所述总帧数内的总运动距离;
确认模块,用于根据所述总运动距离确定所述虚拟对象在所述待构建特效中的运动速度;
分割模块,用于若所述运动速度不符合预设的速度条件,则在所述总帧数内构建所述虚拟对象对应的预设运动轨迹,并对所述预设运动轨迹进行分割,得到多条运动子轨迹;
运动模块,用于根据多条所述运动子轨迹对所述虚拟对象进行复制处理,得到多个目标虚拟对象,将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,一个所述目标虚拟对象的运动轨迹为多条所述运动子轨迹中的一条运动子轨迹;
构建模块,用于根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效。
相应的,本申请实施例还提供的一种计算机设备,包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行本申请实施例提供的任一种特效生成方法。
相应的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器加载以执行本申请实施例提供的任一种特效生成方法。
本申请实施例通过获取待构建特效中的虚拟对象、待构建特效对应的总帧数,以及虚拟对象在总帧数内的总运动距离,实现了对待构建特效各预设参数的精确获取;之后,根据总运动距离确定虚拟对象在待构建特效中的运动速度;若运动速度不符合预设的速度条件,则在总帧数内构建虚拟对象对应的预设运动轨迹,并对预设运动轨迹进行分割,得到多条运动子轨迹,使得通过分割预设运动轨迹,能够对虚拟对象的运动速度进行调整,使其更运动符合实际的情况,从而避免虚拟对象在特效中运动的机械感;而后,根据多条运动子轨迹对虚拟对象进行复制处理,得到多个目标虚拟对象,将各目标虚拟对象引入分别引入至各运动子轨迹,一个目标虚拟对象的运动轨迹为多条运动子轨迹中的一条运动子轨迹,实现了同一虚拟对象在运动子轨迹上的运动,使得虚拟对象在特效中运动能够通过各运动子轨迹进行首尾衔接,避免首尾衔接的位置偏差;最后,根据多个运动子轨迹和多个目标虚拟对象,构建待构建特效,得到目标特效,实现了通过虚拟对象对特效的高效构建,避免了虚拟对象在特效中运动时存在首尾衔接的位置偏差,提高了虚拟对象在特效中运动位置的准确度,使得特效表现效果更自然。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的特效生成方法的流程图;
图2是本申请实施例提供的多虚拟对象多循环的轨迹示意图;
图3是本申请实施例提供的特效生成装置示意图;
图4是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种特效生成方法、装置、计算机设备和计算机可读存储介质。该特效生成装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
其中,该终端可以包括手机、穿戴式智能设备、平板电脑、笔记本电脑、个人计算(PC,Personal Computer)、以及车载计算机等。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从特效生成装置的角度进行描述,该特效生成装置具体可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
本申请实施例提供的一种特效生成方法,如图1所示,该特效生成方法的具体流程可以如下:
S101、获取待构建特效中的虚拟对象、所述待构建特效对应的总帧数,以及所述虚拟对象在所述总帧数内的总运动距离;
在本实施例中,待构建特效为虚拟对象目标构建的特效,该待构建特效对应的总帧数为预设的总帧数。虚拟对象则为模拟各模型运动的对象,如模拟动物模型运动的对象,或模拟人物模型运动的对象。通过虚拟对象在轨迹上进行运动,可以实现虚拟对象的动态播放,从而得到由该虚拟对象组成的特效。虚拟对象在待构建特效中总帧数的总运动距离则为预先设定的距离。例如,待构建特效为鱼游动的特效,该待构建特效的总帧数为100帧,在该100帧的待构建特效内,鱼需要移动10个单位;该10个单位即为虚拟对象在待构建特效的总帧数内的总运动距离。
S102、根据所述总运动距离确定所述虚拟对象在所述待构建特效中的运动速度;
在本实施例中,在得到虚拟对象对应的总运动距离之后,确定该虚拟对象在该待构建特效中的运动速度。具体地,获取该待构建特效的帧速率,而后计算该待构建特效的总帧数和该帧速率的比值,即得到虚拟对象在该待构建特效的总运动时长。之后,计算该总运动距离和该总运动时长的比值,得到该虚拟对象在待构建特效中的运动速度。
S103、若所述运动速度不符合预设的速度条件,则在所述总帧数内构建所述虚拟对象对应的预设运动轨迹,并对所述预设运动轨迹进行分割,得到多条运动子轨迹;
在本实施例中,获取预设的速度条件。该预设的速度条件可以为虚拟对象对应的真实运动速度。若该虚拟对象的运动速度小于或大于该真实运动速度,则确定该虚拟对象的运动速度不符合该预设的速度条件;若该虚拟对象的运动速度等于该真实运动速度,则确定该虚拟对象的运动速度符合该预设的速度条件。当该虚拟对象的运动速度不符合该预设的速度条件时,在该待构建特效的总帧数内构建虚拟对象的预设运动轨迹,并对该预设运动轨迹进行分割,得到多条运动子轨迹。具体地,预设运动轨迹为虚拟对象在待构建特效中的总运动路径,对该预设运动轨迹进行分割,得到虚拟对象对应的多个最小运动单位,多条该最小运动单位即为虚拟对象对应的多条运动子轨迹。该运动子轨迹的起止位置在空间坐标系上配置为预设阈值范围。其中,预设阈值范围为0至1,0表示运动子轨迹的默认起始位置,1表示运动子轨迹的默认终止位置,每条运动子轨迹的轨迹长度可能不同,但其默认起止位置在空间坐标系上均为该预设阈值范围,即在预设运动轨迹上的每条运动子轨迹的起止位置均为该预设阈值范围。
S104、根据多条所述运动子轨迹对所述虚拟对象进行复制处理,得到多个目标虚拟对象,将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,一个所述目标虚拟对象的运动轨迹为多条所述运动子轨迹中的一条运动子轨迹;
在本实施例中,为实现虚拟对象运动的头尾衔接,并在特效上表现为一个虚拟对象的循环运动,因此,在得到多条运动子轨迹时,根据该运动子轨迹对该虚拟对象进行复制处理,得到多个目标虚拟对象。由于各目标虚拟对象相同,因此,可以将各目标虚拟对象随机投入至运动子轨迹上,每个目标虚拟对象在各运动子轨迹上运动,各目标虚拟对象的运动轨迹即为多条运动子轨迹中的一条运动子轨迹。
S105、根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效。
在本实施例中,在得到多个运动子轨迹和多个目标虚拟对象之后,通过控制各目标虚拟对象在各运动子轨迹上运动,以对待构建特效进行构建,即得到目标特效。进一步的,待构建特效中的虚拟对象可以有多种,一种虚拟对象对应多个目标虚拟对象,不同虚拟对象则对应不同的预设运动轨迹,同一虚拟对象的多个目标虚拟对象在同一预设运动轨迹上运动。多个虚拟对象在各自的预设运动轨迹上运动,则可构建到一种多虚拟对象运动的特效。
本实施例通过获取待构建特效中的虚拟对象、待构建特效对应的总帧数,以及虚拟对象在总帧数内的总运动距离,实现了对待构建特效各预设参数的精确获取;之后,根据总运动距离确定虚拟对象在待构建特效中的运动速度;若运动速度不符合预设的速度条件,则在总帧数内构建虚拟对象对应的预设运动轨迹,并对预设运动轨迹进行分割,得到多条运动子轨迹,使得通过分割预设运动轨迹,能够对虚拟对象的运动速度进行调整,使其更运动符合实际的情况,从而避免虚拟对象在特效中运动的机械感;而后,根据多条运动子轨迹对虚拟对象进行复制处理,得到多个目标虚拟对象,将各目标虚拟对象引入分别引入至各运动子轨迹,一个目标虚拟对象的运动轨迹为多条运动子轨迹中的一条运动子轨迹,实现了同一虚拟对象在运动子轨迹上的运动,使得虚拟对象在特效中运动能够通过各运动子轨迹进行首尾衔接,避免首尾衔接的位置偏差;最后,根据多个运动子轨迹和多个目标虚拟对象,构建待构建特效,得到目标特效,实现了通过虚拟对象对特效的高效构建,避免了虚拟对象在特效中运动时存在首尾衔接的位置偏差,提高了虚拟对象在特效中运动位置的准确度,使得特效表现效果更自然。
在本申请一些实施例中,上述根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效,包括:
根据所述总帧数和所述待构建特效对应的帧速率,确定所述目标虚拟对象的总运动时长;
基于所述总运动时长控制各所述目标虚拟对象在各所述运动子轨迹的起始位置开始运动,采集所述目标虚拟对象在所述总运动时长的时间进度,根据所述时间进度确定各所述目标虚拟对象在各所述运动子轨迹上的运动位置;
当各所述目标虚拟对象运动至各所述运动子轨迹的终止位置时,控制所述目标虚拟对象回到各所述运动子轨迹的起始位置,以构建得到各所述目标虚拟对象在各所述运动子轨迹上进行循环运动的特效,得到所述目标特效。
在本实施例中,不同类型的待构建特效的帧速率不同,如电影特效的帧速率通常为25fps/s,动画特效的帧速率则通常为30fps/s。根据总帧数和待构建特效的帧速率,可以确定目标虚拟对象的总运动时长。具体地,获取待构建特效预设的帧速率,计算该总帧数和帧速率的比值,得到目标虚拟对象的总运动时长。基于该总运动时长控制各目标虚拟对象在各运动子轨迹上的起始位置开始运动,其中,该起始位置可以为各目标虚拟对象在各运动子轨迹上的默认起始位置,也可以为随机起始位置。而后,采集总运动时长中的时间进度,具体的,所有目标虚拟对象在待构建特效中共用一个时间轴,当时间轴上的时间进度变化时,所有目标虚拟对象在各对应的运动子轨迹上的位置亦会随之变化。该时间轴的时长即为总运动时长,该时间进度即为所有目标虚拟对象在总运动时长中的播放时刻。并且,该时间进度可以为当前帧目标虚拟对象对应的播放时刻,也可以为下一帧目标虚拟对象的播放时刻。在三维计算机图形软件(如houdini)中,通过该软件中的动态浮点值可以获得当前总运动时长中的时间进度,该动态浮点值即直接反应了目标虚拟对象在总运动时长中的时间进度。
在得到目标虚拟对象在总运动时长中的时间进度时,根据该时间进度确定各目标虚拟对象在各运动子轨迹上的运动位置。具体地,由于各运动子轨迹在空间坐标系中对应的预设阈值范围均为0至1,在得到时间进度时,将该时间进度与该预设阈值范围进行映射,使得该时间进度位于该预设阈值范围内,得到更新后的时间进度。计算该更新后的时间进度与运动子轨迹中预设阈值范围的比值,即得到各目标虚拟对象在各运动子轨迹上的运动位置。当目标虚拟对象运动至各运动子轨迹的终止位置时,则控制目标虚拟对象回到各运动子轨迹的起始位置,以构建得到目标虚拟对象在运动子轨迹上进行循环运动的特效,得到目标特效。
具体地,在得到目标虚拟对象对应的运动位置时,确定该运动位置对应的目标播放时刻,根据该目标播放时刻对目标虚拟对象的累计运动时长进行统计。其中,该累计运动时长等于该目标虚拟对象对应的目标播放时刻与目标虚拟对象第一次从起始位置开始运动时对应的播放时刻的差值。例如,该目标虚拟对象第一次从起始位置开始运动时的播放时刻为0.15s,该运动位置对应的目标播放时刻为1.2s,则当前累计运动时长为1.05s;若该运动位置对应的目标播放时刻为2.15s,则此次累计运动时长为2s。不同的目标虚拟对象在不同的运动子轨迹上的起始播放时刻可以为相同的时刻,但该相同的时刻下,不同的目标虚拟对象在各运动子轨迹上的起始位置可能不同。同时,获取目标虚拟对象在运动子轨迹上的单次运动时长,该单次运动时长为预先设定的目标虚拟对象的周期运动时长。
由于运动子轨迹在空间坐标系上配置的预设阈值范围为0至1,该预设阈值范围值为1,若目标虚拟对象的累计运动时长为整数,即表示当前目标虚拟对象已经在运动子轨迹上作了一个完整的运动。因此,在得到目标虚拟对象的累计运动时长时,确定目标虚拟对象的累计运动时长是否等于单次运动时长,若该累计运动时长小于单次运动时长,且该累计运动时长为整数,则确定目标虚拟对象运动至了运动子轨迹的终止位置,控制目标虚拟对象回到运动子轨迹的起始位置,使得目标虚拟对象在运动子轨迹上进行循环运动。
本实施例通过根据总帧数和待构建特效对应的帧速率,确定目标虚拟对象的总运动时长;基于总运动时长控制各目标虚拟对象在各运动子轨迹的起始位置开始运动,采集目标虚拟对象在总运动时长的时间进度,根据时间进度确定各目标虚拟对象在各运动子轨迹上的运动位置;当各目标虚拟对象运动至各运动子轨迹的终止位置时,控制目标虚拟对象回到各运动子轨迹的起始位置,以构建得到目标虚拟对象在运动子轨迹上进行循环运动的特效,得到目标特效,实现了各目标虚拟对象在各运动子轨迹上的循环运动,并避免了目标虚拟对象运动时首尾衔接误差,使得特效表现更符合实际。
在本申请一些实施例中,上述根据所述时间进度确定各所述目标虚拟对象在各所述运动子轨迹上的运动位置,包括:
根据所述时间进度,确定各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量;
基于运动向量和运动位置的预设映射关系,确定各所述当前运动向量对应的目标位置,得到各所述目标虚拟对象在各所述运动子轨迹上的运动位置。
在本实施例中,根据时间进度确定各目标虚拟对象在各运动子轨迹上的预设轴向方向上的当前运动向量。具体地,预设轴向为运动子轨迹在空间坐标系上的预设轴的方向,在空间坐标系中通过u、v、w轴表示坐标的方向。其中,u轴方向表示运动子轨迹的运动方向,将u轴方向的运动向量作为各目标虚拟对象在各运动子轨迹上预设轴向方向上的当前运动向量。在得到时间进度时,将该时间进度作为目标虚拟对象在运动子轨迹上的u轴方向上的向量值,即得到当前目标虚拟对象在运动子轨迹上的预设轴向方向上的当前运动向量。该当前运动向量包括方向和向量值,其中,方向为预设轴向方向,向量值为时间进度。
在得到目标虚拟对象的当前运动向量之后,该当前运动向量对应的时间进度可能为大于预设阈值范围中最大数值的值,因此,在获取运动向量和运动位置预设的映射关系之前,对该当前运动向量的向量值进行判断,确定该当前运动向量的向量值是否大于运动子轨迹的预设阈值范围的最大值。若该当前运动向量的向量值大于预设阈值范围的最大值,对该当前运动向量进行标准范围的映射处理,即将该当前运动向量的向量值,映射至运动子轨迹在空间坐标系的预设阈值范围内,由此使得所有目标虚拟对象的当前运动向量的向量值能一直保持在运动子轨迹对应的预设阈值范围内,进而实现各目标虚拟对象在各运动子轨迹上的运动。当预设阈值范围为0至1时,通过映射节点可以将当前运动向量的向量值映射在0至1的范围,得到处理后的向量值。例如,通过映射节点(如houdini中的frac节点)可以将1.15映射处理为0.15,该0.15即在0至1的范围内。若该当前运动向量的向量值小于预设阈值范围的最大值,则无需对该当前运动向量的向量值进行标准范围的映射处理。
之后,获取运动向量和运动位置预设的映射关系,该映射关系为运动向量的向量值和目标虚拟对象在运动子轨迹上的位置关系。不同的向量值对应不同的运动位置,通过查询处理后的向量值在映射关系表上的运动位置,可以得到处理后的向量值在运动子轨迹上的目标位置。除此之外,由于处理后的向量值位于运动子轨迹的预设阈值范围内,因此,计算在预设阈值范围内,各运动子轨迹的起始位置和终止位置的差值,而后,计算当前运动向量的向量值与该差值的比值,通过该比值即可确定到目标虚拟对象在运动子轨迹上的位置值。例如,目标虚拟对象的当前运动向量的向量值为0.5,在预设阈值范围内运动子轨迹的起始位置为0,终止位置为1,计算得到差值为1。由此,计算得到该向量值和该差值的比值为50%,该当前运动向量对应的目标位置即为该目标虚拟对象在运动子轨迹上50%的位置。
本实施例通过根据时间进度,确定各目标虚拟对象在各运动子轨迹上预设轴向方向上的当前运动向量;之后,基于运动向量和运动位置的预设映射关系,确定各当前运动向量对应的目标位置,得到各目标虚拟对象在各运动子轨迹上的运动位置,实现了对各目标虚拟对象在各运动子轨迹上位置的精确确定,使得各目标虚拟对象能够在各运动子轨迹上精确运动。
在本申请一些实施例中,上述根据所述时间进度,确定各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量,包括:
获取各所述目标虚拟对象在各所述运动子轨迹上的初始偏移位置;
根据所述时间进度、所述初始偏移位置、所述总帧数和所述总运动距离,计算得到各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量。
在本实施例中,初始偏移位置为各目标虚拟对象在其对应的运动子轨迹上的初始位置,即该目标虚拟对象的出生位置。每个目标虚拟对象在其对应的运动子轨迹上可能对应不同的初始位置,通过该初始偏移位置可以对各目标虚拟对象在运动子轨迹上的初始位置进行控制,使得通过目标虚拟对象运动实现的特效更自然。例如,对于一个100帧的循环,在该循环上虚拟对象的目标移动距离为3,在该100帧的循环上,目标虚拟对象的第一帧开始的时间点为0.15,为了实现目标虚拟对象在预设运动轨迹上的循环的首尾衔接,最后一帧对应的时间点应为3.15,由此使得目标虚拟对象在预设运动轨迹上表现为首尾相接的循环运动。因此,在计算目标虚拟对象的运动向量时,需要确定目标虚拟对象是否存在随机偏移值,若该目标虚拟对象存在随机偏移值,则将该随机偏移值作为该目标虚拟对象在其所属的运动子轨迹上的初始偏移位置;若该目标虚拟对象不存在随机偏移值,则确定该目标虚拟对象的初始偏移位置为运动子轨迹的默认起始位置。
在得到各目标虚拟对象在各运动子轨迹上的初始偏移位置时,根据时间进度、初始偏移位置、总帧数和总运动距离,计算得到各目标虚拟对象在各运动子轨迹上预设轴向方向上的运动向量。具体地,根据总帧数和总运动距离,可以计算得到目标虚拟对象每一帧需要移动的长度,即单位移动长度。其中,单位移动长度为目标虚拟对象在运动子轨迹上的每一帧的移动距离,其单位为单位/fps,该单位移动长度与目标虚拟对象的运动速度相关,目标虚拟对象需要的运动速度越快,该目标虚拟对象对应的单位移动长度越长。进一步的,由于时间进度的单位为秒,而特效的帧速率为单位为fps/s,因此,需要对帧速率进行换算,即计算该帧速率的倒数,得到每秒的帧长。
而后,将该每秒的帧长作为参考值,该参考值的单位即为s/fps;计算单位移动长度与该参考值的比值,得到每秒钟目标虚拟对象的移动长度。将该每秒钟目标虚拟对象的移动长度与时间进度相乘,即得到目标虚拟对象的移动值。最后,将该移动值和该目标虚拟对象的初始偏移位置进行相加,得到该目标虚拟对象在当前时间进度下的移动长度,该移动长度即为目标虚拟对象的运动向量的向量值。该向量值的计算公式如下:
u=Time*(单位移动长度/TimeInc)+初始偏移位置
其中,Time为时间进度,TimeInc为参考值。
本实施例通过获取各目标虚拟对象在各运动子轨迹上的初始偏移位置;根据时间进度、初始偏移位置、总帧数和总运动距离,计算得到各目标虚拟对象在各运动子轨迹上预设轴向方向上的运动向量,可以实现不同目标虚拟对象在其对应的运动子轨迹上的不同出生点,提高了目标虚拟对象的特效表现效果,使得通过单位移动长度能对目标虚拟对象的移动速度进行控制,避免了目标虚拟对象运动的机械感。
在本申请一些实施例中,上述将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,包括:
获取所述预设运动轨迹的预设分割段数,根据所述预设分割段数对所述预设运动轨迹进行分割,得到所述预设运动轨迹上的多条运动子轨迹;
获取各所述目标虚拟对象在所述预设运动轨迹上的曲线位置,根据所述曲线位置将各所述目标虚拟对象引入至多条所述运动子轨迹中对应的运动子轨迹。
在本实施例中,每条预设运动轨迹上包括至少一条运动子轨迹。当需要通过虚拟对象进行循环实现目标模型的动态效果时,获取虚拟对象对应的预设运动轨迹,对该预设运动轨迹进行分割,得到多条运动子轨迹;根据该运动子轨迹对虚拟对象进行复制,得到多个目标虚拟对象,而后,将每个目标虚拟对象投入至对应的运动子轨迹上进行循环运动,由此可以实现虚拟对象构建的特效。当待构建特效的虚拟对象有多种时,则获取各虚拟对象的类型,按照该类型对预设运动轨迹进行划分,得到多条不同的预设运动轨迹。而后,获取各预设运动轨迹的预设分割段数,该预设分割段数为预先设定的分割数值,根据该预设分割段数对每条预设运动轨迹进行分割,得到每条预设运动轨迹上的多条运动子轨迹。
其中,一个目标虚拟对象可以对应一条运动子轨迹,同一类型的虚拟对象对应同一条预设运动轨迹,每条预设运动轨迹的运动子轨迹通过分割后的轨迹长度可能相同可能不同。而后,获取目标虚拟对象在该预设运动轨迹上的曲线位置,该曲线位置反应了各运动子轨迹在预设运动轨迹上的位置,根据该曲线位置将该目标虚拟对象引入至该预设运动轨迹上对应的运动子轨迹。其中,在存在多中虚拟对象时,该目标虚拟对象的曲线位置可以由目标虚拟对象对应的类型,以及目标虚拟对象的轨迹序号确定。根据该类型确定目标虚拟对象所在的预设运动轨迹,根据轨迹序号确定该目标虚拟对象在该预设运动轨迹上的运动子轨迹。如图2所示,图2为一种多虚拟对象多循环的轨迹示意图,其中,0至1表示每条运动子轨迹在空间坐标系的起始位置和终止位置,在该图2中包含了三条预设运动轨迹,每条预设运动轨迹被分割为5条运动子轨迹。
进一步的,在构建虚拟对象的多循环时,除了通过对目标虚拟对象对应的预设运动轨迹进行构建,而后对预设运动轨迹进行分割得到多条运动子轨迹以外,还可以先对各目标虚拟对象对应的运动子轨迹进行构建,而后通过将该运动子轨迹按照预设的偏移距离进行偏移,将多个相同的运动子轨迹通过偏移距离首尾连接在一起,从而得到多个运动子轨迹构建的预设运动轨迹。之后,按照上述方式计算各目标虚拟对象在各自所属的运动子轨迹上的运动向量,实现各目标虚拟对象在运动子轨迹上的运动。由此,通过上述两种方式均可以根据该各目标虚拟对象在运动子轨迹上的循环运动,实现目标虚拟对象在预设运动轨迹上循环。
本实施例通过获取预设运动轨迹的预设分割段数,根据预设分割段数对预设运动轨迹进行分割,得到各预设运动轨迹上的多条运动子轨迹,之后,获取各目标虚拟对象在预设运动轨迹上的曲线位置,根据曲线位置将各目标虚拟对象引入至多条运动子轨迹中对应的运动子轨迹,实现了对预设运动轨迹的精确分割,并且通过分割得到运动子轨迹在该预设运动轨迹上首尾相连,使得通过不同的目标虚拟对象在其所属的运动子轨迹上循环运动,即能实现整个首尾连接的大循环运动效果,避免了虚拟对象在大循环时的首尾位置偏差,提高了虚拟对象在特效中运动位置的精度以及虚拟对象的动态表现效果。
在本申请一些实施例中,上述获取各所述目标虚拟对象在所述预设运动轨迹上的曲线位置,包括:
获取各所述运动子轨迹的单位轨迹长度,以及各所述目标虚拟对象在所述预设运动轨迹上对应的轨迹序号;
根据所述轨迹序号和所述单位轨迹长度,计算各所述目标虚拟对象在所述预设运动轨迹上的曲线位置。
在本实施例中,单位轨迹长度为运动子轨迹在预设运动轨迹上的单位长度,该单位轨迹长度可通过计算预设分割段数和预设轨迹长度的比值得到。其中,该预设轨迹长度与运动子轨迹的预设阈值范围值相同,在运动子轨迹的预设阈值范围为0至1时,该预设轨迹长度即为1。例如,预设分割段数为5,预设轨迹长度为1,该目标虚拟对象的单位轨迹长度即为0.2。获取目标虚拟对象在预设运动轨迹上对应的轨迹序号,该轨迹序号由目标虚拟对象在预设运动轨迹上的运动顺序确定,一个运动子轨迹对应一个轨迹序号,轨迹序号的数量与预设分割段数相同,通过轨迹序号可以将各目标虚拟对象对应的运动子轨迹连接起来。例如,将预设运动轨迹按照预设分割段数分割为5条运动子轨迹,则该5条运动子轨迹分别各对应一个轨迹序号。获取运动子轨迹的单位轨迹长度,以及目标虚拟对象在预设运动轨迹上对应的轨迹序号;确定该轨迹序号是否为该目标虚拟对象对应的运动子轨迹的初始序号,若该轨迹序号为该初始序号,则将该单位轨迹长度与该轨迹序号进行相乘,得到该目标虚拟对象的曲线位置,即First U=单位轨迹长度*轨迹序号,其中,First U为初始序号对应的曲线位置。若该轨迹序号不等于该目标虚拟对象对应的运动子轨迹的初始序号,则将该轨迹序号减1,得到轨迹值,将该轨迹值与单位轨迹长度进行相乘,得到该目标虚拟对象在预设运动轨迹上的曲线位置。
本实施例通过获取单位轨迹长度和轨迹序号,通过该单位轨迹长度和轨迹序号,计算得到曲线位置,实现了对各目标虚拟对象在预设运动轨迹上的位置的精确确定,并通过轨迹序号对各个运动子轨迹进行连接,实现了同一预设运动轨迹上目标虚拟对象运动的头尾相连,避免了在大循环时存在的运动位置偏差。
在本申请一些实施例中,上述根据所述曲线位置将各所述目标虚拟对象引入至多条所述运动子轨迹中对应的运动子轨迹,包括:
构建各所述运动子轨迹的循环函数,并获取各所述循环函数的属性值;
根据所述属性值和所述循环函数,将各所述目标虚拟对象按照所述曲线位置引入至对应的运动子轨迹。
在本实施例中,不同目标虚拟对象对应不同的曲线位置,每个目标虚拟对象在其对应的曲线位置的运动子轨迹进行循环运动,同一预设运动轨迹上的所有目标虚拟对象进行循环,由此构成该预设运动轨迹的大循环,分别构建多个预设运动轨迹各自对应的大循环,最终实现整体所有目标虚拟对象对应的动态播放效果。因此,在得到各目标虚拟对象的曲线位置时,构建各目标虚拟对象所在的运动子轨迹的循环函数,并获取各循环函数的属性值,其中,该属性值为各循环函数对应的唯一标识,通过该属性值可以对各运动子轨迹的循环函数进行引用,该属性值与各目标虚拟对象的曲线位置相适应。根据该属性值和循环函数,将各目标虚拟对象按照曲线位置依次引入至对应的运动子轨迹上。例如,构建各目标虚拟对象在其所属的运动子轨迹的for循环函数,之后根据目标虚拟对象的for循环函数的属性值,将各循环函数引入至总循环函数;执行该总循环函数,即可将各目标虚拟对象按照曲线位置依次引入至对应的运动子轨迹上。当目标虚拟对象在各自对应的运动子轨迹上循环运动时,则可进一步通过时间进度确定运动向量,进而根据该运动向量确定目标位置,最终实现目标虚拟对象在运动子轨迹上的循环运动。
本实施例通过构建各运动子轨迹的循环函数及属性值,根据该循环函数及属性值,将目标虚拟对象按照曲线位置依次引入至对应的运动子轨迹,实现了对目标虚拟对象在其所属的运动子轨迹的精确引入,使得通过目标虚拟对象在各运动子轨迹上的循环运动,实现整体预设运动轨迹的大循环,最终使得虚拟对象的动态表现效果更自然,避免了虚拟对象运动的机械感。
为了便于更好地实施本申请实施例提供的特效生成方法,在一实施例中还提供了一种特效生成装置。其中名词的含义与上述特效生成方法中相同,具体实现细节可以参考方法实施例中的说明。
该特效生成装置具体可以集成在计算机设备中,如图3所示,该特效生成装置可以包括:获取模块301、确认模块302、分割模块303、运动模块304和构建模块305,具体如下:
获取模块301,用于获取待构建特效中的虚拟对象、所述待构建特效对应的总帧数,以及所述虚拟对象在所述总帧数内的总运动距离;
确认模块302,用于根据所述总运动距离确定所述虚拟对象在所述待构建特效中的运动速度;
分割模块303,用于若所述运动速度不符合预设的速度条件,则在所述总帧数内构建所述虚拟对象对应的预设运动轨迹,并对所述预设运动轨迹进行分割,得到多条运动子轨迹;
运动模块304,用于根据多条所述运动子轨迹对所述虚拟对象进行复制处理,得到多个目标虚拟对象,将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,一个所述目标虚拟对象的运动轨迹为多条所述运动子轨迹中的一条运动子轨迹;
构建模块305,用于根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效。
在本申请一实施例中,上述构建模块305,包括:
第一确认单元,用于根据所述总帧数和所述待构建特效对应的帧速率,确定所述目标虚拟对象的总运动时长;
采集单元,用于基于所述总运动时长控制各所述目标虚拟对象在各所述运动子轨迹的起始位置开始运动,采集所述总运动时长中的时间进度,根据所述时间进度确定各所述目标虚拟对象在各所述运动子轨迹上的运动位置;
运动单元,用于当各所述目标虚拟对象运动至各所述运动子轨迹的终止位置时,控制所述目标虚拟对象回到各所述运动子轨迹的起始位置,以构建得到各所述目标虚拟对象在各所述运动子轨迹上进行循环运动的特效,得到所述目标特效。
在本申请一实施例中,上述采集单元,包括:第二确认单元,用于根据所述时间进度,确定各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量;
第三确认单元,用于基于运动向量和运动位置的预设映射关系,确定各所述当前运动向量对应的目标位置,得到各所述目标虚拟对象在各所述运动子轨迹上的运动位置。
在本申请一实施例中,上述第三确认单元,包括:
第一获取单元,用于获取各所述目标虚拟对象在各所述运动子轨迹上的初始偏移位置;
第一计算单元,用于根据所述时间进度、所述初始偏移位置、所述总帧数和所述总运动距离,计算得到各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的运动向量。
在本申请一实施例中,上述运动模块304,包括:
分割单元,用于获取所述预设运动轨迹的预设分割段数,根据所述预设分割段数对所述预设运动轨迹进行分割,得到所述预设运动轨迹上的多条运动子轨迹;
第一引入单元,用于获取各所述目标虚拟对象在所述预设运动轨迹上的曲线位置,根据所述曲线位置将各所述目标虚拟对象引入至多条所述运动子轨迹中对应的运动子轨迹。
在本申请一实施例中,上述引入单元,包括:
第二获取单元,用于获取各所述运动子轨迹的单位轨迹长度,以及各所述目标虚拟对象在所述预设运动轨迹上对应的轨迹序号;
第二计算单元,用于根据所述轨迹序号和所述单位轨迹长度,计算各所述目标虚拟对象在所述预设运动轨迹上的曲线位置。
在本申请一实施例中,上述引入单元,还包括:
构建单元,用于构建各所述运动子轨迹的循环函数,并获取各所述循环函数的属性值;
第二引入单元,用于根据所述属性值和所述循环函数,将各所述目标虚拟对象按照所述曲线位置引入至对应的运动子轨迹。
由上可知,本申请实施例提出的特效生成装置,实现了通过虚拟对象对特效的高效构建,避免了虚拟对象在特效中运动时存在首尾衔接的位置偏差,提高了虚拟对象在特效中运动位置的准确度,使得特效表现效果更自然。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端。如图4所示,图4为本申请实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备500进行整体监控。
在本申请实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
获取待构建特效中的虚拟对象、所述待构建特效对应的总帧数,以及所述虚拟对象在所述总帧数内的总运动距离;
根据所述总运动距离确定所述虚拟对象在所述待构建特效中的运动速度;
若所述运动速度不符合预设的速度条件,则在所述总帧数内构建所述虚拟对象对应的预设运动轨迹,并对所述预设运动轨迹进行分割,得到多条运动子轨迹;
根据多条所述运动子轨迹对所述虚拟对象进行复制处理,得到多个目标虚拟对象,将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,一个所述目标虚拟对象的运动轨迹为多条所述运动子轨迹中的一条运动子轨迹;
根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效。
由上可知,本申请实施例提出的计算机设备,实现了通过虚拟对象对特效的高效构建,避免了虚拟对象在特效中运动时存在首尾衔接的位置偏差,提高了虚拟对象在特效中运动位置的准确度,使得特效表现效果更自然。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图4所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图4中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种虚拟物品的标记方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取待构建特效中的虚拟对象、所述待构建特效对应的总帧数,以及所述虚拟对象在所述总帧数内的总运动距离;
根据所述总运动距离确定所述虚拟对象在所述待构建特效中的运动速度;
若所述运动速度不符合预设的速度条件,则在所述总帧数内构建所述虚拟对象对应的预设运动轨迹,并对所述预设运动轨迹进行分割,得到多条运动子轨迹;
根据多条所述运动子轨迹对所述虚拟对象进行复制处理,得到多个目标虚拟对象,将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,一个所述目标虚拟对象的运动轨迹为多条所述运动子轨迹中的一条运动子轨迹;
根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效。
由上可知,本申请实施例提出的计算机可读存储介质,实现了通过虚拟对象对特效的高效构建,避免了虚拟对象在特效中运动时存在首尾衔接的位置偏差,提高了虚拟对象在特效中运动位置的准确度,使得特效表现效果更自然。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本申请实施例所提供的一种特效生成方法、装置、计算机设备和计算机存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种特效生成方法,其特征在于,包括:
获取待构建特效中的虚拟对象、所述待构建特效对应的总帧数,以及所述虚拟对象在所述总帧数内的总运动距离;
根据所述总运动距离确定所述虚拟对象在所述待构建特效中的运动速度;
若所述运动速度不符合预设的速度条件,则在所述总帧数内构建所述虚拟对象对应的预设运动轨迹,并对所述预设运动轨迹进行分割,得到多条运动子轨迹;
根据多条所述运动子轨迹对所述虚拟对象进行复制处理,得到多个目标虚拟对象,将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,一个所述目标虚拟对象的运动轨迹为多条所述运动子轨迹中的一条运动子轨迹;
根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效。
2.根据权利要求1所述的特效生成方法,其特征在于,所述根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效,包括:
根据所述总帧数和所述待构建特效对应的帧速率,确定所述目标虚拟对象的总运动时长;
基于所述总运动时长控制各所述目标虚拟对象在各所述运动子轨迹的起始位置开始运动,采集所述总运动时长中的时间进度,根据所述时间进度确定各所述目标虚拟对象在各所述运动子轨迹上的运动位置;
当各所述目标虚拟对象运动至各所述运动子轨迹的终止位置时,控制所述目标虚拟对象回到各所述运动子轨迹的起始位置,以构建得到各所述目标虚拟对象在各所述运动子轨迹上进行循环运动的特效,得到所述目标特效。
3.根据权利要求2所述的特效生成方法,其特征在于,所述根据所述时间进度确定各所述目标虚拟对象在各所述运动子轨迹上的运动位置,包括:
根据所述时间进度,确定各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量;
基于运动向量和运动位置的预设映射关系,确定各所述当前运动向量对应的目标位置,得到各所述目标虚拟对象在各所述运动子轨迹上的运动位置。
4.根据权利要求3所述的特效生成方法,其特征在于,所述根据所述时间进度,确定各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量,包括:
获取各所述目标虚拟对象在各所述运动子轨迹上的初始偏移位置;
根据所述时间进度、所述初始偏移位置、所述总帧数和所述总运动距离,计算得到各所述目标虚拟对象在各所述运动子轨迹上预设轴向方向上的当前运动向量。
5.根据权利要求1所述的特效生成方法,其特征在于,所述将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,包括:
获取所述预设运动轨迹的预设分割段数,根据所述预设分割段数对所述预设运动轨迹进行分割,得到所述预设运动轨迹上的多条运动子轨迹;
获取各所述目标虚拟对象在所述预设运动轨迹上的曲线位置,根据所述曲线位置将各所述目标虚拟对象引入至多条所述运动子轨迹中对应的运动子轨迹。
6.根据权利要求5所述的特效生成方法,其特征在于,所述获取各所述目标虚拟对象在所述预设运动轨迹上的曲线位置,包括:
获取各所述运动子轨迹的单位轨迹长度,以及各所述目标虚拟对象在所述预设运动轨迹上对应的轨迹序号;
根据所述轨迹序号和所述单位轨迹长度,计算各所述目标虚拟对象在所述预设运动轨迹上的曲线位置。
7.根据权利要求5所述的特效生成方法,其特征在于,所述根据所述曲线位置将各所述目标虚拟对象引入至多条所述运动子轨迹中对应的运动子轨迹,包括:
构建各所述运动子轨迹的循环函数,并获取各所述循环函数的属性值;
根据所述属性值和所述循环函数,将各所述目标虚拟对象按照所述曲线位置引入至对应的运动子轨迹。
8.一种特效生成装置,其特征在于,包括:
获取模块,用于获取待构建特效中的虚拟对象、所述待构建特效对应的总帧数,以及所述虚拟对象在所述总帧数内的总运动距离;
确认模块,用于根据所述总运动距离确定所述虚拟对象在所述待构建特效中的运动速度;
分割模块,用于若所述运动速度不符合预设的速度条件,则在所述总帧数内构建所述虚拟对象对应的预设运动轨迹,并对所述预设运动轨迹进行分割,得到多条运动子轨迹;
运动模块,用于根据多条所述运动子轨迹对所述虚拟对象进行复制处理,得到多个目标虚拟对象,将各所述目标虚拟对象引入分别引入至各所述运动子轨迹,一个所述目标虚拟对象的运动轨迹为多条所述运动子轨迹中的一条运动子轨迹;
构建模块,用于根据多个所述运动子轨迹和多个所述目标虚拟对象,构建所述待构建特效,得到目标特效。
9.一种计算机设备,其特征在于,包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行权利要求1至7任一项所述的特效生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器加载,以执行权利要求1至7任一项所述的特效生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311386973.9A CN117523042A (zh) | 2023-10-24 | 2023-10-24 | 特效生成方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311386973.9A CN117523042A (zh) | 2023-10-24 | 2023-10-24 | 特效生成方法、装置、计算机设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117523042A true CN117523042A (zh) | 2024-02-06 |
Family
ID=89761624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311386973.9A Pending CN117523042A (zh) | 2023-10-24 | 2023-10-24 | 特效生成方法、装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117523042A (zh) |
-
2023
- 2023-10-24 CN CN202311386973.9A patent/CN117523042A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113426117B (zh) | 虚拟相机拍摄参数获取方法、装置、电子设备和存储介质 | |
WO2023213037A1 (zh) | 毛发虚拟模型的渲染方法、装置、计算机设备及存储介质 | |
CN113952720A (zh) | 游戏场景渲染方法、装置、电子设备及存储介质 | |
CN112169311A (zh) | 训练游戏ai的方法、系统、存储介质及计算机设备 | |
CN112206517A (zh) | 一种渲染方法、装置、存储介质及计算机设备 | |
CN114449162A (zh) | 一种播放全景视频的方法、装置、计算机设备及存储介质 | |
CN112169338B (zh) | 球体运动的控制方法、装置、存储介质及计算机设备 | |
CN117593493A (zh) | 三维脸部拟合方法、装置、电子设备及存储介质 | |
WO2023246166A1 (zh) | 一种视频进度的调节方法、装置、计算机设备及存储介质 | |
CN117523042A (zh) | 特效生成方法、装置、计算机设备和计算机可读存储介质 | |
CN116109737A (zh) | 动画生成方法、装置、计算机设备及计算机可读存储介质 | |
CN113362435B (zh) | 虚拟对象模型的虚拟部件变化方法、装置、设备及介质 | |
CN115578494A (zh) | 中间帧的生成方法、装置、设备及存储介质 | |
CN115944923A (zh) | 实例对象编辑方法、装置、电子设备和存储介质 | |
CN113345059B (zh) | 动画生成方法、装置、存储介质及电子设备 | |
CN115222904A (zh) | 地形处理方法、装置、电子设备和可读存储介质 | |
CN111760276B (zh) | 游戏行为控制方法、装置、终端、服务器和存储介质 | |
CN113546423B (zh) | 一种动作生成方法、装置、计算机设备和存储介质 | |
CN114189641B (zh) | 视频处理方法、装置、设备及存储介质 | |
CN116668847A (zh) | 虚拟视频的拍摄方法、装置、电子设备和可读存储介质 | |
CN115564916A (zh) | 虚拟场景的编辑方法、装置、计算机设备及存储介质 | |
CN117689815A (zh) | 模型体型的调节方法、装置、计算机设备和存储介质 | |
CN116567360A (zh) | 直播特效处理方法、装置、计算机设备和存储介质 | |
CN118172506A (zh) | 道路模型生成方法、装置、计算机设备和存储介质 | |
CN116993914A (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 |