CN111589141B - 虚拟环境画面的显示方法、装置、设备及介质 - Google Patents
虚拟环境画面的显示方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111589141B CN111589141B CN202010409335.4A CN202010409335A CN111589141B CN 111589141 B CN111589141 B CN 111589141B CN 202010409335 A CN202010409335 A CN 202010409335A CN 111589141 B CN111589141 B CN 111589141B
- Authority
- CN
- China
- Prior art keywords
- virtual environment
- lens height
- threshold
- virtual
- recommended
- 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.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
- A63F13/525—Changing parameters of virtual cameras
- A63F13/5258—Changing parameters of virtual cameras by dynamically adapting the position of the virtual camera to keep a game object or game character in its viewing frustum, e.g. for tracking a character or a ball
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/30—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
- A63F2300/308—Details of the user interface
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种虚拟环境画面的显示方法、装置、设备及介质,涉及虚拟环境领域。该方法包括:显示第一虚拟环境画面,所述第一虚拟环境画面是以第一虚拟对象为中心且具有当前镜头高度的观察视角对所述虚拟环境进行观察得到的画面;根据第二虚拟对象与所述第一虚拟对象之间的角色距离确定推荐镜头高度;控制所述观察视角的镜头高度从所述当前镜头高度变化为所述推荐镜头高度;显示第二虚拟环境画面,所述第二虚拟环境画面是以所述第一虚拟对象为中心且具有所述推荐镜头高度的观察视角对所述虚拟环境进行观察得到的画面。本申请可以动态改变摄像机模型的镜头高度,从而动态改变虚拟环境画面中的视野大小。
Description
技术领域
本申请实施例涉及虚拟环境领域,特别涉及一种虚拟环境画面的显示方法、装置、设备及介质。
背景技术
对战游戏是多个用户账号在同一场景内进行竞技的游戏。可选地,对战游戏可以是多人在线战术竞技游戏(Multiplayer Online Battle Arena Games,MOBA)。
典型的MOBA游戏中存在一个三维虚拟环境,分属两个敌对阵营的多个虚拟对象在该三维虚拟环境中进行活动,以占领敌对阵营的阵地。每个用户使用客户端控制三维虚拟环境中的一个虚拟对象。对于任意一个客户端所显示的游戏画面,是由该虚拟对象对应的摄像机模型在三维虚拟环境中采集的。通常情况下,摄像机模型设置在三维虚拟环境中离地面高度为h的位置,倾斜一定角度向下俯视采集图像。
上述摄像机模型所观察的视野范围有限,在游戏画面中所展示的信息有限。
发明内容
本申请实施例提供了一种虚拟环境画面的显示方法、装置、设备及介质,可以减少技能指示器在某些不必要情况下的显示,从而减少对虚拟环境画面的干扰。所述技术方案如下:
根据本申请的一个方面,提供了一种虚拟环境画面的显示方法,所述方法包括:
显示第一虚拟环境画面,所述第一虚拟环境画面是以第一虚拟对象为中心且具有当前镜头高度的观察视角对所述虚拟环境进行观察得到的画面;
根据第二虚拟对象与所述第一虚拟对象之间的角色距离确定推荐镜头高度;
响应于所述当前镜头高度与所述推荐镜头高度不同,控制所述观察视角的镜头高度从所述当前镜头高度变化为所述推荐镜头高度;
显示第二虚拟环境画面,所述第二虚拟环境画面是以所述第一虚拟对象为中心且具有所述推荐镜头高度的观察视角对所述虚拟环境进行观察得到的画面。
根据本申请的另一方面,提供了一种虚拟环境画面的显示装置,所述装置包括:
显示模块,用于显示第一虚拟环境画面,所述第一虚拟环境画面是以第一虚拟对象为中心且具有当前镜头高度的观察视角对所述虚拟环境进行观察得到的画面;
确定模块,用于根据第二虚拟对象与所述第一虚拟对象之间的角色距离确定推荐镜头高度;
控制模块,用于响应于所述当前镜头高度与所述推荐镜头高度不同,控制所述观察视角的镜头高度从所述当前镜头高度变化为所述推荐镜头高度;
所述显示模块,用于显示第二虚拟环境画面,所述第二虚拟环境画面是以所述第一虚拟对象为中心且具有所述推荐镜头高度的观察视角对所述虚拟环境进行观察得到的画面。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的虚拟环境画面的显示方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的虚拟环境画面的显示方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过根据第二虚拟对象与第一虚拟对象之间的角色距离确定推荐镜头高度;响应于当前镜头高度与推荐镜头高度不同,控制观察视角的镜头高度从当前镜头高度变化为推荐镜头高度,使得观察视角(也即摄像机模型)的镜头高度能够动态变化,从而为不同场景提供不同视野范围的虚拟环境画面,增加在某些场景的虚拟环境画面中的信息量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一个示例性实施例提供的计算机系统的结构框图;
图2是本申请另一个示例性实施例提供的状态同步技术的示意图;
图3是本申请另一个示例性实施例提供的帧同步技术的示意图;
图4是本申请另一个示例性实施例提供的虚拟环境画面的显示方法的界面示意图;
图5是本申请另一个示例性实施例提供的虚拟环境画面的显示方法的界面示意图;
图6是本申请另一个示例性实施例提供的虚拟环境画面的显示方法的方法流程图;
图7是本申请另一个示例性实施例提供的第一虚拟对象在不同镜头高度下的视野示意图;
图8是本申请另一个示例性实施例提供的角色距离和镜头高度之间的对应关系的示意图;
图9是本申请另一个示例性实施例提供的角色距离和镜头高度之间的对应关系的示意图;
图10是本申请另一个示例性实施例提供的第一阈值、第二阈值和第三阈值的设定方式的示意图;
图11是本申请另一个示例性实施例提供的第一阈值、第二阈值和第三阈值的设定方式的示意图;
图12是本申请另一个示例性实施例提供的第一阈值、第二阈值和第三阈值的设定方式的示意图;
图13是本申请另一个示例性实施例提供的第一阈值、第二阈值和第三阈值的设定方式的示意图;
图14是本申请另一个示例性实施例提供的虚拟环境画面的显示方法的方法流程图;
图15是本申请另一个示例性实施例提供的虚拟环境画面的显示方法的方法流程图;
图16是本申请另一个示例性实施例提供的虚拟环境画面的显示方法的方法流程图;
图17是本申请另一个示例性实施例提供的推荐镜头高度的插值示意图;
图18是本申请另一个示例性实施例提供的镜头高度更新过程的示意图;
图19是本申请另一个示例性实施例提供的虚拟环境画面的显示装置的框图;
图20是本申请另一个示例性实施例提供的终端的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真世界,也可以是半仿真半虚构的三维世界,还可以是纯虚构的三维世界。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种。可选地,该虚拟环境还用于至少两个虚拟对象之间的虚拟环境对战,在该虚拟环境中具有可供至少两个虚拟对象使用的虚拟资源。可选地,该虚拟环境包括对称的左下角区域和右上角区域,属于两个敌对阵营的虚拟对象分别占据其中一个区域,并以摧毁对方区域深处的目标建筑/据点/基地/水晶来作为胜利目标。
虚拟对象:是指在虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物中的至少一种。可选地,当虚拟环境为三维虚拟环境时,虚拟对象可以是三维虚拟模型,每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。可选地,虚拟对象是基于三维人体骨骼技术构建的三维角色,该虚拟对象通过穿戴不同的皮肤来实现不同的外在形象。在一些实现方式中,虚拟对象也可以采用2.5维或2维模型来实现,本申请实施例对此不加以限定。
多人在线战术竞技是指:在虚拟环境中,分属至少两个敌对阵营的不同虚拟队伍分别占据各自的地图区域,以某一种胜利条件作为目标进行竞技。该胜利条件包括但不限于:占领据点或摧毁敌对阵营据点、击杀敌对阵营的虚拟对象、在指定场景和时间内保证自身的存活、抢夺到某种资源、在指定时间内比分超过对方中的至少一种。战术竞技可以以局为单位来进行,每局战术竞技的地图可以相同,也可以不同。每个虚拟队伍包括一个或多个虚拟对象,比如1个、2个、3个或5个。
MOBA游戏:是一种在虚拟环境中提供若干个据点,处于不同阵营的用户控制虚拟对象在虚拟环境中对战,占领据点或摧毁敌对阵营据点的游戏。例如,MOBA游戏可将用户分成两个敌对阵营,将用户控制的虚拟对象分散在虚拟环境中互相竞争,以摧毁或占领敌方的全部据点作为胜利条件。MOBA游戏以局为单位,一局MOBA游戏的持续时间是从游戏开始的时刻至达成胜利条件的时刻。
用户界面UI(User Interface)控件,在应用程序的用户界面上能够看见(不排除不显示显示)的任何可视控件或元素,比如,图片、输入框、文本框、按钮、标签等控件,其中一些UI控件响应用户的操作,比如,技能控件,控制第一虚拟对象释放技能。用户触发技能控件,控制第一虚拟对象释放技能。
图1给出了本申请一个示例性实施例提供的计算机系统的结构框图。该计算机系统100包括:第一终端110、服务器120、第二终端130。
第一终端110安装和运行有支持虚拟环境的客户端111,该客户端111可以是多人在线对战程序。当第一终端运行客户端111时,第一终端110的屏幕上显示客户端111的用户界面。该客户端可以是军事仿真程序、大逃杀射击游戏、虚拟现实(Virtual Reality,VR)应用程序、增强现实(Augmented Reality,AR)程序、三维地图程序、虚拟现实游戏、增强现实游戏、第一人称射击游戏(First-person shooting game,FPS)、第三人称射击游戏(Third-Personal Shooting Game,TPS)、多人在线战术竞技游戏(Multiplayer Online BattleArena Games,MOBA)、策略游戏(Simulation Game,SLG)中的任意一种。在本实施例中,以该客户端是MOBA游戏来举例说明。第一终端110是第一用户112使用的终端,第一用户112使用第一终端110控制位于虚拟环境中的第一虚拟对象进行活动,第一虚拟对象可以称为第一用户112的第一虚拟对象。第一虚拟对象的活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、飞行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。示意性的,第一虚拟对象是第一虚拟人物,比如仿真人物角色或动漫人物角色。
第二终端130安装和运行有支持虚拟环境的客户端131,该客户端131可以是多人在线对战程序。当第二终端130运行客户端131时,第二终端130的屏幕上显示客户端131的用户界面。该客户端可以是军事仿真程序、大逃杀射击游戏、VR应用程序、AR程序、三维地图程序、虚拟现实游戏、增强现实游戏、FPS、TPS、MOBA、SLG中的任意一种,在本实施例中,以该客户端是MOBA游戏来举例说明。第二终端130是第二用户113使用的终端,第二用户113使用第二终端130控制位于虚拟环境中的第二虚拟对象进行活动,第二虚拟对象可以称为第二用户113的第一虚拟对象。示意性的,第二虚拟对象是第二虚拟人物,比如仿真人物角色或动漫人物角色。
可选地,第一虚拟人物和第二虚拟人物处于同一虚拟环境中。可选地,第一虚拟人物和第二虚拟人物可以属于同一个阵营、同一个队伍、同一个组织、具有好友关系或具有临时性的通讯权限。可选的,第一虚拟人物和第二虚拟人物可以属于不同的阵营、不同的队伍、不同的组织或具有敌对关系。
可选地,第一终端110和第二终端130上安装的客户端是相同的,或两个终端上安装的客户端是不同操作系统平台(安卓或IOS)上的同一类型客户端。第一终端110可以泛指多个终端中的一个,第二终端130可以泛指多个终端中的另一个,本实施例仅以第一终端110和第二终端130来举例说明。第一终端110和第二终端130的设备类型相同或不同,该设备类型包括:智能手机、平板电脑、电子书阅读器、MP3播放器、MP4播放器、膝上型便携计算机和台式计算机中的至少一种。
图1中仅示出了两个终端,但在不同实施例中存在多个其它终端140可以接入服务器120。可选地,还存在一个或多个终端140是开发者对应的终端,在终端140上安装有支持虚拟环境的客户端的开发和编辑平台,开发者可在终端140上对客户端进行编辑和更新,并将更新后的客户端安装包通过有线或无线网络传输至服务器120,第一终端110和第二终端130可从服务器120下载客户端安装包实现对客户端的更新。
第一终端110、第二终端130以及其它终端140通过无线网络或有线网络与服务器120相连。
服务器120包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器120用于为支持三维虚拟环境的客户端提供后台服务。可选地,服务器120承担主要计算工作,终端承担次要计算工作;或者,服务器120承担次要计算工作,终端承担主要计算工作;或者,服务器120和终端之间采用分布式计算架构进行协同计算。
在一个示意性的例子中,服务器120包括处理器122、用户账号数据库123、对战服务模块124、面向用户的输入/输出接口(Input/Output Interface,I/O接口)125。其中,处理器122用于加载服务器121中存储的指令,处理用户账号数据库123和对战服务模块124中的数据;用户账号数据库123用于存储第一终端110、第二终端130以及其它终端140所使用的用户账号的数据,比如用户账号的头像、用户账号的昵称、用户账号的战斗力指数,用户账号所在的服务区;对战服务模块124用于提供多个对战房间供用户进行对战,比如1V1对战、3V3对战、5V5对战等;面向用户的I/O接口125用于通过无线网络或有线网络和第一终端110和/或第二终端130建立通信交换数据。
服务器120可以采用同步技术使得多个客户端之间的画面表现一致。示例性的,服务器120采用的同步技术包括:状态同步技术或帧同步技术。
状态同步技术
在基于图1的可选实施例中,服务器120采用状态同步技术与多个客户端之间进行同步。在状态同步技术中,如图2所示,战斗逻辑运行在服务器120中。当虚拟环境中的某个虚拟对象发生状态变化时,由服务器120向所有的客户端,比如客户端1至10,发送状态同步结果。
在一个示例性的例子中,客户端1向服务器120发送请求,该请求用于请求虚拟对象1释放霜冻技能,则服务器120判断该霜冻技能是否允许释放,以及在允许释放该霜冻技能时,对其他虚拟对象2的伤害值是多少。然后,服务器120将技能释放结果发送给所有的客户端,所有的客户端根据技能释放结果更新本地数据以及界面表现。
帧同步技术
在基于图1的可选实施例中,服务器120采用帧同步技术与多个客户端之间进行同步。在帧同步技术中,如图3所示,战斗逻辑运行在各个客户端中。每个客户端会向服务器发送帧同步请求,该帧同步请求中携带有客户端本地的数据变化。服务器120在接收到某个帧同步请求后,向所有的客户端转发该帧同步请求。每个客户端接收到帧同步请求后,按照本地的战斗逻辑对该帧同步请求进行处理,更新本地数据以及界面表现。
结合上述对虚拟环境的介绍以及实施环境说明,对本申请实施例提供的虚拟环境画面的显示方法进行说明,以该方法的执行主体为图1所示出的终端上运行的客户端来举例说明。该终端运行有客户端,该客户端是支持虚拟环境的应用程序。
结合参考图4,在基于虚拟环境的竞技过程中,客户端显示有用户界面。示意性的用户界面包括:虚拟环境画面22和HUD(Head Up Display,抬头显示)面板24。虚拟环境画面22是采用虚拟对象26对应的视角对虚拟环境进行观察得到的画面。HUD面板24包括有多个人机交互控件,比如移动控件、三个或四个技能释放控件和攻击按钮等。
示意性的,每个虚拟对象在虚拟环境中存在一一对应的摄像机模型。图4中的虚拟对象26对应有摄像机模型28。摄像机模型28的观察中心(或焦点)是虚拟对象26。当虚拟对象26在虚拟环境中移动时,摄像机模型28会跟随虚拟对象26的移动而移动。摄像机模型28相对于虚拟对象26具有镜头高度。摄像机模型28以倾斜角度向下俯视虚拟对象26。
摄像机模型28在虚拟环境中采集到的画面,即为客户端上显示的虚拟环境画面22。
本申请实施例提供了一种对摄像机模型28的镜头高度进行动态改变的方案,从而实现对虚拟环境画面22的视野进行动态改变,使得用户在战斗场景下获取较大的视野范围,看到更多其他虚拟对象的信息;在非战斗场景下获取较小,更清晰地看到虚拟环境中的物体。
在如图5所示的示例中,以第一虚拟对象26为中心,将屏幕显示区域划分为三个区域:区域A、区域B和区域C。区域C>区域B>区域A。
当第二虚拟对象29在区域C时,用户需要较大的视野范围,将摄像机模型28的镜头高度抬升至较高的第二高度,如图5中的(a)所示。
当第二虚拟对象29在区域A时,用户需要较小的视野范围,将摄像机模型28的镜头高度保持在较小的第一高度,如图5中的(c)所示。
当第二虚拟对象29在区域B时,区域B为过渡区域。根据第二虚拟对象29距离区域A(或区域C)的距离,等比例将摄像机模型28的镜头高度设置为第一高度和第二高度之间的第三高度,如图5中的(b)所示。离区域C越近,镜头高度越高;离区域A越近,镜头高度越低。
当区域A至C中存在多个第二虚拟对象29时,每个第二虚拟对象29引起的镜头高度变化独立计算,最终选取多个镜头高度中的一个镜头高度即可。比如,选取多个镜头高度中最大的镜头高度,或,选取多个镜头高度中最小的镜头高度,或,计算多个镜头高度中的平均镜头高度,将平均镜头高度确定为最小的镜头高度。
当区域A至C内都没有第二虚拟对象29时,将摄像机模型28的镜头高度保持在较小的第一高度。当区域A至C内存在第二虚拟对象29时,将摄像机模型28的镜头高度与角色距离按照正比例关系进行动态改变。
可选地,上述镜头高度的变化过程,还具有以下属性:
1、只有第一虚拟角色存活的过程中,才会由第二虚拟角色触发摄像机模型28的镜头高度的自动升降。若第一虚拟角色的生命值为零(死亡或待复活状态)时,摄像机模型28的镜头高度会保持为正常高度。
2、在摄像机模型28的镜头高度的变化过程中,客户端可以自定义运动方式和速度。
图6示出了本申请一个示例性实施例提供的虚拟环境画面的显示方法的流程图。本实施例以该方法应用于客户端中来举例说明。该方法包括:
步骤602,显示第一虚拟环境画面,第一虚拟环境画面是以第一虚拟对象为中心且具有当前镜头高度的观察视角对虚拟环境进行观察得到的画面;
第一虚拟对象是由客户端控制的虚拟对象,但不排除第一虚拟对象是由其它客户端或人工智能模块控制的可能性。客户端根据接收到的用户操作(或称人机操作)控制第一虚拟对象在虚拟环境中的活动。示例性的,第一虚拟对象在虚拟环境中的活动包括:行走、跑动、跳跃、攀爬、趴下、攻击、释放技能、捡拾道具、发送消息中的至少一种。
第一虚拟环境画面是以第一虚拟对象为中心且具有第一镜头高度的观察视角对虚拟环境进行观察得到的画面。示例性的,虚拟环境画面是对三维虚拟环境进行画面采集后,显示在客户端上的二维画面。示例性的,虚拟环境画面的形状根据终端的显示屏的形状来确定,或,根据客户端的用户界面的形状确定。以终端的显示屏是矩形为例,虚拟环境画面也显示为矩形画面。
虚拟环境中设置有与第一虚拟对象绑定的摄像机模型,第一镜头高度是摄像机模型相对于第一虚拟对象的。第一虚拟环境画面是该摄像机模型以虚拟环境中的某个观察位置为观察中心所拍摄的画面。观察中心是第一虚拟环境画面的中心。以第一虚拟环境画面是矩形画面为例,在第一虚拟环境画面中矩形对角线的交点即为观察中心。通常情况下,与第一虚拟对象绑定的摄像机模型是以第一虚拟对象作为观察中心的,则第一虚拟对象在虚拟环境中所处的位置即为观察位置。观察位置是虚拟环境中的坐标位置。当虚拟环境是三维虚拟环境时,观察位置是三维坐标。示例性的,若虚拟环境中的地面是水平面,则观察位置的高度坐标为0,则可以将观察位置近似的表示为水平面上的二维坐标。
当前镜头高度是第一镜头高度和第二镜头高度之间的任意值。示意性的,第一镜头高度是预设的最小镜头高度,第二镜头高度是预设的最大镜头高度。可选地,第一镜头高度是摄像机模型的默认高度或普通高度。在初始情况下,摄像机模型的当前镜头高度等于第一镜头高度。
步骤604,根据第二虚拟对象与第一虚拟对象之间的角色距离确定推荐镜头高度;
在一个示例中,客户端获取对应关系,该对应关系包括角色距离和推荐镜头高度之间的关系。客户端根据角色距离和对应关系,确定出推荐镜头高度。可选地,该对应关系包括角色距离和推荐镜头高度之间的正相关关系。
当前镜头高度和推荐镜头高度相同,或,当前镜头高度和推荐镜头高度不同。
响应于当前镜头高度和推荐镜头高度相同时,保持摄像机模型的镜头高度不变;响应于当前镜头高度和推荐镜头高度不同时,控制摄像机模型的镜头高度变化为推荐镜头高度。
步骤606,响应于当前镜头高度与推荐镜头高度不同,控制观察视角的镜头高度从当前镜头高度变化为推荐镜头高度;
客户端控制摄像机模型的镜头高度从当前镜头高度瞬变或渐变为推荐镜头高度。以当前镜头高度渐变为推荐镜头高度为例,客户端按照预定运动方式控制摄像机模型的镜头高度,从当前镜头高度渐变为推荐镜头高度。预定运动方式包括但不限于:匀速运动、差值运动和平滑阻尼运动中的任意一种。
由于摄像机模型在虚拟环境画面中不可见,因此摄像机模型的镜头高度可等价理解为观察视角的镜头高度。
步骤608,显示第二虚拟环境画面,第二虚拟环境画面是以第一虚拟对象为中心且具有推荐镜头高度的观察视角对虚拟环境进行观察得到的画面。
在摄像机模型的镜头高度为推荐镜头高度时,显示第二虚拟环境画面。
以摄像机模型的镜头高度是从第一镜头高度渐变为推荐镜头高度为例,由于镜头高度可能是第一镜头高度至推荐镜头高度之间的中间值镜头高度,因此在第一虚拟环境画面至第二虚拟环境画面之间,客户端还可以显示其他虚拟环境画面,该其他虚拟环境画面是处于中间值镜头高度的摄像机模型所采集到的画面。
由于第一虚拟环境画面和第二虚拟环境画面不同,因此第一虚拟环境画面和第二虚拟环境画面的视野不同。视野不同包括但不限于:
1、同一个虚拟对象的大小在第一虚拟环境画面和第二虚拟环境画面中不同;
参考图7,当镜头高度较高时,虚拟对象72在虚拟环境画面中较小;当镜头高度较低时,虚拟对象72在虚拟环境画面中较大。
2、虚拟环境的地面可见范围在第一虚拟环境画面和第二虚拟环境画面中不同。
参考图7,当镜头高度较高时,虚拟环境的地面可见范围较大;当镜头高度较低时,虚拟环境的地面可见范围较小。图7中用三维虚拟环境中的同一个地面圆圈74的大小变化来表征地面可见范围的变化,但地面可见范围应当认为整个虚拟环境画面中。
综上所述,本实施例提供的方法,通过根据第二虚拟对象与第一虚拟对象之间的角色距离确定推荐镜头高度;响应于当前镜头高度与推荐镜头高度不同,控制观察视角的镜头高度从当前镜头高度变化为推荐镜头高度,使得观察视角(也即摄像机模型)的镜头高度能够动态变化,从而为不同场景提供不同视野范围的虚拟环境画面,增加在某些场景的虚拟环境画面中的信息量。
在基于图6的可选实施例中,角色距离和推荐镜头高度之间的正相关关系(在绝大部分区间中)如图8所示:
1、响应于角色距离小于第一阈值l1,确定推荐镜头高度为第一镜头高度l1;
2、响应于角色距离大于第一阈值l1且小于第二阈值l2,根据角色距离l在候选镜头高度区间中确定推荐镜头高度为第三镜头高度h3,候选镜头高度区间是位于第一镜头高度h1和第二镜头高度h2之间的镜头高度区间;
可选地,按照如下公式来计算得到第三镜头高度h3:
(h3-h1)/(h2-h1)=(l-l1)/(l2-l1)。
3、响应于角色距离大于第二阈值l2且小于第三阈值l3,确定推荐镜头高度为第二镜头高度h2;
第三阈值l3是根据屏幕边缘或虚拟环境的地图边缘设定的。在本实施例中,以第三阈值l3是略小于屏幕边缘的值为例来距离说明。在一些示例中,第三阈值l3也可以不设置,当角色距离大于第二阈值l2时,确定推荐镜头高度为第二镜头高度h2,如图9所示。
4、响应于角色距离大于第三阈值l3,确定推荐镜头高度为第一镜头高度h1。
其中,第一阈值小于第二阈值,第二阈值小于第三阈值,第二镜头高度大于第一镜头高度。
参考图8可知,在角色距离为0至l3的区间上,角色距离和镜头高度是呈正相关关系的。
需要说明的是,上述第一阈值、第二阈值、第三阈值中的每个阈值,可以是一个,或者按照不同方向划分的多个。以第一阈值为例,第一阈值可以为一个,不论第二虚拟角色相对于第一虚拟角色的哪个方位,第一阈值都固定不变。第一阈值也可以为两个:与屏幕水平方向对应的第一阈值,和,与屏幕竖直方向对应的第一阈值。
在一种设计中,角色距离是第二虚拟对象和第一虚拟对象在虚拟环境画面中的二维距离。第一阈值是基于第一虚拟环境画面中的矩形框或圆形框确定的。
在一个示例中,如图10所示,第一阈值是基于第一虚拟环境画面中的第一矩形框1确定的,第二阈值是基于第一虚拟环境画面中的第二矩形框2确定的,第三阈值是基于第一虚拟环境画面中的第三矩形框3确定的,第一矩形框1、第二矩形框2和第三矩形框3均是以第一虚拟对象为中心的矩形框,第一矩形框1小于第二矩形框2,第二矩形框2小于第三矩形框3。
在一个示例中,如图11所示,第一阈值是基于第一虚拟环境画面中的第一圆形框1确定的,第二阈值是基于第一虚拟环境画面中的第二圆形框2确定的,第三阈值是基于第一虚拟环境画面中的第三圆形框3确定的,第一圆形框1、第二圆形框2和第二圆形框3均是以第一虚拟对象为中心的圆形框,第一圆形框1小于第二圆形框2,第二圆形框2小于第三圆形框3。
在另一种设计中,角色距离是第二虚拟对象和第一虚拟对象在虚拟环境中的三维距离。
在一个示例中,如图12所示,第一阈值是基于虚拟环境中的第四矩形框4确定的,第二阈值是基于虚拟环境中的第五矩形框5确定的,第四阈值是基于虚拟环境中的第六矩形框6确定的,第四矩形框4、第五矩形框5和第六矩形框6是以第一虚拟对象26为中心,且位于虚拟环境中水平面上的矩形框,第四矩形框4小于第五矩形框5,第五矩形框5小于第六矩形框6;
在一个示例中,如图13所示,第一阈值是基于虚拟环境中的第四圆形框4确定的,第二阈值是基于虚拟环境中的第五圆形框5确定的,第四阈值是基于虚拟环境中的第六圆形框6确定的,第四圆形框4、第五圆形框5和第六圆形框6是以第一虚拟对象26为中心,且位于虚拟环境中水平面上的圆形框,第四圆形框4小于第五圆形框5,第五圆形框5小于第六圆形框6。
在基于图6的可选实施例中,步骤604之前还包括步骤603,如图14所示:
步骤603,响应于第一虚拟对象的生命值大于阈值,计算第二虚拟对象和第一虚拟对象之间的角色距离。
第一虚拟对象在虚拟环境中具有生命值。以阈值为0为例,当第一虚拟对象的生命值大于阈值时,客户端计算第二虚拟对象和第一虚拟对象之间的角色距离;当第一虚拟对象的生命值等于0(死亡状态或待复活状态)时,无需执行步骤603。
在一个示例中,第二虚拟对象是与第一虚拟对象属于不同阵营的虚拟对象。比如,第二虚拟对象是属于第一虚拟对象的敌方阵营的虚拟对象,或者,第二虚拟对象是属于中立阵营的虚拟对象。可选地,第二虚拟对象和第一虚拟对象是同一级别的虚拟对象,比如第二虚拟对象和第一虚拟对象都是英雄,而非小兵。
在一个示例中,客户端计算第二虚拟对象和第一虚拟对象在第一虚拟环境画面中的二维距离,确定为角色距离。客户端获取第一虚拟对象在虚拟环境中的第一三维坐标,以及获取第二虚拟对象在虚拟环境中的第二三维坐标。
客户端将第一三维坐标通过矩阵变换,变换为在第一虚拟环境画面的成像平面上的第一二维坐标;客户端将第二三维坐标通过矩阵变换,变换为在第一虚拟环境画面的成像平面上的第二二维坐标。按照平面上两点之间的距离计算公式,计算第一二维坐标和第二二维坐标在成像平面上的二维距离,作为角色距离。
在一个示例中,客户端计算第二虚拟对象和第一虚拟对象在虚拟环境中的三维距离,确定为角色距离。
客户端获取第一虚拟对象在虚拟环境中的第一三维坐标,以及获取第二虚拟对象在虚拟环境中的第二三维坐标。按照三维环境中两点之间的距离计算公式,计算第一三维坐标和第二三维坐标在虚拟环境的三维距离,作为角色距离。
综上所述,本实施例提供的方法,通过在第一虚拟对象处于存活期时,计算第一虚拟对象和第二虚拟对象之间的角色距离,进而调整摄像机模型的镜头高度,
本实施例提供的方法,还通过计算第一虚拟环境画面上的二维距离,作为第一虚拟对象和第二虚拟对象之间的角色距离,能够基于用户实际可见的视野范围进行合理判定,比如由于屏幕是矩形,利用三个不同的矩形框来根据出现在屏幕内的虚拟对象进行镜头高度的动态调整,符合用户的实际观察需求。
本实施例提供的方法,还通过计算虚拟环境的三维距离,作为第一虚拟对象和第二虚拟对象之间的角色距离,能够直接利用三维环境中的两个三维坐标来进行计算角色距离,从而减少计算量,缩短两个虚拟对象之间的角色距离的计算时间。
在基于图6的可选实施例中,第二虚拟对象是至少两个,客户端对每个第二虚拟对象分别执行步骤604至步骤608,计算出每个第二虚拟对象对应的推荐镜头高度,步骤608之后还包括步骤609,如图15所示:
步骤609,在至少两个第二虚拟对象对应的推荐镜头高度,确定出最终的推荐镜头高度。
设第二虚拟对象为n个,每个第二虚拟对象计算出一一对应的推荐镜头高度,共n个推荐镜头高度,n为大于1的整数。则采用如下三种方式中任意一种来计算:
在n个推荐镜头高度中选择最高的推荐镜头高度,确定为最终的推荐镜头高度;或,在n个推荐镜头高度中选择最小的推荐镜头高度,确定为最终的推荐镜头高度;或,计算n个推荐镜头高度的平均推荐镜头高度,确定为最终的推荐镜头高度。
在一个示例中,存在三个第二虚拟对象,分别位于区域A、区域B和区域C,则将最终的推荐镜头高度设置为第二高度,以便采用较大的视野对三个第二虚拟对象进行观察。
综上所述,本实施例提供的方法,通过在多个推荐镜头高度中确定出最终的推荐镜头高度,能够在存在多个第二虚拟对象时,综合确定出较为合理的推荐镜头高度,从而实现较强的适用性。
图16示出了本申请一个示意性实施例提供的虚拟环境画面的显示方法的流程图。该方法包括两个逻辑:推荐高度逻辑,和,镜头更新逻辑。在本实施例中,将推荐镜头高度简称为推荐高度,将当前镜头高度简称为当前高度。以客户端是MOBA游戏的游戏客户端为例,该方法包括:
步骤701,游戏更新主循环;
客户端按照帧间隔时间来更新游戏内的数据。比如,客户端按照每秒60帧或每秒24帧的频率与服务器采用帧同步技术进行数据同步。当每秒60帧时,帧间隔时间为1/60秒;当每秒24帧时,帧间隔时间为1/24秒。
一、推荐高度逻辑:
步骤702,设置推荐高度为默认的第一高度;
在每帧更新时的初始情况下,将推荐高度设置为默认的第一高度。可选地,客户端还对矩形A、矩形B和矩形C进行初始化。
首先,获取当前屏幕的矩形为RectScreen=(0,0,width,height),然后获取策划工程师配置的三个参数,分别表示RectA、RectB、RectC三个矩形相对屏幕矩形的偏移值,比如offsetA是配置给RectA的偏移值,那对应的RectA=(offsetA,offsetA,width–offsetA*2,height–offsetA*2)。客户端根据配置的offsetA、offsetB、offsetC三个参数初始化好三个矩形,等待下面步骤使用。
步骤703,遍历敌方英雄列表;
示例性的,敌方英雄列表包括5名敌方英雄。客户端对敌方英雄列表中的每个地方英雄计算推荐高度。
步骤704,判断遍历是否结束;
如果遍历结束,则返回步骤701;如果遍历未结束,则执行步骤705;
步骤705,将英雄的三维位置转换为屏幕位置;
每个英雄在虚拟环境中的三维位置需要转化成虚拟环境画面上的屏幕位置(也称UI位置)。但是需要注意的是,因为镜头高度一直在变化,所以将英雄的三维位置转化成屏幕位置时,需要将当前镜头矩阵做一个平移,平移到最低的第一高度的位置,这样才能保证在不同的镜头高度下计算出屏幕位置才能统一。
示意性的,设摄像机模型的当前镜头矩阵是上述公式中最左边的矩阵,摄像机模型在虚拟环境中的当前位置在p1点。假设摄像机模型在第一高度时,摄像机模型在虚拟环境中的p2点,可以计算向量(p2-p1),将向量(p2-p1)的向量代入上述公式中的(x,y,z),最终取得平移后的矩阵。平移后的矩阵是上述公式中最右边的矩阵。
在计算得到平移后的矩阵后,再通过三维环境到二维平面的矩阵换算可以计算得到与三维坐标对应的二维的屏幕位置。该二维平面是指镜头高度在第一高度时的第一成像平面。
步骤706,判断英雄的屏幕位置是否在矩形A范围内;
如果否,则执行步骤707;如果是,则计算出的推荐高度为第一高度,执行步骤711。
步骤707,判断英雄的屏幕位置是否在矩形C范围内;
如果是,则执行步骤708;如果否,则计算出的推荐高度为第一高度,执行步骤711。
步骤708,判断英雄的屏幕位置是否在矩形B范围内;
如果否,则执行步骤709;如果是,则执行步骤710。
步骤709,设置推荐高度为最大的第二高度;
步骤710,计算屏幕位置在矩形A与矩形B之间的值,插值得到推荐高度;
示意性的参考图17,采用如下公式计算得到推荐高度:
recommendHeight=(disA/(offsetB-offsetA))*(MAX_CAMERA_HEIGHT–MIN_CAMERA_HEIGHT)+MIN_CAMERA_HEIGHT;
其中,recommendHeight是推荐高度,disA是英雄的位置与矩形框A之间的最短距离,offsetB是矩形框B对应的偏移值,offsetA是矩形框A对应的偏移值,MAX_CAMERA_HEIGHT是第二高度,MIN_CAMERA_HEIGHT是第一高度。
步骤711,计算出的推荐高度是否大于存储的推荐高度;
用上述公式计算出的推荐高度与已经遍历的英雄的计算出的推荐高度比较,取其中较大者。
如果大于,则执行步骤712;如果不大于,则不做处理。
步骤712,将存储的推荐高度设置为计算出的推荐高度,继续循环。
二、镜头更新逻辑:
步骤713,推荐高度是否与当前高度相等;
如果不相等,则执行步骤714;如果相等,则执行步骤715。
步骤714,令当前高度=当前高度+固定速度*帧间隔时间。
客户端判断推荐高度与当前高度的差距是否小于预定值。该预定值为帧间隔时间乘以固定速度的值。如果差距比较小,那么直接设置当前高度为推荐高度,其逻辑如下:
If(|recommandHeight–curHeight|<deltaTime*SPEED)),令curHeight=recommandHegiht。
其中,recommandHeight是推荐高度,curHeight是当前高度,deltaTime是帧间隔时间,SPEED是固定速度。
如果差距比较大,则采用如下公式更新当前高度:
curHeight=curHegiht+(deltaTime*SPEED)*((recommandHeight–curHeight)<0?-1:1);
其中,0?-1:1用于确定curHeight的正负值。如果recommandheight-curheight小于0就取-1,其他情况取1。
结合参考图18,height就是计算得到的curHeight,摄像机模型的倾斜角度angel是用来作为镜头俯视往下看时的角度。客户端通过英雄角色(actor)的当前位置和当前高度,计算出摄像机模型在更新后的镜头位置,假设x轴并不会变化,只需要变化y与z轴,则计算公式如下:
cameraPos.x=ActorPos.x;
cameraPos.y=ActorPos.y+curHeight*cos(angle);
camearPos.z=ActorPos.z–curHeight*san(angle)。
其中,x轴,y轴,z轴的设置方式如图4中所示。
步骤715,镜头逻辑更新结束。
图19示出了本申请一个示意性实施例提供的虚拟环境画面的显示装置的框图。该装置包括:
显示模块1920,用于显示第一虚拟环境画面,所述第一虚拟环境画面是以第一虚拟对象为中心且具有当前镜头高度的观察视角对所述虚拟环境进行观察得到的画面;
确定模块1940,用于根据第二虚拟对象与所述第一虚拟对象之间的角色距离确定推荐镜头高度;
控制模块1960,用于响应于所述当前镜头高度与所述推荐镜头高度不同,控制所述观察视角的镜头高度从所述当前镜头高度变化为所述推荐镜头高度;
显示模块1920,用于显示第二虚拟环境画面,所述第二虚拟环境画面是以所述第一虚拟对象为中心且具有所述推荐镜头高度的观察视角对所述虚拟环境进行观察得到的画面。
在一个可选的实施例中,确定模块1940,用于获取对应关系,所述对应关系包括所述角色距离和所述推荐镜头高度之间的关系;根据所述角色距离和所述对应关系,确定出所述推荐镜头高度。可选地,所述对应关系包括所述角色距离和所述推荐镜头高度之间的正相关关系。
在一个可选的实施例中,确定模块1940,用于响应于所述角色距离小于第一阈值,确定所述推荐镜头高度为第一镜头高度;响应于所述角色距离大于所述第一阈值且小于第二阈值,根据所述角色距离在候选镜头高度区间中确定所述推荐镜头高度为第三镜头高度,所述候选镜头高度区间是位于所述第一镜头高度和所述第二镜头高度之间的镜头高度区间;响应于所述角色距离大于所述第二阈值且小于第三阈值,确定所述推荐镜头高度为所述第二镜头高度;其中,所述第一阈值小于所述第二阈值,所述第二阈值小于所述第三阈值,所述第二镜头高度大于所述第一镜头高度。
在一个可选的实施例中,显示模块1920,用于采用预设运动方式将摄像机模型的所述当前镜头高度改变为所述推荐镜头高度,所述摄像机模型是在所述虚拟环境中以所述第一虚拟对象为观察中心的模型;
将所述摄像机模型在所述虚拟环境中采集到的摄像机画面,显示为所述第二虚拟画面。
在一个可选的实施例中,n个所述第二虚拟对象对应n个推荐镜头高度,n为大于1的整数;
所述确定模块1940,还用于在所述n个推荐镜头高度中选择最高的推荐镜头高度,确定为最终的推荐镜头高度;或,在所述n个推荐镜头高度中选择最小的推荐镜头高度,确定为所述最终的推荐镜头高度;或,计算所述n个推荐镜头高度的平均推荐镜头高度,确定为所述最终的推荐镜头高度。
在一个可选的实施例中,所述第一阈值是基于所述第一虚拟环境画面中的第一矩形框确定的,所述第二阈值是基于所述第一虚拟环境画面中的第二矩形框确定的,所述第三阈值是基于所述第一虚拟环境画面中的第三矩形框确定的,所述第一矩形框、所述第二矩形框和所述第三矩形框均是以所述第一虚拟对象为中心且位于所述虚拟环境画面的成像平面上的矩形框,所述第一矩形框小于所述第二矩形框,所述第二矩形框小于所述第三矩形框;
或,所述第一阈值是基于所述第一虚拟环境画面中的第一圆形框确定的,所述第二阈值是基于所述第一虚拟环境画面中的第二圆形框确定的,所述第三阈值是基于所述第一虚拟环境画面中的第三圆形框确定的,所述第一圆形框、所述第二圆形框和所述第三圆形框均是以所述第一虚拟对象为中心且位于所述虚拟环境画面的成像平面上的圆形框,所述第一圆形框小于所述第二圆形框,所述第二圆形框小于所述第三圆形框;
或,所述第一阈值是基于所述虚拟环境中的第四矩形框确定的,所述第二阈值是基于所述虚拟环境中的第五矩形框确定的,所述第四阈值是基于所述虚拟环境中的第六矩形框确定的,所述第四矩形框、所述第五矩形框和所述第六矩形框是以所述第一虚拟对象为中心且位于所述虚拟环境中水平面上的矩形框,所述第四矩形框小于所述第五矩形框,所述第五矩形框小于所述第六矩形框;
或,所述第一阈值是基于所述虚拟环境中的第四圆形框确定的,所述第二阈值是基于所述虚拟环境中的第五圆形框确定的,所述第四阈值是基于所述虚拟环境中的第六圆形框确定的,所述第四圆形框、所述第五圆形框和所述第六圆形框是以所述第一虚拟对象为中心且位于虚拟环境中水平面上的圆形框,所述第四圆形框小于所述第五圆形框,所述第五圆形框小于所述第六圆形框。
在一个可选的实施例中,所述确定模块1940,用于响应于所述第一虚拟对象的生命值大于阈值,计算所述第二虚拟对象和所述第一虚拟对象之间的角色距离。
在一个可选的实施例中,所述确定模块1940,用于计算所述第二虚拟对象和所述第一虚拟对象在所述第一虚拟环境画面中的二维距离,确定为所述角色距离;或,计算所述第二虚拟对象和所述第一虚拟对象在所述虚拟环境中的三维距离,确定为所述角色距离。
在一个可选的实施例中,所述第二虚拟对象和所述第一虚拟对象是属于不同阵营的虚拟对象。
需要说明的是:上述实施例提供的虚拟环境画面的显示装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟环境画面的显示装置与虚拟环境画面的显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还提供了一种计算机设备(终端或服务器),该计算机设备包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的虚拟环境画面的显示方法。需要说明的是,该计算机设备可以是如下图20所提供的计算机设备。
图20示出了本申请一个示例性实施例提供的计算机设备2000的结构框图。该计算机设备2000可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备2000还可能被称为用户设备、便携式计算机设备、膝上型计算机设备、台式计算机设备等其他名称。
通常,计算机设备2000包括有:处理器2001和存储器2002。
处理器2001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器2001所执行以实现本申请中方法实施例提供的虚拟环境画面的显示方法。
在一些实施例中,计算机设备2000还可选包括有:外围设备接口2003和至少一个外围设备。处理器2001、存储器2002和外围设备接口2003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2003相连。具体地,外围设备包括:射频电路2004、触摸显示屏2005、摄像头2006、音频电路2007、定位组件2008和电源2009中的至少一种。
外围设备接口2003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器2001和存储器2002。在一些实施例中,处理器2001、存储器2002和外围设备接口2003被集成在同一芯片或电路板上;在一些其他实施例中,处理器2001、存储器2002和外围设备接口2003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2004可以通过至少一种无线通信协议来与其它计算机设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏2005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2005是触摸显示屏时,显示屏2005还具有采集在显示屏2005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2001进行处理。此时,显示屏2005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏2005可以为一个,设置计算机设备2000的前面板;在另一些实施例中,显示屏2005可以为至少两个,分别设置在计算机设备2000的不同表面或呈折叠设计;在再一些实施例中,显示屏2005可以是柔性显示屏,设置在计算机设备2000的弯曲表面上或折叠面上。甚至,显示屏2005还可以设置成非矩形的不规则图形,也即异形屏。显示屏2005可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件2006用于采集图像或视频。可选地,摄像头组件2006包括前置摄像头和后置摄像头。通常,前置摄像头设置在计算机设备的前面板,后置摄像头设置在计算机设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件2006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2001进行处理,或者输入至射频电路2004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备2000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2001或射频电路2004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2007还可以包括耳机插孔。
定位组件2008用于定位计算机设备2000的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件2008可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源2009用于为计算机设备2000中的各个组件进行供电。电源2009可以是交流电、直流电、一次性电池或可充电电池。当电源2009包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备2000还包括有一个或多个传感器2010。该一个或多个传感器2010包括但不限于:加速度传感器2011、陀螺仪传感器2012、压力传感器2013、指纹传感器2014、光学传感器2015以及接近传感器2016。
加速度传感器2011可以检测以计算机设备2000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器2011可以用于检测重力加速度在三个坐标轴上的分量。处理器2001可以根据加速度传感器2011采集的重力加速度信号,控制触摸显示屏2005以横向视图或纵向视图进行用户界面的显示。加速度传感器2011还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器2012可以检测计算机设备2000的机体方向及转动角度,陀螺仪传感器2012可以与加速度传感器2011协同采集用户对计算机设备2000的3D动作。处理器2001根据陀螺仪传感器2012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器2013可以设置在计算机设备2000的侧边框和/或触摸显示屏2005的下层。当压力传感器2013设置在计算机设备2000的侧边框时,可以检测用户对计算机设备2000的握持信号,由处理器2001根据压力传感器2013采集的握持信号进行左右手识别或快捷操作。当压力传感器2013设置在触摸显示屏2005的下层时,由处理器2001根据用户对触摸显示屏2005的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器2014用于采集用户的指纹,由处理器2001根据指纹传感器2014采集到的指纹识别用户的身份,或者,由指纹传感器2014根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器2001授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器2014可以被设置计算机设备2000的正面、背面或侧面。当计算机设备2000上设置有物理按键或厂商Logo时,指纹传感器2014可以与物理按键或厂商Logo集成在一起。
光学传感器2015用于采集环境光强度。在一个实施例中,处理器2001可以根据光学传感器2015采集的环境光强度,控制触摸显示屏2005的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏2005的显示亮度;当环境光强度较低时,调低触摸显示屏2005的显示亮度。在另一个实施例中,处理器2001还可以根据光学传感器2015采集的环境光强度,动态调整摄像头组件2006的拍摄参数。
接近传感器2016,也称距离传感器,通常设置在计算机设备2000的前面板。接近传感器2016用于采集用户与计算机设备2000的正面之间的距离。在一个实施例中,当接近传感器2016检测到用户与计算机设备2000的正面之间的距离逐渐变小时,由处理器2001控制触摸显示屏2005从亮屏状态切换为息屏状态;当接近传感器2016检测到用户与计算机设备2000的正面之间的距离逐渐变大时,由处理器2001控制触摸显示屏2005从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图20中示出的结构并不构成对计算机设备2000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的虚拟环境画面的显示方法。
本申请提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述各个方法实施例提供的虚拟环境画面的显示方法。
本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的虚拟环境画面的显示方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种虚拟环境画面的显示方法,其特征在于,所述方法包括:
显示第一虚拟环境画面,所述第一虚拟环境画面是以第一虚拟对象为中心且具有当前镜头高度的观察视角对虚拟环境进行观察得到的画面;
获取第二虚拟对象和所述第一虚拟对象在所述第一虚拟环境画面中的二维距离,确定为角色距离;所述角色距离是基于所述第一虚拟对象和所述第二虚拟对象的三维坐标转换至所述第一虚拟环境画面的成像平面上的二维坐标计算的;
响应于所述角色距离小于第一阈值,确定推荐镜头高度为第一镜头高度;
响应于所述角色距离大于所述第一阈值且小于第二阈值,根据所述角色距离在候选镜头高度区间中确定所述推荐镜头高度为第三镜头高度,所述候选镜头高度区间是位于所述第一镜头高度和第二镜头高度之间的镜头高度区间;
响应于所述角色距离大于所述第二阈值且小于第三阈值,确定所述推荐镜头高度为所述第二镜头高度;
响应于所述当前镜头高度与所述推荐镜头高度不同,控制所述观察视角的镜头高度从所述当前镜头高度变化为所述推荐镜头高度;
显示第二虚拟环境画面,所述第二虚拟环境画面是以所述第一虚拟对象为中心且具有所述推荐镜头高度的观察视角对所述虚拟环境进行观察得到的画面;
其中,所述第一阈值小于所述第二阈值,所述第二阈值小于所述第三阈值,所述第二镜头高度大于所述第一镜头高度,所述第一阈值是按照不同方向划分的多个阈值、所述第二阈值是按照不同方向划分的多个阈值、所述第三阈值是按照不同方向划分的多个阈值。
2.根据权利要求1所述的方法,其特征在于,所述显示第二虚拟环境画面,包括:
采用预设运动方式将摄像机模型的所述当前镜头高度改变为所述推荐镜头高度,所述摄像机模型是在所述虚拟环境中以所述第一虚拟对象为观察中心的模型;
将所述摄像机模型在所述虚拟环境中采集到的摄像机画面,显示为所述第二虚拟环境画面。
3.根据权利要求1所述的方法,其特征在于,n个所述第二虚拟对象对应n个推荐镜头高度,n为大于1的整数;
所述方法还包括:
在所述n个推荐镜头高度中选择最高的推荐镜头高度,确定为最终的推荐镜头高度;
或,在所述n个推荐镜头高度中选择最小的推荐镜头高度,确定为所述最终的推荐镜头高度;
或,计算所述n个推荐镜头高度的平均推荐镜头高度,确定为所述最终的推荐镜头高度。
4.根据权利要求1所述的方法,其特征在于,
所述第一阈值是基于所述第一虚拟环境画面中的第一矩形框确定的,所述第二阈值是基于所述第一虚拟环境画面中的第二矩形框确定的,所述第三阈值是基于所述第一虚拟环境画面中的第三矩形框确定的,所述第一矩形框、所述第二矩形框和所述第三矩形框均是以所述第一虚拟对象为中心且位于所述虚拟环境画面的成像平面上的矩形框,所述第一矩形框小于所述第二矩形框,所述第二矩形框小于所述第三矩形框;
或,
所述第一阈值是基于所述第一虚拟环境画面中的第一圆形框确定的,所述第二阈值是基于所述第一虚拟环境画面中的第二圆形框确定的,所述第三阈值是基于所述第一虚拟环境画面中的第三圆形框确定的,所述第一圆形框、所述第二圆形框和所述第三圆形框均是以所述第一虚拟对象为中心且位于所述虚拟环境画面的成像平面上的圆形框,所述第一圆形框小于所述第二圆形框,所述第二圆形框小于所述第三圆形框;
或,
所述第一阈值是基于所述虚拟环境中的第四矩形框确定的,所述第二阈值是基于所述虚拟环境中的第五矩形框确定的,所述第三阈值是基于所述虚拟环境中的第六矩形框确定的,所述第四矩形框、所述第五矩形框和所述第六矩形框是以所述第一虚拟对象为中心且位于所述虚拟环境中水平面上的矩形框,所述第四矩形框小于所述第五矩形框,所述第五矩形框小于所述第六矩形框;
或,
所述第一阈值是基于所述虚拟环境中的第四圆形框确定的,所述第二阈值是基于所述虚拟环境中的第五圆形框确定的,所述第三阈值是基于所述虚拟环境中的第六圆形框确定的,所述第四圆形框、所述第五圆形框和所述第六圆形框是以所述第一虚拟对象为中心且位于虚拟环境中水平面上的圆形框,所述第四圆形框小于所述第五圆形框,所述第五圆形框小于所述第六圆形框。
5.根据权利要求1至3任一所述的方法,其特征在于,所述获取第二虚拟对象和所述第一虚拟对象在所述第一虚拟环境画面中的二维距离,确定为角色距离,包括:
响应于所述第一虚拟对象的生命值大于阈值,获取所述第二虚拟对象和所述第一虚拟对象在所述第一虚拟环境画面中的二维距离,确定为所述角色距离。
6.根据权利要求1至3任一所述的方法,其特征在于,所述第二虚拟对象和所述第一虚拟对象是处于不同阵营的虚拟对象。
7.一种虚拟环境画面的显示装置,其特征在于,所述装置包括:
显示模块,用于显示第一虚拟环境画面,所述第一虚拟环境画面是以第一虚拟对象为中心且具有当前镜头高度的观察视角对所述虚拟环境进行观察得到的画面;
确定模块,用于计算第二虚拟对象和所述第一虚拟对象在所述第一虚拟环境画面中的二维距离,确定为角色距离,所述角色距离是基于所述第一虚拟对象和所述第二虚拟对象的三维坐标转换至所述第一虚拟环境画面的成像平面上的二维坐标计算的;响应于所述角色距离小于第一阈值,确定推荐镜头高度为第一镜头高度; 响应于所述角色距离大于所述第一阈值且小于第二阈值,根据所述角色距离在候选镜头高度区间中确定所述推荐镜头高度为第三镜头高度,所述候选镜头高度区间是位于所述第一镜头高度和第二镜头高度之间的镜头高度区间;响应于所述角色距离大于所述第二阈值且小于第三阈值,确定所述推荐镜头高度为所述第二镜头高度;
控制模块,用于响应于所述当前镜头高度与所述推荐镜头高度不同,控制所述观察视角的镜头高度从所述当前镜头高度变化为所述推荐镜头高度;
所述显示模块,用于显示第二虚拟环境画面,所述第二虚拟环境画面是以所述第一虚拟对象为中心且具有所述推荐镜头高度的观察视角对所述虚拟环境进行观察得到的画面;
其中,所述第一阈值小于所述第二阈值,所述第二阈值小于所述第三阈值,所述第二镜头高度大于所述第一镜头高度,所述第一阈值是按照不同方向划分的多个阈值、所述第二阈值是按照不同方向划分的多个阈值、所述第三阈值是按照不同方向划分的多个阈值。
8.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至6任一所述的虚拟环境画面的显示方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至6任一所述的虚拟环境画面的显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010409335.4A CN111589141B (zh) | 2020-05-14 | 2020-05-14 | 虚拟环境画面的显示方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010409335.4A CN111589141B (zh) | 2020-05-14 | 2020-05-14 | 虚拟环境画面的显示方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111589141A CN111589141A (zh) | 2020-08-28 |
CN111589141B true CN111589141B (zh) | 2023-05-16 |
Family
ID=72182694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010409335.4A Active CN111589141B (zh) | 2020-05-14 | 2020-05-14 | 虚拟环境画面的显示方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111589141B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112330823B (zh) * | 2020-11-05 | 2023-06-16 | 腾讯科技(深圳)有限公司 | 虚拟道具的显示方法、装置、设备及可读存储介质 |
CN112631748A (zh) * | 2020-12-18 | 2021-04-09 | 上海影创信息科技有限公司 | 局域网下多个vr设备计算任务分配的方法和系统 |
CN112619140B (zh) * | 2020-12-18 | 2024-04-26 | 网易(杭州)网络有限公司 | 游戏中位置的确定方法、装置及路径的调整方法、装置 |
CN112807698B (zh) * | 2020-12-31 | 2023-05-30 | 上海米哈游天命科技有限公司 | 拍摄位置的确定方法、装置、电子设备及存储介质 |
CN112843713B (zh) * | 2020-12-31 | 2023-04-18 | 上海米哈游天命科技有限公司 | 一种视野中心点的确定方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109675308A (zh) * | 2019-01-10 | 2019-04-26 | 网易(杭州)网络有限公司 | 游戏中的显示控制方法、装置、存储介质、处理器及终端 |
-
2020
- 2020-05-14 CN CN202010409335.4A patent/CN111589141B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111589141A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108619721B (zh) | 虚拟场景中的距离信息显示方法、装置及计算机设备 | |
CN111589128B (zh) | 基于虚拟场景的操作控件显示方法及装置 | |
WO2019153750A1 (zh) | 用于对虚拟环境进行视角切换的方法、装置、设备及存储介质 | |
CN112494955B (zh) | 虚拟对象的技能释放方法、装置、终端及存储介质 | |
CN111589141B (zh) | 虚拟环境画面的显示方法、装置、设备及介质 | |
CN111603770B (zh) | 虚拟环境画面的显示方法、装置、设备及介质 | |
CN111921197B (zh) | 对局回放画面的显示方法、装置、终端及存储介质 | |
CN111467802B (zh) | 虚拟环境的画面显示方法、装置、设备及介质 | |
CN111589127B (zh) | 虚拟角色的控制方法、装置、设备及存储介质 | |
CN112402949B (zh) | 虚拟对象的技能释放方法、装置、终端及存储介质 | |
CN111462307A (zh) | 虚拟对象的虚拟形象展示方法、装置、设备及存储介质 | |
CN111589133A (zh) | 虚拟对象控制方法、装置、设备及存储介质 | |
CN111744185B (zh) | 虚拟对象控制方法、装置、计算机设备及存储介质 | |
CN111672106B (zh) | 虚拟场景显示方法、装置、计算机设备及存储介质 | |
CN112604305A (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
CN113577765B (zh) | 用户界面的显示方法、装置、设备及存储介质 | |
CN112169330B (zh) | 虚拟环境的画面显示方法、装置、设备及介质 | |
CN113559495B (zh) | 虚拟对象释放技能的方法、装置、设备及存储介质 | |
CN111672102A (zh) | 虚拟场景中的虚拟对象控制方法、装置、设备及存储介质 | |
KR20210151850A (ko) | 가상 장면을 디스플레이하기 위한 방법 및 장치, 단말기, 및 저장 매체 | |
CN112691370A (zh) | 虚拟对局中投票结果的显示方法、装置、设备及存储介质 | |
CN111530075B (zh) | 虚拟环境的画面显示方法、装置、设备及介质 | |
CN111760281A (zh) | 过场动画播放方法、装置、计算机设备及存储介质 | |
CN113599819B (zh) | 提示信息的显示方法、装置、设备及存储介质 | |
CN114404972A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40027373 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |