虚拟环境中的视角切换方法、装置、终端及介质与流程

文档序号:19407834发布日期:2019-12-13 23:38阅读:375来源:国知局
虚拟环境中的视角切换方法、装置、终端及介质与流程

本申请涉及虚拟环境建模领域,特别涉及一种虚拟环境中的视角切换方法、装置及设备。



背景技术:

在诸如射击类游戏、军事仿真程序之类的三维虚拟程序中,虚拟角色能够乘坐虚拟载具在虚拟环境中活动。典型的虚拟载具包括:汽车、船只和直升机。

以虚拟载具为虚拟汽车为例,终端上显示虚拟环境画面和探头控件,该虚拟环境画面中的虚拟角色乘坐在虚拟汽车中。当用户点击探头控件时,虚拟环境画面中的虚拟角色会从虚拟汽车的车窗中探出上半身,然后向虚拟汽车的前方进行瞄准。

上述技术方案所能够实现的瞄准范围有限,虚拟汽车会遮挡很大一部分的瞄准视野。若运行在智能手机、平板电脑等小屏幕终端上,瞄准视野会更小。



技术实现要素:

本申请实施例提供了一种虚拟环境中的视角切换方法、装置、终端及介质,可以解决相关技术中的虚拟汽车会遮挡很大一部分的瞄准视野,导致瞄准视野会更小的问题。所述技术方案如下:

根据本申请的一个方面,提供了一种虚拟环境中的视角切换方法,应用于终端中,所述终端中运行有支持虚拟环境的应用程序,所述方法包括:

显示主控虚拟对象乘坐在虚拟载具上的第一虚拟环境画面,所述第一虚拟环境画面是采用基于所述虚拟载具确定的第一视角所采集到的画面,所述第一虚拟环境画面上叠加有触发控件;

接收作用于所述触发控件上的触发操作;

根据所述触发操作将所述第一虚拟环境画面切换显示为第二虚拟环境画面,所述第二虚拟环境画面是基于所述主控虚拟对象确定的第二视角所采集到的画面。

根据本申请的另一方面,提供了一种虚拟环境中的视角切换装置,应用于终端中,所述终端中运行有支持虚拟环境的应用程序,所述装置包括:

显示模块,用于显示主控虚拟对象乘坐在虚拟载具上的第一虚拟环境画面,所述第一虚拟环境画面是采用基于所述虚拟载具确定的第一视角所采集到的画面,所述第一虚拟环境画面上叠加有触发控件;

接收模块,用于接收作用于所述触发控件上的触发操作;

切换模块,用于根据所述触发操作将所述第一虚拟环境画面切换显示为第二虚拟环境画面,所述第二虚拟环境画面是基于所述主控虚拟对象确定的第二视角所采集到的画面。

根据本申请的另一方面,提供了一种终端,所述终端包括:处理器和存储器,所述存储器存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的虚拟环境中的视角切换装置。

根据本申请的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的虚拟环境中的视角切换装置。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过根据触发操作将第一虚拟环境画面切换显示为第二虚拟环境画面,第一虚拟环境画面是采用基于虚拟载具确定的第一视角所采集到的画面,第二虚拟环境画面是基于主控虚拟对象确定的第二视角所采集到的画面,使得第二虚拟环境画面中不存在或几乎不存在虚拟载具的遮挡,从而得到具有更好视野的虚拟环境画面。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是相关技术中提供的虚拟对象在乘坐虚拟载具时进入战斗状态的界面示意图;

图2是本申请一个示意性实施例提供的虚拟对象在乘坐虚拟载具时进入战斗状态的界面示意图;

图3是本申请一个示意性实施例提供的计算机系统的框图;

图4是本申请一个示意性实施例提供的虚拟环境中的视角切换方法的示意图;

图5是本申请一个示意性实施例提供的摄像机模型的工作原理示意图;

图6是本申请一个示意性实施例提供的虚拟环境中的视角切换方法的示意图;

图7是图6所示的虚拟环境中的视角切换方法在实施时的界面示意图;

图8是本申请另一个示意性实施例提供的虚拟环境中的视角切换方法的示意图;

图9是本申请另一个示意性实施例提供的虚拟环境中的视角切换方法的示意图;

图10是图9所示的虚拟环境中的视角切换方法在实施时的界面示意图;

图11是本申请一个示意性实施例提供的虚拟直升机上的第二视角的有效旋转范围;

图12是本申请一个示意性实施例提供的虚拟直升机的乘坐位分布图;

图13是本申请一个示意性实施例提供的虚拟对象在乘坐虚拟载具时进入战斗状态的流程图;

图14是本申请一个示意性实施例提供的虚拟环境中的视角切换装置的框图;

图15是本申请一个示意性实施例提供的终端的框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,对本申请实施例中涉及的名词进行简单介绍:

虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境是由计算机程序实现的虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的三维环境,还可以是纯虚构的三维环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,下述实施例以虚拟环境是三维虚拟环境来举例说明,但对此不加以限定。可选地,该虚拟环境还用于至少两个虚拟角色之间的虚拟环境对战。可选地,该虚拟环境还用于至少两个虚拟角色之间使用虚拟枪械进行对战。可选地,该虚拟环境还用于在目标区域范围内,至少两个虚拟角色之间使用虚拟枪械进行对战,该目标区域范围会随虚拟环境中的时间推移而不断变小。

虚拟对象:是指虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在三维虚拟环境中显示的人物、动物、植物、油桶、墙壁、石块等。可选地,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。

战术竞技游戏:玩家通过控制虚拟环境中的虚拟角色采用战术和攻击手段(使用虚拟枪械进行攻击)取得胜利的游戏类型。

虚拟载具:是指虚拟环境中供可活动对象进行乘坐的交通工具。虚拟载具包括但不限于:虚拟汽车、虚拟船只、虚拟直升机、虚拟飞机中的至少一种。

虚拟直升机:是一种依靠螺旋桨和尾翼飞行的飞行器具,直升机的突出特点是可以做低空(离地面数米)、低速(从悬停开始)和机头方向不变的机动飞行,特别是可在小面积场地垂直起降。在本申请中,直升机特指在战术竞技游戏的虚拟环境中提供的虚拟直升机。

第一人称射击游戏(first-personshooting,fps):是指用户能够以第一人称视角进行的射击游戏,属于战术竞技游戏中的一种。游戏中的虚拟环境的画面是以第一虚拟对象的视角对虚拟环境进行观察的画面。在游戏中,至少两个虚拟对象在虚拟环境中进行单局对战模式,虚拟对象通过躲避其他虚拟对象发起的攻击和虚拟环境中存在的危险(比如,毒气圈、沼泽地等)来达到在虚拟环境中存活的目的,当虚拟对象在虚拟环境中的生命值为零时,虚拟对象在虚拟环境中的生命结束,最后存活在虚拟环境中的虚拟对象是获胜方。可选地,该对战以第一个客户端加入对战的时刻作为开始时刻,以最后一个客户端退出对战的时刻作为结束时刻,每个客户端可以控制虚拟环境中的一个或多个虚拟对象。可选地,该对战的竞技模式可以包括单人对战模式、双人小组对战模式或者多人大组对战模式,本申请实施例对对战模式不加以限定。

摄像机组件(简称:摄像机或摄像机镜头或镜头):在支持虚拟环境的应用程序中,用户所看到的虚拟环境画面是由三维虚拟引擎中的摄像机拍摄得到的。

弹簧臂:当为虚拟对象或虚拟载具添加一个摄像机组件,用于创建第三人称视角时,还会包含一个弹簧臂来自动控制摄像机在受到关卡内几何体或其他对象阻碍时的应对方式。

探头:在虚拟对象乘坐在载具上时,若用户有射击需求时,从乘坐状态切换到预备射击状态的过程。战术竞技游戏往往提供一个探头按键来支持玩家探头。

肩射:肩射是一种标准的射击姿势,指用肩抵住枪的枪把以控制后坐力。

在图1所示出的相关技术中,当虚拟对象乘坐在虚拟车辆11中时,终端显示用户界面10,该用户界面上包括虚拟环境画面、探头按钮12和射击按钮13。此时,虚拟环境画面是基于虚拟车辆11后方的第一摄像机采集到的画面。当用户点击探头按钮12或射击按钮13后,终端会控制虚拟对象14的上半身探出虚拟车辆11的座舱,使用位于座舱之外的上半身所持有的枪械武器对虚拟车辆11的前方进行瞄准或射击。在此过程中,第一摄像机的位置保持不变。由图1能够看出,虚拟环境画面中的中央部分均被虚拟车辆的三维模型以及虚拟对象14的上半身所占据,用户能够使用的瞄准视野15非常小。如果该终端是智能手机、平板电脑之类的小屏幕终端,用户能够使用的瞄准视野15会更小。

本申请实施例提供了一种虚拟环境中的视角切换方案,能够在虚拟对象进行瞄准或射击时,通过将基于虚拟车辆确定的第一摄像机切换为基于虚拟对象确定的第二摄像机,从而使得虚拟环境画面中不存在或几乎不存在虚拟载具的遮挡,从而得到具有更好视野的虚拟环境画面。其中,第二摄像机可以是虚拟对象的肩射视角的摄像机。以战术竞技游戏为例,如图2所示,终端先显示游戏角色乘坐在虚拟车辆11上的第一虚拟环境画面10,该第一虚拟环境画面是绑定在虚拟车辆10后方的第一摄像机所采集到的画面。当用户点击探头按钮12(或射击按钮13或开镜按钮)后,终端将当前使用的第一摄像机切换为绑定在游戏角色21肩部的第二摄像机,显示采用游戏角色21的肩射视角所采集的第二虚拟环境画面20。

图3示出了本申请一个示例性实施例提供的计算机系统的结构框图。该计算机系统100包括:第一终端120、服务器140和第二终端160。

第一终端120安装和运行有支持虚拟环境的应用程序。该应用程序可以是虚拟现实应用程序、三维地图程序、军事仿真程序、fps游戏、moba游戏、多人枪战类生存游戏中的任意一种。第一终端120是第一用户使用的终端,第一用户使用第一终端120控制位于虚拟环境中的第一虚拟对象进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、使用远程道具进行射击、使用近战道具进行攻击、投掷虚拟爆炸物中的至少一种。示意性的,第一虚拟对象是第一虚拟人物,比如仿真人物对象或动漫人物对象。

第一终端120通过无线网络或有线网络与服务器140相连。

服务器140包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。示意性的,服务器140包括处理器144和存储器142,存储器142又包括显示模块1421、控制模块1422和接收模块1423。服务器140用于为支持三维虚拟环境的应用程序提供后台服务。可选地,服务器140承担主要计算工作,第一终端120和第二终端160承担次要计算工作;或者,服务器140承担次要计算工作,第一终端120和第二终端160承担主要计算工作;或者,服务器140、第一终端120和第二终端160三者之间采用分布式计算架构进行协同计算。

第二终端160安装和运行有支持虚拟环境的应用程序。该应用程序可以是虚拟现实应用程序、三维地图程序、军事仿真程序、fps游戏、moba游戏、多人枪战类生存游戏中的任意一种。第二终端160是第二用户使用的终端,第二用户使用第二终端160控制位于虚拟环境中的第二虚拟对象进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、使用远程道具进行射击、使用近战道具进行攻击、、投掷虚拟爆炸物中的至少一种。示意性的,第二虚拟对象是第二虚拟人物,比如仿真人物对象或动漫人物对象。

可选地,第一虚拟人物和第二虚拟人物处于同一虚拟环境中。可选地,第一虚拟人物和第二虚拟人物可以属于同一个队伍、同一个组织、具有好友关系或具有临时性的通讯权限。

可选地,第一终端120和第二终端160上安装的应用程序是相同的,或两个终端上安装的应用程序是不同控制系统平台的同一类型应用程序。第一终端120可以泛指多个终端中的一个,第二终端160可以泛指多个终端中的一个,本实施例仅以第一终端120和第二终端160来举例说明。第一终端120和第二终端160的设备类型相同或不同,该设备类型包括:智能手机、平板电脑、电子书阅读器、mp3播放器、mp4播放器、膝上型便携计算机和台式计算机中的至少一种。以下实施例以终端包括智能手机来举例说明。

本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。

图4示出了本申请一个示例性实施例提供的虚拟环境中的视角切换方法的流程图。该方法可以用于图3所示的终端中。该方法包括:

步骤401,显示主控虚拟对象乘坐在虚拟载具上的第一虚拟环境画面,第一虚拟环境画面是采用基于虚拟载具确定的第一视角所采集到的画面,第一虚拟环境画面上叠加有触发控件;

虚拟环境是采用计算机技术所模拟的二维或三维虚拟环境。主控虚拟对象是终端在虚拟环境中所控制的可活动对象,比如人物或卡通对象。

虚拟载具包括:虚拟车辆、虚拟轮船、虚拟直升机和虚拟飞机中的至少一种。在一个示例中,虚拟载具是具有座舱的交通工具。该座舱内设置有供虚拟对象乘坐的乘坐位。

用户控制主控虚拟对象乘坐在虚拟载具的乘坐位上。示例性的,乘坐位包括:位于座舱内部的内部乘坐位和位于座舱外部的外部乘坐位中的至少一种,座舱上还开设有可供虚拟对象的部分身体模型探出的窗户或门。

终端上显示主控虚拟对象乘坐在虚拟载具上的第一虚拟环境画面,第一虚拟环境画面是采用基于虚拟载具确定的第一视角所采集到的画面。示例性的,第一虚拟环境画面是采用绑定至虚拟载具后方(或侧方或前方)的摄像机所采集到的虚拟环境画面。

第一虚拟环境画面上叠加有hud(headupdisplay,抬头显示)面板区域。该面板区域上显示有多个ui控件,该ui控件包括触发控件。该触发控件是用于触发主控虚拟对象在乘坐虚拟载具时进入战斗状态(或战备状态)的控件。该触发控件包括但不限于:瞄准控件、射击控件和探头控件中的至少一种。

瞄准控件是用于控制主控虚拟对象使用虚拟武器进行瞄准的控件;

射击控件是用于控制主控虚拟对象使用虚拟武器进行射击的控件;

探头控件是用于控制主控虚拟对象的全部或部分身体模型探出虚拟载具的座舱的控件。

步骤402,接收作用于触发控件上的触发操作;

触发操作是作用于瞄准控件/射击控件/探头控件上的单击操作、双击操作、长按操作、滑动操作中的至少一种。比如,用户点击了瞄准控件。

步骤403,根据触发操作将第一虚拟环境画面切换显示为第二虚拟环境画面,第二虚拟环境画面是基于主控虚拟对象确定的第二视角所采集到的画面。

示例性的,第二视角是主控虚拟对象的第一人称视角,或,第二视角是主控虚拟对象的肩射视角。肩射视角是采用主控虚拟对象的肩部位置的视角方向进行瞄准或射击的视角。

综上所述,本实施例提供的方法,通过根据触发操作将第一虚拟环境画面切换显示为第二虚拟环境画面,第一虚拟环境画面是采用基于虚拟载具确定的第一视角所采集到的画面,第二虚拟环境画面是基于主控虚拟对象确定的第二视角所采集到的画面,使得第二虚拟环境画面中不存在或几乎不存在虚拟载具的遮挡,从而得到具有更好视野的虚拟环境画面。

终端上所显示的虚拟环境画面,是通过设置在虚拟环境中的摄像机来实现的。摄像机是指在虚拟环境中位于虚拟载具周围或者位于虚拟对象周围的三维模型,摄像机是用于对虚拟环境中的画面进行采集的模型。

以摄像机是位于虚拟对象周围的三维模型为例。当采用第一人称视角时,该摄像机位于虚拟对象的头部附近或者位于虚拟对象的头部;当采用第三人称视角时,该摄像机可以位于虚拟对象的后方并与虚拟对象进行绑定,也可以位于与虚拟对象相距预设距离的任意位置,通过该摄像机可以从不同角度对位于虚拟环境中的虚拟对象进行观察,可选地,该第三人称视角为第一人称的过肩视角时,摄像机位于虚拟对象(比如,虚拟人物的头肩部)的后方。可选地,除第一人称视角和第三人称视角外,视角还包括其他视角,比如俯视视角和肩射视角;当采用俯视视角时,该摄像机可以位于虚拟对象头部的上空,俯视视角是以从空中俯视的角度进行观察虚拟环境的视角;当采用肩射视角时,该摄像机可以位于虚拟对象的肩部位置。可选地,该摄像机在虚拟环境中不会进行实际显示,即,在用户界面显示的虚拟环境中不显示该摄像机。

对该摄像机位于与虚拟对象相距预设距离的任意位置为例进行说明,可选地,一个虚拟对象对应一个摄像机,该摄像机可以以虚拟对象为旋转中心进行旋转,如:以虚拟对象的任意一点为旋转中心对摄像机进行旋转,摄像机在旋转过程中的不仅在角度上有转动,还在位移上有偏移,旋转时摄像机与该旋转中心之间的距离保持不变,即,将摄像机在以该旋转中心作为球心的球体表面进行旋转,其中,虚拟对象的任意一点可以是虚拟对象的头部、躯干、或者虚拟对象周围的任意一点,本申请实施例对此不加以限定。可选地,摄像机在对虚拟对象进行观察时,该摄像机的视角的中心指向为该摄像机所在球面的点指向球心的方向。

可选地,该摄像机还可以在虚拟对象的不同方向以预设的角度对虚拟对象进行观察。

示意性的参考图5,在虚拟对象11中确定一点作为旋转中心12,摄像机围绕该旋转中心12进行旋转,可选地,该摄像机配置有一个初始位置,该初始位置为虚拟对象后上方的位置(比如脑部的后方位置)。该摄像机可以受用户控制。

下面基于摄像机来对上述实施例进行阐述。上述步骤401可实现成为步骤4011和步骤4012,上述步骤403可实现成为步骤4031、步骤4032和步骤4033。

图6示出了本申请一个示例性实施例提供的虚拟环境中的视角切换方法的流程图。该方法可以用于图3所示的终端中,由终端中运行的应用程序来执行。该方法包括:

步骤4011,在主控虚拟对象乘坐在虚拟载具上时,获取第一摄像机按照第一视角对虚拟环境采集的第一虚拟环境画面,第一摄像机是绑定在虚拟载具后方的摄像机;

用户控制主控虚拟对象乘坐在虚拟环境中的虚拟载具上。终端将当前摄像机确定为第一摄像机,第一摄像机是绑定在虚拟载具后方的摄像机。示例性的,虚拟载具上存在挂载点,第一摄像机按照预设距离挂载在该挂载点的后方。

当前摄像机是用于对虚拟环境进行观察得到虚拟环境画面,以便应用程序进行显示的摄像机。第一摄像机用于从虚拟载具的后方对虚拟环境进行观察得到第一虚拟环境画面。

可选地,第一摄像机能够被用户所控制,比如用户使用转动视角控件对第一摄像机进行旋转,能够使得第一摄像机绕虚拟载具的四周进行旋转,从而以虚拟载具为基准点采集到不同视角方向的第一虚拟环境画面。

在其它实施例中,第一摄像机也可能是位于虚拟载具的座舱内的舱内摄像机。舱内摄像机是用于模拟乘坐在内部乘坐位上的乘客视角的摄像机。

步骤4012,根据第一摄像机采集到的第一虚拟环境画面显示用户界面,用户界面包括第一虚拟环境画面和叠加在第一虚拟环境画面上的触发控件;

在本实施例中,第一虚拟环境画面泛指由第一摄像机所采集到的虚拟环境画面,第一虚拟环境画面包括采用第一摄像机作为当前摄像机(也即主摄像机)时采集到的多帧按照时序排列的虚拟环境画面。

终端显示应用程序的用户界面,该用户界面包括第一虚拟环境画面和叠加在第一虚拟环境画面上的触发控件。

步骤402,接收作用于触发控件上的触发操作;

第一虚拟环境画面上叠加有hud(headupdisplay,抬头显示)面板区域。该hud面板区域上显示有多个ui控件,比如:移动控件、小地图控件、视角转动控件、虚拟载具的进入控件(比如上车或上机)、虚拟载具的离开控件(比如下车或下机)、虚拟载具的乘坐位切换控件等等。

该hud面板区域上的ui控件包括有触发控件。该触发控件是用于触发主控虚拟对象在乘坐虚拟载具时进入战斗状态(或战备状态)的控件。该触发控件包括但不限于:瞄准控件、射击控件和探头控件中的至少一种。

瞄准控件(也称开镜控件)是用于控制主控虚拟对象使用虚拟武器进行瞄准的控件;

射击控件是用于控制主控虚拟对象使用虚拟武器进行射击的控件;

探头控件是用于控制主控虚拟对象的全部或部分身体模型探出虚拟载具的座舱的控件。

触发操作是作用于瞄准控件/射击控件/探头控件上的单击操作、双击操作、长按操作、滑动操作中的至少一种。比如,用户点击了瞄准控件/射击控件/探头控件。

步骤4031,根据触发操作将第一摄像机切换为第二摄像机,第一摄像机是绑定至虚拟载具的摄像机,第二摄像机是绑定至主控虚拟对象的摄像机;

可选地,第二摄像机是绑定在主控虚拟对象的头部位置的摄像机;或,第二摄像机是绑定在主控虚拟对象的颈部位置的摄像机;或,第二摄像机是绑定在主控虚拟对象的肩部位置的摄像机。

在虚拟环境中存在三维形式的世界坐标系。该世界坐标系的x轴和y轴所在平面是虚拟环境的水平面,z轴正半轴是垂直于水平面且向上的坐标轴,z轴正半轴是垂直于水平面且向下的坐标轴,也即z轴对应虚拟环境中的高度。

设主控虚拟对象的颈部在世界坐标系中的实时坐标为(x1,y1,z1),设定第二摄像机相对于主控虚拟对象的颈部偏移为(δx,δy,δz),则第二摄像机在世界坐标系中的坐标为(x1+δx,y1+δy,z1+δz)。可选地,第二摄像机上还设置有长度为l的弹簧臂。

以第二摄像机是绑定在主控虚拟对象的颈部位置的摄像机为例,δx=0,δy=0,δz=25cm,l=30cm。

假设x轴为正前方,以第二摄像机是绑定在主控虚拟对象的左肩部位置的摄像机为例,δx=0,δy=-10cm,δz=25cm,l=30cm。

假设x轴为正前方,以第二摄像机是绑定在主控虚拟对象的左肩部位置的摄像机为例,δx=0,δy=+10cm,δz=25cm,l=30cm。

结合参考图7,终端根据触发操作将当前摄像机从第一摄像机1切换为第二摄像机2,第二摄像机是绑定在主控虚拟对象的肩部位置的摄像机。

步骤4032,获取第二摄像机按照第二视角对虚拟环境采集得到的第二虚拟环境画面;

当前摄像机是用于对虚拟环境进行观察得到虚拟环境画面,以便应用程序进行显示的摄像机。当第二摄像机绑定在头部位置时,第二摄像机用于从主控虚拟对象的头部位置对虚拟环境进行观察得到第二虚拟环境画面;当第二摄像机绑定在颈部位置时,第二摄像机用于从主控虚拟对象的颈部位置对虚拟环境进行观察得到第二虚拟环境画面;当第二摄像机绑定在肩部位置时,第二摄像机用于从主控虚拟对象的肩部位置对虚拟环境进行观察得到第二虚拟环境画面。

可选地,第二摄像机能够被用户所控制,比如用户使用转动视角控件对第二摄像机进行旋转,能够使得第二摄像机绕主控虚拟对象的四周进行旋转,从而以主控虚拟对象为基准点采集到不同视角方向的第二虚拟环境画面。

在本实施例中,第二虚拟环境画面泛指由第二摄像机所采集到的虚拟环境画面,第二虚拟环境画面包括采用第二摄像机作为当前摄像机(也即主摄像机)时采集到的多帧按照时序排列的虚拟环境画面。

步骤4033,将第一虚拟环境画面切换显示为第二虚拟环境画面。

终端显示应用程序的用户界面,该用户界面包括第二虚拟环境画面和叠加在第二虚拟环境画面上的触发控件。

步骤404,再次接收作用于触发控件上的触发操作,该触发控件包括瞄准控件或探头控件;

用户能够再次点击瞄准控件或探头控件,终端上的应用程序再次接收作用于触发控件上的触发操作。

本步骤中的触发控件是用于触发主控虚拟对象在乘坐虚拟载具时退出战斗状态(或战备状态)而进入乘坐状态的控件。

步骤405,根据触发操作将第二虚拟环境画面恢复显示为第一虚拟环境画面。

终端根据触发操作将当前摄像机从第二摄像机切换为第一摄像机,应用程序上所显示的虚拟环境画面将会从第二虚拟环境画面恢复显示为第一虚拟环境画面。

上述过程可以由用户在一局对战中触发执行多次。

综上所述,本实施例提供的方法,通过根据触发操作将第一摄像机切换为第二摄像机,第一摄像机采集到的第一虚拟环境画面是采用基于虚拟载具确定的第一视角所采集到的画面,第二摄像机采集到的第二虚拟环境画面是基于主控虚拟对象确定的第二视角所采集到的画面,从而使得虚拟环境画面中不存在或几乎不存在虚拟载具的遮挡,从而得到具有更好视野的虚拟环境画面。

本实施例提供的方法,还通过再次接收作用于触发控件上的触发操作,根据触发操作将第二虚拟环境画面恢复为第一虚拟环境画面,使得主控虚拟对象在乘坐虚拟载具时,退出状态而进入普通乘坐状态。在普通乘坐状态下,能够在第一虚拟环境画面中看到虚拟载具的行进状态,得到更多有关虚拟载具的行进信息。

按照乘坐位的分布方式,虚拟载具分为两类:

第一,仅包括内部乘坐位,不包括外部乘坐位;

虚拟载具是具有座舱的虚拟交通工具,虚拟载具的座舱内存在内部乘坐位。比如:驾驶位和非驾驶位。比如:四人位的虚拟汽车包括一个驾驶位和三个辅助驾驶位。在本申请的一些实施例中,内部乘坐位是指非驾驶位。位于驾驶位上的虚拟对象,不支持进入战斗状态(或战备状态)。

第二,同时包括内部乘坐位和外部乘坐位。

当虚拟载具包括装甲车、卡车、直升机或游艇时,虚拟载具不仅存在内部乘坐位,还存在外部乘坐位。外部乘坐位是位于座舱外部的乘坐位。

在一些虚拟载具中,当主控虚拟对象在座舱内时无法直接进入战斗状态。比如出于仿真需求,可能会被座舱内的玻璃所阻挡而无法射击。因此在将第一摄像机切换为第二摄像机之前,还需要调整主控虚拟对象的身体位置。

对于仅包括内部乘坐位的虚拟载具,上述步骤4031可实现成为如下步骤4031a和步骤4031b,如图8所示。

步骤4031a,根据触发操作控制主控虚拟对象位于上半身的部分身体模型探出虚拟载具;

在采用第一摄像机进行虚拟环境画面采集时,主控虚拟对象乘坐在虚拟载具的内部乘坐位,内部乘坐位是位于虚拟载具的座舱内的乘坐位。当接收到触发操作时,终端根据触发操作控制主控虚拟对象位于上半身的部分身体模型从窗户或座舱门探出虚拟载具的座舱,而下半身的部分身体模型保留在虚拟载具的座舱内。

步骤4031b,将第一摄像机切换为绑定至部分身体模型上的第二摄像机。

位于上半身的部分身体模型包括主控虚拟对象的头部、颈部和肩部中的至少一种。第二摄像机是绑定至主控虚拟对象的头部或颈部或肩部的摄像机。

在主控虚拟角色位于上半身的部分身体模型探出虚拟载具的座舱后,将第一摄像机切换为第二摄像机。

综上所述,本实施例提供的方法,通过先控制主控虚拟对象位于上半身的部分身体模型探出虚拟载具,再将第一摄像机切换为第二摄像机;能够较为真实地模拟现实环境中,主控虚拟对象在座舱窗口探身瞄准或射击的战术操作,具有较为逼真的仿真效果。

对于同时包括内部乘坐位和外部乘坐位的虚拟载具,上述步骤4031可实现成为如下步骤4031c和步骤4031d,如图9所示。

步骤4031c,根据触发操作将主控虚拟对象从虚拟载具的内部乘坐位切换至外部乘坐位,外部乘坐位是位于虚拟载具的座舱外部的乘坐位;

在采用第一摄像机进行虚拟环境画面采集时,主控虚拟对象乘坐在虚拟载具的内部乘坐位,内部乘坐位是位于虚拟载具的座舱内的乘坐位。当接收到触发操作时,终端根据触发操作控制主控虚拟对象将主控虚拟对象从虚拟载具的内部乘坐位切换至外部乘坐位。

在一些实施例中,外部乘坐位为至少两个,每个外部乘坐位具有各自的编号。终端根据触发操作在至少两个外部乘坐位上,确定出编号最小且处于空闲状态的目标外部乘坐位。将主控虚拟对象从虚拟载具的内部乘坐位切换为目标外部乘坐位。

在一些实施例中,当主控虚拟对象的内部乘坐位不是驾驶位时,根据触发操作将主控虚拟对象从虚拟载具的内部乘坐位切换至外部乘坐位。

步骤4031d,将第一摄像机切换为绑定至主控虚拟对象的身体模型上的第二摄像机。

乘坐在外部乘坐位的主控虚拟对象的身体模型上包括主控虚拟对象的头部、颈部和肩部中的至少一种。第二摄像机是绑定至主控虚拟对象的头部或颈部或肩部的摄像机。

在将主控虚拟角色从内部乘坐位切换至外部乘坐位后,将第一摄像机切换为第二摄像机。如图10所示,先将主控虚拟对象从虚拟直升机的内部乘坐位切换至外部乘坐位,然后将第一摄像机1切换至第二摄像机2之前,相应的第一虚拟环境画面111切换为第二虚拟环境画面113,或者,相应的第一虚拟环境画面111切换为过渡虚拟画面112,再次过渡虚拟画面112切换为第二虚拟环境画面113。

可选地,第二摄像机能够被用户所控制,比如用户使用转动视角控件对第二摄像机进行旋转,能够使得第二摄像机绕主控虚拟对象的四周进行旋转,从而以主控虚拟对象为基准点采集到不同视角方向的第二虚拟环境画面。

可选地,终端根据外部乘坐位在虚拟载具的所处方位,控制主控虚拟对象在未被虚拟载具的座舱所遮挡的有限旋转范围内旋转第二视角的视角方向。比如,当外部乘坐位是位于虚拟载具左侧的乘坐位时,控制主控虚拟对象在左侧180度的有限旋转范围内旋转第二视角的视角方向;又比如,当外部乘坐位是位于虚拟载具右侧的乘坐位时,控制主控虚拟对象在右侧180度的有限旋转范围内旋转第二视角的视角方向,如图12所示。

综上所述,本实施例提供的方法,通过根据触发操作将主控虚拟对象从虚拟载具的内部乘坐位切换至外部乘坐位,再将第一摄像机切换为第二摄像机;能够较为真实地模拟现实环境中,主控虚拟对象在座舱外部的外部乘坐位上进行瞄准或射击的战术操作,具有较为逼真的仿真效果。

在一个示例中,虚拟直升机包括了8个乘坐位,如图12所示:

a类:驾驶位,如图12中的1号乘坐位;

b类:内部乘坐位(不允许射击),如图11中的2号乘坐位、3号乘坐位、4号乘坐位;

c类:位于左侧起落架的左侧外部乘坐位(允许朝左边射击),如图12中的5号乘坐位、6号乘坐位;

d类:位于右侧起落架的右侧外部乘坐位(允许朝右边射击),如图12中的7号乘坐位、8号乘坐位。

