虚拟环境的画面显示方法、装置、设备及介质与流程
本申请实施例涉及虚拟环境领域,特别涉及一种虚拟环境的画面显示方法、装置、设备及介质。
背景技术:
对战游戏是多个用户账号在同一场景内进行竞技的游戏。可选地,对战游戏可以是多人在线战术竞技游戏(multiplayeronlinebattlearenagames,moba)。
在一种典型的moba游戏中,客户端上显示的虚拟环境画面是以主控虚拟角色为观察中心,对虚拟环境进行观察得到的画面。即,摄像机与主控虚拟角色的位置进行绑定,摄像机随着主控虚拟角色位置的移动而移动,使摄像机始终位于主控虚拟角色的侧面上空,从而拍摄以主控虚拟角色的第三人称视角进行观察获得的虚拟环境画面。
上述方法,当敌方虚拟角色刚进入主控虚拟角色的视野范围内时,由于敌方虚拟角色位于视野范围边缘,虚拟环境画面中无法完整地显示出敌方虚拟角色的位置、状态、动作等画面信息。
技术实现要素:
本申请实施例提供了一种虚拟环境的画面显示方法、装置、设备及介质,可以在虚拟环境画面上更完整地显示敌方虚拟角色。所述技术方案如下:
一方面,提供了一种虚拟环境的画面显示方法,所述方法包括:
显示第一虚拟环境画面,所述第一虚拟环境画面是以第一观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第一虚拟环境画面包括在所述虚拟环境中位于第一位置的主控虚拟角色,所述第一观察位置是根据所述第一位置确定的;
显示第二虚拟环境画面,所述第二虚拟环境画面是以第二观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第二虚拟环境画面包括在所述虚拟环境中位于第二位置的所述主控虚拟角色和位于第三位置的目标虚拟角色,所述第二观察位置是根据所述第二位置确定的;
响应于所述第二虚拟环境画面包括所述目标虚拟角色,显示第三虚拟环境画面,所述第三虚拟环境画面是以第三观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第三虚拟环境画面包括在所述虚拟环境中位于所述第二位置的所述主控虚拟角色和位于所述第三位置的所述目标虚拟角色,所述第三观察位置是根据所述第二位置和所述第三位置确定的。
另一方面,提供了一种虚拟环境的画面显示装置,所述装置包括:
显示模块,用于显示第一虚拟环境画面,所述第一虚拟环境画面是以第一观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第一虚拟环境画面包括在所述虚拟环境中位于第一位置的主控虚拟角色,所述第一观察位置是根据所述第一位置确定的;
所述显示模块,还用于显示第二虚拟环境画面,所述第二虚拟环境画面是以第二观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第二虚拟环境画面包括在所述虚拟环境中位于第二位置的所述主控虚拟角色和位于第三位置的目标虚拟角色,所述第二观察位置是根据所述第二位置确定的;
所述显示模块,还用于响应于所述第二虚拟环境画面包括所述目标虚拟角色,显示第三虚拟环境画面,所述第三虚拟环境画面是以第三观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第三虚拟环境画面包括在所述虚拟环境中位于所述第二位置的所述主控虚拟角色和位于所述第三位置的所述目标虚拟角色,所述第三观察位置是根据所述第二位置和所述第三位置确定的。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的虚拟环境的画面显示方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的虚拟环境的画面显示方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述可选实现方式中提供的虚拟环境的画面显示方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过当虚拟环境画面上出现敌方虚拟角色时,根据敌方虚拟角色和主控虚拟角色的位置,重新确定虚拟环境画面的观察中心,根据新的观察中心来获取虚拟环境画面,使虚拟环境画面中可以完整地显示主控虚拟角色和敌方虚拟角色,便于用户观察敌方虚拟角色进而控制主控虚拟角色进行活动,提高虚拟环境画面对敌方虚拟角色显示的完整度,优化客户端对对局画面的显示方式。更完整的画面可以使用户更准确地控制主控虚拟角色攻击敌方虚拟角色,或,控制主控虚拟角色躲避敌方虚拟角色,因此,还可以提高用户控制主控虚拟角色的人机交互效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一个示例性实施例提供的计算机系统的结构框图;
图2是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的方法流程图;
图3是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的虚拟环境画面的示意图;
图4是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的方法流程图;
图5是本申请另一个示例性实施例提供的目标区域的示意图;
图6是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的方法流程图;
图7是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的摄像机模型的示意图;
图8是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的方法流程图;
图9是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的缠斗区域的示意图;
图10是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的方法流程图;
图11是本申请另一个示例性实施例提供的虚拟环境的画面显示方法的方法流程图;
图12是本申请另一个示例性实施例提供的虚拟环境的画面显示装置的装置框图;
图13是本申请另一个示例性实施例提供的终端的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真世界,也可以是半仿真半虚构的三维世界,还可以是纯虚构的三维世界。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种。可选地,该虚拟环境还用于至少两个虚拟角色之间的虚拟环境对战,在该虚拟环境中具有可供至少两个虚拟角色使用的虚拟资源。可选地,该虚拟环境包括对称的左下角区域和右上角区域,属于两个敌对阵营的虚拟角色分别占据其中一个区域,并以摧毁对方区域深处的目标建筑/据点/基地/水晶来作为胜利目标。
虚拟角色:是指在虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物中的至少一种。可选地,当虚拟环境为三维虚拟环境时,虚拟角色可以是三维虚拟模型,每个虚拟角色在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。可选地,虚拟角色是基于三维人体骨骼技术构建的三维角色,该虚拟角色通过穿戴不同的皮肤来实现不同的外在形象。在一些实现方式中,虚拟角色也可以采用2.5维或2维模型来实现,本申请实施例对此不加以限定。
多人在线战术竞技是指:在虚拟环境中,分属至少两个敌对阵营的不同虚拟队伍分别占据各自的地图区域,以某一种胜利条件作为目标进行竞技。该胜利条件包括但不限于:占领据点或摧毁敌对阵营据点、击杀敌对阵营的虚拟角色、在指定场景和时间内保证自身的存活、抢夺到某种资源、在指定时间内比分超过对方中的至少一种。战术竞技可以以局为单位来进行,每局战术竞技的地图可以相同,也可以不同。每个虚拟队伍包括一个或多个虚拟角色,比如1个、2个、3个或5个。
moba游戏:是一种在虚拟环境中提供若干个据点,处于不同阵营的用户控制虚拟角色在虚拟环境中对战,占领据点或摧毁敌对阵营据点的游戏。例如,moba游戏可将用户分成两个敌对阵营,将用户控制的虚拟角色分散在虚拟环境中互相竞争,以摧毁或占领敌方的全部据点作为胜利条件。moba游戏以局为单位,一局moba游戏的持续时间是从游戏开始的时刻至达成胜利条件的时刻。
ui(userinterface,用户界面)控件:是在应用程序的用户界面上能够看见的任何可视控件或元素,比如,图片、输入框、文本框、按钮、标签等控件,其中一些ui控件响应用户的操作,比如,移动控件,控制主控虚拟角色移动。本申请实施例中涉及的ui控件,包括但不限于:移动控件。
图1给出了本申请一个示例性实施例提供的计算机系统的结构框图。该计算机系统100包括:第一终端110、服务器120、第二终端130。
第一终端110安装和运行有支持虚拟环境的客户端111,该客户端111可以是多人在线对战程序。当第一终端运行客户端111时,第一终端110的屏幕上显示客户端111的用户界面。该客户端可以是军事仿真程序、大逃杀射击游戏、虚拟现实(virtualreality,vr)应用程序、增强现实(augmentedreality,ar)程序、三维地图程序、虚拟现实游戏、增强现实游戏、第一人称射击游戏(first-personshootinggame,fps)、第三人称射击游戏(third-personalshootinggame,tps)、多人在线战术竞技游戏(multiplayeronlinebattlearenagames,moba)、策略游戏(simulationgame,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/outputinterface,i/o接口)125。其中,处理器122用于加载服务器121中存储的指令,处理用户账号数据库123和对战服务模块124中的数据;用户账号数据库123用于存储第一终端110、第二终端130以及其它终端140所使用的用户账号的数据,比如用户账号的头像、用户账号的昵称、用户账号的战斗力指数,用户账号所在的服务区;对战服务模块124用于提供多个对战房间供用户进行对战,比如1v1对战、3v3对战、5v5对战等;面向用户的i/o接口125用于通过无线网络或有线网络和第一终端110和/或第二终端130建立通信交换数据。
结合上述对虚拟环境的介绍以及实施环境说明,对本申请实施例提供的虚拟环境的画面显示方法进行说明,以该方法的执行主体为图1所示出的终端上运行的客户端来举例说明。该终端运行有应用程序,该应用程序是支持虚拟环境的程序。
图2示出了本申请一个示例性实施例提供的虚拟环境的画面显示方法的流程图。该方法可以由上述图1中的任一终端上运行的客户端来执行,该客户端是支持虚拟环境的客户端。该方法包括:
步骤201,显示第一虚拟环境画面,第一虚拟环境画面是以第一观察位置为观察中心对虚拟环境进行观察得到的画面,第一虚拟环境画面包括在虚拟环境中位于第一位置的主控虚拟角色,第一观察位置是根据第一位置确定的。
示例性的,虚拟环境画面是对三维虚拟环境进行画面捕捉得到的显示在客户端上的二维画面。示例性的,虚拟环境画面的形状根据终端的显示屏的形状来确定,或,根据客户端的用户界面的形状确定。以终端的显示屏是矩形为例,虚拟环境画面也显示为矩形画面。
第一虚拟环境画面是以虚拟环境中的第一观察位置为观察中心得到的虚拟环境画面。观察中心是虚拟环境画面的中心。观察中心在虚拟环境中对应有观察位置。以虚拟环境画面是矩形画面为例,在虚拟画面中矩形对角线的交点即为观察中心,假设在虚拟环境画面中主控虚拟角色位于观察中心,则主控虚拟角色在虚拟环境中所处的位置即为观察位置。观察位置是虚拟环境中的坐标位置。当虚拟环境是三维虚拟环境时,观察位置是三维坐标。示例性的,若虚拟环境中的地面是水平面,则观察位置的高度坐标为0,则可以将观察位置近似的表示为水平面上的二维坐标。
以不同的观察位置为观察中心可以从虚拟环境中获取到不同的虚拟环境画面。第一虚拟环境画面是以第一观察位置为观察中心获取到的虚拟环境画面。第二虚拟环境画面是以第二观察位置为观察中心获取到的虚拟环境画面。第三虚拟环境画面是以第三观察位置为观察中心获取到的虚拟环境画面。
示例性的,以虚拟环境是三维虚拟环境为例,本实施例中存在三个坐标系。首先是位于三维虚拟环境中的三维坐标系,然后是在终端显示屏上的二维坐标系(即,虚拟环境画面这个二维画面的二维坐标系)。示例性的,由于虚拟环境中的地面为水平面,则在三维虚拟环境中也可以建立地面上的二维坐标系。示例性的,将三维虚拟环境中的三维坐标系称为三维坐标系,将虚拟环境画面的二维坐标系称为画面坐标系,将地面上的二维坐标系称为地面坐标系。则,上述观察中心可以是画面坐标系中的坐标位置,也可以是三维坐标系中的坐标位置,也可以是地面坐标系中的坐标位置。示例性的,观察位置位于虚拟环境画面的中心,该中心在画面坐标系上存在一个二维坐标,将该中心映射到虚拟环境中,还可以获得该中心在三维坐标系上的三维坐标,以及在地面坐标系上的二维坐标。
示例性的,观察中心是指在虚拟环境画面上的中心位置,即,画面坐标系中的位置。观察位置是画面坐标系中的观察中心映射到虚拟环境中的位置,是指在虚拟环境中的实际位置,即,地面坐标系或三维坐标系中的坐标位置。示例性的,主控虚拟角色、目标虚拟角色等的位置描述(第一位置、第二位置、第三位置)是在三维坐标系或地面坐标系中的位置,即,是在虚拟环境中的实际位置,而不是在画面坐标系上的位置。
主控虚拟角色是由客户端控制的虚拟角色。客户端根据接收到的用户操作控制主控虚拟角色在虚拟环境中活动。示例性的,主控虚拟角色在虚拟环境中的活动包括:行走、跑动、跳跃、攀爬、趴下、攻击、释放技能、捡拾道具、发送消息。
示例性的,主控虚拟角色在虚拟环境中所处的第一位置可以等于第一观察位置也可以是虚拟环境中的其他位置。示例性的,在本实施例提供的一种虚拟环境画面的显示方法中,虚拟环境画面被设置为在默认情况下始终以主控虚拟角色为观察中心,默认情况是指用户不主动进行视角上的移动或切换行为,例如,视角上的移动或切换行为包括:拖动地图查看周围地形、按住小地图查看指定位置地形、主控虚拟角色死亡后以其他虚拟角色为观察中心观察虚拟环境中的至少一种行为。示例性的,若第一虚拟环境画面是默认情况下获取到的虚拟环境画面,则主控虚拟角色所处的第一位置等于第一观察位置,或,第一位置位于第一观察位置附近(例如,以主控虚拟角色的头部作为观察中心,则观察位置与主控虚拟角色所处的位置会有一定偏差);若第一虚拟环境画面是用户已经主动进行了视角上的移动,则主控虚拟角色所处的第一位置可能不等于第一观察位置,且与第一观察位置距离较远。
示例性的,如图3中的(1)所示,给出一种在客户端上显示的第一用户界面,第一用户界面包括第一虚拟环境画面301,第一虚拟环境画面301上有主控虚拟角色302,第一虚拟环境画面301呈矩形,在矩形对角线的交点上有观察中心,观察中心在虚拟环境中对应了第一观察位置303,主控虚拟角色302位于第一位置。示例性的,在第一虚拟环境画面上还可能会显示ui控件,例如:移动控件304、技能控件305、攻击控件306,移动控件304用于控制主控虚拟角色移动,技能控件305用于控制主控虚拟角色释放技能,攻击控件306用于控制主控虚拟角色发动攻击。示例性的,ui控件会遮挡部分第一虚拟环境画面301。
步骤202,显示第二虚拟环境画面,第二虚拟环境画面是以第二观察位置为观察中心对虚拟环境进行观察得到的画面,第二虚拟环境画面包括在虚拟环境中位于第二位置的主控虚拟角色和位于第三位置的目标虚拟角色,第二观察位置是根据第二位置确定的。
示例性的,响应于主控虚拟角色移动至第二位置,显示第二虚拟环境画面;或,响应于目标虚拟角色移动至第三位置,显示第二虚拟环境画面。
示例性的,当主控虚拟角色在虚拟环境中移动时,观察中心会随着主控虚拟角色位置的改变而改变,随着观察中心的改变,虚拟环境画面上的视野范围也会改变,当主控虚拟角色移动至第二位置时,以第二观察位置为观察中心获取到的第二虚拟画面中可以显示出位于第三位置的目标虚拟角色。即,第一位置不等于第二位置,第一观察位置不等于第二观察位置。
示例性的,也可以是主控虚拟角色站在原位置不动,即,第一位置等于第二位置,第一观察位置等于第二观察位置,由目标虚拟角色移动至第一虚拟环境画面的视野范围内,即,由目标虚拟角色移动至第三位置,生成第二虚拟环境画面。
示例性的,目标虚拟角色是由其他客户端控制的虚拟角色,或,目标虚拟角色是由服务器或客户端自动控制的虚拟角色。示例性的,目标虚拟角色与主控虚拟角色分属于不同的阵营,即,目标虚拟角色与主控虚拟角色存在敌对关系。
示例性的,本实施例仅以目标虚拟角色为敌方虚拟角色为例,以达到完整显示敌方虚拟角色的效果,在其他可选的实施例中,目标虚拟角色也可以替换为目标物品、目标道具、目标地形等,以达到完整显示目标物品、目标道具、目标地形的效果,例如,目标虚拟角色还可以替换为防御塔,即,当防御塔出现在虚拟环境画面中时,控制观察中心发生偏移使虚拟环境画面上能够完整显示出防御塔和主控虚拟角色。
示例性的,第一位置、第二位置、第三位置、第一观察位置、第二观察位置和第三观察位置都是指在虚拟环境中的坐标位置,即,地面坐标系或三维坐标系上的坐标位置。
示例性的,由于默认情况下是以主控虚拟角色为观察中心,则,第一观察位置和第二观察位置都是根据主控虚拟角色所处的位置确定的。
示例性的,在第二虚拟环境画面中,目标虚拟角色位于虚拟环境画面的边缘位置。示例性的,在第二虚拟环境画面中,只显示了部分的目标虚拟角色。例如,第二虚拟环境画面中只显示了目标虚拟角色的下半身、没有显示上半身,或,只显示了目标虚拟角色的模型,没有显示位于目标虚拟角色头上的血量条、角色昵称等信息。即,在第二虚拟环境画面中,目标虚拟角色并不处于用户观察虚拟环境画面的最佳观察位置(画面的中心区域)上,或,第二虚拟环境画面无法完整显示目标虚拟角色。
例如,如图3中的(2)所示,在第二虚拟环境画面309上显示有位于第二位置的主控虚拟角色302、位于第三位置的目标虚拟角色308,第二虚拟环境画面309是以第二观察位置310为观察中心获得的虚拟环境画面。
步骤203,响应于第二虚拟环境画面包括目标虚拟角色,显示第三虚拟环境画面,第三虚拟环境画面是以第三观察位置为观察中心对虚拟环境进行观察得到的画面,第三虚拟环境画面包括在虚拟环境中位于第二位置的主控虚拟角色和位于第三位置的目标虚拟角色,第三观察位置是根据第二位置和第三位置确定的。
示例性的,当目标虚拟角色出现在第二虚拟环境画面上时,为了使虚拟环境画面更好地显示目标虚拟角色,便于用户观察目标虚拟角色,客户端会对虚拟环境画面的观察中心进行偏移,使观察中心在偏移后获得的虚拟环境画面能够更好地显示出目标虚拟角色。
示例性的,客户端在目标虚拟角色出现在第二虚拟环境画面上时,根据目标虚拟角色的位置和主控虚拟角色的位置重新确定观察位置,使主控虚拟角色和目标虚拟角色能够位于虚拟环境画面的中心区域(最佳观察区域)。
例如,如图3中的(2)所示,客户端将观察中心从第二观察位置310向右上方移动至第三观察位置307,如图3中的(3)所示,以第三观察位置307为观察中心可以获取到第三虚拟环境画面311,第三虚拟环境画面311上显示有位于第二位置的主控虚拟角色302和位于第三位置的目标虚拟角色308。示例性的,图3中第一观察位置303、第二观察位置310和第三观察位置307上的摄像标记只是为了标识出观察位置,在实际的虚拟环境画面中并不会显示这个摄像标记,不作为取证依据。
示例性的,客户端根据第二位置和第三位置确定第三观察位置的方式可以是任意的。例如,客户端可以作第二位置指向第三位置的偏移向量,用第二观察位置加上偏移向量即可得到第三观察位置;或,客户端可以将第二位置与第三位置的中点位置确定为第三观察位置;或,根据第三位置与第二位置的相对位置关系,确定偏移方向,根据预设的固定偏移距离,将第二观察位置向偏移方向偏移固定偏移距离得到第三观察位置。
示例性的,第三虚拟环境画面对目标虚拟角色的显示相比于第二虚拟环境画面要更便于观察,即,相比于第二虚拟环境画面,目标虚拟角色在第三虚拟环境画面中显示的位置要更靠近观察中心。示例性的,第三虚拟环境画面对目标虚拟角色的显示相比于第二虚拟环境画面要更加完整,例如,第三虚拟环境画面可以显示目标虚拟角色的全部身体模型、血量条、角色昵称等信息;或,第三虚拟环境画面可以显示出目标虚拟角色释放技能的完整特效。
示例性的,为了便于用户观察的虚拟环境,避免画面过大晃动影响用户的观看体验,观察位置从第二观察位置偏移第三观察位置的移动是缓慢的,即,在观察位置从第二观察位置偏移到第三观察位置的过程中,还会根据观察位置在偏移过程中路过的多个位置点显示有多帧虚拟环境画面,第三虚拟环境画面可以是观察位置在偏移过程中的任意一个虚拟环境画面,也可以是观察位置偏移到最终位置时的虚拟环境画面。
示例性的,观察中心的确定包括两部分:默认情况下的观察位置加上偏移量,默认情况下的观察位置是根据主控虚拟角色的位置确定的,而偏移量可以包括多种偏移情况产生的偏移量,例如本实施例所提供的为了更完整地显示目标虚拟角色所产生的偏移量,示例性的,偏移量还可以包括其他偏移情况产生的偏移量,例如,上述的由用户手动控制观察中心偏移。示例性的,以由于目标虚拟角色产生的偏移量是第一偏移量、由于用户手动控制观察位置偏移的偏移量是第二偏移量为例,最终的观察位置=默认情况下的观察位置+第一偏移量+第二偏移量。
示例性的,本实施例中步骤202到步骤203所列举的是理想情况,即,主控虚拟角色和目标虚拟角色停在原地不动,只有观察位置根据目标虚拟角色所产生的偏移量进行偏移,进而产生了不同的虚拟环境画面。在实际应用中,由于观察位置的偏移十分缓慢,用户在这个过程中还会控制主控虚拟角色和目标虚拟角色移动,由于主控虚拟角色的移动,默认观察位置会产生变化,由于目标虚拟角色的移动,偏移量也会产生变化,客户端会实时根据本实施例或下述实施例所提供的观察位置的确定方法来确定出实时的观察位置,进而显示出对应的虚拟环境画面。
综上所述,本实施例提供的方法,通过当虚拟环境画面上出现敌方虚拟角色时,根据敌方虚拟角色和主控虚拟角色的位置,重新确定虚拟环境画面的观察中心,根据新的观察中心来获取虚拟环境画面,使虚拟环境画面中可以完整地显示主控虚拟角色和敌方虚拟角色,便于用户观察敌方虚拟角色进而控制主控虚拟角色进行活动,提高虚拟环境画面对敌方虚拟角色显示的完整度,优化客户端对对局画面的显示方式。更完整的画面可以使用户更准确地控制主控虚拟角色攻击敌方虚拟角色,或,控制主控虚拟角色躲避敌方虚拟角色,因此,还可以提高用户控制主控虚拟角色的人机交互效率。
示例性的,给出一种确定观察位置偏移量的方法。
图4示出了本申请一个示例性实施例提供的虚拟环境的画面显示方法的流程图。该方法可以由上述图1中的任一终端上运行的客户端来执行,该客户端是支持虚拟环境的客户端。基于如图2所示的示例性实施例,步骤203包括步骤2031至步骤2033。
步骤2031,响应于第二虚拟环境画面包括目标虚拟角色,根据目标虚拟角色所处的第三位置确定观察中心的偏移量。
示例性的,客户端根据目标虚拟角色与主控虚拟角色的相对位置关系确定观察中心的偏移量。示例性的,偏移量包括偏移方向和偏移距离。示例性的,本实施例的偏移量是指偏移向量,用第二观察位置加上偏移量得到第三观察位置。
示例性的,客户端响应于目标虚拟角色位于目标区域内,根据第三位置在目标区域内的位置确定观察中心的偏移量,目标区域是根据主控虚拟角色所处的第二位置确定的区域。
示例性的,当目标虚拟角色进入目标区域时,客户端会根据目标虚拟角色在目标区域内的位置来控制观察位置偏移。
目标区域是以主控虚拟角色所处的第二位置为中心点,所确定出的区域。示例性的,目标区域随着主控虚拟角色所处位置的改变而改变。例如,目标区域是以主控虚拟角色所处的第二位置为中心点的圆形区域,或,是以第二位置为中心点的矩形区域。示例性的,当目标区域是圆形区域时,其半径可以是任意的,或,根据虚拟环境画面的视野范围来确定的。例如,虚拟环境画面的视野范围是矩形,则目标区域的半径是矩形短边的1/2。示例性的,当目标区域是矩形区域时,矩形的长宽可以根据虚拟环境画面的视野范围来确定,例如,虚拟环境画面的视野范围是矩形,则目标区域的长宽等于虚拟环境画面的长宽,或,等比缩小虚拟环境画面的长宽作为目标区域的长宽。当然,目标区域还可以是其他形状的区域,例如,三角形、梯形等,目标区域还可以是不规则形状的区域,例如,为了适应不同形状的显示屏而确定出的不同形状的目标区域。
示例性的,目标区域位于第二虚拟环境画面的视野范围内,或,目标区域中的大部分区域位于第二虚拟环境画面的视野范围内。
例如,如图5所示,目标区域312是以主控虚拟角色302所处位置为圆心的圆形区域。当目标虚拟角色进入目标区域时,客户端根据目标虚拟角色在目标区域中的位置来获取观察中心(观察位置)的偏移量。
示例性的,目标区域包括以第二位置为中心的区域,以第二位置为坐标原点建立的x轴、z轴直角坐标系将目标区域划分为:第一象限区域、第二象限区域、第三象限区域和第四象限区域。
示例性的,本实施例以目标区域是以第二位置为中心的圆形区域或矩形区域为例,进行说明。例如,如图5所示,目标区域312是以主控虚拟角色302所处的第二位置为圆心的圆形区域,以第二位置为坐标原点,建立xz直角坐标系,可以获得位于第一象限的第一象限区域313、位于第二象限的第二象限区域314、位于第三象限的第三象限区域315、位于第四象限的第四象限区域316。
响应于第三位置位于z轴的右侧区域,将偏移量的横坐标确定为a,a为正数,z轴的右侧区域包括:x轴的正半轴、第一象限区域和第四象限区域;响应于第三位置位于z轴的左侧区域,将偏移量的横坐标确定为-b,b为正数,z轴的左侧区域包括:x轴的负半轴、第二象限区域和第三象限区域;响应于第三位置位于x轴的上方区域,将偏移量的纵坐标确定为c,c为正数,x轴的上方区域包括:z轴的正半轴、第一象限区域和第二象限区域;响应于第三位置位于x轴的下方区域,将偏移量的纵坐标确定为-d,d为正数,x轴的下方区域包括:z轴的负半轴、第三象限区域和第四象限区域。
示例性的,a、b、c、d是预设的数值。即,当目标虚拟角色在目标区域内位于主控虚拟角色的右侧时,偏移量的横坐标为a,位于主控虚拟角色的左侧时,偏移量的横坐标为-b,位于主控虚拟角色的上方时,偏移量的纵坐标为c,位于主控虚拟角色的下方时,偏移量的纵坐标为-d。当目标虚拟角色位于x轴上时,偏移量的纵坐标为0,当目标虚拟角色位于z轴上时,偏移量的横坐标为0。例如,当目标虚拟角色位于第一象限区域时,偏移量为(a,c)。
示例性的,a、b、c、d可以相等也可以不相等,其取值可以是任意的。
示例性的,客户端也可以根据第二位置和第三位置的来确定偏移量的横纵坐标,例如,第二位置在地面坐标系中的坐标为(x1,y1),第三位置在地面坐标系中的坐标为(x2,y2),则偏移量为(x2-x1,y2-y1)。
示例性的,偏移量也可以根据目标虚拟角色在xz直角坐标系内的坐标来确定,例如,目标虚拟角色在以主控虚拟角色为坐标原点的xz直角坐标系中的坐标为(x2,y2),则偏移量可以取(x2、y2)。
示例性的,目标虚拟角色包含多个虚拟角色时,还会根据多个虚拟角色在目标区域内的位置来确定偏移量。
示例性的,目标虚拟角色包括至少两个虚拟角色,响应于至少一个目标虚拟角色位于z轴的右侧区域,且至少一个目标虚拟角色位于z轴的左侧区域,将偏移量的横坐标确定为0;响应于至少一个目标虚拟角色位于x轴的上方区域,且至少一个目标虚拟角色位于x轴的下方区域,将偏移量的纵坐标确定为0。
即,若多个目标虚拟角色在目标区域中都位于主控虚拟角色右侧,则偏移量的横坐标为a,都位于主控虚拟角色的左侧,则偏移量的横坐标为-b,若主控虚拟角色的左侧和右侧都有目标虚拟角色,则偏移量的横坐标为0。同样地,若多个目标虚拟角色在目标区域中都位于主控虚拟角色上方,则偏移量的纵坐标为c,都位于主控虚拟角色的下方,则偏移量的纵坐标为-d,若主控虚拟角色的上方和下方都有目标虚拟角色,则偏移量的纵坐标为0。
步骤2032,根据偏移量和第二观察位置计算得到第三观察位置。
示例性的,客户端根据当前默认情况下的观察位置加上偏移量得到第三观察位置。即,当主控虚拟角色位于第二位置,默认情况下的观察位置是第二观察位置时,客户端将第二观察位置加上偏移量得到第三观察位置。
步骤2033,根据第三观察位置显示第三虚拟环境画面。
客户端根据新得到的第三观察位置来显示以第三观察位置的视野范围获得的第三虚拟环境画面,从而使虚拟环境画面上能够显示出更完整的目标虚拟角色。
综上所述,本实施例提供的方法,通过在虚拟环境画面上显示出目标虚拟角色时,根据目标虚拟角色的位置来计算得到偏移量,然后根据偏移量和当前的观察位置,来计算得到新的观察位置,从而根据新的观察位置来获取虚拟环境画面。由于当前的观察位置是根据主控虚拟角色的位置来确定的,则通过该方法,可以根据主控虚拟角色的位置和敌方虚拟角色的位置,来确定出一个新的观察位置,使虚拟环境画面上可以完整地显示出主控虚拟角色和敌方虚拟角色。
本实施例提供的方法,通过以主控虚拟角色所在的位置为中心,确定一个目标区域,当敌方虚拟角色进入目标区域后,根据敌方虚拟角色在目标区域中的位置,可以确定出敌方虚拟角色与主控虚拟角色的相对位置关系,进而可以确定观察中心向哪个方向偏移可以使虚拟环境画面上显示出完整的敌方虚拟角色,控制观察中心偏移到新的观察位置,进而得到新的虚拟环境画面。
本实施例提供的方法,通过以主控虚拟角色的位置为原点,在目标区域内建立直角坐标系,将目标区域划分为多个区域,进而根据敌方虚拟角色在目标区域内的位置来确定观察中心的偏移量,使观察中心根据偏移量进行偏移。
本实施例提供的方法,当主控虚拟角色的附近存在多个敌方虚拟角色时,根据各个虚拟角色在目标区域内的位置,来计算偏移量,当在x轴正负方向都存在敌方虚拟角色时,则观察中心在横向上不会产生偏移,当在z轴正负方向上都存在敌方虚拟角色时,则观察中心在纵向上不会产生偏移,进而使偏移后获取到的虚拟环境画面中,可以完整地显示每一个敌方虚拟角色,更好地优化主控虚拟角色的视野范围,便于用户控制主控虚拟角色进行活动。
示例性的,客户端是通过设置在虚拟环境中的摄像机模型拍摄虚拟环境来获取虚拟环境画面的。
图6示出了本申请一个示例性实施例提供的虚拟环境的画面显示方法的流程图。该方法可以由上述图1中的任一终端上运行的客户端来执行,该客户端是支持虚拟环境的客户端。基于如图4所示的示例性实施例,步骤2033包括步骤2033-1至步骤2033-2。
步骤2033-1,将摄像机模型从第二摄像机位置偏移至第三摄像机位置,第二摄像机位置与第二观察位置相对应,第三摄像机位置与第三观察位置相对应。
第一虚拟环境画面是通过设置在虚拟环境中第一摄像机位置的摄像机模型获取到的虚拟环境的画面,观察中心是从摄像机模型所处的位置沿观察方向射出的射线与虚拟环境的交点。示例性的,第一虚拟环境画面、第二虚拟环境画面和第三虚拟环境画面是通过设置在虚拟环境中的摄像机模型获取到的虚拟环境的画面。
摄像机模型是设置在虚拟环境中用于获取虚拟环境画面的模型。示例性的,摄像机模型在默认情况下有不同的设置方式,例如,将摄像机模型的位置绑定在主控虚拟角色的三维模型上(头部、眼部),随着主控虚拟角色头部、眼部的转动来转动摄像机模型的拍摄方向(观察方向)、随着主控虚拟角色位置的移动来移动摄像机模型的位置,就可以以主控虚拟角色的视角拍摄虚拟环境,得到以主控虚拟角色的第一人称视角的虚拟环境画面。若将摄像机模型的位置绑定在主控虚拟角色身后(背后)固定距离和固定高度的位置,随着主控虚拟角色身体的转动来转动摄像机模型的拍摄方向(观察方向)、随着主控虚拟角色位置的移动来移动摄像机模型的位置,就可以以主控虚拟角色的过肩视角拍摄虚拟环境,得到以主控虚拟角色的过肩视角的虚拟环境画面。若将摄像机模型的位置与主控虚拟角色的相对位置固定,例如,摄像机模型位于主控虚拟角色的正下方(或正南方向)十米远十米高的位置,随着主控虚拟角色位置的移动来移动摄像机模型的位置,但不会随着主控虚拟角色头部或身体的转动改变拍摄方向,就可以以第三人称视角拍摄虚拟环境,得到以主控虚拟角色为观察对象的第三人称视角的虚拟环境画面。示例性的,本实施例的摄像机模型在默认情况下是以主控虚拟角色为观察对象以第三人称视角对虚拟环境进行拍摄的。例如,将摄像机模型设置在主控虚拟角色所在位置的正南方10米远、10米高、以斜向下45°的观察方向拍摄主控虚拟角色。若主控虚拟角色所在位置为(0,0,0),则摄像机模型所在位置为(0,-10,10)。例如,如图7所示,无论主控虚拟角色302移动至虚拟环境中的哪个位置,摄像机模型323与主控虚拟角色302的相对位置都是固定的,且摄像机模型323的拍摄方向不会随着主控虚拟角色302的朝向而改变。摄像机模型323的观察中心是从摄像机模型所处的位置沿观察方向324射出的射线与虚拟环境的交点325,即主控虚拟角色302所在的位置。示例性的,图7是以透视的方式展现出的摄像机模型在虚拟环境中的画面,由于两个摄像机模型323距离透视点远近不同,画面中看到的摄像机模型的拍摄方向(观察方向)可能存在些许差异,但实际上摄像机模型在虚拟环境中的拍摄方向(观察方向)是相同的,图7仅用于解释摄像机模型与主控虚拟角色的位置关系,在实际的虚拟环境画面上并不会显示摄像机模型。
示例性的,默认情况下摄像机模型是以主控虚拟角色为观察中心对主控虚拟角色进行跟随拍摄的。但当用户进行视角的移动或转换时,用户也可以手动改变摄像机模型在虚拟环境中的位置,或客户端根据目标虚拟角色的位置自动调整摄像机模型的位置,从而使客户端上显示出更完整的目标虚拟角色。示例性的,改变摄像机模型来获取不同虚拟环境画面的方式可以是:改变摄像机模型的水平坐标、改变摄像机模型的高度、改变摄像机模型的观察方向。改变摄像机模型的水平坐标可以改变摄像机模型的观察位置(虚拟环境画面中的观察中心)从而获得新的虚拟环境画面,水平坐标的改变只会改变观察位置不会改变虚拟环境画面中视野范围的大小。改变摄像机模型的高度不会改变摄像机模型的观察位置(虚拟环境画面中的观察中心)而是改变其视野范围的大小,摄像机模型的高度越高,视野范围越广阔,获得的虚拟环境画面所显示的虚拟环境的范围越大。改变摄像机模型的俯仰角(垂直方向的角度)会同时改变摄像机模型的观察位置和视野范围的大小,改变摄像机模型的偏转角(水平方向的角度)会改变摄像机模型的观察位置,不会改变视野范围的大小。
示例性的,本实施例通过控制摄像机模型在虚拟环境中的水平坐标来获取不同的虚拟环境画面,使虚拟环境画面中显示出更完整的目标虚拟角色。
示例性的,也可以在改变摄像机模型的水平坐标的同时抬高摄像机模型的高度,进一步扩大虚拟环境画面的视野范围,从而更完整的显示目标虚拟角色。
示例性的,还可以通过改变摄像机模型的焦距、高度、偏转角、俯仰角中的至少一种来使虚拟环境画面中显示更完整的目标虚拟角色。例如,通过调整摄像机模型的焦距来扩大摄像机模型的视野范围,通过增加摄像机模型的高度来扩大摄像机模型的视野范围,通过控制摄像机模型的俯仰角、偏转角向方向型技能指示器所指的方向偏转来使虚拟环境画面中显示更完整的目标虚拟角色等等。示例性的,客户端可以采取上述所提供的任意一种或多种改变摄像机模型的方式来使虚拟环境画面中显示更完整的目标虚拟角色。
偏移量是摄像机模型移动的距离和方向。偏移量是摄像机模型偏移默认位置的距离和方向,默认位置是默认情况下摄像机模型所处的位置。示例性的,若摄像机模型是绑定以主控虚拟角色为拍摄对象(以主控虚拟角色所处的位置为观察中心)的,则摄像机模型的默认位置根据主控虚拟角色的位置来确定。示例性的,若建立地面坐标系,则偏移量是从默认位置指向偏移后位置的方向向量。例如,摄像机模型从默认位置(第二摄像机位置)(0,0)移动到第三摄像机位置(1,1),则偏移量是(1,1)。
示例性的,客户端根据偏移量改变摄像机模型在虚拟环境中的水平坐标位置,使摄像机模型从第二摄像机位置移动到第三摄像机位置。示例性的,客户端根据偏移量确定摄像机模型本次偏移的终点位置(第三摄像机位置)。示例性的,第二摄像机位置可以是摄像机模型的默认位置,也可以是摄像机模型已经发生过一次偏移的位置。若第二摄像机位置是摄像机模型已经发生过偏移的位置,则摄像机模型偏移到第三摄像机位置的总偏移量,等于摄像机模型从默认位置偏移到第二摄像机位置的第一偏移量,加上从第二摄像机位置偏移到第三摄像机位置的第二偏移量之和。
第一虚拟环境画面是位于第一摄像机位置的摄像机模型获取到的,其观察中心是第一观察位置。第二虚拟环境画面是位于第二摄像机位置的摄像机模型获取到的,其观察中心是第二观察位置。第三虚拟环境画面是位于第三摄像机位置的摄像机模型获取到的,其观察中心是第三观察位置。
示例性的,根据偏移量可以确定摄像机模型的偏移终点,然后根据预设的移动方式控制摄像机模型从偏移起点缓慢移动到偏移终点,使客户端上显示出的虚拟环境画面是连续移动的画面,而不是瞬间跳转的画面。
示例性的,将摄像机模型以指定移动方式从第二摄像机位置偏移至第三摄像机位置,指定移动方式包括:匀速运动、差值运动、平滑阻尼运动中的任意一种。
示例性的,为了在摄像机模型偏移的过程中,使客户端上展示虚拟环境画面具有连续性,摄像机模型并不是直接从第二摄像机位置跳转至第三摄像机位置的,摄像机模型从第二摄像机位置移动到第三摄像机位置会经过很多帧画面,客户端使用不同的移动方式来计算摄像机模型在每一帧画面中应该移动到的位置,从而在根据处于该位置的摄像机模型获取到该帧画面。
示例性的,移动方式可以是匀速移动,匀速移动即为控制摄像机模型以恒定速度移动到第三摄像机位置。例如,摄像机模型的偏移量是10米,客户端需要控制摄像机模型在100帧画面后移动到目标位置,则每帧画面摄像机模型需要移动0.1米。
示例性的,移动方式还可以是差值运动。差值运动根据摄像机模型当前所处位置、目标位置以及移动比例来确定摄像机模型在每帧画面中的位置。例如,将移动比例设置为0.1,则客户端计算上一帧画面摄像机模型所处的位置与目标位置的差值,然后控制摄像机模型向目标位置移动该差值的0.1倍的距离。若目标位置是10当前位置是0,则摄像机模型下一帧移动10*0.1=1到达1的位置,再下一帧移动(10-1)*0.1=0.9到达1.9的位置,再下一帧移动(10-1.9)*0.1=0.81到达2.71的位置,通过这种方法进行移动,摄像机模型将永远无法到达目标位置,只会无限接近目标位置。因此,可以将移动比例设置为从0到1变化,当移动比例取到1时摄像机模型移动到目标位置。差值运动是一种根据距离差与移动比例确定移动距离的运动。
示例性的,移动方式还可以是平滑阻尼运动。平滑阻尼运动根据给定的移动时间和平滑函数确定移动距离的运动。平滑函数是一种黑盒函数。平滑函数是类似于弹簧阻尼器的函数。
步骤2033-2,响应于摄像机模型在第三摄像机位置获取到第三虚拟环境画面,显示第三虚拟环境画面。
示例性的,摄像机模型移动到第三摄像机位置后,客户端通过摄像机模型获取虚拟环境的画面得到第三虚拟环境画面。
示例性的,当目标虚拟角色靠近主控虚拟角色时,为了防止在目标虚拟角色与主控虚拟角色发生近距离交战时,观察中心的偏移使虚拟环境画面晃动过大影响用户观看,客户端还会在目标虚拟角色靠近主控虚拟角色时停止观察中心的偏移,如图8所示,在步骤203之后还包括步骤204。
步骤204,响应于目标虚拟角色位于缠斗区域内,停止偏移摄像机模型,缠斗区域是根据主控虚拟角色所在的第二位置确定的。
示例性的,缠斗区域是靠近主控虚拟角色的区域,例如,缠斗区域是以主控虚拟角色所在位置为圆心的圆形区域。示例性的,缠斗区域位于目标区域以内,目标区域包含缠斗区域,即,缠斗区域既是缠斗区域也是目标区域。
例如,如图9所示,在目标区域312内包含了以主控虚拟角色302所在的第二位置为圆心的缠斗区域317。
示例性的,当目标虚拟角色位于目标区域时,客户端根据目标虚拟角色在目标区域内的位置求出观察中心的偏移量,并控制摄像机模型根据偏移量向目标摄像机(第三摄像机位置)位置偏移,即,摄像机模型会持续地缓慢移动。当目标虚拟角色进入缠斗区域时,为了保证虚拟环境画面的稳定性,无论摄像模型是否移动至目标摄像机位置,摄像机模型都会立即停止偏移,即,摄像机模型不会随着目标虚拟角色在目标区域内的位置而再产生偏移,始终保持现有的偏移结果不变。
示例性的,停止偏移摄像机模型是指:摄像机模型不再根据目标虚拟角色的位置产生新的偏移,但摄像机模型的默认摄像机位置还是会随着主控虚拟角色的位置改变而改变,则摄像机模型最终的位置是默认摄像机位置加上当前摄像机模型已经产生的偏移量。
例如,根据目标虚拟角色在目标区域内的位置,摄像机模型需要从默认摄像机位置(第二摄像机位置)(0,0),偏移至第三摄像机位置(3,3),当摄像机模型偏移至(2,2)位置时,目标虚拟角色进入了缠斗区域,则摄像机模型停止偏移,不会再向第三摄像机位置偏移,此时摄像机模型的偏移量为(2,2)-(0,0)=(2,2)。则若主控虚拟角色的位置发生了改变,使默认摄像机位置从(0,0)变为了(5,5),则此时摄像机模型的位置应为(5,5)+(2,2)=(7,7),即,摄像机模型根据主控虚拟角色位置的移动,而对应的移至(7,7)位置。
综上所述,本实施例提供的方法,观察中心的移动是通过移动摄像机模型来实现的,通过将摄像机模型从第二摄像机位置移动至第三摄像机位置,来实现将观察中心从第二观察位置移动至第三观察位置,使摄像机模型在第三摄像机位置以第三观察位置进行拍摄,获取第三虚拟环境画面。
本实施例提供的方法,摄像机模型的移动是平缓的过程,可以用多种移动方式来移动摄像机模型。
本实施例提供的方法,当敌方虚拟角色距离主控虚拟角色较近时,会立即停止摄像机模型的偏移,即,停止观察中心的偏移,防止由于观察中心的偏移,使虚拟环境画面晃动较大,影响用户控制主控虚拟角色在进程交战。
示例性的,还给出了一种当目标区域内不再有目标虚拟角色时,将偏移量置零的方法。
图10示出了本申请一个示例性实施例提供的虚拟环境的画面显示方法的流程图。该方法可以由上述图1中的任一终端上运行的客户端来执行,该客户端是支持虚拟环境的客户端。基于如图4所示的示例性实施例,步骤2033之后还包括步骤205至步骤208。
步骤205,响应于目标区域内不存在目标虚拟角色,计时缓冲时长。
示例性的,当观察中心由于目标虚拟角色进入目标区域产生了偏移之后,客户端会周期性地检测目标区域内是否还存在目标虚拟角色,当目标区域内不存在目标虚拟角色时,客户端会进行缓冲计时(计时缓冲时长)。
步骤206,响应于缓冲时长达到时间阈值,将观察中心的偏移量置零。
示例性的,若在一段时间(时间阈值)内目标区域内都不存在目标虚拟角色,则客户端会将观察中心的偏移量置零,使摄像机模型回到默认情况下的摄像机位置,从而使观察中心重新回到默认观察位置。
示例性的,若在客户端计时缓冲时长后,缓冲时长到达时间阈值之前,目标区域内又出现了目标虚拟角色,则客户端停止缓冲计时,再次根据目标虚拟角色的位置计算观察中心的偏移量,控制观察中心偏移。
步骤207,根据偏移量和主控虚拟角色的位置计算第四观察位置。
示例性的,由于偏移量已被置零,则第四观察位置即为主控虚拟角色当前位置所对应的默认观察位置。客户端将摄像机模型移回第四观察位置对应的第四摄像机位置上,从而使摄像机模型以第四观察位置为观察中心,获取第四虚拟环境画面。
步骤208,根据第四观察位置显示第四虚拟环境画面,第四虚拟环境画面包括主控虚拟角色。
示例性的,第四虚拟环境画面上不再包括目标虚拟角色。
综上所述,本实施例提供的方法,通过当目标区域内不存在敌方虚拟角色时,进行镜头偏移的缓冲计时,在一段时间内目标区域内都不存在敌方虚拟角色时,将镜头的偏移量置零,控制镜头回到正常位置,进行正常的虚拟环境画面的显示。
示例性的,给出一种在moba游戏中应用本申请提供的虚拟环境画面的显示方法的示例性实施例。
图11示出了本申请一个示例性实施例提供的虚拟环境的画面显示方法的流程图。该方法可以由上述图1中的任一终端上运行的客户端来执行,该客户端是支持虚拟环境的客户端。该方法包括以下步骤。
步骤401,客户端判断自身英雄(主控虚拟角色)是否在移动。
示例性的,当主控虚拟角色发生移动时,客户端会开始进行步骤402,检测主控虚拟角色的缠斗区域内是否有敌人(目标虚拟角色)。
步骤402,客户端检测缠斗区域内是否有敌人,若有敌人,则进行步骤403,若没有敌人则进行步骤404。
步骤403,客户端控制镜头(摄像机模型)停止偏移。
示例性的,若主控虚拟角色的缠斗区内存在目标虚拟角色,则客户端会控制镜头停止偏移,以防止虚拟环境画面的晃动影响用户观察。
步骤404,客户端判断生效区域(目标区域)是否有敌人,若有敌人则进行步骤405,否则进行步骤408。
步骤405,客户端遍历生效区域内敌人集合,确定偏移量。
示例性的,客户端判断目标区域的z轴正负方向上是否都有敌人,若都有敌人,则偏移量在纵轴上的取值为0;若不是都有敌人,则进一步判断z轴正方向上是否有敌人,若有敌人,则偏移量在纵轴上的取值为p,若没有敌人,则偏移量在纵轴上的取值为-p。示例性的,客户端判断目标区域的x轴正负方向上是否都有敌人,若都有敌人,则偏移量在横轴上的取值为0;若不是都有敌人,则进一步判断x轴正方向上是否有敌人,若有敌人,则偏移量在横轴上的取值为p,若没有敌人,则偏移量在横轴上的取值为-p,其中p为任意实数。
步骤406,客户端判断是否遍历结束,若结束则进行步骤407,否则进行步骤405。
步骤407,客户端设置目标偏移(偏移量)。
客户端根据目标偏移控制摄像机模型偏移。
步骤408,客户端开始缓冲计时。
示例性的,若生效区域内没有敌人,则客户端开始缓冲计时,若在一段时间内生效区域内都没有敌人,则客户端会将偏移量置零。
步骤409,客户端判断缓冲计时是否结束,若结束则进行步骤410,否则进行步骤404。
示例性的,客户端在缓冲计时过程中,会不停地检测生效区域内是否出现敌人,若一直不出现敌人,则会进行步骤410。
步骤410,客户端将偏移量归零。
示例性的,客户端将偏移量置零,并控制摄像机模型向默认摄像机位置回归。
综上所述,本实施例提供的方法,通过当主控虚拟角色发生移动时开始检测敌人是否出现在生效区域和缠斗区域,通过当敌人出现在生效区域时,根据敌人在生效区域内的位置控制镜头偏移,使虚拟环境画面上显示出完整的敌人。通过在目标区域内没有敌人时进行缓冲计时,在缓冲计时结束后生效区域内始终没有出现敌人时,将偏移量置零,从而控制镜头回到默认位置,继续以主控虚拟角色为虚拟环境画面的观察中心。
上述实施例是基于游戏的应用场景对上述方法进行描述,下面以军事仿真的应用场景对上述方法进行示例性说明。
仿真技术是应用软件和硬件通过模拟真实世界的实验,反映系统行为或过程的模型技术。
军事仿真程序是利用仿真技术针对军事应用专门构建的程序,对海、陆、空等作战元素、武器装备性能以及作战行动等进行量化分析,进而精确模拟战场环境,呈现战场态势,实现作战体系的评估和决策的辅助。
在一个示例中,士兵在军事仿真程序所在的终端建立一个虚拟的战场,并以组队的形式进行对战。士兵控制战场虚拟环境中的虚拟对象在战场虚拟环境下进行站立、蹲下、坐下、仰卧、俯卧、侧卧、行走、奔跑、攀爬、驾驶、射击、投掷、攻击、受伤、侦查、近身格斗等动作中的至少一种操作。战场虚拟环境包括:平地、山川、高原、盆地、沙漠、河流、湖泊、海洋、植被中的至少一种自然形态,以及建筑物、交通工具、废墟、训练场等地点形态。虚拟对象包括:虚拟人物、虚拟动物、动漫人物等,每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。
基于上述情况,在一个示例中,士兵a控制虚拟对象a在虚拟环境中活动,当士兵b控制虚拟对象b进入了虚拟机对象a的目标区域时,士兵a的客户端通过控制观察中心偏移,使士兵a的客户端上显示出完整的虚拟对象b,从而便于士兵a观察虚拟对象b的动向,进而发起攻击或进行防御。
综上所述,在本实施例中,将上述虚拟环境的画面显示方法应用在军事仿真程序中,使士兵可以更好观察敌人,使得士兵得到更好的训练。
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可参考上述方法实施例。
图12是本申请一个示例性实施例提供的虚拟环境的画面显示装置的框图。所述装置包括:
显示模块501,用于显示第一虚拟环境画面,所述第一虚拟环境画面是以第一观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第一虚拟环境画面包括在所述虚拟环境中位于第一位置的主控虚拟角色,所述第一观察位置是根据所述第一位置确定的;
所述显示模块501,还用于显示第二虚拟环境画面,所述第二虚拟环境画面是以第二观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第二虚拟环境画面包括在所述虚拟环境中位于第二位置的所述主控虚拟角色和位于第三位置的目标虚拟角色,所述第二观察位置是根据所述第二位置确定的;
所述显示模块501,还用于响应于所述第二虚拟环境画面包括所述目标虚拟角色,显示第三虚拟环境画面,所述第三虚拟环境画面是以第三观察位置为观察中心对所述虚拟环境进行观察得到的画面,所述第三虚拟环境画面包括在所述虚拟环境中位于所述第二位置的所述主控虚拟角色和位于所述第三位置的所述目标虚拟角色,所述第三观察位置是根据所述第二位置和所述第三位置确定的。
在一个可选的实施例中,所述装置还包括:
确定模块502,用于响应于所述第二虚拟环境画面包括所述目标虚拟角色,根据所述目标虚拟角色所处的所述第三位置确定所述观察中心的偏移量;
计算模块503,用于根据所述偏移量和所述第二观察位置计算得到所述第三观察位置;
所述显示模块501,还用于根据所述第三观察位置显示所述第三虚拟环境画面。
在一个可选的实施例中,所述确定模块502,还用于响应于所述目标虚拟角色位于目标区域内,根据所述第三位置在所述目标区域内的位置确定所述观察中心的所述偏移量,所述目标区域是根据所述主控虚拟角色所处的所述第二位置确定的区域。
在一个可选的实施例中,所述目标区域包括以所述第二位置为中心的区域,以所述第二位置为坐标原点建立的x轴、z轴直角坐标系将所述目标区域划分为:第一象限区域、第二象限区域、第三象限区域和第四象限区域;
所述确定模块502,还用于响应于所述第三位置位于所述z轴的右侧区域,将所述偏移量的横坐标确定为a,a为正数,所述z轴的右侧区域包括:所述x轴的正半轴、所述第一象限区域和所述第四象限区域;
所述确定模块502,还用于响应于所述第三位置位于所述z轴的左侧区域,将所述偏移量的所述横坐标确定为-b,b为正数,所述z轴的左侧区域包括:所述x轴的负半轴、所述第二象限区域和所述第三象限区域;
所述确定模块502,还用于响应于所述第三位置位于所述x轴的上方区域,将所述偏移量的纵坐标确定为c,c为正数,所述x轴的上方区域包括:所述z轴的正半轴、所述第一象限区域和所述第二象限区域;
所述确定模块502,还用于响应于所述第三位置位于所述x轴的下方区域,将所述偏移量的所述纵坐标确定为-d,d为正数,所述x轴的下方区域包括:所述z轴的负半轴、所述第三象限区域和所述第四象限区域。
在一个可选的实施例中,所述目标虚拟角色包括至少两个虚拟角色;
所述确定模块502,还用于响应于至少一个所述目标虚拟角色位于所述z轴的右侧区域,且至少一个所述目标虚拟角色位于所述z轴的左侧区域,将所述偏移量的所述横坐标确定为0。
在一个可选的实施例中,所述目标虚拟角色包括至少两个虚拟角色;
所述确定模块502,还用于响应于至少一个所述目标虚拟角色位于所述x轴的上方区域,且至少一个所述目标虚拟角色位于所述x轴的下方区域,将所述偏移量的所述纵坐标确定为0。
在一个可选的实施例中,所述第一虚拟环境画面是通过设置在所述虚拟环境中第一摄像机位置的摄像机模型获取到的所述虚拟环境的画面,所述观察中心是从所述摄像机模型所处的位置沿观察方向射出的射线与所述虚拟环境的交点;所述装置还包括:
偏移模块504,用于将所述摄像机模型从第二摄像机位置偏移至第三摄像机位置,所述第二摄像机位置与所述第二观察位置相对应,所述第三摄像机位置与所述第三观察位置相对应;
所述显示模块501,还用于响应于所述摄像机模型在所述第三摄像机位置获取到所述第三虚拟环境画面,显示所述第三虚拟环境画面。
在一个可选的实施例中,所述偏移模块504,还用于将所述摄像机模型以指定移动方式从所述第二摄像机位置偏移至所述第三摄像机位置,所述指定移动方式包括:匀速运动、差值运动、平滑阻尼运动中的任意一种。
在一个可选的实施例中,所述偏移模块504,还用于响应于所述目标虚拟角色位于缠斗区域内,停止偏移所述摄像机模型,所述缠斗区域是根据所述主控虚拟角色所在的所述第二位置确定的。
在一个可选的实施例中,所述装置还包括:
计时模块505,用于响应于所述目标区域内不存在所述目标虚拟角色,计时缓冲时长;
确定模块502,用于响应于所述缓冲时长达到时间阈值,将所述观察中心的所述偏移量置零;
计算模块503,用于根据所述偏移量和所述主控虚拟角色的位置计算第四观察位置;
所述显示模块501,还用于根据所述第四观察位置显示第四虚拟环境画面,所述第四虚拟环境画面包括所述主控虚拟角色。
在一个可选的实施例中,所述显示模块501,还用于响应于所述主控虚拟角色移动至所述第二位置,显示所述第二虚拟环境画面;
或,
所述显示模块501,还用于响应于所述目标虚拟角色移动至所述第三位置,显示所述第二虚拟环境画面。
需要说明的是:上述实施例提供的虚拟环境的画面显示装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟环境的画面显示装置与虚拟环境的画面显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还提供了一种终端,该终端包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的虚拟环境的画面显示方法。需要说明的是,该终端可以是如下图13所提供的终端。
图13示出了本申请一个示例性实施例提供的终端1300的结构框图。该终端1300可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1300还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1300包括有:处理器1301和存储器1302。
处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行以实现本申请中方法实施例提供的虚拟环境的画面显示方法。
在一些实施例中,终端1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、显示屏1305、摄像头组件1306、音频电路1307、定位组件1308和电源1309中的至少一种。
外围设备接口1303可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和外围设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1304用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路1304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1304包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路1304还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1305用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。此时,显示屏1305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1305可以为一个,设置终端1300的前面板;在另一些实施例中,显示屏1305可以为至少两个,分别设置在终端1300的不同表面或呈折叠设计;在再一些实施例中,显示屏1305可以是柔性显示屏,设置在终端1300的弯曲表面上或折叠面上。甚至,显示屏1305还可以设置成非矩形的不规则图形,也即异形屏。显示屏1305可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。
摄像头组件1306用于采集图像或视频。可选地,摄像头组件1306包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1306还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1307可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1300的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1301或射频电路1304的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1307还可以包括耳机插孔。
定位组件1308用于定位终端1300的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件1308可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1309用于为终端1300中的各个组件进行供电。电源1309可以是交流电、直流电、一次性电池或可充电电池。当电源1309包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感器1314、光学传感器1315以及接近传感器1316。
加速度传感器1311可以检测以终端1300建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1311可以用于检测重力加速度在三个坐标轴上的分量。处理器1301可以根据加速度传感器1311采集的重力加速度信号,控制显示屏1305以横向视图或纵向视图进行用户界面的显示。加速度传感器1311还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1312可以检测终端1300的机体方向及转动角度,陀螺仪传感器1312可以与加速度传感器1311协同采集用户对终端1300的3d动作。处理器1301根据陀螺仪传感器1312采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1313可以设置在终端1300的侧边框和/或显示屏1305的下层。当压力传感器1313设置在终端1300的侧边框时,可以检测用户对终端1300的握持信号,由处理器1301根据压力传感器1313采集的握持信号进行左右手识别或快捷操作。当压力传感器1313设置在显示屏1305的下层时,由处理器1301根据用户对显示屏1305的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1314用于采集用户的指纹,由处理器1301根据指纹传感器1314采集到的指纹识别用户的身份,或者,由指纹传感器1314根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1301授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1314可以被设置终端1300的正面、背面或侧面。当终端1300上设置有物理按键或厂商logo时,指纹传感器1314可以与物理按键或厂商logo集成在一起。
光学传感器1315用于采集环境光强度。在一个实施例中,处理器1301可以根据光学传感器1315采集的环境光强度,控制显示屏1305的显示亮度。具体地,当环境光强度较高时,调高显示屏1305的显示亮度;当环境光强度较低时,调低显示屏1305的显示亮度。在另一个实施例中,处理器1301还可以根据光学传感器1315采集的环境光强度,动态调整摄像头组件1306的拍摄参数。
接近传感器1316,也称距离传感器,通常设置在终端1300的前面板。接近传感器1316用于采集用户与终端1300的正面之间的距离。在一个实施例中,当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变小时,由处理器1301控制显示屏1305从亮屏状态切换为息屏状态;当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变大时,由处理器1301控制显示屏1305从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图13中示出的结构并不构成对终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的虚拟环境的画面显示方法。
本申请提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的虚拟环境的画面显示方法。
本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述可选实现方式中提供的虚拟环境的画面显示方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除