一种相机动画路径生成方法和装置与流程

文档序号:19194095发布日期:2019-11-25 21:28阅读:254来源:国知局
一种相机动画路径生成方法和装置与流程

本发明实施例涉及游戏开发技术领域,尤其涉及一种相机动画路径生成方法和装置。



背景技术:

在3d游戏开发过程中,合适的场景视角对游戏体验起到关键作用。通常在rpg(角色扮演)、fps(第一人称射击)类型的游戏中,玩家看到的游戏视角主要由玩家自己控制,但在非战斗状态下,仍然有一些“场景动画”、“人物特写”、“精彩瞬间”等等游戏视角是属于非玩家控制的。因此,如何生成虚拟场景中的摄相机动画路径成为一个技术问题。

现有技术中,美术人员在3dmax软件中导入基本参照模型(人物或建筑),添加、调整相机动画路径上的每一个关键点的相机位置、方向姿态,并标记为动画关键帧。播放摄相机动画,达到预想效果之后,用3dmax软件导出相机动画文件。

然而使用3dmax软件设置相机动画路径的过程中,不仅不能调整动画路径拐点的曲线长比例、减速带比例,并且导出路径数据为局部坐标系下的相机路径数据,往往还要根据需求进行坐标系的转换(世界坐标系/局部坐标系)才可使用到游戏中,而且使用时还需对3dmax导出的文件进行二次解析,操作繁琐,可定制性差。



技术实现要素:

本发明提供一种相机动画路径生成方法和装置,以解决游戏视角的相机动画路径设计工作过度依赖第三方软件的问题。

第一方面,本发明实施例提供了一种相机动画路径生成方法,包括:

获取路径关键帧初始信息,根据所述路径关键帧初始信息计算得到关键帧数据,所述路径关键帧初始信息包括关键帧位置数据、观察目标点数据和动画时刻。

对所述关键帧数据进行插值运算得到关键帧中间数据,根据所述关键帧数据和所述关键帧中间数据生成相机动画路径。

第二方面,本发明实施例还提供了一种相机动画路径生成装置,该装置包括:.

初始信息获取模块,用于获取路径关键帧初始信息,根据所述路径关键帧初始信息计算得到关键帧数据,所述路径关键帧初始信息包括关键帧位置数据、观察目标点数据和动画时刻;

相机动画路径生成模块,用于对所述关键帧数据进行插值运算得到关键帧中间数据,根据所述关键帧数据和所述关键帧中间数据生成相机动画路径。

本发明实施例通过游戏开发软件本身获取并处理相机动画路径的相关数据,并得到了相机动画路径,从而解决了游戏设计过程中,游戏视角的相机动画路径设计过度依赖第三方软件的问题,有效避免了可定制性差、游戏特效镜头较少、坐标系的变更等由依赖第三方软件引出的一系列问题,进而提高了相机动画路径的生成效率,提升了用户体验。

附图说明

图1是本发明实施例一中的一种相机动画路径生成方法流程示意图;

图2是本发明实施例二中的一种相机动画路径生成方法流程示意图;

图3是本发明实施例三中的一种相机动画路径生成方法流程示意图;

图4是本发明实施例四中的一种相机动画路径生成装置结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1是本发明实施例一中的一种相机动画路径生成方法流程示意图,本实施例可适用于设计游戏视角的相机动画路径的情况,该方法可以由一种相机动画路径生成装置来执行,该装置可以由软件和/或硬件的方式来实现。如图1所示,该方法包括:

s110、获取路径关键帧初始信息,根据所述路径关键帧初始信息计算得到关键帧数据,所述路径关键帧初始信息包括关键帧位置数据、观察目标点数据和动画时刻。

路径关键帧初始信息由游戏开发人员根据游戏视角的场景设计方案设定。完整的动画路径的生成需要获取多个路径关键帧初始信息。

其中,关键帧位置数据用于描述当前关键帧在游戏场景中所处的位置,可以用三维坐标数组表示。所述观察目标点数据用于描述在当前关键帧位置下的观察方向。动画时刻为在当前关键帧位置下,通过某一观察目标点获取到的图像在动画中的播放时刻。

此外,路径关键帧初始信息还可以包括关键帧图像效果数据、关键帧密度参数等。所述关键帧图像效果数据表示需要对关键帧图像进行的具体处理操作。关键帧密度参数表示动画中单位时间内所需关键帧图像的数量。

s120、对所述关键帧数据进行插值运算得到关键帧中间数据,根据所述关键帧数据和所述关键帧中间数据生成相机动画路径。

每两个关键帧数据的时刻之间会有间隔,要形成完整、流畅的动画就需要在关键帧数据间进行插值。每两个关键帧数据间的关键帧中间数据越多,动画播放越流畅。

