金鼎工业资源网
您现在的位置:金鼎工业资源网>> 数据中心 H类电学电器>>正文内容

CN201510998903.8 3d游戏中的相机控制方法和装置

技术领域

本发明涉及游戏控制技术领域,尤其涉及一种3d游戏中的相机控制方法和装置。

背景技术

PC端的3d游戏操作时一般都是用鼠标和方向键操控角色的移动,可操控性不仅好,而且有多种实现方式。而对于游戏主机(如Xbox,wii,PlayStation等)来说,没有鼠标和键盘这样复杂的输入设备,通常是通过手柄实现游戏角色的移动,手柄一般分为主摇杆和副摇杆两个方向控制装置,通过主摇杆控制游戏角色的移动,通过副摇杆控制相机镜头的方向。对于手机来说,输入设备更加简单,一般只有一块触摸屏,现阶段的手机3d游戏通常通过在触摸屏上模拟主摇杆和副摇杆的操作,采用类似游戏主机的方式控制游戏角色和相机的移动。

现有的3d游戏中的相机控制方法主要有以下三种:

方案一:采用固定的视角,例如45°,在任意时刻相机相对于游戏角色的位置不作任何调整,相机以固定的距离和拍摄角度跟随游戏角色移动。

方案二:采用副摇杆对相机的拍摄方向进行控制,通过虚拟的或实体的副摇杆控制相机以一定的半径绕所述游戏角色转动。

方案三:相机自动跟随,当游戏角色向着正前方前进时,相机不做任何转动,以一定距离跟随游戏角色后方;当游戏角色的移动方向为非正前方时,相机将以一定的角速度回转到游戏角色的后方,例如游戏角色向左边移动时,相机也会以游戏角色为中心以固定的角速度向左边转动。

发明内容

如背景技术中所述,方案一在游戏全程中均采用统一固定的视角,玩家无法以其他角度观看游戏内容。方案二通过副摇杆对相机进行操控,虽然可在不同视角下进行游戏,但是副摇杆的操作复杂,并且需要双手操作。方案三通过将相机跟随在游戏角色后方,在一定程度上简化了玩家的操作,但是回转过程中的角速度恒定,若角速度设置得较大,当游戏角色小角度转动时,相机的回转过快,会造成游戏画面的晃动;而若角速度设置得较小,当游戏角色快速转身时,相机镜头又无法及时跟随,玩家体验较差。

本发明实施例的目的在于提供了一种3d游戏中的相机控制方法和装置,依据相机偏移角度的大小,对相机的回转过程进行控制,实现相机的变速跟随。

本发明实施例提供了第一种3d游戏中的相机控制方法,包括:

检测3d游戏场景中相机当前拍摄方向的水平分量与游戏角色当前的前进方向之间的夹角θ的大小;

保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ;所述角速度ω满足:

ω=An*θ;

其中,所述An为预先设置的当所述夹角θ在(Jn,Jn+1)内时的角速度参数,Jn为预先设置的第n夹角阈值,An≥0,0°≤Jn<Jn+1≤180°,n为自然数。

优选地,所述角速度参数An满足:An<An+1。

优选地,J0=0°,当所述夹角θ在(J0,J1)内时的角速度参数A0=0。

优选地,所述保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ,具体为:

检测所述夹角θ是否大于第一夹角阈值J1;

当所述夹角θ大于所述第一夹角阈值J1时,启动计时器进行计时;

在每帧游戏画面中检测所述夹角θ是否仍大于所述第一夹角阈值J1,若是,则继续计时,若否,则中断计时;

当计时时间超过第一时间阈值时,保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ。

本发明实施例提供了第二种3d游戏中的相机控制方法,包括:

检测主摇杆和副摇杆的触发状态;其中,所述主摇杆用于控制所述游戏角色的前进方向,所述副摇杆用于控制相机绕所述游戏角色转动;所述主摇杆通过触摸屏幕上预先设置的第一区域来触发,所述副摇杆通过触摸所述屏幕上预先设置的第二区域来触发;

当所述主摇杆被触发但所述副摇杆未被触发时,按照如前所述的第一种3d游戏中的相机控制方法对所述相机进行控制。

优选地,所述方法还包括:

接收相机归位指令,将所述相机移动到预先设置的默认位置,并将所述相机的拍摄方向恢复为预先设置的默认方向。

优选地,在所述接收相机归位指令,将所述相机移动到预先设置的默认位置,并将所述相机的拍摄方向恢复为预先设置的默认方向之后,还包括:

调整所述主摇杆的摇杆中心的位置,以使得所述摇杆中心位于所述主摇杆当前被触摸位置的正下方。

相应地,本发明实施例提供了第一种3d游戏中的相机控制装置,包括:

夹角检测模块,用于检测3d游戏场景中相机当前拍摄方向的水平分量与游戏角色当前的前进方向之间的夹角θ的大小;

相机转动模块,用于保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ;所述角速度ω满足:

ω=An*θ;

其中,所述An为预先设置的当所述夹角θ在(Jn,Jn+1)内时的角速度参数,Jn为预先设置的第n夹角阈值,An≥0,0°≤Jn<Jn+1≤180°,n为自然数。

优选地,所述角速度参数An满足:An<An+1。

优选地,J0=0°,当所述夹角θ在(J0,J1)内时的角速度参数A0=0。

优选地,所述相机转动模块包括:

检测单元,用于检测所述夹角θ是否大于第一夹角阈值J1;

计时单元,用于当所述夹角θ大于所述第一夹角阈值J1时,启动计时器进行计时;

监控单元,用于在每帧游戏画面中检测所述夹角θ是否仍大于所述第一夹角阈值J1,若是,则继续计时,若否,则中断计时;

转动单元,用于当计时时间超过第一时间阈值时,保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ。

相应地,本发明实施例提供了第二种3d游戏中的相机控制装置,包括:

摇杆状态检测模块,用于检测主摇杆和副摇杆的触发状态;其中,所述主摇杆用于控制所述游戏角色的前进方向,所述副摇杆用于控制相机绕所述游戏角色转动;

相机控制模块,用于当所述主摇杆被触发但所述副摇杆未被触发时,按照如前所述的第一种3d游戏中的相机控制方法对所述相机进行控制。

优选地,所述装置还包括:

相机复位模块,用于接收相机归位指令,将所述相机移动到预先设置的默认位置,并将所述相机的拍摄方向恢复为预先设置的默认方向。

优选地,所述装置还包括:

摇杆调整模块,用于调整所述主摇杆的摇杆中心的位置,以使得所述摇杆中心位于所述主摇杆当前被触摸位置的正下方。

与现有技术相比,本发明具有以下优点:

本发明通过检测3d游戏场景中相机当前拍摄方向的水平分量与游戏角色当前的前进方向之间的夹角θ的大小,根据所述夹角θ的大小,控制所述相机以不同的角速度ω绕所述游戏角色转动,使所述相机回转到游戏角色的背后。所述角速度ω满足:ω=An*θ,可根据所述夹角θ所处的角度区间,设置不同的角速度参数An,以对在不同区间内的转动速度进行控制,可避免小角度转动时的画面晃动并实现游戏角色转身时相机镜头的快速跟随,改善玩家体验。

附图说明

图1是本发明提供的3d游戏中的相机控制方法的一个实施例的流程图;

图2是图1所示实施例提供的步骤S12的流程图;

图3是本发明提供的3d游戏中的相机控制方法的另一个实施例的流程图;

图4是本发明提供的3d游戏中的相机控制装置的一个实施例的结构图;

图5是本发明提供的3d游戏中的相机控制装置的另一个实施例的结构图。

具体实施方式

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

参见图1,是本发明提供的3d游戏中的相机控制方法的一个实施例的流程图。

如图1所示,所述3d游戏中的相机控制方法包括:

S11,检测3d游戏场景中相机当前拍摄方向的水平分量与游戏角色当前的前进方向之间的夹角θ的大小。

