CN116020119A - 虚拟场景中视野的控制方法、装置以及电子终端 - Google Patents
虚拟场景中视野的控制方法、装置以及电子终端 Download PDFInfo
- Publication number
- CN116020119A CN116020119A CN202211702497.2A CN202211702497A CN116020119A CN 116020119 A CN116020119 A CN 116020119A CN 202211702497 A CN202211702497 A CN 202211702497A CN 116020119 A CN116020119 A CN 116020119A
- Authority
- CN
- China
- Prior art keywords
- range
- boundary
- virtual
- virtual character
- controlling
- 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
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本公开提供了一种虚拟场景中视野的控制方法、装置以及电子终端,涉及虚拟场景技术领域,缓解了游戏场景的边界显示的真实度效果较低的技术问题。该方法包括:响应于针对虚拟角色的移动指令,根据移动指令控制虚拟角色在场景平面上移动;控制虚拟相机移动,以使视角范围跟随虚拟角色的朝向进行移动;其中,视角范围为虚拟相机的视野在场景平面上对应投影的范围;响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动。
Description
技术领域
本公开涉及场景显示技术领域,尤其是涉及一种虚拟场景中视野的控制方法、装置以及电子终端。
背景技术
对于很多三维虚拟场景,由于美术制作的特点或者场景的设计限制,经常需要限制用户可以查看的虚拟场景内容,以防止场景地图边界或者场景未设计的部分出现在画面中。
目前,对于采集显示画面的虚拟相机,其视野内经常出现规定范围边界以外的内容,如场景未设计的部分,特别是对于可以旋转视角的三维虚拟场景,使虚拟场景的边界显示的真实度效果较低,影响游戏体验的代入感。
发明内容
本公开的目的在于提供一种虚拟场景中视野的控制方法、装置以及电子终端,以缓解虚拟场景的边界显示的真实度效果较低的技术问题。
第一方面,本公开实施例提供了一种虚拟场景中视野的控制方法,通过终端设备提供图形用户界面,所述虚拟场景中包含虚拟相机、场景平面以及通过所述终端设备控制的虚拟角色,所述图形用户界面显示的内容包含所述虚拟相机在所述虚拟场景中采集的内容,所述场景平面对应有指定范围边界;所述方法包括:
响应于针对所述虚拟角色的移动指令,控制所述虚拟角色在所述场景平面上移动;
控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动;其中,所述视角范围为所述虚拟相机的视野在所述场景平面上对应投影的范围;
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动。
第二方面,提供了一种虚拟场景中视野的控制装置,通过终端设备提供图形用户界面,所述虚拟场景中包含虚拟相机、场景平面以及通过所述终端设备控制的虚拟角色,所述图形用户界面显示的内容包含所述虚拟相机在所述虚拟场景中采集的内容,所述场景平面对应有指定范围边界;所述装置包括:
第一控制模块,用于响应于针对所述虚拟角色的移动指令,控制所述虚拟角色在所述场景平面上移动;
第二控制模块,用于控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动;其中,所述视角范围为所述虚拟相机的视野在所述场景平面上对应投影的范围;
第三控制模块,用于响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动。
第三方面,本公开实施例又提供了一种电子终端,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的第一方面所述方法。
第四方面,本公开实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面所述方法。
本公开实施例带来了以下有益效果:
本公开实施例提供的一种虚拟场景中视野的控制方法、装置以及电子终端,能够响应于针对虚拟角色的移动指令,根据移动指令控制虚拟角色在场景平面上移动,控制虚拟相机移动,以使虚拟相机的视野在场景平面上对应投影的视角范围跟随虚拟角色的朝向进行移动,响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动,本方案中,通过在虚拟角色移动至指定范围边界的边沿区域时控制视角范围停止跟随虚拟角色的朝向移动,即使是可以旋转视角的3D游戏,也能够限制相机的视野内不出现规定的指定范围边界以外的内容,虚拟相机的镜头限制效果也能够更加清晰的表达场景边界的概念,避免制作大量的美术素材填充视野边缘,对于俯视角游戏还可提供更加具有沉浸感的游戏场景体验。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开实施例提供的应用场景示意图;
图2示出了本公开实施例提供的一种终端设备的结构示意图;
图3为本公开实施例提供的虚拟场景中视野的控制方法的流程示意图;
图4为本公开实施例提供的虚拟场景中视野的控制方法中,视角范围的一个示例;
图5为本公开实施例提供的虚拟场景中视野的控制方法的另一流程示意图;
图6为本公开实施例提供的一种虚拟场景中视野的控制装置的结构示意图;
图7示出了本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,对于三维游戏,由于美术制作的特点或场景的设计的限制,常需要控制玩家可以查看的内容,以防止地图边界或场景未设计的部分出现在画面中。
对于三维俯视角游戏,目前没有一种灵活有效的视角控制方式来控制视角内的内容。通常只能通过限定角色行走范围、填充空白场景的方式处理问题。这种方式适合地图范围广阔的游戏,用场景美术填充大面积范围来覆盖视野。
而对于常规的三维动作游戏,通常相机距离近,可以使用相机与墙壁屋顶的碰撞伸缩相机摇臂来解决相机穿墙问题。而对于三维俯视角游戏此类方法并不灵活适用,因为俯视角游戏通常没有屋顶,相机摇臂很长无法缩短
到可以进入室内。这种游戏常见方法是不显示室外的场景,或者室外的场景5全部黑屏,这样的方法会影响代入感。特别是对于可以旋转视角的三维虚拟
场景,采集显示画面的虚拟相机的视野内经常出现规定范围边界以外的内容,如场景未设计的部分,进而使虚拟场景的边界显示的真实度效果较低。
基于此,本公开实施例提供了一种虚拟场景中视野的控制方法、装置以及电子终端,通过该方法可以缓解虚拟场景的边界显示的真实度效果较低0的技术问题。
在本公开其中一种实施例中的虚拟场景中视野的控制方法可以运行于本地终端设备或者是服务器。当虚拟场景中视野的控制方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
5在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云
游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,虚拟场景中视野的控制方法的储存与运行是在云游戏服务器上完成的,客户端设备
的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备0可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
5在一可选的实施方式中,以游戏为例,本地终端设备存储有游戏程序并
用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
在一种可能的实施方式中,本公开实施例提供了一种虚拟场景中视野的控制方法,通过终端设备提供图形用户界面,其中,终端设备可以是前述提到的本地终端设备,也可以是前述提到的云交互系统中的客户端设备。
例如,如图1所示,图1为本公开实施例提供的应用场景示意图。该应用场景可以包括触控终端(例如,手机102)和服务器101,该触控终端可以通过有线网络或无线网络与服务器101进行通信。其中触控终端用于运行虚拟桌面,通过该虚拟桌面,可以与服务器101进行交互,以实现对服务器101中的内容进行控制。
本实施例的触控终端以手机102为例进行说明。手机102包括射频(RadioFrequency,简称RF)电路110、存储器120、触摸屏130、处理器140等部件。本领域技术人员可以理解,图2中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。本领领域技术人员可以理解触摸屏130属于用户界面(User Interface,简称UI),且手机102可以包括比图示或者更少的用户界面。
RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,简称GSM)、通用分组无线服务(General Packet Radio Service,简称GPRS)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(WidebandCode Division Multiple Access,简称WCDMA)、长期演进(Long Term Evolution,简称LTE)、电子邮件、短消息服务(Short Messaging Service,简称SMS)等。
存储器120可用于存储软件程序以及模块,处理器140通过运行存储在存储器120的软件程序以及模块,从而执行手机102的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据手机102的使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器140是手机102的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行手机102的各种功能和处理数据,从而对手机进行整体监控。
下面结合附图对本公开实施例进行进一步地介绍。
图3为本公开实施例提供的一种虚拟场景中视野的控制方法的流程示意图。其中,该方法可以应用于可呈现图形用户界面的终端设备,通过终端设备提供图形用户界面,虚拟场景中包含虚拟相机、场景平面以及通过终端设备控制的虚拟角色,图形用户界面显示的内容包含虚拟相机在虚拟场景中采集的内容,场景平面对应有指定范围边界。如图3所示,该方法包括:
步骤S310,响应于针对虚拟角色的移动指令,控制虚拟角色在场景平面上移动。
在实际应用中,玩家可以通过针对虚拟角色的移动操作控制虚拟角色进行移动。
本公开实施例中,场景平面可以为虚拟角色可在其上移动的任意虚拟面,例如,地面、船底板面、机舱内的场景平面等。
指定范围边界可以是虚拟角色在该场景平面上的可活动范围的边界。例如,场景平面指室内的地板,则指定范围边界为该室内的墙面。
步骤S320,控制虚拟相机移动,以使视角范围跟随虚拟角色的朝向进行移动。
其中,视角范围为虚拟相机的视野在场景平面上对应投影的范围。例如,如图4所示,为玩家提供游戏画面的虚拟相机的视野角度∠β在场景平面上对应投影的范围形成个矩形区域,在虚拟角色的当前位置Pcharacter移动时,虚拟相机也跟着进行位移、旋转等,以使该矩形区域跟随虚拟角色的当前位置Pcharacter移动,即该矩形区域相对虚拟角色的当前位置Pcharacter静止。
需要说明的是,本公开实施例中对触发事件的响应以及对虚拟相机运动的控制在程序运行的每一帧进行,即对虚拟相机进行实时的控制。
步骤S330,响应于虚拟角色移动至指定范围边界的边沿区域,控制视角范围停止跟随虚拟角色的朝向移动。
其中,指定范围边界的边沿区域可以是在视角范围与指定范围边界存在交集时虚拟角色对应所处的目标位置的集合区域。例如,指定范围边界的边沿区域可以是沿指定范围边界的边缘且向场景平面中心延伸一段距离的区域带。本步骤中,当虚拟角色移动至这个区域带时,视角范围便不再跟随虚拟角色的朝向移动。
需要说明的是,本公开实施例中虚拟相机视野在地平面的场景平面上的投影即视角范围可以是方形、矩形、框型,也可以是其它形状,例如,圆形、椭圆形等。
可选的,当虚拟角色移动至指定范围边界的边沿区域,在控制视角范围停止跟随虚拟角色的朝向移动的同时,还可以控制虚拟角色在场景平面上继续移动,使视角范围的停止移动不会影响虚拟角色的继续移动,以避免视角范围的停止移动影响玩家对虚拟角色的移动控制。
通过在虚拟角色移动至指定范围边界的边沿区域时控制视角范围停止跟随虚拟角色的朝向移动,即使是可以旋转视角的3D游戏,也能够限制相机的视野内不出现规定的指定范围边界以外的内容,虚拟相机的镜头限制效果也能够更加清晰的表达场景边界的概念,避免制作大量的美术素材填充视野边缘,对于俯视角游戏还可提供更加具有沉浸感的游戏场景体验。
下面对上述步骤进行详细介绍。
在一些实施例中,上述指定范围边界的边沿区域可以是视角范围与指定范围边界存在交集时虚拟角色对应所处的目标位置的集合区域。作为一个示例,该方法还可以包括以下步骤:
检测所述视角范围与所述指定范围边界是否存在交集,在检测到所述视角范围与所述指定范围边界存在交集时,确定所述虚拟角色当前所处的目标位置,并遍历所有的所述视角范围与所述指定范围边界存在交点的情况,以确定所述虚拟角色对应的多个所述目标位置;
将多个所述目标位置所形成的集合区域确定为所述指定范围边界的边沿区域。
在实际应用中,视角范围与指定范围边界存在交集的位置不只一处,遍历所有的视角范围与指定范围边界存在交集的情况后,虚拟角色在这些时刻所处的目标位置便可以对应多个,所有对应的目标位置可以形成一个集合区域,便可以将这个集合区域作为指定范围边界的边沿区域。
可选的,指定范围边界的边沿区域可以是多种形状,例如,指定范围边界的边沿区域可以是沿指定范围边界的边缘且向场景平面中心延伸一段距离的区域带。
本公开实施例中,当虚拟角色移动至这个视角范围与指定范围边界存在交集时虚拟角色对应所处的目标位置的集合区域时,视角范围便不再跟随虚拟角色的朝向移动,进而有效的避免相机的视野内出现规定范围边界以外的内容。
在一些实施例中,视角范围可以仅在一定的方向范围内停止跟随虚拟角色的朝向移动。作为一个示例,视角范围的边界处对应有多个边界点;上述步骤S330可以包括以下步骤:
步骤S332,响应于虚拟角色移动至指定范围边界的边沿区域,控制视角范围停止跟随虚拟角色向第一方向范围移动。
其中,第一方向范围包含与第一方向夹角小于90度的多个方向,第一方向为第一边界点相对于视角范围中央位置的方向,第一边界点为所述多个边界点中接触所述指定范围边界的边界点。
也可以理解为,第一方向范围包含了在第一方向上能够产生向量的全部方向。本步骤中,视角范围的边界一接触到指定范围边界便控制虚拟相机使视角范围停止再向接触处移动。
本公开实施例中,通过在虚拟角色移动至指定范围边界的边沿区域时,控制虚拟相机使视角范围在指向该边界点的方向范围上停止移动,即使是可以旋转视角的3D游戏,也能够限制相机的视野内不出现规定的指定范围边界以外的内容,虚拟相机的镜头限制效果也能够更加清晰的表达场景边界的概念,再者,通过视角范围仅在某方向范围上停止移动而不限制视角范围在其他方向上继续跟随虚拟角色移动,这种对虚拟相机镜头限制的方法提供了顺滑连续的镜头变化,可以使得虚拟相机运动更加连续顺滑,不会触达平面边界时彻底卡死,在从平面边界返回视角范围内时,虚拟相机也可及时跟上虚拟角色的运动,实现了对视角范围的灵活配置,能够更加灵活的控制虚拟相机的移动范围,避免制作大量的美术素材填充视野边缘,对于俯视角游戏还可提供更加具有沉浸感的室内场景体验。
在一些实施例中,判断视角范围的边界点是否有接触到指定范围边界的方式可以通过对边界点位置的计算实现,以精确且快速的确定出当前的视角范围是否即将超界。作为一个示例,在步骤S330之前,该方法还可以包括以下步骤:
步骤a),根据虚拟角色的当前位置、虚拟相机的预设视野角度、以及虚拟相机相对于场景平面的预设高度,确定视角范围的多个边界点;
步骤b),判断是否至少一边界点接触指定范围边界。
示例性的,如图4所示,假设为玩家提供画面的虚拟相机的视野角度FOV为∠β,虚拟相机与相机视野投影(视角范围)中心的距离为d,虚拟角色的当前位置坐标为Pcharacter,利用上述∠β、d以及Pcharacter能够计算出视角范围即图4中矩形区域的任意边界点位置坐标。
例如,如图5所示,计算得到矩形区域的边界上两个空间标记点P1与P2的空间坐标。当然,边界点可以不止这两个空间标记点,实际可根据需要自由设置选择空间标记点作为边界点。如果视角范围是圆形区域,空间标记点便在这个圆形边界的圆圈上。
如图5所示,在计算出视角范围的边界点的位置坐标后,便可以根据这些空间标记点的位置坐标判断当前视角范围是否即将超出指定范围边界。
通过虚拟角色的当前位置、虚拟相机的预设视野角度、以及虚拟相机相对于场景平面的预设高度来确定视角范围的边界点位置坐标并确定以此边界点是否接触到指定范围边界来判断视角范围是否即将超界,能够更加精确且及时的确定出当前的视角范围是否即将超界,避免视角范围超界而影响对场景边界的显示效果。
作为另一个示例,在对于边界的处理方式上,也可使用线性插值的方式保证相机处于范围内。示例性的,对于圆形或者方形的区域,其空间可以表达成一组连续的区域(坐标值域),可以使用插值的方式控制相机坐标始终在其中,例如,限制x坐标(0,1000);y坐标(0,1000)输入的值插值在这个范围内,只是对于实际的房间或游戏关卡区域不一定是连续的。
基于上述步骤a)和步骤b),可以通过坐标集合的方式判断视角范围是否即将超界,以准确快速的确定出即将超界的情况。作为一个示例,上述步骤b)可以包括如下步骤:
步骤c),判断全部边界点的坐标集合是否均处于指定范围边界的坐标集合以内;如果均处于指定范围边界的坐标集合以内,则执行步骤d);如果并未均处于指定范围边界的坐标集合以内,则执行步骤e);
步骤d),确定边界点均未接触指定范围边界;
步骤e),确定至少一边界点接触指定范围边界。
在实际应用中,本公开实施例中的坐标可以是以P(x,y,z)的形式表达,则坐标的集合也可以分别为x,y,z值的集合,以此可以进一步判断边界点是否接触指定范围边界,以及后续的某个坐标Pn分别在某个坐标轴上出界。
例如,以坐标集合的方式表示场景平面对应的指定范围边界,即角色活动范围的场景平面边界,当P1、P2、P3、P4…等视角范围的边界点(上述空间标记点)的当前坐标均处于指定范围边界对应的坐标集合内时,则未出界,反之则出界。
需要说明的是,场景平面对应的指定范围边界,即角色活动范围的场景平面边界,如室内与外界之间的墙面,其坐标集合可以根据需求自行设定所得。
通过判断视角范围边界点的当前坐标是否均在指定范围边界的坐标集合之内,以此确定出视角范围是否即将超界,进而准确且快速的确定出即将超界的情况。
基于上述步骤c)、步骤d)和步骤e),可以利用X坐标轴和Y坐标轴来控制虚拟相机视角的移动方向,以对虚拟相机进行方向更加精确的控制。作为一个示例,上述步骤S330可以包括如下步骤:
步骤f),响应于视角范围的第一边界点的坐标未处于指定范围边界的坐标集合以内,从第一边界点的坐标中判断超出指定范围边界的坐标集合的子坐标属于X坐标轴和/或Y坐标轴;如果子坐标仅属于X坐标轴,则执行步骤g);如果子坐标仅属于Y坐标轴,则执行步骤h);如果子坐标属于X坐标轴和Y坐标轴,则执行步骤i);
步骤g),控制虚拟相机使视角范围在X坐标轴上停止跟随虚拟角色的朝向移动;
步骤h),控制虚拟相机使视角范围在Y坐标轴上停止跟随虚拟角色的朝向移动;
步骤i),控制虚拟相机使视角范围停止跟随虚拟角色的朝向移动。
在实际应用中,通过坐标(X,Y)的方式来确定某个坐标Pn分别在某个坐标轴上出界。示例性的,如图5所示,当有任一边界点即空间标记点即将出界时,进行判断:若所有的空间标记点均只在X轴上超出边界,则虚拟相机在X轴上不再跟随虚拟角色运动;若所有的空间标记点均只在Y轴上超出边界,则虚拟相机在Y轴上不再跟随虚拟角色运动;若所有的空间标记点在X,Y轴上均超出边界,则虚拟相机不再跟随虚拟角色运动,静止在上一帧的位置。
本公开实施例中,通过坐标(X,Y)的方式来控制虚拟相机视角的移动方向,进而对虚拟相机进行方向更加精确的控制。
在一些实施例中,控制虚拟相机使视角范围在第一方向范围上停止跟随虚拟角色移动的同时,可以在除第一方向范围以外的方向上继续跟随虚拟角色移动,实现了对视角范围进行更加灵活的控制。作为一个示例,上述步骤S330可以包括如下步骤:
步骤j),响应于虚拟角色移动至指定范围边界的边沿区域,控制虚拟相机使视角范围停止跟随虚拟角色向第一方向范围移动,并在除第一方向范围以外的方向上继续跟随虚拟角色的朝向进行移动。
例如,当有任一边界点即空间标记点即将出界时,如图5所示,进行判断:若所有的空间标记点均只在X轴上超出边界,则虚拟相机在X轴上不再跟随虚拟角色运动,Y轴坐标依然与虚拟角色运动的Y轴坐标值相同;若所有的空间标记点均只在Y轴上超出边界,则虚拟相机在Y轴上不再跟随虚拟角色运动,X轴坐标依然与虚拟角色运动的X轴坐标值相同;若所有的空间标记点在X,Y轴上均超出边界,则虚拟相机不再跟随虚拟角色运动,静止在上一帧的位置。
通过视角范围停止跟随虚拟角色向第一方向范围移动的同时,在除第一方向范围以外的方向上继续跟随虚拟角色的朝向进行移动,提供了顺滑连续的镜头变化,可以使得虚拟相机运动更加连续顺滑,不会触达平面边界时彻底卡死,在从平面边界返回视角范围内时,虚拟相机也可及时跟上虚拟角色的运动,实现了对视角范围的灵活配置,能够更加灵活的控制虚拟相机的移动范围。
基于上述步骤j),视角范围是否跟随虚拟角色移动的方向可以通过X坐标轴和Y坐标轴来控制,以对视角范围的移动方向进行更加精确的控制。
作为一个示例,上述步骤j)可以包括如下步骤:
步骤k),响应于第一边界点的坐标中超出指定范围边界的坐标集合的子坐标仅属于X坐标轴,则控制虚拟相机使视角范围在X坐标轴上停止跟随虚拟角色的朝向移动并在Y坐标轴上继续跟随虚拟角色的朝向移动。
示例性的,如图5所示,若所有的空间标记点均只在X轴上超出边界,则虚拟相机在X轴上不再跟随虚拟角色运动,Y轴坐标依然与虚拟角色运动的Y轴坐标值相同。
作为另一个示例,上述步骤j)可以包括如下步骤:
步骤l),响应于第一边界点的坐标中超出指定范围边界的坐标集合的子坐标仅属于Y坐标轴,则控制虚拟相机使视角范围在Y坐标轴上停止跟随虚拟角色的朝向移动并在X坐标轴上继续跟随虚拟角色的朝向移动。
示例性的,如图5所示,若所有的空间标记点均只在Y轴上超出边界,则虚拟相机在Y轴上不再跟随虚拟角色运动,X轴坐标依然与虚拟角色运动的X轴坐标值相同。
本公开实施例中,通过X坐标轴和Y坐标轴来控制视角范围是否跟随虚拟角色移动的方向,能够对视角范围的移动方向进行更加精确的控制。
在一些实施例中,控制虚拟相机可以使虚拟角色始终处于视角范围中固定的位置,以便于玩家快速的查看到虚拟角色。
作为一个示例,上述步骤S320可以包括如下步骤:
步骤m),根据虚拟角色的移动位置控制虚拟相机移动,以使虚拟角色始终处于视角范围中相对静止的位置。
在实际应用中,当虚拟角色运动时,视角范围的边界点,即上述空间标记点P1、P2、P3、P4…等也都可以跟随虚拟角色的移动而运动,如位移、旋转等,即视角范围的边界点与虚拟角色之间相对静止。
作为另一个示例,在步骤b)之后,该方法还可以包括以下步骤:
步骤n),如果全部边界点均未接触指定范围边界,则控制虚拟相机使视角范围继续跟随虚拟角色的朝向移动并使虚拟角色始终处于视角范围中相对静止的位置。
当视角范围的所有边界点,即上述空间标记点P1、P2、P3、P4…等均未出界时,则控制虚拟相机使视角范围继续跟随虚拟角色移动并使虚拟角色始终处于视角范围中相对静止的位置,即虚拟相机位置坐标值的与虚拟角色坐标值的向量差不发生变化。
通过控制虚拟相机使虚拟角色始终处于虚拟相机的视角范围中固定的位置,能够便于玩家快速的查看到虚拟角色。
基于上述步骤a)和步骤b),视角范围的边界点的位置坐标可以通过多种算法计算得到,以精确的计算出边界点的当前位置。作为一个示例,上述步骤a)可以包括如下步骤:
步骤o),根据虚拟角色的当前位置、虚拟相机的预设视野角度、以及虚拟相机相对于场景平面的预设高度,通过三角函数算法或空间向量算法确定视角范围的边界点。
例如,如图4所示,假设为玩家提供画面的虚拟相机的视野角度FOV为∠β,虚拟相机与相机视野投影(视角范围)中心的距离为d,虚拟角色的当前位置坐标为Pcharacter,利用上述∠β、d以及Pcharacter,通过三角函数或空间向量能够计算出视角范围即图4中矩形区域中任意边界点的当前位置坐标。
通过各种算法计算得到视角范围的边界点的位置坐标,能够更加精确的计算出视角范围边界点的当前位置。
基于上述步骤o),可以通过公式计算出视角范围边界点的当前位置,以快速准确的计算出边界点当前位置坐标。作为一个示例,视角范围为矩形,矩形的一边长上存在一目标边界点;上述步骤o)可以包括如下步骤:
通过如下公式确定目标边界点P1(x,y,z):
x=xc-d*tan(β/2)*Sin(∠Zc);
y=yc+d*tan(β/2)*cos(∠Zc);
z=zc;
其中,β表示虚拟相机的预设视野角度,d表示虚拟相机与视角范围中央位置的距离,(xc,yc,yc)表示虚拟角色的当前位置坐标,∠Zc表示虚拟角色的当前位置矢量点相对于虚拟场景坐标系中原点的角度。
以三角函数算法举例,如图4所示,获得水平边界上两点的空间坐标,记为空间标记点P1与P2。设Pcharacter坐标为(xc,yc,zc),Pcharacter的矢量点相对于世界坐标系中原点的角度参数为(∠Xc,∠Yc,∠Zc),则:P1(x,y,z);x=xc-d*tan(β/2)*Sin(∠Zc);y=yc+d*tan(β/2)*cos(∠Zc);z=zc。同理,根据需求可获得投影面上任意其他标记点P3,P4的位置坐标。
通过公式利用三角函数算法计算出视角范围边界点的当前位置,能够快速准确的计算出边界点当前位置坐标。
图6提供了一种虚拟场景中视野的控制装置的结构示意图。通过终端设备提供图形用户界面,所述虚拟场景中包含虚拟相机、场景平面以及通过所述终端设备控制的虚拟角色,所述图形用户界面显示的内容包含所述虚拟相机在所述虚拟场景中采集的内容,所述场景平面对应有指定范围边界。如图6所示,虚拟场景中视野的控制装置600包括:
第一控制模块601,用于响应于针对所述虚拟角色的移动指令,控制所述虚拟角色在所述场景平面上移动;
第二控制模块602,用于控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动;其中,所述视角范围为所述虚拟相机的视野在所述场景平面上对应投影的范围;
第三控制模块603,用于响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,该装置还包括:
检测模块,用于检测所述视角范围与所述指定范围边界是否存在交集,在检测到所述视角范围与所述指定范围边界存在交集时,确定所述虚拟角色当前所处的目标位置,并遍历所有的所述视角范围与所述指定范围边界存在交点的情况,以确定所述虚拟角色对应的多个所述目标位置;
确定模块,用于将多个所述目标位置所形成的集合区域确定为所述指定范围边界的边沿区域。
在一个可行的实施方案中,所述视角范围的边界处对应有多个边界点;第三控制模块具体用于:响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动;其中,所述第一方向范围包含与第一方向夹角小于90度的多个方向,所述第一方向为所述第一边界点相对于所述视角范围中央位置的方向,所述第一边界点为所述多个边界点中接触所述指定范围边界的边界点。
通过上述方式,通过在视角范围的某边界点接触场景平面对应的指定范围边界时,控制虚拟相机使视角范围在指向该边界点的方向范围上停止移动,即使是可以旋转视角的3D游戏,也能够限制相机的视野内不出现规定的指定范围边界以外的内容,虚拟相机的镜头限制效果也能够更加清晰的表达场景边界的概念,再者,通过视角范围仅在某方向范围上停止移动而不限制视角范围在其他方向上继续跟随虚拟角色移动,这种对虚拟相机镜头限制的方法提供了顺滑连续的镜头变化,可以使得虚拟相机运动更加连续顺滑,不会触达平面边界时彻底卡死,在从平面边界返回视角范围内时,虚拟相机也可及时跟上虚拟角色的运动,实现了对视角范围的灵活配置,能够更加灵活的控制虚拟相机的移动范围,避免制作大量的美术素材填充视野边缘,对于俯视角游戏还可提供更加具有沉浸感的游戏场景体验。
在一个可行的实施方案中,第三控制模块具体用于:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动。
在一个可行的实施方案中,第三控制模块还用于:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并控制所述虚拟角色在所述场景平面上继续移动。
在一个可行的实施方案中,该装置还包括:
确定模块,用于根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,确定所述视角范围的多个边界点;
判断模块,用于判断是否至少一所述边界点接触所述指定范围边界。
在一个可行的实施方案中,判断模块具体用于:
判断全部所述边界点的坐标集合是否均处于所述指定范围边界的坐标集合以内;
如果均处于所述指定范围边界的坐标集合以内,则确定所述边界点均未接触所述指定范围边界;
如果并未均处于所述指定范围边界的坐标集合以内,则确定至少一所述边界点接触所述指定范围边界。
在一个可行的实施方案中,第三控制模块具体用于:
响应于所述视角范围的第一边界点的坐标未处于所述指定范围边界的坐标集合以内,从所述第一边界点的坐标中判断超出所述指定范围边界的坐标集合的子坐标属于X坐标轴和/或Y坐标轴;
如果所述子坐标仅属于X坐标轴,则控制所述虚拟相机使所述视角范围在X坐标轴上停止跟随所述虚拟角色的朝向移动;
如果所述子坐标仅属于Y坐标轴,则控制所述虚拟相机使所述视角范围在Y坐标轴上停止跟随所述虚拟角色的朝向移动;
如果所述子坐标属于X坐标轴和Y坐标轴,则控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,第三控制模块还用于:
响应于所述第一边界点的坐标中超出所述指定范围边界的坐标集合的子坐标仅属于X坐标轴,则控制所述虚拟相机使所述视角范围在X坐标轴上停止跟随所述虚拟角色移动并在Y坐标轴上继续跟随所述虚拟角色移动。
在一个可行的实施方案中,第三控制模块还用于:
响应于所述第一边界点的坐标中超出所述指定范围边界的坐标集合的子坐标仅属于Y坐标轴,则控制所述虚拟相机使所述视角范围在Y坐标轴上停止跟随所述虚拟角色的朝向移动并在X坐标轴上继续跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,该装置还包括:
第四控制模块,用于如果全部所述边界点均未接触所述指定范围边界,则控制所述虚拟相机使所述视角范围继续跟随所述虚拟角色的朝向移动并使所述虚拟角色始终处于所述视角范围中相对静止的位置。
在一个可行的实施方案中,确定模块具体用于:
根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,通过三角函数算法或空间向量算法确定所述视角范围的多个边界点。
在一个可行的实施方案中,所述视角范围为矩形,所述矩形的一边长上存在一目标边界点;确定模块还用于:
通过如下公式确定所述目标边界点P1(x,y,z):
x=xc-d*tan(β/2)*Sin(∠Zc);
y=yc+d*tan(β/2)*cos(∠Zc);
z=zc;
其中,β表示所述虚拟相机的预设视野角度,d表示所述虚拟相机与所述视角范围中央位置的距离,(xc,yc,yc)表示所述虚拟角色的当前位置坐标,∠Zc表示所述虚拟角色的当前位置矢量点相对于虚拟场景坐标系中原点的角度。
在一个可行的实施方案中,第二控制模块具体用于:
根据所述虚拟角色的移动位置控制所述虚拟相机移动,以使所述虚拟角色始终处于所述视角范围中相对静止的位置。
本公开实施例提供的虚拟场景中视野的控制装置,与上述实施例提供的虚拟场景中视野的控制方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
图7示出了本公开实施例所提供的一种电子设备的结构示意图,包括:处理器701、存储介质702和总线703,所述存储介质702存储有所述处理器701可执行的机器可读指令,当电子设备运行如实施例中的一种虚拟场景中视野的控制方法时,所述处理器701与所述存储介质702之间通过总线703通信,所述处理器701执行所述机器可读指令,所述处理器701方法项的前序部分,以执行以下步骤:
响应于针对所述虚拟角色的移动指令,根据所述移动指令控制所述虚拟角色在所述场景平面上移动;
控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动;其中,所述视角范围为所述虚拟相机的视野在所述场景平面上对应投影的范围;
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,所述处理器还用于:检测所述视角范围与所述指定范围边界是否存在交集,在检测到所述视角范围与所述指定范围边界存在交集时,确定所述虚拟角色当前所处的目标位置,并遍历所有的所述视角范围与所述指定范围边界存在交点的情况,以确定所述虚拟角色对应的多个所述目标位置;将多个所述目标位置所形成的集合区域确定为所述指定范围边界的边沿区域。
在一个可行的实施方案中,所述处理器701在执行视角范围的边界处对应有多个边界点;所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动时,具体用于:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动;其中,所述第一方向范围包含与第一方向夹角小于90度的多个方向,所述第一方向为所述第一边界点相对于所述视角范围中央位置的方向,所述第一边界点为所述多个边界点中接触所述指定范围边界的边界点。
通过上述方式,通过在视角范围的某边界点接触场景平面对应的指定范围边界时,控制虚拟相机使视角范围在指向该边界点的方向范围上停止移动,即使是可以旋转视角的3D游戏,也能够限制相机的视野内不出现规定的指定范围边界以外的内容,虚拟相机的镜头限制效果也能够更加清晰的表达场景边界的概念,再者,通过视角范围仅在某方向范围上停止移动而不限制视角范围在其他方向上继续跟随虚拟角色移动,这种对虚拟相机镜头限制的方法提供了顺滑连续的镜头变化,可以使得虚拟相机运动更加连续顺滑,不会触达平面边界时彻底卡死,在从平面边界返回视角范围内时,虚拟相机也可及时跟上虚拟角色的运动,实现了对视角范围的灵活配置,能够更加灵活的控制虚拟相机的移动范围,避免制作大量的美术素材填充视野边缘,对于俯视角游戏还可提供更加具有沉浸感的游戏场景体验。
在一个可行的实施方案中,所述处理器701在执行响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动时,具体用于:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动。
在一个可行的实施方案中,所述处理器还用于:响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并控制所述虚拟角色在所述场景平面上继续移动。
在一个可行的实施方案中,在响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动之前,所述处理器还用于:
根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,确定所述视角范围的多个边界点;
判断是否至少一所述边界点接触所述指定范围边界。
在一个可行的实施方案中,所述处理器701在执行判断是否至少一所述边界点接触所述指定范围边界时,具体用于:
判断全部所述边界点的坐标集合是否均处于所述指定范围边界的坐标集合以内;
如果均处于所述指定范围边界的坐标集合以内,则确定所述边界点均未接触所述指定范围边界;
如果并未均处于所述指定范围边界的坐标集合以内,则确定至少一所述边界点接触所述指定范围边界。
在一个可行的实施方案中,所述处理器701在执行响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动时,具体用于:
响应于所述视角范围的第一边界点的坐标未处于所述指定范围边界的坐标集合以内,从所述第一边界点的坐标中判断超出所述指定范围边界的坐标集合的子坐标属于X坐标轴和/或Y坐标轴;
如果所述子坐标仅属于X坐标轴,则控制所述虚拟相机使所述视角范围在X坐标轴上停止跟随所述虚拟角色的朝向移动;
如果所述子坐标仅属于Y坐标轴,则控制所述虚拟相机使所述视角范围在Y坐标轴上停止跟随所述虚拟角色的朝向移动;
如果所述子坐标属于X坐标轴和Y坐标轴,则控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,所述处理器701在执行响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动时,具体用于:
响应于所述第一边界点的坐标中超出所述指定范围边界的坐标集合的子坐标仅属于X坐标轴,则控制所述虚拟相机使所述视角范围在X坐标轴上停止跟随所述虚拟角色的朝向移动并在Y坐标轴上继续跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,所述处理器701在执行响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动时,还用于:
响应于所述第一边界点的坐标中超出所述指定范围边界的坐标集合的子坐标仅属于Y坐标轴,则控制所述虚拟相机使所述视角范围在Y坐标轴上停止跟随所述虚拟角色的朝向移动并在X坐标轴上继续跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,在判断是否至少一所述边界点接触所述指定范围边界之后,所述处理器还用于:
如果全部所述边界点均未接触所述指定范围边界,则控制所述虚拟相机使所述视角范围继续跟随所述虚拟角色移动并使所述虚拟角色的朝向始终处于所述视角范围中相对静止的位置。
在一个可行的实施方案中,所述处理器701在执行根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,确定所述视角范围的多个所述边界点时,具体用于:
根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,通过三角函数算法或空间向量算法确定所述视角范围的多个边界点。
在一个可行的实施方案中,所述视角范围为矩形,所述矩形的一边长上存在一目标边界点;所述处理器701在执行根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,通过三角函数算法确定所述视角范围的多个边界点时,具体用于:
通过如下公式确定所述目标边界点P1(x,y,z):
x=xc-d*tan(β/2)*Sin(∠Zc);
y=yc+d*tan(β/2)*cos(∠Zc);
z=zc;
其中,β表示所述虚拟相机的预设视野角度,d表示所述虚拟相机与所述视角范围中央位置的距离,(xc,yc,yc)表示所述虚拟角色的当前位置坐标,∠Zc表示所述虚拟角色的当前位置矢量点相对于虚拟场景坐标系中原点的角度。
在一个可行的实施方案中,所述处理器701在执行控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动时,具体用于:
根据所述虚拟角色的移动位置控制所述虚拟相机移动,以使所述虚拟角色始终处于所述视角范围中相对静止的位置。
在实际应用中,存储器701可能包含高速随机存取存储器(Random AccessMemory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口704(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线703可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器701用于存储程序,所述处理器702在接收到执行指令后,执行所述程序,前述本公开任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器702中,或者由处理器702实现。
处理器702可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器702可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器702读取存储器701中的信息,结合其硬件完成上述方法的步骤。
本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,所述处理器执行以下步骤:
响应于针对所述虚拟角色的移动指令,控制所述虚拟角色在所述场景平面上移动;
控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动;其中,所述视角范围为所述虚拟相机的视野在所述场景平面上对应投影的范围;
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,所述处理器还用于:检测所述视角范围与所述指定范围边界是否存在交集,在检测到所述视角范围与所述指定范围边界存在交集时,确定所述虚拟角色当前所处的目标位置,并遍历所有的所述视角范围与所述指定范围边界存在交点的情况,以确定所述虚拟角色对应的多个所述目标位置;将多个所述目标位置所形成的集合区域确定为所述指定范围边界的边沿区域。
在一个可行的实施方案中,所述处理器在执行视角范围的边界处对应有多个边界点;所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动时,具体用于:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动;其中,所述第一方向范围包含与第一方向夹角小于90度的多个方向,所述第一方向为所述第一边界点相对于所述视角范围中央位置的方向,所述第一边界点为所述多个边界点中接触所述指定范围边界的边界点。
通过上述方式,通过在视角范围的某边界点接触场景平面对应的指定范围边界时,控制虚拟相机使视角范围在指向该边界点的方向范围上停止移动,即使是可以旋转视角的3D游戏,也能够限制相机的视野内不出现规定的指定范围边界以外的内容,虚拟相机的镜头限制效果也能够更加清晰的表达场景边界的概念,再者,通过视角范围仅在某方向范围上停止移动而不限制视角范围在其他方向上继续跟随虚拟角色移动,这种对虚拟相机镜头限制的方法提供了顺滑连续的镜头变化,可以使得虚拟相机运动更加连续顺滑,不会触达平面边界时彻底卡死,在从平面边界返回视角范围内时,虚拟相机也可及时跟上虚拟角色的运动,实现了对视角范围的灵活配置,能够更加灵活的控制虚拟相机的移动范围,避免制作大量的美术素材填充视野边缘,对于俯视角游戏还可提供更加具有沉浸感的游戏场景体验。
在一个可行的实施方案中,所述处理器在执行响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动时,具体用于:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动。
在一个可行的实施方案中,所述处理器还用于:响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并控制所述虚拟角色在所述场景平面上继续移动。
在一个可行的实施方案中,在响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动之前,所述处理器还用于:
根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,确定所述视角范围的多个边界点;
判断是否至少一所述边界点接触所述指定范围边界。
在一个可行的实施方案中,所述处理器在执行判断是否至少一所述边界点接触所述指定范围边界时,具体用于:
判断全部所述边界点的坐标集合是否均处于所述指定范围边界的坐标集合以内;
如果均处于所述指定范围边界的坐标集合以内,则确定所述边界点均未接触所述指定范围边界;
如果并未均处于所述指定范围边界的坐标集合以内,则确定至少一所述边界点接触所述指定范围边界。
在一个可行的实施方案中,所述处理器在执行响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动时,具体用于:
响应于所述视角范围的第一边界点的坐标未处于所述指定范围边界的坐标集合以内,从所述第一边界点的坐标中判断超出所述指定范围边界的坐标集合的子坐标属于X坐标轴和/或Y坐标轴;
如果所述子坐标仅属于X坐标轴,则控制所述虚拟相机使所述视角范围在X坐标轴上停止跟随所述虚拟角色的朝向移动;
如果所述子坐标仅属于Y坐标轴,则控制所述虚拟相机使所述视角范围在Y坐标轴上停止跟随所述虚拟角色的朝向移动;
如果所述子坐标属于X坐标轴和Y坐标轴,则控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,所述处理器在执行响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动时,具体用于:
响应于所述第一边界点的坐标中超出所述指定范围边界的坐标集合的子坐标仅属于X坐标轴,则控制所述虚拟相机使所述视角范围在X坐标轴上停止跟随所述虚拟角色的朝向移动并在Y坐标轴上继续跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,所述处理器在执行响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动时,还用于:
响应于所述第一边界点的坐标中超出所述指定范围边界的坐标集合的子坐标仅属于Y坐标轴,则控制所述虚拟相机使所述视角范围在Y坐标轴上停止跟随所述虚拟角色的朝向移动并在X坐标轴上继续跟随所述虚拟角色的朝向移动。
在一个可行的实施方案中,在判断是否至少一所述边界点接触所述指定范围边界之后,所述处理器还用于:
如果全部所述边界点均未接触所述指定范围边界,则控制所述虚拟相机使所述视角范围继续跟随所述虚拟角色移动并使所述虚拟角色的朝向始终处于所述视角范围中相对静止的位置。
在一个可行的实施方案中,所述处理器在执行根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,确定所述视角范围的多个所述边界点时,具体用于:
根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,通过三角函数算法或空间向量算法确定所述视角范围的多个边界点。
在一个可行的实施方案中,所述视角范围为矩形,所述矩形的一边长上存在一目标边界点;所述处理器在执行根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,通过三角函数算法确定所述视角范围的多个边界点时,具体用于:
通过如下公式确定所述目标边界点P1(x,y,z):
x=xc-d*tan(β/2)*Sin(∠Zc);
y=yc+d*tan(β/2)*cos(∠Zc);
z=zc;
其中,β表示所述虚拟相机的预设视野角度,d表示所述虚拟相机与所述视角范围中央位置的距离,(xc,yc,yc)表示所述虚拟角色的当前位置坐标,∠Zc表示所述虚拟角色的当前位置矢量点相对于虚拟场景坐标系中原点的角度。
在一个可行的实施方案中,所述处理器在执行控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动时,具体用于:
根据所述虚拟角色的移动位置控制所述虚拟相机移动,以使所述虚拟角色始终处于所述视角范围中相对静止的位置。
在本公开实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本公开所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
再例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述虚拟场景中视野的控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的范围。都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种虚拟场景中视野的控制方法,其特征在于,通过终端设备提供图形用户界面,所述虚拟场景中包含虚拟相机、场景平面以及通过所述终端设备控制的虚拟角色,所述图形用户界面显示的内容包含所述虚拟相机在所述虚拟场景中采集的内容,所述场景平面对应有指定范围边界;所述方法包括:
响应于针对所述虚拟角色的移动指令,控制所述虚拟角色在所述场景平面上移动;
控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动;其中,所述视角范围为所述虚拟相机的视野在所述场景平面上对应投影的范围;
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动。
2.根据权利要求1所述的方法,其特征在于,还包括:
检测所述视角范围与所述指定范围边界是否存在交集,在检测到所述视角范围与所述指定范围边界存在交集时,确定所述虚拟角色当前所处的目标位置,并遍历所有的所述视角范围与所述指定范围边界存在交点的情况,以确定所述虚拟角色对应的多个所述目标位置;
将多个所述目标位置所形成的集合区域确定为所述指定范围边界的边沿区域。
3.根据权利要求1所述的方法,其特征在于,所述视角范围的边界处对应有多个边界点;所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动,包括:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动;其中,所述第一方向范围包含与第一方向夹角小于90度的多个方向,所述第一方向为第一边界点相对于所述视角范围中央位置的方向,所述第一边界点为所述多个边界点中接触所述指定范围边界的边界点。
4.根据权利要求3所述的方法,其特征在于,所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动,包括:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动。
5.根据权利要求3所述的方法,其特征在于,所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动,包括:
响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并控制所述虚拟角色在所述场景平面上继续移动。
6.根据权利要求3所述的方法,其特征在于,所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动之前,还包括:
根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,确定所述视角范围的多个所述边界点;
判断是否至少一所述边界点接触所述指定范围边界。
7.根据权利要求6所述的方法,其特征在于,所述判断是否至少一所述边界点接触所述指定范围边界,包括:
判断全部所述边界点的坐标集合是否均处于所述指定范围边界的坐标集合以内;
如果均处于所述指定范围边界的坐标集合以内,则确定所述边界点均未接触所述指定范围边界;
如果并未均处于所述指定范围边界的坐标集合以内,则确定至少一所述边界点接触所述指定范围边界。
8.根据权利要求7所述的方法,其特征在于,所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色向第一方向范围移动,包括:
响应于所述视角范围的第一边界点的坐标未处于所述指定范围边界的坐标集合以内,从所述第一边界点的坐标中判断超出所述指定范围边界的坐标集合的子坐标属于X坐标轴和/或Y坐标轴;
如果所述子坐标仅属于X坐标轴,则控制所述虚拟相机使所述视角范围在X坐标轴上停止跟随所述虚拟角色的朝向移动;
如果所述子坐标仅属于Y坐标轴,则控制所述虚拟相机使所述视角范围在Y坐标轴上停止跟随所述虚拟角色的朝向移动;
如果所述子坐标属于X坐标轴和Y坐标轴,则控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色的朝向移动。
9.根据权利要求4所述的方法,其特征在于,所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动,包括:
响应于所述第一边界点的坐标中超出所述指定范围边界的坐标集合的子坐标仅属于X坐标轴,则控制所述虚拟相机使所述视角范围在X坐标轴上停止跟随所述虚拟角色的朝向移动并在Y坐标轴上继续跟随所述虚拟角色的朝向移动。
10.根据权利要求4所述的方法,其特征在于,所述响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述虚拟相机使所述视角范围停止跟随所述虚拟角色向第一方向范围移动,并在除所述第一方向范围以外的方向上继续跟随所述虚拟角色的朝向进行移动,还包括:
响应于所述第一边界点的坐标中超出所述指定范围边界的坐标集合的子坐标仅属于Y坐标轴,则控制所述虚拟相机使所述视角范围在Y坐标轴上停止跟随所述虚拟角色的朝向移动并在X坐标轴上继续跟随所述虚拟角色的朝向移动。
11.根据权利要求6所述的方法,其特征在于,所述判断是否至少一所述边界点接触所述指定范围边界之后,还包括:
如果全部所述边界点均未接触所述指定范围边界,则控制所述虚拟相机使所述视角范围继续跟随所述虚拟角色的朝向移动并使所述虚拟角色始终处于所述视角范围中相对静止的位置。
12.根据权利要求6所述的方法,其特征在于,所述根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,确定所述视角范围的多个所述边界点,包括:
根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,通过三角函数算法或空间向量算法确定所述视角范围的多个所述边界点。
13.根据权利要求12所述的方法,其特征在于,所述视角范围为矩形,所述矩形的一边长上存在一目标边界点;
所述根据所述虚拟角色的当前位置、所述虚拟相机的预设视野角度、以及所述虚拟相机相对于所述场景平面的预设高度,通过三角函数算法确定所述视角范围的多个所述边界点,包括:
通过如下公式确定所述目标边界点P1(x,y,z):
x=xc-d*tan(β/2)*Sin(∠Zc);
y=yc+d*tan(β/2)*cos(∠Zc);
z=zc;
其中,β表示所述虚拟相机的预设视野角度,d表示所述虚拟相机与所述视角范围中央位置的距离,(xc,yc,yc)表示所述虚拟角色的当前位置坐标,∠Zc表示所述虚拟角色的当前位置矢量点相对于虚拟场景坐标系中原点的角度。
14.根据权利要求1所述的方法,其特征在于,所述控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动,包括:
根据所述虚拟角色的移动位置控制所述虚拟相机移动,以使所述虚拟角色始终处于所述视角范围中相对静止的位置。
15.一种虚拟场景中视野的控制装置,其特征在于,通过终端设备提供图形用户界面,所述虚拟场景中包含虚拟相机、场景平面以及通过所述终端设备控制的虚拟角色,所述图形用户界面显示的内容包含所述虚拟相机在所述虚拟场景中采集的内容,所述场景平面对应有指定范围边界;所述装置包括:
第一控制模块,用于响应于针对所述虚拟角色的移动指令,控制所述虚拟角色在所述场景平面上移动;
第二控制模块,用于控制所述虚拟相机移动,以使视角范围跟随所述虚拟角色的朝向进行移动;其中,所述视角范围为所述虚拟相机的视野在所述场景平面上对应投影的范围;
第三控制模块,用于响应于所述虚拟角色移动至所述指定范围边界的边沿区域,控制所述视角范围停止跟随所述虚拟角色的朝向移动。
16.一种电子终端,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至14任一项所述的方法的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211702497.2A CN116020119A (zh) | 2022-12-28 | 2022-12-28 | 虚拟场景中视野的控制方法、装置以及电子终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211702497.2A CN116020119A (zh) | 2022-12-28 | 2022-12-28 | 虚拟场景中视野的控制方法、装置以及电子终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116020119A true CN116020119A (zh) | 2023-04-28 |
Family
ID=86077296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211702497.2A Pending CN116020119A (zh) | 2022-12-28 | 2022-12-28 | 虚拟场景中视野的控制方法、装置以及电子终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116020119A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117679745A (zh) * | 2024-02-01 | 2024-03-12 | 南京维赛客网络科技有限公司 | 多角度动态检测控制虚拟人物朝向的方法、系统及介质 |
-
2022
- 2022-12-28 CN CN202211702497.2A patent/CN116020119A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117679745A (zh) * | 2024-02-01 | 2024-03-12 | 南京维赛客网络科技有限公司 | 多角度动态检测控制虚拟人物朝向的方法、系统及介质 |
CN117679745B (zh) * | 2024-02-01 | 2024-04-12 | 南京维赛客网络科技有限公司 | 多角度动态检测控制虚拟人物朝向的方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110215690B (zh) | 游戏场景中的视角切换方法、装置及电子设备 | |
CN110694271B (zh) | 游戏场景中的相机姿态控制方法、装置及电子设备 | |
CN110575671B (zh) | 游戏中视角的控制方法、装置及电子设备 | |
CN112039937B (zh) | 一种显示方法、位置确定方法及装置 | |
CN109983424B (zh) | 虚拟现实场景中的对象选中方法和装置以及虚拟现实设备 | |
CN110209325A (zh) | 一种3d场景显示控制方法、系统及设备 | |
CN116020119A (zh) | 虚拟场景中视野的控制方法、装置以及电子终端 | |
CN112017133B (zh) | 一种图像展示方法、装置及电子设备 | |
CN111870942B (zh) | 虚拟单位的攻击控制方法、装置及电子设备 | |
CN112807692A (zh) | 游戏中的信息控制方法、装置和终端设备 | |
CN110458943B (zh) | 移动对象旋转方法及装置、控制设备及存储介质 | |
US11574450B2 (en) | Systems for augmented reality sketching | |
CN110743161B (zh) | 虚拟对象控制方法、装置、终端及存储介质 | |
CN111973984B (zh) | 虚拟场景的坐标控制方法、装置、电子设备及存储介质 | |
US10643387B2 (en) | Three-dimensional data display device, three-dimensional data display method, and program | |
CN106325715B (zh) | 显示图片的方法、系统和智能设备 | |
CN116020114A (zh) | 游戏的操作控制方法、装置和电子设备 | |
CN115177954A (zh) | 基于视图容器的游戏互动方法、装置、设备及存储介质 | |
CN110025953B (zh) | 一种游戏界面显示的方法、装置、存储介质及电子装置 | |
CN111905365B (zh) | 拖动游戏场景的方法、装置和电子设备 | |
CN113724364A (zh) | 一种利用多边形实现遮挡且本体不渲染的设置方法及装置 | |
CN112402967B (zh) | 游戏控制方法、装置、终端设备及介质 | |
CN117018612A (zh) | 游戏中的信息标记方法、装置和电子设备 | |
CN116672708A (zh) | 游戏中地图的控制方法、装置以及电子终端 | |
CN110688192B (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 |