所述关键帧中间数据的数量根据相邻关键帧数据的时间间隔、关键帧密度参数以及关键帧数据所描述图像中物体状态判定。

本实施例的技术方案,游戏开发软件本身获取并处理相机动画路径的相关数据,并得到了相机动画路径,从而解决了游戏设计过程中,游戏视角的相机动画路径设计过度依赖第三方软件的问题,有效避免了可定制性差、游戏特效镜头较少、坐标系的变更等等由依赖第三方软件引出的一系列问题,进而提高了相机动画路径设计工作的效率,提升了用户体验。

实施例二

图2是本发明实施例二中的一种相机动画路径生成方法流程示意图,本实施例在实施例一的基础上,增加了相机动画路径坐标系的判断操作,如图2示,该方法包括:

s210、获取路径关键帧初始信息,根据所述路径关键帧初始信息计算得到关键帧数据,所述路径关键帧初始信息包括关键帧位置数据、观察目标点数据和动画时刻。

s220、对所述关键帧数据进行插值运算得到关键帧中间数据,根据所述关键帧数据和所述关键帧中间数据生成相机动画路径。

s230、判断所述相机动画路径的参照物是否处于世界坐标系的原点,若否,则执行步骤s240。

所述世界坐标系是系统的绝对坐标系,在没有建立用户坐标系之前画面上所有点的坐标都是以该坐标系的原点来确定各自的位置的。

游戏设计过程中,相机动画路径的参照物可根据具体要求进行选择,可以是世界坐标系中的任意一点。例如,当需要播放小鸟在天空中飞翔的第一视角画面时,参照物就会选择为小鸟所在的位置。当需要播放小鸟在天空中飞翔的第三视角画面时,参照物就可以选择地面上的一点。

s240、计算参照物在所述世界坐标系下的逆变换矩阵,根据所述逆变换矩阵更新所述相机动画路径中的路径点进而生成新的相机动画路径。

在常规的相机动画路径生成过程中,都会选择世界坐标系的原点当作参照物。当需要转换坐标细的参照物时,会对原有相机动画路径中的关键帧数据和关键帧中间数据进行变换,从而得到新的路径点进而生成新的相机动画路径。

若是,则完成相机动画路径的生成过程。

本实施例的技术方案,通过添加了相机动画路径参照物的转换操作,避免了参照物不同时还需重新生成的相机动画路径的问题,提高的数据利用率。

实施例三

图3是本发明实施例三中的一种相机动画路径生成方法流程示意图,本实施例在上述实施例的基础上,详细描述了相机动画路径的生成方法,如图3所示,该方法包括:

s310、根据关键帧位置数据和观察目标点数据计算得到相机朝向数据。

所述相机朝向数据表示:与关键帧位置数据和观察目标点数据相对应的关键帧位置和观察目标点间的相对距离。

示例性的,假设关键帧位置数据为posi(x,y,z),观察目标点数据为targeti(x,y,z),动画时刻为timei,相机朝向数据为dir,具体的计算公式为dir=target–pos。

可选的,可对计算得到的相机朝向数据进行归一化处理。

s320、根据所述相机朝向数据和相机初始朝向数据计算得到四元数方向姿态数据,进而得到关键帧数据;所述关键帧数据包括关键帧位置数据、四元数方向姿态数据和动画时刻。

示例性的,假设相机初始朝向数据为三维空间左手坐标系的z轴方向unitz(0,0,1),四元数方向姿态数据quati可根据的数学公式接口rotationaxistoaxis得到,即quati=rotationaxistoaxis(dir,unitz),最后得到关键帧数据{posi,quati,timei},i表示关键帧数据的序号。

s330、根据预设相机动画信息的复杂程度获取多个所述关键帧数据,相机动画信息包括相机动画帧数、相机动画总时间、相机动画帧率和相机动画路径点数组。

为了动画播放的流畅性,所述预设相机动画信息越复杂,需要获取的关键帧数据越多。

相机动画帧数num表示动画中关键帧数量总和,相机动画总时间totaltime表示动画播放需要消耗的时间,相机动画帧率samplerate表示单位时间内显示帧数的多少,相机动画路径点数组pointarray表示由多个相机动画路径点point(pos,quat)组成。

s340、根据相机动画总时间、相机动画帧率和所述关键帧数据对应的动画时刻得到与所述关键帧数据的路径点序号,分别对所述路径点序号相邻的关键帧数据进行插值运算得到关键帧中间数据;

所述差值运算包括线性差值。

路径点序号pointid表示路径点的标识。具体的,差值运算中路径点序号的计算公式为pointid=timei/(totaltime*smaplerate),关键帧中间数据的动画时刻λ的计算公式为λ=(i-keybeginid)/(keyendid-keybeginid),关键帧中间数据的关键帧位置数据的计算公式posi=lerp(posbegin,posend,λ),关键帧中间数据的四元数方向姿态数据的计算公式quati=lerp(quatbegin,quatend,λ),keybeginid、posbegin、quatbegin分别表示相邻关键帧数据中头关键帧数据的序号、关键帧位置数据和四元数方向姿态数据,相应的keyendid、posend、quatend表示相邻关键帧数据中尾关键帧数据的序号。

s350、根据所述关键帧数据和所述关键帧中间数据生成相机动画路径。

进一步的,当所述关键帧数据包括拐点关键帧数据时,获取拐点曲线长比例系数、减速带比例系数和减速系数;根据所述拐点关键帧数据确定减速区域,根据减速带比例系数和减速系数调整减速区域中的关键帧数据,所述减速区域中至少包括两个非拐点关键帧数据和拐点关键帧数据;利用贝塞尔曲线算法计算并调整减速区域中的路径,并生成所述相机动画路径。

拐点曲线长比例系数、减速带比例系数和减速系数是根据相机动画路径中减速区域的拐角角度和路径点的个数进行选择的,通过计算将路径点移动到更合适的位置。

利用贝塞尔曲线算法计算并调整减速区域中的路径,可以将拐角角度过于尖锐的路径调整的更加平滑,这样设置的好处在于,降低拐角关键帧处相机动画的播放速度,让动画角度变化更加平滑。

本实施例的技术方案,通过对获取到的多个关键帧数据进行插值处理,对相机动画路径中减速路段的路径点和路径进行调整,使拐角关键帧处相机动画的播放速度减缓,进而让动画角度变化更加平滑,相机动画播放更加流畅。

实施例四

图4是本发明实施例四中的一种相机动画路径生成装置结构示意图,如图4所示,该相机动画路径生成装置包括:初始信息获取模块410和相机动画路径生成模块420。

初始信息获取模块410,用于获取路径关键帧初始信息,根据所述路径关键帧初始信息计算得到关键帧数据,所述路径关键帧初始信息包括关键帧位置数据、观察目标点数据和动画时刻;

相机动画路径生成模块420,用于对所述关键帧数据进行插值运算得到关键帧中间数据,根据所述关键帧数据和所述关键帧中间数据生成相机动画路径。

进一步的,所述相机动画路径生成装置还包括:

参照物位置判断模块,用于判断所述相机动画路径的参照物是否处于世界坐标系的原点;

相机动画路径更新模块,用于当所述相机动画路径的参照物未处于世界坐标系的原点时,计算参照物在所述世界坐标系下的逆变换矩阵,根据所述逆变换矩阵更新所述相机动画路径中的路径点进而生成新的相机动画路径。

进一步的,初始信息获取模块包括:

相机朝向数据获取单元,根据关键帧位置数据和观察目标点数据计算得到相机朝向数据;

关键帧数据获取单元,根据所述相机朝向数据和相机初始朝向数据计算得到四元数方向姿态数据,进而得到关键帧数据;

所述关键帧数据包括关键帧位置数据、四元数方向姿态数据和动画时刻。

进一步的,关键帧数据获取单元,用于根据预设相机动画信息的复杂程度获取多个所述关键帧数据,相机动画信息包括相机动画帧数、相机动画总时间、相机动画帧率和相机动画路径点数组;

插值运算单元,用于根据相机动画总时间、相机动画帧率和所述关键帧数据对应的动画时刻得到与所述关键帧数据的路径点序号,分别对所述路径点序号相邻的关键帧数据进行插值运算得到关键帧中间数据;

相机动画路径生成单元,用于根据所述关键帧数据和所述关键帧中间数据生成相机动画路径;所述插值运算包括线性插值。

进一步的,相机动画路径生成单元包括:

拐点数据获取子单元,用于当所述关键帧数据包括拐点关键帧数据时,获取拐点曲线长比例系数、减速带比例系数和减速系数;

减速区域关键帧数据获取子单元,用于根据所述拐点关键帧数据确定减速区域,根据减速带比例系数和减速系数调整减速区域中的关键帧数据,所述减速区域中至少包括两个非拐点关键帧数据和拐点关键帧数据;

减速区域路径调整子单元,用于利用贝塞尔曲线算法计算并调整减速区域中的路径,并生成所述相机动画路径。

本实施例的技术方案,游戏开发软件本身获取并处理相机动画路径的相关数据,并得到了相机动画路径,从而解决了游戏设计过程中,游戏视角的相机动画路径设计工作过度依赖第三方软件的问题,有效避免了可定制性差、游戏特效镜头较少、坐标系的变更等等由依赖第三方软件引出的一系列问题,进而提高了相机动画路径设计工作的效率,提升了用户体验。

本发明实施例所提供的相机动画路径生成装置可以用于执行本发明实施例所提供的相机动画路径生成方法,具备相应的功能和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的相机动画路径生成方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1