S12,保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ;所述角速度ω满足:

ω=An*θ;

其中,所述An为预先设置的当所述夹角θ在(Jn,Jn+1)内时的角速度参数,Jn为预先设置的第n夹角阈值,An≥0,0°≤Jn<Jn+1≤180°,n为自然数。

具体地,当所述夹角θ在(J0,J1)内时,角速度参数为A0,角速度ω=A0*θ;当所述夹角θ在(J1,J2)内时,角速度参数为A1,角速度ω=A1*θ;当所述夹角θ在(J2,J3)内时,角速度参数为A2,角速度ω=A2*θ,如此类推,可根据不同的需求,划分多个夹角区间,并在不同的区间设置不同的角速度参数,以对相机的回转速度进行控制。区间的数量、夹角阈值J0~Jn+1的大小和角速度参数A0~An的具体数值可根据实际需要进行设置。

原则上,游戏角色的移动方向与相机拍摄方向的水平分量之间的夹角越大,相机转动的角速度就越快,即所述角速度参数An满足:An<An+1。

在一种优选的实施方式当中,J0=0°,当所述夹角θ在(J0,J1)内时的角速度参数A0=0。所述步骤S12,可进一步通过图2所示步骤实现:

S121,检测所述夹角θ是否大于第一夹角阈值J1。

S122,当所述夹角θ大于所述第一夹角阈值J1时,启动计时器进行计时。

S123,在每帧游戏画面中检测所述夹角θ是否仍大于所述第一夹角阈值J1,若是,则继续计时,若否,则中断计时。

S124,当计时时间超过第一时间阈值时,保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ。

本实施方式中,在相机偏移的夹角θ大于所述第一夹角阈值J1一段时间后才触发相机的回转,当游戏角色前进方向与相机拍摄方向的水平分量之间的夹角θ小于第一夹角阈值J1时,相机相对游戏角色的位置不发生任何变化。当游戏角色前进方向与相机拍摄方向的水平分量之间的夹角θ大于第一夹角阈值J1时,开始计时,并在计时时间达到预定的时间阈值时触发相机的回转,可减少非必要的相机转动,降低游戏画面的抖动。

相机的平滑移动本质上是一个向量移动的过程,相机的位置和拍摄方向可以由以下几个变量决定:游戏角色的位置、相机在水平方向上相对于游戏角色正前方的角度、相机与游戏角色中心的径向距离以及相机的高度夹角。为使得相机的移动更为平缓舒适,本实施例在控制所述相机以角速度ω绕所述游戏角色水平转动的过程中,还通过以下方式对相机的移动进行控制:

获取所述相机当前的位置坐标P0以及目标位置坐标P1,所述目标位置坐标P1为当前帧游戏画面下所述相机最终需要移动到的位置坐标,在游戏角色移动过程中,所述目标位置坐标P1优选为游戏角色背后的某一坐标,可通过游戏角色当前的位置和移动方向计算。

根据所述相机当前的位置坐标P0和目标位置坐标P1,计算下一帧游戏画面中所述相机的参考位置坐标Pk,所述参考位置坐标Pk=P0k+P1(1-k),k为预先设定的位移比例参数;并计算下一帧游戏画面中所述相机的参考位移量L,所述参考位移量L=|Pk-P0|;

若所述参考位移量L小于预先设定的最大允许位移量Lmax,则在下一帧游戏画面中将所述相机移动至所述参考位置坐标Pk;若所述参考位移量L大于预先设定的最大允许位移量Lmax,则在下一帧游戏画面中将所述相机移动至最大允许位置坐标Pmax,所述最大允许位置坐标 Pmax=LmaxLP0+Pk(1-LmaxL).

根据以上流程,在每一帧中更新P0与P1即可实现相机的平滑移动,可通过设定不同的最大允许位移量Lmax和位移比例参数k,实现不同的平滑效果。

此外,相机的移动过程中可能发生两种碰撞:一个是相机本身的碰撞,另一个是相机视线的碰撞。

