一种相机轨迹动态控制系统和控制方法与流程

文档序号:13886910阅读:170来源:国知局

本发明涉及游戏软件开发技术领域,尤其是unity3d的跑酷赛车类游戏,具体地是涉及一种相机轨迹动态控制系统和控制方法。



背景技术:

基于unity3d的跑酷赛车类游戏,由于操作简单,场景丰富,竞技性可玩性高,一直深受玩家喜爱。但是这类游戏的相机跟随和相机特效往往实现起来比较复杂,相机需要跟随玩家操作的赛车或者人物移动,还需要贴合地形做特殊的变换,控制往往非常复杂。现有的做法一般都是线性跟随,这样相机切换比较生硬,加减速、转弯也不够流畅和自然。

因此,本发明的发明人亟需构思一种新技术以改善其问题。



技术实现要素:

本发明旨在提供一种相机轨迹动态控制系统和控制方法,其相机轨迹切换流畅自然,用户体验更好。

为解决上述技术问题,本发明的技术方案是:

一种相机轨迹动态控制系统,包括如下模块:

参数输入模块,用于设置跟随参数;

轨迹跟随模块,用于执行轨迹跟随操作;

相机特效模块,用于执行相机特效操作,

轨迹刷新模块,用于根据跟随参数选择刷新模式,而后调用所述轨迹跟随模块和所述相机特效模块运作,实现相机轨迹的动态控制和各种相机特效。

优选地,所述跟随参数包括但不限于跟随目标、刷新类型、相机移动的速度、相机转角的速度、相机z轴转动的速度、摄像机旋转的阻尼系数。

优选地,所述轨迹跟随操作包括但不限于位置移动、转角移动、z轴转角。

优选地,所述相机特效操作包括但不限于俯视、正视、侧视、加速、减速、跳跃、下滑。

优选地,所述刷新模式包括但不限于固定时间间隔刷新、在每一帧结束后刷新、开发者手动调用刷新。

一种相机轨迹动态控制方法,包括如下步骤:

s1:设置跟随参数;

s2:根据跟随参数选择刷新模式;

s3:执行轨迹跟随操作和/或执行相机特效操作。

优选地,所述跟随参数包括但不限于跟随目标、刷新类型、相机移动的速度、相机转角的速度、相机z轴转动的速度、摄像机旋转的阻尼系数。

优选地,所述轨迹跟随操作包括但不限于位置移动、转角移动、z轴转角。

优选地,所述相机特效操作包括但不限于俯视、正视、侧视、加速、减速、跳跃、下滑。

优选地,所述刷新模式包括但不限于固定时间间隔刷新、在每一帧结束后刷新、开发者手动调用刷新。

采用上述技术方案,本发明至少包括如下有益效果:

本发明所述的相机轨迹动态控制系统和控制方法,可以使游戏,尤其是unity3d的跑酷赛车类游戏中相机轨迹切换流畅自然,用户体验更好。

附图说明

图1为本发明所述的相机轨迹动态控制系统的结构示意图;

图2为本发明所述的相机轨迹动态控制方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

如图1所示,为符合本实施例的一种相机轨迹动态控制系统,包括如下模块:

参数输入模块,用于设置跟随参数;

轨迹跟随模块,用于执行轨迹跟随操作;

相机特效模块,用于执行相机特效操作,

轨迹刷新模块,用于根据跟随参数选择刷新模式,而后调用所述轨迹跟随模块和所述相机特效模块运作,实现相机轨迹的动态控制和各种相机特效。

优选地,所述跟随参数包括但不限于跟随目标、刷新类型、相机移动的速度、相机转角的速度、相机z轴转动的速度、摄像机旋转的阻尼系数。

优选地,所述轨迹跟随操作包括但不限于位置移动、转角移动、z轴转角。

优选地,所述相机特效操作包括但不限于俯视、正视、侧视、加速、减速、跳跃、下滑。

优选地,所述刷新模式包括但不限于固定时间间隔刷新、在每一帧结束后刷新、开发者手动调用刷新。

首先用户根据游戏类型和需要,在参数输入模块中设置相机跟随所需要的参数,由轨迹刷新模块总控整个相机轨迹动态方案,轨迹刷新模块会调用轨迹跟随模块和相机特效模块根据参数平滑动态的移动相机,实现相机轨迹的动态控制和各种相机特效。

下面具体介绍各个模块的实现流程和方法。

1.轨迹刷新模块:提供三种刷新模式:

如果是fixedupdate类型,就在后台fixedupdate()中调用轨迹跟随模块的跟随函数followtarget(time.deltatime);

如果是lateupdate类型,就在后台lateupdate()中轨迹跟随模块的跟随函数followtarget(time.deltatime);

如果是manualupdate类型,就后台manualupdate()中轨迹跟随模块的跟随函数followtarget(time.deltatime);需要开发者自己实现manualupdate()。

2.参数输入模块:

该控制方案提供了跟随参数给用户输入设置,这些参数指令将会在轨迹跟随模块中使用到。

具体的参数包含:

target:跟随目标

updatetype:刷新类型,fixedupdate,固定时间间隔刷新;lateupdate,在每一帧结束后刷新;manualupdate,由开发者手动调用的刷新。

movespeed:相机移动的速度。

turnspeed:相机转角的速度。

rollspeed:相机z轴转动的速度

smoothturntime:摄像机旋转的阻尼系数

3.轨迹跟随模块:

根据参数控制模块获得的跟随参数,在轨迹刷新模块总控的调度下执行相机跟随函数,跟随函数的主要实现分为三个方面:

1)根据跟随速度,相机的位置向跟随目标的位置移动:

transform.position=vector3.lerp(transform.position,m_target.position,deltatime*m_movespeed);

2)相机的转角移动:

transform.rotation=quaternion.lerp(transform.rotation,rollrotation,m_turnspeed*m_currentturnamount*deltatime);

3)相机的z轴转角,要根据玩家所在地形的斜面的法线向量方向旋转。

首先计算出玩家所在地形的平面,根据这个平面再计算出这个平面的法线向量,就是垂直于这个平面的向量。然后相机z轴只要看向这个法线向量即可:transform.lookat(m_looktarget,normalvec),这样就做到了和地形的贴合。

4.相机特效模块:

根据参数控制模块获得的跟随参数,在轨迹刷新模块总控的调度下执行相机特效的实现。

1)pivot相机相对于跟随目标的锚点,这个是参数输入模块获得的参数,设置相机和跟随目标的相对位置,可以实现相机的俯视、正视、侧视等特效。

2)加减速特效:设置pivor的position,让相机和跟随目标的相对位移变大,变成出来的效果就是目标突然加速相机跟随滞后感,减速效果反操作就可以,让相机和跟随目标的相对位移减小。

3)下滑效果:可以设置pivor的position,让相机和跟随目标的相对高度变小,这样可以跟随目标变低从下面穿过的效果。

本实施例是基于u3d跑酷赛车游戏类型的相机轨迹动态控制方法的一种解决方案,整体做成一个插件的形式,开发者只要在自己的项目中加入本插件预制体,就可以方便的使用相机动态轨迹控制的各种功能。功能主要包含设定跟随目标,只要设定了相机的跟随目标,在整个游戏过程了,相机的位置和旋转角度会根据跟随目标的变换而平滑变换,跟随的速度、视角的旋转范围、z轴的旋转速度、摄像机旋转的阻尼系数等参数都可以根据不同的游戏场景提供给开发者自由调整。开发者还可以旋转相机的刷新类型,一共提供三种刷新类型:fixedupdate,固定时间间隔刷新;lateupdate,在每一帧结束后刷新;manualupdate,由开发者手动调用的刷新。

实施例2

如图2所示,为符合本实施例的一种相机轨迹动态控制方法,包括如下步骤:

s1:设置跟随参数;

s2:根据跟随参数选择刷新模式;

s3:执行轨迹跟随操作和/或执行相机特效操作。

优选地,所述跟随参数包括但不限于跟随目标、刷新类型、相机移动的速度、相机转角的速度、相机z轴转动的速度、摄像机旋转的阻尼系数。

优选地,所述轨迹跟随操作包括但不限于位置移动、转角移动、z轴转角。

优选地,所述相机特效操作包括但不限于俯视、正视、侧视、加速、减速、跳跃、下滑。

优选地,所述刷新模式包括但不限于固定时间间隔刷新、在每一帧结束后刷新、开发者手动调用刷新。

下面具体介绍各个步骤的实现流程和方法。

1.步骤s1:

该控制方案提供了跟随参数给用户输入设置,这些参数指令将会在轨迹跟随模块中使用到。

具体的参数包含:

target:跟随目标

updatetype:刷新类型,fixedupdate,固定时间间隔刷新;lateupdate,在每一帧结束后刷新;manualupdate,由开发者手动调用的刷新。

movespeed:相机移动的速度。

turnspeed:相机转角的速度。

rollspeed:相机z轴转动的速度

smoothturntime:摄像机旋转的阻尼系数

2.步骤s2提供三种刷新模式:

如果是fixedupdate类型,就在后台fixedupdate()中调用轨迹跟随模块的跟随函数followtarget(time.deltatime);

如果是lateupdate类型,就在后台lateupdate()中轨迹跟随模块的跟随函数followtarget(time.deltatime);

如果是manualupdate类型,就后台manualupdate()中轨迹跟随模块的跟随函数followtarget(time.deltatime);需要开发者自己实现manualupdate()。

3.步骤s3:

3.1轨迹跟随

根据跟随参数,执行相机跟随函数,跟随函数的主要实现分为三个方面:

1)根据跟随速度,相机的位置向跟随目标的位置移动:

transform.position=vector3.lerp(transform.position,m_target.position,deltatime*m_movespeed);

2)相机的转角移动:

transform.rotation=quaternion.lerp(transform.rotation,rollrotation,m_turnspeed*m_currentturnamount*deltatime);

3)相机的z轴转角,要根据玩家所在地形的斜面的法线向量方向旋转。

首先计算出玩家所在地形的平面,根据这个平面再计算出这个平面的法线向量,就是垂直于这个平面的向量。然后相机z轴只要看向这个法线向量即可:transform.lookat(m_looktarget,normalvec),这样就做到了和地形的贴合。

3.2相机特效:

根据获得的跟随参数,执行相机特效的实现。

1)pivot相机相对于跟随目标的锚点,这个是参数输入模块获得的参数,设置相机和跟随目标的相对位置,可以实现相机的俯视、正视、侧视等特效。

2)加减速特效:设置pivor的position,让相机和跟随目标的相对位移变大,变成出来的效果就是目标突然加速相机跟随滞后感,减速效果反操作就可以,让相机和跟随目标的相对位移减小。

3)下滑效果:可以设置pivor的position,让相机和跟随目标的相对高度变小,这样可以跟随目标变低从下面穿过的效果。

本实施例是基于u3d跑酷赛车游戏类型的相机轨迹动态控制方法的一种解决方案,整体做成一个插件的形式,开发者只要在自己的项目中加入本插件预制体,就可以方便的使用相机动态轨迹控制的各种功能。功能主要包含设定跟随目标,只要设定了相机的跟随目标,在整个游戏过程了,相机的位置和旋转角度会根据跟随目标的变换而平滑变换,跟随的速度、视角的旋转范围、z轴的旋转速度、摄像机旋转的阻尼系数等参数都可以根据不同的游戏场景提供给开发者自由调整。开发者还可以旋转相机的刷新类型,一共提供三种刷新类型:fixedupdate,固定时间间隔刷新;lateupdate,在每一帧结束后刷新;manualupdate,由开发者手动调用的刷新。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

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