以上述虚拟环境是战术竞技游戏的游戏客户端为例,图13示出了本申请一个示例性实施例提供的战术竞技游戏中在飞行器内进行射击的视角切换方案。

步骤1301,乘坐直升机;

玩家能够控制战术竞技游戏中的游戏角色在虚拟战场中乘坐虚拟直升机。

步骤1302,在直升机内;

游戏客户端在接收到玩家的操作后,控制游戏角色乘坐在虚拟直升机内。

步骤1303,在bcd类位置点击探头按钮或射击按钮;

当游戏角色在b类(内部乘坐位)、c类(左侧外部乘坐位)、d类(右侧外部乘坐位)时,玩家可以点击游戏客户端上显示的探头按钮或射击按钮或开镜按钮。

其中,探头按钮是用于控制游戏角色将上半身探出虚拟直升机的按钮。射击按钮是用于控制游戏角色向瞄准位置进行射击的按钮。开镜按钮是用于控制游戏角色使用瞄准镜进行瞄准的按钮。

步骤1304,默认位置不变或自动切换到射击位;

当游戏角色在b类乘坐位时,若玩家点击探头按钮或射击按钮或开镜按钮,则游戏客户端自动将游戏角色切换到c类或d类射击位。比如,自动将游戏角色切换到c类或d类射击位中最近的一个射击位。

当游戏角色在c类或d类乘坐位时,若玩家点击探头按钮或射击按钮或开镜按钮,则保持游戏角色的默认乘坐位不变。

步骤1305,切换一个新的摄像机;

游戏客户端将原来基于载具确定的摄像机(简称默认摄像机),切换为游戏角色的肩膀附近的摄像机(简称肩射摄像机)。也即,通过游戏角色的肩膀附近的摄像机所观察到的虚拟环境画面,作为游戏客户端上所显示的虚拟环境画面。

步骤1306,在直升机射击位获得一个肩射视角;

玩家在游戏客户端上所显示的虚拟环境画面中,得到游戏角色在直升机射击位处的一个肩射视角。

步骤1307,再次点击探头或换位到直升机内;

玩家可以再次点击探头按钮或换位按钮,控制游戏角色换位到直升机内。

步骤1308,切换回默认摄像机;

游戏客户端将肩射摄像机切换会默认摄像机。也即,通过基于载具确定的摄像机所观察到的虚拟环境画面,作为游戏客户端上所显示的虚拟环境画面。

步骤1309,恢复默认状态。

下面对上述图中的若干个步骤进行说明。

1、虚拟直升机中的换位逻辑:

在乘坐虚拟直升机时,虚拟直升机提供了8个乘坐位。其中,左侧的5号乘坐位和6号乘坐位是可以进行射击的位置,右侧的7号乘坐位和8号乘坐位是可以进行射击的。

当游戏角色乘坐在虚拟直升机内部的2、3、4号乘坐位(1号驾驶位不允许探头/射击/开镜瞄准)时,若玩家点击了探头按钮或射击按钮或开镜瞄准按钮,则游戏客户端将游戏角色自动切换至5、6、7、8中的某一个乘坐位。

在一个示例中,游戏客户端会按顺序将游戏角色切换到5、6、7、8中的某一个位置。也即,先判断5号乘坐位是否存在其它游戏角色,若不存在,则将游戏角色切换至5号乘坐位;若存在,则继续判断6号乘坐位是否存在其它游戏角色,若不存在,则将游戏角色切换至6号乘坐位;若存在,则继续判断7号乘坐位是否存在其它游戏角色,若不存在,则将游戏角色切换至7号乘坐位;若存在,则继续判断8号乘坐位是否存在其它游戏角色,若不存在,则将游戏角色切换至8号乘坐位。

当游戏角色乘坐在虚拟直升机上时,右下方显示有换位控件,该换位控件上显示有玩家当前所在的乘坐位。当玩家点击换位控件时,可以快速切换游戏角色的乘坐位。

2、摄像机切换;

1)、在游戏角色的三维模型上选择一个合适的绑定位置。由于游戏角色在虚拟直升机上会可能会有向下俯身射击的动作,此时摄像机的镜头偏移较大,因此选择游戏角色的脖子部位作为摄像机的绑定位置相对合理,摄像机的偏移会显得较为自然。

2)、选择合适的摄像机的偏移距离和弹簧臂长度。

在战术竞技游戏中的地图中存在世界坐标系。该世界坐标系是三维坐标系。该世界坐标系以地图中的某一点为原点。xy两个坐标轴所在的平面对应水平面,z轴是垂直于水平面对应高度。

假设游戏角色的三维模型中,颈部在世界坐标系中的实时坐标为(x1,y1,z1),设定第二摄像机相对于颈部的偏移为(δx,δy,δz)。

则切换后的第二摄像机位置为(x1+δx,y1+δy,z1+δz)。

设定第二摄像机的弹簧臂长度为l。

例:在第二摄像机挂载在游戏角色的脖子时,设定δx=0,δy=0,δz=25cm,l=30cm。

此时即为在直升机射击位上较为合理的摄像机。

3、摄像机角度限制;

当游戏角色处于虚拟直升机的左侧外部乘坐位或右侧外部乘坐位时,存在射击角度的限制。假设x轴的正方向为默认方向,游戏角色只可从默认方向开始绕z轴正负90度旋转。同时,摄像机的旋转角度和游戏角色的旋转角度一致,保持了射击操作的合理性。

以下为本申请实施例提供的装置实施例,对于装置实施例中未详细描述的细节,可以参考上述一一对应的方法实施例。

图14示出了本申请一个示例性实施例提供的一种虚拟环境中的视角切换装置的框图。所述装置中运行有支持虚拟环境的应用程序,所述装置包括:

显示模块1420,用于显示主控虚拟对象乘坐在虚拟载具上的第一虚拟环境画面,所述第一虚拟环境画面是采用基于所述虚拟载具确定的第一视角所采集到的画面,所述第一虚拟环境画面上叠加有触发控件;

接收模块1440,用于接收作用于所述触发控件上的触发操作;

切换模块1460,用于根据所述触发操作将所述第一虚拟环境画面切换显示为第二虚拟环境画面,所述第二虚拟环境画面是基于所述主控虚拟对象确定的第二视角所采集到的画面。

在一个可选的实施例中,所述切换模块1460,用于根据所述触发操作将第一摄像机切换为第二摄像机,所述第一摄像机是绑定至所述虚拟载具的摄像机,所述第二摄像机是绑定至所述主控虚拟对象的摄像机;获取所述第二摄像机按照所述第二视角对所述虚拟环境采集得到的第二虚拟环境画面;将所述第一虚拟环境画面切换显示为所述第二虚拟环境画面。

在一个可选的实施例中,所述第二摄像机是绑定在所述主控虚拟对象的头部位置的摄像机;或,所述第二摄像机是绑定在所述主控虚拟对象的颈部位置的摄像机;或,所述第二摄像机是绑定在所述主控虚拟对象的肩部位置的摄像机。

在一个可选的实施例中,所述主控虚拟对象乘坐在所述虚拟载具的内部乘坐位;所述切换模块1460,用于根据所述触发操作控制所述主控虚拟对象位于上半身的部分身体模型探出所述虚拟载具;将所述第一摄像机切换为绑定至所述部分身体模型上的所述第二摄像机。

在一个可选的实施例中,所述主控虚拟对象乘坐在所述虚拟载具的内部乘坐位;所述切换模块1460,用于根据所述触发操作将所述主控虚拟对象从所述虚拟载具的内部乘坐位切换至外部乘坐位,所述外部乘坐位是位于所述虚拟载具的座舱外部的乘坐位;将所述第一摄像机切换为绑定至所述主控虚拟对象的身体模型上的所述第二摄像机。

在一个可选的实施例中,所述外部乘坐位为至少两个,每个所述外部乘坐位具有各自的编号;所述切换模块1460,用于根据所述触发操作在至少两个所述外部乘坐位上,确定出所述编号最小且处于空闲状态的目标外部乘坐位;将所述主控虚拟对象从所述虚拟载具的内部乘坐位切换至所述目标外部乘坐位。

在一个可选的实施例中,所述切换模块1460,用于当所述主控虚拟对象的内部乘坐位不是驾驶位时,根据所述触发操作将所述主控虚拟对象从所述虚拟载具的内部乘坐位切换至外部乘坐位。

在一个可选的实施例中,所述装置还包括:旋转模块1480;

所述旋转模块1480,用于根据所述外部乘坐位在所述虚拟载具的所处方位,控制所述主控虚拟对象在未被所述虚拟载具的座舱所遮挡的有限旋转范围内旋转所述第二视角的视角方向。

在一个可选的实施例中,所述接收模块1440,用于再次接收作用于所述触发控件上的触发操作;所述切换模块1460,用于根据所述触发操作将所述第二虚拟环境画面恢复显示为所述第一虚拟环境画面。

在一个可选的实施例中,所述触发控件包括:瞄准控件、射击控件和探头控件中的至少一种;

所述瞄准控件是用于控制所述主控虚拟对象使用虚拟武器进行瞄准的控件;

所述射击控件是用于控制所述主控虚拟对象使用虚拟武器进行射击的控件;

所述探头控件是用于控制所述主控虚拟对象的全部或部分身体模型探出所述虚拟载具的座舱的控件。

需要说明的是:上述实施例提供的装置在虚拟环境中进行视角切换时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的身份识别装置,与身份识别方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图15示出了本申请一个实施例提供的终端1500的结构框图。该终端1500可以是手机、平板电脑、智能电视、多媒体播放设备、可穿戴设备、台式电脑、服务器等电子设备。该终端1500可用于实施上述实施例中提供的身份识别方法、第一对抗生成网络的训练方法、第二对抗生成网络的训练方法中的任意一种。

通常,终端1500包括有:处理器1501和存储器1502。

处理器1501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1501可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(fieldprogrammablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1501可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1501还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1501所执行以实现本申请中方法实施例提供的虚拟环境中的视角切换方法。

在一些实施例中,终端1500还可选包括有:外围设备接口1503和至少一个外围设备。处理器1501、存储器1502和外围设备接口1503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1503相连。具体地,外围设备可以包括:显示屏1504、音频电路1505、通信接口1506和电源1507中的至少一种。

本领域技术人员可以理解,图15中示出的结构并不构成对终端1500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集。所述至少一条指令、至少一段程序、代码集或指令集经配置以由所述处理器执行,以实现上述虚拟环境中的视角切换方法。

在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被终端的处理器执行时实现上述虚拟环境中的视角切换方法。可选地,上述计算机可读存储介质可以是rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、cd-rom(compactdiscread-onlymemory,只读光盘)、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述虚拟环境中的视角切换方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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