对于相机本身碰撞:每帧检测相机的包围盒是否与游戏场景中的刚体模型发生碰撞;如是,则在这一帧中将相机沿相机和游戏角色的连线,向游戏角色的方向移动,直到相机不和刚体模型发生碰撞为止。如否,则判断相机是否在正常位置上。若相机在正常位置上,则不做任何操作;若相机不在正常位置上,则计算相机回归至正常位置的过程中会不会与刚体模型发生碰撞。如果相机回归过程中不发生碰撞,则将相机平滑移动到正常位置;如果相机回归过程中发生碰撞,则计算相机最多移动到多远而不会发生碰撞,并将相机平滑移动到这个位置。

对于相机视线的碰撞:可通过在相机与游戏角色之间设置一根虚拟连线,每帧检测所述虚拟连线是否会与游戏场景中的刚体模型发生碰撞,如是,则在这一帧将相机沿相机和游戏角色的连线,向游戏角色方向移动,直到虚拟连线不和刚体模型发生碰撞为止。如否,则判断相机是否在正常位置,若相机在正常位置上,则不做任何操作。若相机不在正常位置上,则计算相机回归至正常位置的过程中虚拟连线会不会与刚体模型发生碰撞。如果相机回归过程中虚拟连线与刚体模型不发生碰撞,则将相机平滑移动至正常位置。如果相机回归过程中虚拟连线与刚体模型发生碰撞,则计算相机最多移动到多远而虚拟连线不会与刚体模型发生碰撞,并将相机平滑移动到这个位置。上述相机碰撞的处理过程中,所述相机的正常位置为预先设置的默认位置,一般为游戏角色的正后方。

参见图3,是本发明提供的3d游戏中的相机控制方法的另一个实施例的流程图。

如图3所示,所述3d游戏中的相机控制方法包括:

S31,检测主摇杆和副摇杆的触发状态;其中,所述主摇杆用于控制所述游戏角色的前进方向,所述副摇杆用于控制相机绕所述游戏角色转动;所述主摇杆通过触摸屏幕上预先设置的第一区域来触发,所述副摇杆通过触摸所述屏幕上预先设置的第二区域来触发。

S32,当所述主摇杆被触发但所述副摇杆未被触发时,按照如图1所示实施例提供的3d游戏中的相机控制方法对所述相机进行控制。

具体地,所述主摇杆为触摸屏幕上实现的虚拟摇杆,可通过以下方法实现:

手指在屏幕预先设定的区域按下时(一般是屏幕的左下角区域),触发主摇杆逻辑。手指按下时的位置为主摇杆初始的摇杆中心,根据所述摇杆中心和预先设定的主摇杆半径对主摇杆进行绘制,初始的摇杆中心由手指放到屏幕上的初始位置决定。手指在屏幕上的划动触发主摇杆逻辑对游戏角色的移动方向进行控制,当手指移动的相对位移小于等于主摇杆半径时,摇杆中心不做任何变化。当手指移动的相对位移超过主摇杆半径时,则按照手指移动的方向移动摇杆中心,直到手指的和摇杆中心的距离等于主摇杆半径。

所述副摇杆也为触摸屏幕上实现的虚拟摇杆,可通过以下方法实现:

当手指在屏幕预先设定的区域按下时(一般是屏幕上的非主摇杆触发区域),触发副摇杆逻辑。根据预先设定的灵敏度和手指在屏幕上的相对位移,以游戏角色为中心转动相机。

应当说明的是,当检测到主摇杆和副摇杆均被触发或者检测到副摇杆被触发但主摇杆未被触发时,相机绕所述游戏角色的转动仅通过副摇杆进行控制。而当所述副摇杆取消触发后,则通过前述相机控制方法对相机进行控制。可通过检测主摇杆和副摇杆的触发状态,实现相机视角控制的无缝切换。

在具体实施当中,所述相机控制方法还可以进一步包括:

接收相机归位指令,将所述相机移动到预先设置的默认位置,并将所述相机的拍摄方向恢复为预先设置的默认方向。

在具体实施当中,为减少按键的数量,可通过上划屏幕中的攻击按钮以输入相机归位指令,实现相机的复位功能。

在相机复位之后还包括:

调整所述主摇杆的摇杆中心的位置,以使得所述摇杆中心位于所述主摇杆当前被触摸位置的正下方。

本实施例在游戏角色移动过程中对相机进行复位的同时,还调整主摇杆的摇杆中心的位置,使得游戏角色会继续向前移动,在移动中重置相机位置,将不影响游戏角色向前移动的方向。

参见图4,是本发明提供的3d游戏中的相机控制装置的一个实施例的结构图。本实施例的基本原理与图1所示实施例的基本原理一致,本实施例中未详述之处可参见图1所示实施例中的相关描述。

如图4所示,所述3d游戏中的相机控制装置包括:

夹角检测模块41,用于检测3d游戏场景中相机当前拍摄方向的水平分量与游戏角色当前的前进方向之间的夹角θ的大小。

相机转动模块42,用于保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ;所述角速度ω满足:

ω=An*θ;

其中,所述An为预先设置的当所述夹角θ在(Jn,Jn+1)内时的角速度参数,Jn为预先设置的第n夹角阈值,An≥0,0°≤Jn<Jn+1≤180°,n为自然数。

优选地,所述角速度参数An满足:An<An+1。

在一种优选的实施方式当中,J0=0°,当所述夹角θ在(J0,J1)内时的角速度参数A0=0。

具体地,所述相机转动模块包括:

检测单元421,用于检测所述夹角θ是否大于第一夹角阈值J1。

计时单元422,用于当所述夹角θ大于所述第一夹角阈值J1时,启动计时器进行计时。

监控单元423,用于在每帧游戏画面中检测所述夹角θ是否仍大于所述第一夹角阈值J1,若是,则继续计时,若否,则中断计时。

转动单元424,用于当计时时间超过第一时间阈值时,保持所述相机当前拍摄方向的垂直分量不变,控制所述相机以角速度ω绕所述游戏角色水平转动,以减小所述夹角θ。

参见图5,是本发明提供的3d游戏中的相机控制装置的一个实施例的装置结构图。本实施例的基本原理与图3所示实施例一致,本实施例中未详述之处可参见图3所示实施例中的相关描述。

如图5所示,所述3d游戏中的相机控制装置包括:

摇杆状态检测模块51,用于检测主摇杆和副摇杆的触发状态;其中,所述主摇杆用于控制所述游戏角色的前进方向,所述副摇杆用于控制相机绕所述游戏角色转动。

相机控制模块52,用于当所述主摇杆被触发但所述副摇杆未被触发时,按照如图1所示实施例提供的3d游戏中的相机控制方法对所述相机进行控制。

在具体实施当中,所述相机控制装置还可以进一步包括:

相机复位模块,用于接收相机归位指令,将所述相机移动到预先设置的默认位置,并将所述相机的拍摄方向恢复为预先设置的默认方向。

更进一步地,所述相机控制装置还包括:

摇杆调整模块,用于调整所述主摇杆的摇杆中心的位置,以使得所述摇杆中心位于所述主摇杆当前被触摸位置的正下方。

综上所述,本发明通过检测3d游戏场景中相机当前拍摄方向的水平分量与游戏角色当前的前进方向之间的夹角θ的大小,根据所述夹角θ的大小,控制所述相机以不同的角速度ω绕所述游戏角色转动,使所述相机回转到游戏角色的背后。所述角速度ω满足:ω=An*θ,可根据所述夹角θ所处的角度区间,设置不同的角速度参数An,以对在不同区间内的转动速度进行控制,可避免小角度转动时的画面晃动并实现游戏角色转身时相机镜头的快速跟随,改善玩家的游戏体验。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准

金鼎工业资源网-版权所有
成都运营中心
Tel:028-87023516   Mob(+86) 18980857561 /18190762281
中国 成都 高新区创业路18号
电邮:853136199@qq.com