CN110665230B - 虚拟世界中的虚拟角色控制方法、装置、设备及介质 - Google Patents

虚拟世界中的虚拟角色控制方法、装置、设备及介质 Download PDF

Info

Publication number
CN110665230B
CN110665230B CN201910919278.1A CN201910919278A CN110665230B CN 110665230 B CN110665230 B CN 110665230B CN 201910919278 A CN201910919278 A CN 201910919278A CN 110665230 B CN110665230 B CN 110665230B
Authority
CN
China
Prior art keywords
virtual character
ray
virtual
groveling
collision box
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
Application number
CN201910919278.1A
Other languages
English (en)
Other versions
CN110665230A (zh
Inventor
刘智洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910919278.1A priority Critical patent/CN110665230B/zh
Publication of CN110665230A publication Critical patent/CN110665230A/zh
Application granted granted Critical
Publication of CN110665230B publication Critical patent/CN110665230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress

Abstract

本申请公开了一种虚拟世界中的虚拟角色控制方法、装置、设备及介质,涉及虚拟世界领域。该方法包括:显示应用程序的用户界面,用户界面包括虚拟世界画面和趴下控件,虚拟世界画面是采用虚拟角色的视角对虚拟世界进行观察所采集到的画面;在接收到作用于趴下控件的趴下操作时,对虚拟角色在虚拟世界中的趴下位置进行射线检测;当射线检测未在趴下位置检测到第一障碍物时,控制虚拟角色从站立姿态切换为趴下状态;当虚拟角色在趴下状态进行移动时,根据虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测,碰撞盒检测用于对虚拟角色在移动过程中遇到的第二障碍物进行检测。该方法利用碰撞盒检测,解决了趴下后虚拟角色穿模的问题。

Description

虚拟世界中的虚拟角色控制方法、装置、设备及介质
技术领域
本申请实施例涉及虚拟世界领域,特别涉及一种虚拟世界中的虚拟角色控制方法、装置、设备及介质。
背景技术
在虚拟世界中的应用程序中,虚拟世界中的虚拟角色通常处于站立状态,用户可以通过趴下操作控制虚拟角色由站立状态变为趴下状态。趴下状态用于模拟实现世界中人的趴下动作,虚拟角色呈四肢着地状态。虚拟角色处于趴下状态时,用户可以通过移动操作控制虚拟角色匍匐移动。
在虚拟角色的匍匐移动过程中用射线检测,来检测虚拟角色在移动过程中是否会撞到障碍物。射线检测从虚拟角色身体上的一点,向虚拟角色的匍匐移动方向射出一段射线,当射线在一定距离内检测到障碍物时,表示虚拟角色与障碍物发生碰撞,虚拟角色不能继续移动。
当射线检测射出的射线刚好射入障碍物上的一处凹陷时,此时射线检测无法检测出障碍物,虚拟角色会继续匍匐移动,以致虚拟角色的身体模型穿过障碍物产生穿模问题。
发明内容
本申请实施例提供了一种虚拟世界中的虚拟角色控制方法、装置、设备及介质,可以解决当射线检测射出的射线刚好射入障碍物上的一处凹陷时,此时射线检测无法检测出障碍物,虚拟角色会继续匍匐移动,以致虚拟角色的身体模型穿过障碍物产生穿模问题。所述技术方案如下:
一方面,提供了一种虚拟世界中的虚拟角色控制方法,所述方法应用于终端中,所述终端中运行有支持所述虚拟世界的应用程序,所述方法包括:
显示所述应用程序的用户界面,所述用户界面包括虚拟世界画面和趴下控件,所述虚拟世界画面是采用所述虚拟角色的视角对所述虚拟世界进行观察所采集到的画面;
在接收到作用于所述趴下控件的趴下操作时,对所述虚拟角色在所述虚拟世界中的趴下位置进行射线检测;
当所述射线检测未在所述趴下位置检测到第一障碍物时,控制所述虚拟角色从站立姿态切换为趴下状态;
当所述虚拟角色在所述趴下状态进行移动时,根据所述虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测,所述碰撞盒检测用于对所述虚拟角色在所述移动过程中遇到的第二障碍物进行检测。
另一方面,提供了一种虚拟世界中的虚拟角色控制装置,所述装置应用于终端中,所述终端中运行有支持所述虚拟世界的应用程序,所述装置包括:
显示模块,用于显示所述应用程序的用户界面,所述用户界面包括虚拟世界画面和趴下控件,所述虚拟世界画面是采用所述虚拟角色的视角对所述虚拟世界进行观察所采集到的画面;
交互模块,用于接收作用于所述趴下控件的趴下操作;
射线检测模块,用于在接收到作用于所述趴下控件的趴下操作时,对所述虚拟角色在所述虚拟世界中的趴下位置进行射线检测;
趴下模块,用于当所述射线检测未在所述趴下位置检测到第一障碍物时,控制所述虚拟角色从站立姿态切换为趴下状态;
碰撞检测模块,用于当所述虚拟角色在所述趴下状态进行移动时,根据所述虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测,所述碰撞盒检测用于对所述虚拟角色在所述移动过程中遇到的第二障碍物进行检测。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的虚拟世界中的虚拟角色控制方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的虚拟世界中的虚拟角色控制方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过在虚拟角色趴下后,在虚拟角色的身体模型上绑定碰撞盒,当虚拟角色匍匐移动时,利用碰撞盒检测障碍物。用碰撞盒检测障碍物更加贴近虚拟角色与障碍物碰撞的真实情况,避免了由于障碍物形状不规则所导致的无法检测到障碍物的情况,解决了虚拟障碍物在匍匐移动中会产生的穿模问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一个示例性实施例提供的终端的结构示意图;
图2是本申请一个示例性实施例提供的计算机系统的结构框图;
图3是本申请一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的方法流程图;
图4是本申请一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的用户界面示意图;
图5是本申请一个示例性实施例提供的虚拟对象的视角对应的摄像机模型示意图;
图6是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法在实施时的虚拟世界示意图;
图7是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法在实施时的虚拟世界示意图;
图8是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法在实施时的虚拟世界示意图;
图9是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法在实施时的碰撞盒形状示意图;
图10是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的方法流程图;
图11是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法在实施时的虚拟世界示意图;
图12是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的方法流程图;
图13是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法在实施时的虚拟世界示意图;
图14是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的方法流程图;
图15是本申请另一个示例性实施例提供的虚拟世界中的虚拟角色控制装置的框图;
图16是本申请一个示例性实施例提供的终端的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
虚拟世界:是应用程序在终端上运行时显示(或提供)的虚拟世界。该虚拟世界可以是对真实世界的仿真世界,也可以是半仿真半虚构的世界,还可以是纯虚构的世界。虚拟世界可以是二维虚拟世界、2.5维虚拟世界和三维虚拟世界中的任意一种,本申请对此不加以限定。下述实施例以虚拟世界是三维虚拟世界来举例说明。
虚拟角色:是指虚拟世界中的可活动对象。该可活动对象可以是虚拟角色、虚拟动物、动漫人物等,比如:在三维虚拟世界中显示的人物、动物、植物、油桶、墙壁、石块等。可选地,虚拟角色是基于动画骨骼技术创建的三维立体模型。每个虚拟角色在三维虚拟世界中具有自身的形状和体积,占据三维虚拟世界中的一部分空间。
障碍物:是虚拟世界中除虚拟角色外任意的虚拟模型。除虚拟角色外任意的虚拟模型可以是构成虚拟世界的环境、物品、动物、植物、建筑等。可选的,障碍物是:墙体、箱子、植物、车辆、船只、集装箱、虚拟道具、虚拟武器等。
用户界面UI(User Interface)控件,在应用程序的用户界面上能够看见的任何可视控件或元素,比如,图片、输入框、文本框、按钮、标签等控件,其中一些UI控件响应用户的操作,比如,移动控件,控制虚拟角色在虚拟世界内进行移动动作。用户触发移动控件,控制虚拟角色的前进、后退、左右移动、攀爬、游泳、跳跃等。本申请实施例中涉及的UI控件,包括但不限于:移动控件、趴下控件。
本申请中提供的方法可以应用于具有虚拟世界和虚拟角色的应用程序中。示例性的,支持虚拟世界的应用程序是用户可以控制虚拟角色在虚拟世界内移动的应用程序。示例性的,本申请中提供的方法可以可以应用于:虚拟现实应用程序、增强现实(AugmentedReality,AR)程序、三维地图程序、军事仿真程序、虚拟现实游戏、增强现实游戏、第一人称射击游戏(First-person shooting game,FPS)、第三人称射击游戏(Third-PersonalShooting Game,TPS)、多人在线战术竞技游戏(Multiplayer Online Battle ArenaGames,MOBA)中的任意一种程序。
示例性的,虚拟世界中的游戏由一个或多个游戏世界的地图构成,游戏中的虚拟世界模拟现实世界的场景,用户可以操控游戏中的虚拟角色在虚拟世界中进行行走、跑步、跳跃、射击、格斗、驾驶、使用虚拟武器攻击其他虚拟角色、使用虚拟武器蓄力攻击其他虚拟角色等动作,交互性较强,并且多个用户可以在线组队进行竞技游戏。
在一些实施例中,上述应用程序可以是射击类游戏、竞速类游戏、角色扮演类游戏、冒险类游戏、沙盒游戏、战术竞技游戏、军事仿真程序等程序。该客户端可以支持Windows操作系统、苹果操作系统、安卓操作系统、IOS操作系统和LINUX操作系统中的至少一种操作系统,并且不同操作系统的客户端可以互联互通。在一些实施例中,上述客户端是适用于具有触摸屏的移动终端上的程序。
在一些实施例中,上述客户端是基于三维引擎开发的应用程序,比如三维引擎是Unity引擎。
本申请中的终端可以是台式计算机、膝上型便携计算机、手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器等等。该终端中安装和运行有支持虚拟世界的应用程序,比如支持三维虚拟世界的应用程序。该应用程序可以是战术竞技生存(Battle Royale,BR)游戏、虚拟现实应用程序、增强现实程序、三维地图程序、军事仿真程序、第三人称射击游戏、第一人称射击游戏、多人在线战术竞技游戏中的任意一种。可选地,该应用程序可以是单机版的应用程序,比如单机版的3D游戏程序,也可以是网络联机版的应用程序。
图1是本申请一个示例性实施例提供的终端的结构示意图。如图1所示,该终端包括处理器11、触摸屏12以及存储器13。
处理器11可以是单核处理器、多核处理器、嵌入式芯片以及具有指令运行能力的处理器中的至少一种。
触摸屏12包括普通触摸屏或压力感应触摸屏。普通触摸屏可以对施加在触摸屏12上的按压操作或滑动操作进行测量;压力感应触摸屏可以对施加在触摸屏12上的按压力度进行测量。
存储器13存储有处理器11的可执行程序。示意性的,存储器13中存储有虚拟世界程序A、应用程序B、应用程序C、触摸压力感应模块18、操作系统的内核层19。其中,虚拟世界程序A为基于三维虚拟引擎17开发的应用程序。可选地,虚拟世界程序A包括但不限于由三维虚拟引擎(也称虚拟世界引擎)17开发的游戏程序、虚拟现实程序、三维地图程序、三维演示程序中的至少一种。比如,终端的操作系统采用安卓操作系统时,虚拟世界程序A采用Java编程语言以及C#语言进行开发;又比如,终端的操作系统采用IOS操作系统时,虚拟世界程序A采用Object-C编程语言以及C#语言进行开发。
三维虚拟引擎17是一款支持多种操作系统平台的三维交互式引擎,示意性的,三维虚拟引擎可用于游戏开发领域、虚拟现实(Virtual Reality,VR)领域以及三维地图领域等多领域的程序开发,本申请实施例对三维虚拟引擎17的具体类型不限,在下文实施例中以三维虚拟引擎17是Unity引擎为例来举例说明。
触摸(以及压力)感应模块18是用于接收触摸屏驱动程序191所上报的触摸事件(以及压力触控事件)的模块,可选地,触摸感应模块可以不具有压力感应功能,不接收压力触控事件。触摸事件包括:触摸事件的类型和坐标值,触摸事件的类型包括但不限于:触摸开始事件、触摸移动事件和触摸落下事件。压力触控事件中包括:压力触控事件的压力值以及坐标值。该坐标值用于指示压力触控操作在显示屏上的触控位置。可选地,以显示屏的水平方向建立横坐标轴,显示屏的竖直方向建立竖坐标轴得到一个二维坐标系。
示意性的,内核层19包括了触摸屏驱动程序191以及其它驱动程序192。触摸屏驱动程序191是用于检测压力触控事件的模块,当触摸屏驱动程序191检测到压力触控事件后,将压力触控事件传递给压力感应模块18。
其它驱动程序192可以是与处理器11有关的驱动程序、与存储器13有关的驱动程序、与网络组件有关的驱动程序、与声音组件有关的驱动程序等。
本领域技术人员可以知晓,上述仅为对终端的结构的概括性示意。在不同的实施例中,终端可以具有更多或更少的组件。比如,终端还可以包括重力加速度传感器、陀螺仪传感器、电源等等。
图2示出了本申请一个示例性实施例提供的计算机系统的结构框图。该计算机系统500包括:第一终端550、服务器集群520、第二终端530。
第一终端550安装和运行有支持虚拟世界的客户端511,该客户端511可以是多人在线对战程序。当第一终端运行客户端511时,第一终端550的屏幕上显示客户端511的用户界面。该客户端可以是军事仿真程序、MOBA游戏、战术竞技游戏、SLG游戏的任意一种。在本实施例中,以该客户端是MOBA游戏来举例说明。第一终端550是第一用户512使用的终端,第一用户512使用第一终端550控制位于虚拟世界中的第一虚拟角色进行活动,第一虚拟角色可以称为第一用户512的主控虚拟角色。第一虚拟角色的活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、飞行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。示意性的,第一虚拟角色是第一虚拟角色,比如仿真人物角色或动漫人物角色。
第二终端530安装和运行有支持虚拟世界的客户端531,该客户端531可以是多人在线对战程序。当第二终端530运行客户端531时,第二终端530的屏幕上显示客户端531的用户界面。该客户端可以是军事仿真程序、MOBA游戏、战术竞技游戏、SLG游戏中的任意一种,在本实施例中,以该客户端是MOBA游戏来举例说明。第二终端530是第二用户532使用的终端,第二用户532使用第二终端530控制位于虚拟世界中的第二虚拟角色进行活动,第二虚拟角色可以称为第二用户532的主控虚拟角色。示意性的,第二虚拟角色是第二虚拟角色,比如仿真人物角色或动漫人物角色。
可选地,第一虚拟角色和第二虚拟角色处于同一虚拟世界中。可选地,第一虚拟角色和第二虚拟角色可以属于同一个阵营、同一个队伍、同一个组织、具有好友关系或具有临时性的通讯权限。可选的,第一虚拟角色和第二虚拟角色可以属于不同的阵营、不同的队伍、不同的组织或具有敌对关系。
可选地,第一终端550和第二终端530上安装的客户端是相同的,或两个终端上安装的客户端是不同操作系统平台(安卓或IOS)上的同一类型客户端。第一终端550可以泛指多个终端中的一个,第二终端530可以泛指多个终端中的另一个,本实施例仅以第一终端550和第二终端530来举例说明。第一终端550和第二终端530的设备类型相同或不同,该设备类型包括:智能手机、平板电脑、电子书阅读器、MP3播放器、MP4播放器、膝上型便携计算机和台式计算机中的至少一种。
图2中仅示出了两个终端,但在不同实施例中存在多个其它终端540可以接入服务器集群520。在一些实施例中,还存在至少一个终端540是开发者对应的终端,在终端540上安装有虚拟世界的客户端的开发和编辑平台,开发者可在终端540上对客户端进行编辑和更新,并将更新后的客户端安装包通过有线或无线网络传输至服务器集群520,第一终端550和第二终端550可从服务器集群520下载客户端安装包实现对客户端的更新。
第一终端550、第二终端530以及其它终端140通过无线网络或有线网络与服务器集群520相连。
服务器集群520包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器集群520用于为支持三维虚拟世界的客户端提供后台服务。可选地,服务器集群520承担主要计算工作,终端承担次要计算工作;或者,服务器集群520承担次要计算工作,终端承担主要计算工作;或者,服务器集群520和终端(第一终端550和第二终端530)之间采用分布式计算架构进行协同计算。
可选地,上述终端和服务器均为计算机设备。
在一个示意性的例子中,服务器集群520包括服务器521和服务器526,服务器521包括处理器522、用户帐号数据库523、对战服务模块524、面向用户的输入/输出接口(Input/Output Interface,I/O接口)525。其中,处理器522用于加载服务器521中存储的指令,处理用户帐号数据库521和对战服务模块524中的数据;用户帐号数据库521用于存储第一终端550、第二终端530以及其它终端140所使用的用户帐号的数据,比如用户帐号的头像、用户帐号的昵称、用户帐号的战斗力指数,用户帐号所在的服务区;对战服务模块524用于提供多个对战房间供用户进行对战;面向用户的I/O接口525用于通过无线网络或有线网络和第一终端550和/或第二终端530建立通信交换数据。
结合上述对虚拟世界的介绍以及实施环境说明,对本申请实施例提供的虚拟世界中的虚拟角色控制方法进行说明,以该方法的执行主体为图1所示出的终端来举例说明。该终端运行有应用程序,该应用程序是支持虚拟世界的程序。
图3是本申请一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的方法流程图。以该方法的执行主体为图1所示出的终端来举例说明,该方法至少包括如下步骤。
步骤101,显示应用程序的用户界面。
用户界面包括虚拟世界画面和趴下控件,虚拟世界画面是采用虚拟角色的视角对虚拟世界进行观察所采集到的画面。
终端显示应用程序的用户界面。
趴下控件是一种可见的UI控件或用户界面上不可见的UI控件。示例性的,趴下控件叠加显示在虚拟世界画面之上。示例性的,趴下控件还可以是可以接收用户操作的连接终端的其他输入设备或其他输入设备上的按键、触摸装置、动作识别装置。用户可以通过在趴下控件上进行趴下操作,控制虚拟角色在虚拟世界中趴下。
趴下操作是用户在趴下控件上进行的触发操作,用户通过趴下操作触发趴下控件控制虚拟世界中的虚拟角色趴下。示例性的,当趴下控件是可见的UI控件或其他输入设备上的触摸装置时,趴下操作可以是点击、双击、滑动、滚动、按压、触摸、手势操作中的至少一种。当趴下控件是用户界面上不可见的UI控件,即,趴下控件是虚拟界面上接收趴下操作的指定区域,此时,趴下操作可以是点击、双击、滑动、按压、手势操作中的至少一种。当趴下控件是连接终端的其他输入设备或其他区输入设备上的按键时,用户可以通过单击按键、顺序点击部分按键、长按、双击中的至少一种。当趴下控件是连接终端的动作识别装置时,动作识别装置可以通过摄像头捕捉用户的肢体动作,并根据趴下操作对应的肢体动作控制虚拟世界中的虚拟对象趴下。
图4是本申请一个示例性实施例提供的用户界面示意图。在支持虚拟世界的应用程序上显示用户界面700,在用户界面700上包括虚拟世界画面和各种功能对应的控件,可选地,各种功能对应的控件显示在虚拟世界画面之上。示例性的,用户界面上有移动控件701、趴下控件702、虚拟角色703、障碍物704。用户可通过移动控件701控制虚拟角色在虚拟世界中移动,通过趴下控件702控制虚拟角色在虚拟世界中趴下。
可选地,虚拟世界画面是以虚拟角色的视角对虚拟世界进行观察的画面。视角是指以虚拟角色的第一人称视角或者第三人称视角在虚拟世界中进行观察时的观察角度。可选地,本申请的实施例中,视角是在虚拟世界中通过摄像机模型对虚拟角色进行观察时的角度。
可选地,摄像机模型在虚拟世界中对虚拟角色进行自动跟随,即,当虚拟角色在虚拟世界中的位置发生改变时,摄像机模型跟随虚拟角色在虚拟世界中的位置同时发生改变,且该摄像机模型在虚拟世界中始终处于虚拟角色的预设距离范围内。可选地,在自动跟随过程中,摄像头模型和虚拟角色的相对位置不发生变化。
摄像机模型是指在虚拟世界中位于虚拟角色周围的三维模型,当采用第一人称视角时,该摄像机模型位于虚拟角色的头部附近或者位于虚拟角色的头部;当采用第三人称视角时,该摄像机模型可以位于虚拟角色的后方并与虚拟角色进行绑定,也可以位于与虚拟角色相距预设距离的任意位置,通过该摄像机模型可以从不同角度对位于虚拟世界中的虚拟角色进行观察,可选地,该第三人称视角为第一人称的过肩视角时,摄像机模型位于虚拟角色(比如虚拟角色的头肩部)的后方。可选地,除第一人称视角和第三人称视角外,视角还包括其他视角,比如俯视视角;当采用俯视视角时,该摄像机模型可以位于虚拟角色头部的上空,俯视视角是以从空中俯视的角度进行观察虚拟世界的视角。可选地,该摄像机模型在虚拟世界中不会进行实际显示,即,在用户界面显示的虚拟世界中不显示该摄像机模型。
对该摄像机模型位于与虚拟角色相距预设距离的任意位置为例进行说明,可选地,一个虚拟角色对应一个摄像机模型,该摄像机模型可以以虚拟角色为旋转中心进行旋转,如:以虚拟角色的任意一点为旋转中心对摄像机模型进行旋转,摄像机模型在旋转过程中的不仅在角度上有转动,还在位移上有偏移,旋转时摄像机模型与该旋转中心之间的距离保持不变,即,将摄像机模型在以该旋转中心作为球心的球体表面进行旋转,其中,虚拟角色的任意一点可以是虚拟角色的头部、躯干、或者虚拟角色周围的任意一点,本申请实施例对此不加以限定。可选地,摄像机模型在对虚拟角色进行观察时,该摄像机模型的视角的中心指向为该摄像机模型所在球面的点指向球心的方向。
可选地,该摄像机模型还可以在虚拟角色的不同方向以预设的角度对虚拟角色进行观察。
示意性的,请参考图5,在虚拟角色11中确定一点作为旋转中心12,摄像机模型围绕该旋转中心12进行旋转,可选地,该摄像机模型配置有一个初始位置,该初始位置为虚拟角色后上方的位置(比如脑部的后方位置)。示意性的,如图5所示,该初始位置为位置13,当摄像机模型旋转至位置14或者位置15时,摄像机模型的视角方向随摄像机模型的转动而进行改变。
可选地,虚拟世界画面显示的虚拟世界包括:山川、平地、河流、湖泊、海洋、沙漠、天空、植物、建筑、车辆中的至少一种元素。
步骤102,在接收到作用于趴下控件的趴下操作时,对虚拟角色在虚拟世界中的趴下位置进行射线检测。
终端在接收到作用于趴下控件的趴下操作时,对虚拟角色在虚拟世界中的趴下位置进行射线检测。
射线检测是是用来检测障碍物的检测方法。射线检测从虚拟角色的身体模型上的一点射出一条射线,利用射线来检测障碍物。示例性的,本申请所提到的射线是一段具有一定长度的线段。
示例性的,终端在接收到作用于趴下控件的趴下操作时,需要判断虚拟角色目前所处位置是否能够趴下。例如,当虚拟角色身后距离障碍物的距离过近时,虚拟角色趴下后,腿部没有足够的空间,会导致虚拟角色在趴下后虚拟角色身体模型的腿部与障碍物产生交集,产生穿模问题。
示例性的,如图6-a所示,在虚拟世界里有虚拟角色703和障碍物704。终端在接收到作用于趴下控件的趴下操作时,从虚拟角色的身体模型上的一点射出一条射线801检测障碍物。当射线检测判断虚拟角色与障碍物之间的距离过近时,若虚拟角色进行趴下操作,则会导致虚拟角色的身体模型与障碍物穿模,如图6-b所示虚拟角色的身体模型与障碍物穿模802。如图7-a所示,当射线检测判断虚拟角色与障碍物之间有足够的距离时,此时虚拟角色进行趴下操作,虚拟角色的身体模型和障碍物不会发生穿模,如图7-b所示,属于趴下的情况。
步骤103,当射线检测未在趴下位置检测到第一障碍物时,控制虚拟角色从站立姿态切换为趴下状态。
当射线检测未在趴下位置检测到第一障碍物时,终端控制虚拟角色从站立姿态切换为趴下状态。
趴下位置是指虚拟角色在趴下后,身体模型在虚拟世界内占据的一定体积。趴下位置的确定方式可以是任意的。以虚拟角色站立时的点为中心点,虚拟角色趴下后的身体模型,可以以任意方式放置,使身体模型包括有中心点。示例性的,趴下位置可以是:趴下后中心点在虚拟角色身体模型的头部,即虚拟角色头部不动,身体部分向后趴下;趴下后中心点在虚拟角色身体模型的腹部,即虚拟角色的腹部不动,虚拟角色头部向前趴下,脚部向后趴下,使趴下后的虚拟角色的中心依旧在中心点上;趴下后中心点在虚拟角色的脚部,即虚拟角色的脚部不动,身体部分向前趴下。
射线检测未在趴下位置检测到第一障碍物,即,虚拟角色的身体模型与第一障碍物之间有足够的距离,此时虚拟角色趴下身体模型与第一虚拟障碍物不会穿模。示例性的,如图7-b所示,射线检测未在趴下位置检测到第一障碍物,虚拟角色从站立姿势切换为趴下状态。
步骤104,当虚拟角色在趴下状态进行移动时,根据虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测。
碰撞盒检测用于对虚拟角色在移动过程中遇到的第二障碍物进行检测。
当虚拟角色在趴下状态进行移动时,终端根据虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测。
虚拟角色的身体模型是虚拟世界为虚拟角色创建的模型,虚拟角色的身体模型具有一定的大小和体积。示例性的,虚拟角色的身体模型是仿真的人物模型、动物模型、或其他种类虚拟角色的模型中的至少一种。
碰撞盒是在虚拟角色的身体模型上设置的在用户界面上不可见的虚拟模型。碰撞盒用来检测虚拟角色是否与障碍物产生碰撞。示例性的,碰撞盒用于模拟虚拟角色的身体模型,碰撞盒的形状、大小越贴近身体模型,碰撞盒检测的结果越真实。
示例性的,碰撞盒的大小覆盖了虚拟角色身体模型的全部或绝大部分。示例性的,同一个虚拟角色的身体模型上可以设置多个碰撞盒子。示例性的,为了便于计算,碰撞盒可以是规则的、利于计算的形状,或是多个规则的、利于计算的形状的组合,例如:长方体、立方体、圆柱体、球体、椎体。
当虚拟角色处于站立状态时,由于虚拟角色在移动过程中腿部动作幅度较大,运用碰撞盒对障碍物进行检测计算量过大,因此在站立行走时,不会设置虚拟角色的下半身碰撞盒。当虚拟角色趴下后,由于匍匐移动过程中腿部动作幅度较小,将碰撞盒覆盖到虚拟角色的下半身可以快速且有效地检测障碍物,且计算量较少。
示例性的,如图9所示,碰撞盒子的形状可以是如图9-a所示的椎体、如图9-b所示的球体、如图9-c所示的由两个球体和一个圆柱体组成的组合体。
碰撞盒检测是用碰撞盒在虚拟角色匍匐移动过程中对第二障碍物进行检测的检测方法。示例性的,碰撞盒检测是通过检测碰撞盒与障碍物是否产生交集来判断虚拟角色与障碍物是否发生碰撞。
示例性的,如图8所示,在虚拟角色703的身体模型上有碰撞盒803,利用碰撞盒检测虚拟角色在匍匐移动过程中虚拟角色是否与第二障碍物804之间是否发生碰撞。
综上所述,本实施例提供的方法,通过在虚拟角色趴下后,在虚拟角色的身体模型上绑定碰撞盒,当虚拟角色匍匐移动时,利用碰撞盒检测障碍物。用碰撞盒检测障碍物更加贴近虚拟角色与障碍物碰撞的真实情况,避免了由于障碍物形状不规则所导致的无法检测到障碍物的情况,解决了虚拟障碍物在匍匐移动中会产生的穿模问题。
示例性的,给出射线检测和碰撞盒检测实现方法的示例性实施例。
图10是本申请一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的方法流程图。以该方法的执行主体为图1所示出的终端来举例说明,该方法至少包括如下步骤。
步骤101,显示应用程序的用户界面。
步骤201,在接收到作用于趴下控件的趴下操作时,从虚拟角色在趴下位置的头部预测位置向虚拟角色身后做平行于地面的第一射线,第一射线具有长度x。
终端在接收到作用于趴下控件的趴下操作时,从虚拟角色在趴下位置的头部预测位置向虚拟角色身后做平行于地面的第一射线,第一射线具有长度x。
头部预测位置是虚拟角色的身体模型在趴下后,头部所处的位置。
示例性的,如图7-a所示,以虚拟角色703在趴下位置的头部预测位置805为起点,向虚拟角色背对的方向射出一条平行于地面的射线801,射线801具有长度x。
示例性的,x的数值可以由虚拟角色的身高决定,即虚拟角色身体模型的长度决定。x的数值可以等于虚拟角色的身高,也可以稍大于虚拟角色的身高。
步骤202,检测第一射线是否与第一障碍物存在交集。
终端检测第一射线是否与第一障碍物存在交集。
示例性的,终端检测第一射线是否与障碍物表面产生交点。若产生交点,则射线检测检测到第一障碍物;若没有产生交点,则射线检测未检测到第一障碍物。
步骤103,当射线检测未在趴下位置检测到第一障碍物时,控制虚拟角色从站立姿态切换为趴下状态。
步骤401,在虚拟角色的身体模型上创建上半身碰撞盒和下半身碰撞盒。
终端在虚拟角色的身体模型上创建上半身碰撞盒和下半身碰撞盒。
碰撞盒有两个,分别是在虚拟角色的身体模型上半身设置的上半身碰撞盒,和在虚拟角色的身体模型下半身设置的下半身碰撞盒。
示例性的,如图11所示,在虚拟角色703身体模型的上半身,有上本身碰撞盒901,在虚拟角色703身体模型的下半身,有下半身碰撞盒902。
步骤402,当虚拟角色在趴下状态向前移动时,根据虚拟角色的身体模型上绑定的上半身碰撞盒进行碰撞盒检测。
当虚拟角色在趴下状态向前移动时,终端根据虚拟角色的身体模型上绑定的上半身碰撞盒进行碰撞盒检测。
示例性的,虚拟角色在趴下后,用户通过控制移动控件,控制虚拟角色前后左右的移动。
示例性的,上半身碰撞盒在虚拟角色趴下向前移动时,检测虚拟角色前方是否有障碍物。
示例性的,虚拟角色在趴下状态向前移动包括:虚拟角色在趴下状态向左前或右前移动。
步骤403,当虚拟角色在趴下状态向后移动时,根据虚拟角色的身体模型上绑定的下半身碰撞盒进行碰撞盒检测。
当虚拟角色在趴下状态向后移动时,终端根据虚拟角色的身体模型上绑定的下半身碰撞盒进行碰撞盒检测。
示例性的,下半身碰撞盒在虚拟角色趴下向后移动时,检测虚拟角色后方是否有障碍物。
示例性的,虚拟角色在趴下状态向后移动包括:虚拟角色在趴下状态向左后或右后移动。
示例性的,当虚拟角色在趴下状态向左或向右移动时,根据虚拟角色的身体模型上绑定的上半身碰撞盒和下半身碰撞盒进行碰撞盒检测。
综上所述,本实施例提供的方法,通过在接收到趴下操作时,向虚拟角色身后射出第一射线,用射线检测检测第一障碍物,防止虚拟角色趴下后产生虚拟角色的身体模型与障碍物穿模。
通过在虚拟角色趴下后,在虚拟角色的身体模型上半身绑定上半身碰撞盒,在虚拟角色的身体模型下半身绑定下半身碰撞盒,当虚拟角色向前移动时,利用上半身碰撞盒检测障碍物;当虚拟角色向后移动时,利用下半身碰撞盒检测障碍物,进行碰撞盒检测,更加贴近虚拟角色与障碍物碰撞的真实情况,避免了由于障碍物形状不规则所导致的无法检测到障碍物的情况,解决了虚拟障碍物在匍匐移动中会产生的穿模问题。
示例性的,给出当虚拟角色处于斜面上时,判断虚拟角色是否能够趴下的示例性实施例。
图12是本申请一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的方法流程图。以该方法的执行主体为图1所示出的终端来举例说明,在图3所提供的示例性实施例的基础上,步骤103还可以替换为以下步骤。
步骤601,从虚拟角色在站立姿态下的指定身体位置向虚拟角色身后做平行于地面的第二射线,第二射线具有长度y。
终端从虚拟角色在站立姿态下的指定身体位置向虚拟角色身后做平行于地面的第二射线,第二射线具有长度y。
虚拟角色在站立姿态下的指定身体位置可以是虚拟角色的身体模型上或身体模型内任意一点。
第二射线的长度y可以是任意的,示例性的,第二射线的长度y可以与虚拟角色的身长有关,例如,长度y等于虚拟角色的身长,或,长度y稍短于虚拟角色的身长。
示例性的,如图13所示,以指定身体位置是虚拟角色身体模型的脚部为例,虚拟世界里有虚拟角色703、斜面1304。从虚拟角色在站立姿态下的脚部向虚拟角色身后做平行于地面的第二射线1301,第二射线具有长度y。
步骤602,从第二射线的末端做垂直于水平面的第三射线,得到第三射线与地面之间的焦点。
终端从第二射线的末端做垂直于水平面的第三射线,得到第三射线与地面之间的焦点。
第三射线以第二射线地末端为起点,并垂直于水平面与地面交于焦点。
示例性的,如图13所示,以第二射线1301的末端为起点作垂直于水平面的第三射线1302,第三射线与斜面1304交于焦点。
步骤603,计算第二射线和第四射线之间的夹角,第四射线是从第二射线的始端指向焦点的射线。
终端计算第二射线和第四射线之间的夹角,第四射线是从第二射线的始端指向焦点的射线。
第四射线是连接第二射线起点和第三射线与地面的焦点的射线。
示例性的,由于虚拟角色时竖直站立的,所以终端所计算第二射线与第四射线的夹角,为第二射线与第四射线组成的锐角。
示例性的,如图13所示,连接第二射线1301的起点和第三射线1302与斜面1304的焦点,作第四射线1303。计算第二射线1301和第四射线之间的夹角α。
步骤604,将夹角确定为斜坡的斜角。
终端将夹角确定为斜坡的斜角。
示例性的,斜角近似为虚拟角色当前站立的地面与水平地面的夹角。
示例性的,如图13所示,夹角α近似为斜面斜角β。
步骤501,当射线检测未在趴下位置检测到第一障碍物时,当趴下位置不是斜角大于a的斜坡时,控制虚拟角色从站立姿态切换为趴下状态。
当射线检测未在趴下位置检测到第一障碍物时,当趴下位置不是斜角大于a的斜坡时,终端控制虚拟角色从站立姿态切换为趴下状态。
当终端在射出第二射线后未检测到障碍物,则终端射出第三射线和第四射线确定斜坡的斜角,当斜角小于a时,表示斜面坡度较缓,虚拟角色可以趴下。
示例性的,a的数值大小可以由虚拟角色能够趴下的最大角度决定。
综上所述,本实施例提供的方法,当虚拟角色处于斜面或斜坡上时,通过射出第二射线、第三射线和第四射线来近似确定斜面或斜坡的斜角,进而判断虚拟角色能否趴下。防止由于斜面斜度较大导致的虚拟角色以较大的倾斜程度趴在斜面上,与实际情况相违背。
示例性的,给出本申请提供的虚拟世界中的虚拟角色控制方法应用于实际的示例性实施例。
图14是本申请一个示例性实施例提供的虚拟世界中的虚拟角色控制方法的方法流程图。以该方法的执行主体为图1所示出的终端来举例说明,该方法包括。
步骤1401,站立状态。
虚拟角色在虚拟世界中处于站立状态。
步骤1402,是否点击趴下。
终端判断用户是否进行趴下操作触发趴下控件。当用户触发趴下控件时进行步骤1403;否则返回步骤1401。
步骤1403,检测当前是否能趴下。
终端检测当前是否能趴下。示例性的,终端通过射线检测检测虚拟角色的趴下位置是否会与障碍物相交。当终端检测当前虚拟角色可以趴下时,进行步骤1404;否则返回步骤1401。
步骤1404,趴下并在腿上产生碰撞盒。
终端控制虚拟角色趴下并在虚拟角色身体模型的腿部产生碰撞盒。
步骤1405,判断是否移动。
终端判断用户是否触发移动控件控制虚拟角色移动。当终端判断虚拟角色发生移动时,进行步骤1406;否则返回步骤1404。
步骤1406,碰撞盒跟随移动。
终端控制碰撞盒跟随虚拟角色一起移动。
步骤1407,判断是否碰到障碍物。
终端判断虚拟角色是否碰到障碍物。当虚拟角色碰到障碍物时,进行步骤1408;否则返回步骤1406。
示例性的,终端利用碰撞盒检测虚拟角色是否与障碍物产生交集,来判断虚拟角色是否与障碍物发生碰撞。
步骤1408,停止移动。
终端控制虚拟角色停止移动。
步骤1409,判断是否点击起身按钮。
终端判断用户是否点击起身按钮,当用户点击起身按钮时,进行步骤1410;否则返回步骤1405。
步骤1410,起身。
终端控制虚拟角色停止趴下状态转为站立状态。
综上所述,本实施例将本申请提供的虚拟世界中的虚拟角色控制方法应用于实际,给出了完整的判断虚拟角色能否趴下、趴下后匍匐移动过程中是否碰到障碍物以及从趴下状态转为站立状态的完整流程。本实施例贴近虚拟角色与障碍物碰撞的真实情况,避免了由于障碍物形状不规则所导致的无法检测到障碍物的情况,解决了虚拟障碍物在匍匐移动中会产生的穿模问题。
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可参考上述方法实施例。
图15是本申请一个示例性实施例提供的虚拟世界中的虚拟角色控制装置的框图。所述装置应用于终端中,所述终端中运行有支持所述虚拟世界的应用程序,该装置包括:
显示模块1501,用于显示所述应用程序的用户界面,所述用户界面包括虚拟世界画面和趴下控件,所述虚拟世界画面是采用所述虚拟角色的视角对所述虚拟世界进行观察所采集到的画面;
交互模块1502,用于接收作用于所述趴下控件的趴下操作;
射线检测模块1503,用于在接收到作用于所述趴下控件的趴下操作时,对所述虚拟角色在所述虚拟世界中的趴下位置进行射线检测;
趴下模块1504,用于当所述射线检测未在所述趴下位置检测到第一障碍物时,控制所述虚拟角色从站立姿态切换为趴下状态;
碰撞检测模块1505,用于当所述虚拟角色在所述趴下状态进行移动时,根据所述虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测,所述碰撞盒检测用于对所述虚拟角色在所述移动过程中遇到的第二障碍物进行检测。
在一个可选的实施例中,所述射线检测模块还包括射线子模块1506和射线检测子模块1509;
所述射线子模块1506,用于从所述虚拟角色在所述趴下位置的头部预测位置向所述虚拟角色身后做平行于地面的第一射线,所述第一射线具有长度x;
所述射线检测子模块1509,用于检测所述第一射线是否与第一障碍物存在交集。
在一个可选的实施例中,所述长度x等于或大于所述虚拟角色的身高。
在一个可选的实施例中,所述碰撞检测模块1505,还用于在所述虚拟角色的身体模型上创建上半身碰撞盒和下半身碰撞盒;
所述碰撞检测模块1505,还用于当所述虚拟角色在所述趴下状态向前移动时,根据所述虚拟角色的身体模型上绑定的所述上半身碰撞盒进行碰撞盒检测;
所述碰撞检测模块1505,还用于当所述虚拟角色在所述趴下状态向后移动时,根据所述虚拟角色的身体模型上绑定的所述下半身碰撞盒进行碰撞盒检测。
在一个可选的实施例中,所述趴下模块1504,还用于当所述趴下位置不是斜角大于a的斜坡时,控制所述虚拟角色从站立姿态切换为趴下状态。
在一个可选的实施例中,所述射线检测模块还包括射线子模块1506、计算子模块1507和确定子模块1508;
所述射线子模块1506,用于从所述虚拟角色在所述站立姿态下的指定身体位置向所述虚拟角色身后做平行于地面的第二射线,所述第二射线具有长度y;
所述射线子模块1506,还用于从所述第二射线的末端做垂直于水平面的第三射线,得到所述第三射线与地面之间的焦点;
所述计算子模块1507,用于计算所述第二射线和第四射线之间的夹角,所述第四射线是从所述第二射线的始端指向所述焦点的射线;
所述确定子模块1508,用于将所述夹角确定为所述斜坡的所述斜角。
需要说明的是:上述实施例提供的虚拟世界中的虚拟角色控制装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟世界中的虚拟角色控制装置与虚拟世界中的虚拟角色控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图16示出了本申请一个示例性实施例提供的终端3900的结构框图。该终端3900可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端3900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其它名称。
通常,终端3900包括有:处理器3901和存储器3902。
处理器3901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器3901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器3901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器3901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器3901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器3902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器3902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器3902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器3901所执行以实现本申请中方法实施例提供的虚拟世界中的虚拟角色控制方法。
在一些实施例中,终端3900还可选包括有:外围设备接口3903和至少一个外围设备。处理器3901、存储器3902和外围设备接口3903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口3903相连。具体地,外围设备包括:射频电路3904、触摸显示屏3905、摄像头3906、音频电路3907、定位组件3908和电源3909中的至少一种。
外围设备接口3903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器3901和存储器3902。在一些实施例中,处理器3901、存储器3902和外围设备接口3903被集成在同一芯片或电路板上;在一些其它实施例中,处理器3901、存储器3902和外围设备接口3903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路3904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路3904通过电磁信号与通信网络以及其它通信设备进行通信。射频电路3904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路3904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路3904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路3904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏3905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏3905是触摸显示屏时,显示屏3905还具有采集在显示屏3905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器3901进行处理。此时,显示屏3905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏3905可以为一个,设置终端3900的前面板;在另一些实施例中,显示屏3905可以为至少两个,分别设置在终端3900的不同表面或呈折叠设计;在再一些实施例中,显示屏3905可以是柔性显示屏,设置在终端3900的弯曲表面上或折叠面上。甚至,显示屏3905还可以设置成非矩形的不规则图形,也即异形屏。显示屏3905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件3906用于采集图像或视频。可选地,摄像头组件3906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件3906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路3907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器3901进行处理,或者输入至射频电路3904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端3900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器3901或射频电路3904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路3907还可以包括耳机插孔。
定位组件3908用于定位终端3900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件3908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源3909用于为终端3900中的各个组件进行供电。电源3909可以是交流电、直流电、一次性电池或可充电电池。当电源3909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端3900还包括有一个或多个传感器3910。该一个或多个传感器3910包括但不限于:加速度传感器3911、陀螺仪传感器3912、压力传感器3913、指纹传感器3914、光学传感器3915以及接近传感器3916。
加速度传感器3911可以检测以终端3900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器3911可以用于检测重力加速度在三个坐标轴上的分量。处理器3901可以根据加速度传感器3911采集的重力加速度信号,控制触摸显示屏3905以横向视图或纵向视图进行用户界面的显示。加速度传感器3911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器3912可以检测终端3900的机体方向及转动角度,陀螺仪传感器3912可以与加速度传感器3911协同采集用户对终端3900的3D动作。处理器3901根据陀螺仪传感器3912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器3913可以设置在终端3900的侧边框和/或触摸显示屏3905的下层。当压力传感器3913设置在终端3900的侧边框时,可以检测用户对终端3900的握持信号,由处理器3901根据压力传感器3913采集的握持信号进行左右手识别或快捷操作。当压力传感器3913设置在触摸显示屏3905的下层时,由处理器3901根据用户对触摸显示屏3905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器3914用于采集用户的指纹,由处理器3901根据指纹传感器3914采集到的指纹识别用户的身份,或者,由指纹传感器3914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器3901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器3914可以被设置终端3900的正面、背面或侧面。当终端3900上设置有物理按键或厂商Logo时,指纹传感器3914可以与物理按键或厂商Logo集成在一起。
光学传感器3915用于采集环境光强度。在一个实施例中,处理器3901可以根据光学传感器3915采集的环境光强度,控制触摸显示屏3905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏3905的显示亮度;当环境光强度较低时,调低触摸显示屏3905的显示亮度。在另一个实施例中,处理器3901还可以根据光学传感器3915采集的环境光强度,动态调整摄像头组件3906的拍摄参数。
接近传感器3916,也称距离传感器,通常设置在终端3900的前面板。接近传感器3916用于采集用户与终端3900的正面之间的距离。在一个实施例中,当接近传感器3916检测到用户与终端3900的正面之间的距离逐渐变小时,由处理器3901控制触摸显示屏3905从亮屏状态切换为息屏状态;当接近传感器3916检测到用户与终端3900的正面之间的距离逐渐变大时,由处理器3901控制触摸显示屏3905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图16中示出的结构并不构成对终端3900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任意示例性实施例所提供的虚拟世界中的虚拟角色控制方法。
本申请还提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任意示例性实施例所提供的虚拟世界中的虚拟角色控制方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种虚拟世界中的虚拟角色控制方法,其特征在于,所述方法应用于终端中,所述终端中运行有支持所述虚拟世界的应用程序,所述方法包括:
显示所述应用程序的用户界面,所述用户界面包括虚拟世界画面和趴下控件,所述虚拟世界画面是采用所述虚拟角色的视角对所述虚拟世界进行观察所采集到的画面;
在接收到作用于所述趴下控件的趴下操作时,对所述虚拟角色在所述虚拟世界中的趴下位置进行射线检测;
当所述射线检测未在所述趴下位置检测到第一障碍物时,控制所述虚拟角色从站立姿态切换为趴下状态;
当所述虚拟角色在所述趴下状态进行移动时,根据所述虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测,所述碰撞盒包括上半身碰撞盒和下半身碰撞盒,所述碰撞盒检测用于对所述虚拟角色在所述移动过程中遇到的第二障碍物进行检测;
当所述虚拟角色处于所述站立姿态时,在所述虚拟角色的身体模型上创建所述上半身碰撞盒。
2.根据权利要求1所述的方法,其特征在于,所述对所述虚拟角色在所述虚拟世界中的趴下位置进行射线检测,包括:
从所述虚拟角色在所述趴下位置的头部预测位置向所述虚拟角色身后做平行于地面的第一射线,所述第一射线具有长度x;
检测所述第一射线是否与第一障碍物存在交集。
3.根据权利要求2所述的方法,其特征在于,所述长度x等于或大于所述虚拟角色的身高。
4.根据权利要求1至3任一所述的方法,其特征在于,所述当所述虚拟角色在所述趴下状态进行移动时,根据所述虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测,包括:
在所述虚拟角色的身体模型上创建所述上半身碰撞盒和所述下半身碰撞盒;
当所述虚拟角色在所述趴下状态向前移动时,根据所述虚拟角色的身体模型上绑定的所述上半身碰撞盒进行碰撞盒检测;
当所述虚拟角色在所述趴下状态向后移动时,根据所述虚拟角色的身体模型上绑定的所述下半身碰撞盒进行碰撞盒检测。
5.根据权利要求1至3任一所述的方法,其特征在于,所述控制所述虚拟角色从站立姿态切换为趴下状态,包括:
当所述趴下位置不是斜角大于a的斜坡时,控制所述虚拟角色从站立姿态切换为趴下状态。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
从所述虚拟角色在所述站立姿态下的指定身体位置向所述虚拟角色身后做平行于地面的第二射线,所述第二射线具有长度y;
从所述第二射线的末端做垂直于水平面的第三射线,得到所述第三射线与地面之间的焦点;
计算所述第二射线和第四射线之间的夹角,所述第四射线是从所述第二射线的始端指向所述焦点的射线;
将所述夹角确定为所述斜坡的所述斜角。
7.一种虚拟世界中的虚拟角色控制装置,其特征在于,所述装置应用于终端中,所述终端中运行有支持所述虚拟世界的应用程序,所述装置包括:
显示模块,用于显示所述应用程序的用户界面,所述用户界面包括虚拟世界画面和趴下控件,所述虚拟世界画面是采用所述虚拟角色的视角对所述虚拟世界进行观察所采集到的画面;
交互模块,用于接收作用于所述趴下控件的趴下操作;
射线检测模块,用于在接收到作用于所述趴下控件的趴下操作时,对所述虚拟角色在所述虚拟世界中的趴下位置进行射线检测;
趴下模块,用于当所述射线检测未在所述趴下位置检测到第一障碍物时,控制所述虚拟角色从站立姿态切换为趴下状态;
碰撞检测模块,用于当所述虚拟角色在所述趴下状态进行移动时,根据所述虚拟角色的身体模型上绑定的碰撞盒进行碰撞盒检测,所述碰撞盒包括上半身碰撞盒和下半身碰撞盒,所述碰撞盒检测用于对所述虚拟角色在所述移动过程中遇到的第二障碍物进行检测;
所述碰撞检测模块,还用于当所述虚拟角色处于所述站立姿态时,在所述虚拟角色的身体模型上创建所述上半身碰撞盒。
8.根据权利要求7所述的装置,其特征在于,所述射线检测模块还包括射线子模块和射线检测子模块;
所述射线子模块,用于从所述虚拟角色在所述趴下位置的头部预测位置向所述虚拟角色身后做平行于地面的第一射线,所述第一射线具有长度x;
所述射线检测子模块,用于检测所述第一射线是否与第一障碍物存在交集。
9.根据权利要求8所述的装置,其特征在于,所述长度x等于或大于所述虚拟角色的身高。
10.根据权利要求7至9任一所述的装置,其特征在于,
所述碰撞检测模块,还用于在所述虚拟角色的身体模型上创建所述上半身碰撞盒和所述下半身碰撞盒;
所述碰撞检测模块,还用于当所述虚拟角色在所述趴下状态向前移动时,根据所述虚拟角色的身体模型上绑定的所述上半身碰撞盒进行碰撞盒检测;
所述碰撞检测模块,还用于当所述虚拟角色在所述趴下状态向后移动时,根据所述虚拟角色的身体模型上绑定的所述下半身碰撞盒进行碰撞盒检测。
11.根据权利要求7至9任一所述的装置,其特征在于,
所述趴下模块,还用于当所述趴下位置不是斜角大于a的斜坡时,控制所述虚拟角色从站立姿态切换为趴下状态。
12.根据权利要求11所述的装置,其特征在于,所述射线检测模块还包括射线子模块、计算子模块和确定子模块;
所述射线子模块,用于从所述虚拟角色在所述站立姿态下的指定身体位置向所述虚拟角色身后做平行于地面的第二射线,所述第二射线具有长度y;
所述射线子模块,还用于从所述第二射线的末端做垂直于水平面的第三射线,得到所述第三射线与地面之间的焦点;
所述计算子模块,用于计算所述第二射线和第四射线之间的夹角,所述第四射线是从所述第二射线的始端指向所述焦点的射线;
所述确定子模块,用于将所述夹角确定为所述斜坡的所述斜角。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一所述的虚拟世界中的虚拟角色控制方法。
14.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一所述的虚拟世界中的虚拟角色控制方法。
CN201910919278.1A 2019-09-26 2019-09-26 虚拟世界中的虚拟角色控制方法、装置、设备及介质 Active CN110665230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910919278.1A CN110665230B (zh) 2019-09-26 2019-09-26 虚拟世界中的虚拟角色控制方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910919278.1A CN110665230B (zh) 2019-09-26 2019-09-26 虚拟世界中的虚拟角色控制方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN110665230A CN110665230A (zh) 2020-01-10
CN110665230B true CN110665230B (zh) 2020-11-13

Family

ID=69079350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910919278.1A Active CN110665230B (zh) 2019-09-26 2019-09-26 虚拟世界中的虚拟角色控制方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN110665230B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111389005B (zh) * 2020-03-09 2021-10-26 腾讯科技(深圳)有限公司 虚拟对象的控制方法、装置、设备及存储介质
CN111589137B (zh) * 2020-04-29 2021-12-10 腾讯科技(深圳)有限公司 虚拟角色的控制方法、装置、设备及介质
CN111714891B (zh) * 2020-06-22 2021-05-11 苏州幻塔网络科技有限公司 角色攀爬方法、装置、计算机设备及可读存储介质
CN111583375B (zh) * 2020-06-24 2023-04-07 腾讯科技(深圳)有限公司 虚拟画面的显示方法、装置、设备及存储介质
CN111714886B (zh) * 2020-07-24 2021-09-28 腾讯科技(深圳)有限公司 虚拟对象的控制方法、装置、设备以及存储介质
CN112642155B (zh) * 2020-12-23 2023-04-07 上海米哈游天命科技有限公司 一种角色控制方法、装置、设备及存储介质
CN112619143B (zh) * 2020-12-23 2023-03-21 上海米哈游天命科技有限公司 一种角色标识显示方法、装置、设备及存储介质
CN112657191B (zh) * 2020-12-23 2023-04-28 上海米哈游天命科技有限公司 一种角色标识显示方法、装置、设备及存储介质
CN112546631B (zh) * 2020-12-23 2023-03-03 上海米哈游天命科技有限公司 一种角色控制方法、装置、设备及存储介质
CN112634418B (zh) * 2020-12-30 2024-04-19 北京爱奇艺科技有限公司 一种人体模型穿模可见性检测方法、装置及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4339908B2 (ja) * 2007-11-28 2009-10-07 株式会社コナミデジタルエンタテインメント ゲーム装置、画像生成方法、および、プログラム
CN108245893B (zh) * 2018-02-09 2021-06-29 腾讯科技(深圳)有限公司 三维虚拟环境中虚拟对象的姿态确定方法、装置及介质
CN108635853B (zh) * 2018-03-23 2019-06-21 腾讯科技(深圳)有限公司 对象的控制方法和装置、存储介质、电子装置
CN108499105B (zh) * 2018-04-16 2022-02-25 腾讯科技(深圳)有限公司 在虚拟环境中进行视角调整的方法、装置及存储介质

Also Published As

Publication number Publication date
CN110665230A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
CN110665230B (zh) 虚拟世界中的虚拟角色控制方法、装置、设备及介质
CN111035918B (zh) 基于虚拟环境的侦察界面显示方法、装置及可读存储介质
CN110755841B (zh) 虚拟环境中道具的切换方法、装置、设备及可读存储介质
CN110613938B (zh) 控制虚拟对象使用虚拟道具的方法、终端及存储介质
CN110694261A (zh) 控制虚拟对象进行攻击的方法、终端及存储介质
CN111589124B (zh) 虚拟对象的控制方法、装置、终端及存储介质
CN111467802B (zh) 虚拟环境的画面显示方法、装置、设备及介质
CN108664231B (zh) 2.5维虚拟环境的显示方法、装置、设备及存储介质
CN110694273A (zh) 控制虚拟对象使用道具的方法、装置、终端及存储介质
JP7431955B2 (ja) 仮想環境における仮想キャラクタ制御方法、装置及びコンピュータプログラム
CN111481934B (zh) 虚拟环境画面的显示方法、装置、设备及存储介质
CN110917623B (zh) 互动信息显示方法、装置、终端及存储介质
CN110585695B (zh) 在虚拟环境中使用近战道具的方法、装置、设备及介质
CN111338534A (zh) 虚拟对象的对局方法、装置、设备及介质
CN111672106B (zh) 虚拟场景显示方法、装置、计算机设备及存储介质
CN111389005B (zh) 虚拟对象的控制方法、装置、设备及存储介质
WO2021159795A1 (zh) 三维虚拟环境中的技能瞄准方法、装置、设备及存储介质
CN113577765B (zh) 用户界面的显示方法、装置、设备及存储介质
CN111589127A (zh) 虚拟角色的控制方法、装置、设备及存储介质
CN111921194A (zh) 虚拟环境画面的显示方法、装置、设备及存储介质
CN111672126A (zh) 信息显示方法、装置、设备及存储介质
CN111603770A (zh) 虚拟环境画面的显示方法、装置、设备及介质
CN111589144B (zh) 虚拟角色的控制方法、装置、设备及介质
CN111273780B (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: 40017681

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant