CN112316429A - 虚拟对象的控制方法、装置、终端及存储介质 - Google Patents
虚拟对象的控制方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112316429A CN112316429A CN202011352762.XA CN202011352762A CN112316429A CN 112316429 A CN112316429 A CN 112316429A CN 202011352762 A CN202011352762 A CN 202011352762A CN 112316429 A CN112316429 A CN 112316429A
- Authority
- CN
- China
- Prior art keywords
- climbing
- virtual object
- target obstacle
- capsule body
- height
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
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
-
- 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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/837—Shooting of targets
-
- 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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/847—Cooperative playing, e.g. requiring coordinated actions from several players to achieve a common goal
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种虚拟对象的控制方法、装置、终端及存储介质,属于计算机和互联网技术领域。所述方法包括:显示虚拟环境的显示画面,所述虚拟环境中包括虚拟对象;接收针对所述虚拟对象的攀爬指令,所述攀爬指令用于触发所述虚拟对象攀爬位于所述虚拟对象前方的目标障碍物;显示所述虚拟对象攀爬所述目标障碍物的攀爬动画,所述攀爬动画是所述虚拟对象的终点位置相对于所述虚拟对象的起点位置发生改变的位移动画。本申请实施例降低了攀爬动画的实现复杂度。
Description
技术领域
本申请涉及计算机和互联网技术领域,特别涉及一种虚拟对象的控制方法、装置、终端及存储介质。
背景技术
在游戏应用程序中,用户可以操控虚拟环境中的虚拟对象进行行走、奔跑、攀爬、射击、格斗等动作。
在相关技术中,在虚拟对象进行攀爬动作时,游戏应用程序的显示画面中会显示攀爬动画,攀爬动画采用分段动画播放的实现方式,也即,攀爬动画包括多个分段动画。虚拟对象从起始位置攀爬到终点位置的路径被拆分成了多个子路径,每一个子路径对应有一个分段动画,上述多个子路径各自对应的分段动画组合形成了攀爬动画。
然而,上述相关技术中的攀爬动画实现较为复杂。
发明内容
本申请实施例提供了一种虚拟对象的控制方法、装置、终端及存储介质,降低了攀爬动画的实现复杂度。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种虚拟对象的控制方法,所述方法包括:
显示虚拟环境的显示画面,所述虚拟环境中包括虚拟对象;
接收针对所述虚拟对象的攀爬指令,所述攀爬指令用于触发所述虚拟对象攀爬位于所述虚拟对象前方的目标障碍物;
显示所述虚拟对象攀爬所述目标障碍物的攀爬动画,所述攀爬动画是所述虚拟对象的终点位置相对于所述虚拟对象的起点位置发生改变的位移动画。
根据本申请实施例的一个方面,提供了一种虚拟对象的控制装置,所述装置包括:
画面显示模块,用于显示虚拟环境的显示画面,所述虚拟环境中包括虚拟对象;
指令接收模块,用于接收针对所述虚拟对象的攀爬指令,所述攀爬指令用于触发所述虚拟对象攀爬位于所述虚拟对象前方的目标障碍物;
动画显示模块,用于显示所述虚拟对象攀爬所述目标障碍物的攀爬动画,所述攀爬动画是所述虚拟对象的终点位置相对于所述虚拟对象的起点位置发生改变的位移动画。
根据本申请实施例的一个方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述虚拟对象的控制方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述虚拟对象的控制方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述虚拟对象的控制方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过一个完整的攀爬动画指示虚拟对象从起点位置攀爬障碍物至终点位置的位移轨迹,本申请实施例不需要将位移动画拆分成多个分段动画,降低了攀爬动画的实现复杂度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的应用程序运行环境的示意图;
图2是本申请一个实施例提供的虚拟对象的控制方法的流程图;
图3是本申请一个实施例提供的显示画面的示意图;
图4是本申请另一个实施例提供的虚拟对象的控制方法的流程图;
图5是本申请一个实施例提供的实际模拟胶囊体的示意图;
图6是本申请一个实施例提供的碰撞过程的示意图;
图7是本申请另一个实施例提供的显示画面的示意图;
图8是本申请一个实施例提供的攀爬动画的示意图;
图9是本申请一个实施例提供的攀爬过程的示意图;
图10是本申请另一个实施例提供的攀爬过程的示意图;
图11是本申请另一个实施例提供的攀爬过程的示意图;
图12是本申请一个实施例提供的不同模拟胶囊体的示意图;
图13是本申请一个实施例提供的不同高度范围与攀爬动画之间的对应关系的示意图;
图14是本申请另一个实施例提供的虚拟对象的控制方法的流程图;
图15是本申请一个实施例提供的虚拟对象的控制装置的框图;
图16是本申请一个实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行介绍:
虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真世界,也可以是半仿真半虚构的世界,还可以是纯虚构的世界。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,本申请对此不加以限定。
虚拟对象:是指虚拟环境中的可活动对象。该可活动对象可以是虚拟角色、虚拟动物、动漫人物等,比如:在三维虚拟环境中显示的人物、动物、植物、油桶、墙壁、石块等。可选地,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。
第一人称射击游戏(First-person Shooting,FPS):是指用户能够以第一人称视角进行的射击游戏,游戏中的虚拟环境的画面是以第一虚拟角色的视角对虚拟环境进行观察的画面。在游戏中,至少两个虚拟对象在虚拟环境中进行单局对战模式,虚拟对象通过躲避其他虚拟对象发起的攻击或/和虚拟环境中存在的危险(比如,毒气圈、沼泽地、炸弹等)来达到在虚拟环境中存活的目的,当虚拟对象在虚拟环境中的生命值为零时,虚拟对象在虚拟环境中的生命结束,最后存活在虚拟环境中的虚拟对象是获胜方。示例性地,该对战以第一个客户端加入对战的时刻作为开始时刻,以最后一个客户端退出对战的时刻作为结束时刻,每个客户端可以控制虚拟环境中的一个或多个虚拟对象。示例性地,该对战的竞技模式可以包括单人对战模式、双人小组对战模式或者多人大组对战模式,本申请实施例对对战模式不加以限定。
用户界面UI(User Interface)控件,在应用程序的用户界面上能够看见的任何可视控件或元素,比如,图片、输入框、文本框、按钮、标签等控件,其中一些UI控件响应用户的操作,比如,射击控件,控制虚拟对象在虚拟环境中射击;攀爬控件,控制虚拟对象在虚拟环境中进行攀爬。
请参考图1,其示出了本申请一个实施例提供的应用程序运行环境的示意图。该应用程序运行环境可以包括:终端10和服务器20。
终端10可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等电子设备。终端10中可以安装应用程序的客户端。其中,该应用程序可以是需要下载安装的应用程序,也可以是即点即用的应用程序,本申请实施例对此不作限定。
在本申请实施例中,上述应用程序可以是任何能够提供虚拟环境,以供用户代入和操作的虚拟对象在该虚拟环境中进行活动的应用程序。典型地,该应用程序为游戏应用程序,如多人在线战术竞技(Multiplayer Online Battle Arena,MOBA)游戏、大逃杀生存(Battle Royale,BR)游戏、第三人称射击游戏(Third-Personal Shooting Game,TPS)、第一人称射击游戏(First-Person Shooting Game,FPS)和多人枪战类生存游戏,等等。当然,除了游戏应用程序之外,其它类型的应用程序中也可以向用户展示虚拟对象,并给虚拟对象提供相应的功能。例如,虚拟现实(Virtual Reality,VR)类应用程序、增强现实(Augmented Reality,AR)类应用程序、三维地图程序、军事仿真程序、社交类应用程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。示例性地,终端10中运行有上述应用程序的客户端。在一些实施例中,上述应用程序是基于三维的虚拟环境引擎开发的应用程序,比如该虚拟环境引擎是Unity引擎,该虚拟环境引擎能够构建三维的虚拟环境、虚拟对象和虚拟道具等,给用户带来更加沉浸式的游戏体验。
其中,上述虚拟环境是应用程序(如游戏应用程序)的客户端在终端上运行时显示(或提供)的场景,该虚拟环境是指营造出的供虚拟对象进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图和虚拟建筑等。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境,也可以是2.5维虚拟环境,或者是三维虚拟环境,本申请实施例对此不作限定。
上述虚拟对象可以是用户帐号在应用程序中控制的虚拟角色,也可以是由应用程序中的计算机程序控制的虚拟角色。以应用程序为游戏应用程序为例,虚拟对象可以是用户帐号在游戏应用程序中控制的游戏角色,也可以是游戏应用程序中的计算机程序控制的游戏怪物。虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。虚拟对象可以三维形式展示,也可以二维形式展示,本申请实施例对此不作限定。可选地,当虚拟环境为三维虚拟环境时,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。
在一种可能的实施方式中,上述虚拟对象包括处于相同阵营的虚拟对象和处于不同阵营的虚拟对象,即在应用程序中,虚拟对象被划分为不同的阵营。示例性地,以射击游戏为例,十名用户进行匹配游戏,分为红方和蓝方两队,每五个人为一组,此时红方与红方中的虚拟对象处于同一阵营且互为队友关系,蓝方与蓝方中的虚拟对象处于同一阵营且互为队友关系,而红方与蓝方中的虚拟对象处于不同阵营且互为敌对关系。
可选地,上述终端10包括第一终端、第二终端和第三终端。在本申请实施例中,第一终端、第二终端和第三终端中可以安装运行有同一应用程序的客户端。第一终端中的客户端称为第一客户端,第二终端中的客户端称为第二客户端,第三终端中的客户端称为第三客户端。第一客户端中登录的用户帐号记为第一用户帐号,第二客户端中登录的用户帐号记为第二用户帐号,第三客户端中登录的用户帐号记为第三用户帐号。第一客户端控制的虚拟对象称为第一虚拟对象,第二客户端控制的虚拟对象称为第二虚拟对象,第三客户端控制的虚拟对象称为第三虚拟对象。在本申请实施例中,第二虚拟对象与第一虚拟对象为敌对关系,第三虚拟对象与第一虚拟对象为队友关系。
服务器20用于为终端10中的应用程序的客户端提供后台服务。例如,服务器20可以是上述应用程序的后台服务器。服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,服务器20同时为多个终端10中的应用程序提供后台服务。
可选地,终端10和服务器20之间可通过网络30进行互相通信。
请参考图2,其示出了本申请一个实施例提供的虚拟对象的控制方法的流程图。该方法可应用于图1所示的应用程序运行环境中的终端10。该方法可以包括以下几个步骤。
步骤201,显示虚拟环境的显示画面,虚拟环境中包括虚拟对象。
虚拟环境是指用于供虚拟对象进行活动的场景,该虚拟对象可以是用户帐号所控制的虚拟角色,也可以是计算机程序控制的虚拟角色。可选地,虚拟环境中包括虚拟岛屿、虚拟地图和虚拟建筑等,本申请实施例对此不作限定。在本申请实施例中,用户可以通过用户帐号控制虚拟对象与虚拟环境进行交互,如攀爬虚拟环境中的障碍物、进入虚拟环境中的虚拟建筑、攻击虚拟环境中的其他虚拟对象等。需要说明的一点是,上述用户帐号可以控制一个或多个虚拟对象,本申请实施例对此不作限定。
虚拟环境的显示画面是指在用户界面上向用户展示的虚拟环境画面。其中,该虚拟环境画面可以是虚拟相机从虚拟环境中获取的画面。在一种可能的实施方式中,虚拟相机以虚拟对象的第三视角获取虚拟环境画面。可选地,虚拟相机设置在虚拟对象的斜上方,客户端通过该虚拟相机,以虚拟对象为中心对虚拟环境进行观察,获取以虚拟对象为中心的虚拟环境画面,生成虚拟环境的显示画面。在另一种可能的实施方式中,虚拟相机以虚拟对象的第一视角获取虚拟环境画面。可选地,虚拟相机设置在虚拟对象的正前方,客户端通过该虚拟相机,以虚拟对象的视角对虚拟环境进行观察,获取以虚拟对象为第一视角的虚拟环境画面,生成虚拟环境的显示画面。当然,在其他可能的实施方式中,虚拟相机的放置位置实时可调。可选地,用户可以通过针对用户界面的控制操作来调节虚拟相机的位置,进而获取不同位置的虚拟环境对应的显示画面。例如,用户通过拖拽虚拟环境对应的显示画面以调整虚拟相机的位置;再例如,用户通过点击地图展示控件中的某个位置,将该位置作为虚拟相机调整后的位置,以此来调整虚拟相机的位置。其中,上述地图展示控件是指用于展示对局中的全局地图的控件。
步骤202,接收针对虚拟对象的攀爬指令,攀爬指令用于触发虚拟对象攀爬位于虚拟对象前方的目标障碍物。
目标障碍物是指具有一定高度和宽度的物体,目标障碍物可以是任意一种障碍物。在可能的实现方式中,目标障碍物可以包括以下任意一项:建筑物(例如,墙、窗户、栏杆等)、山、车子、集装箱、空投箱等,本申请实施例对目标障碍物的类型不作限定。
在可能的实现方式中,用户可以通过触控显示画面中的攀爬控件触发攀爬指令。如图3所示,其示出了本申请一个实施例提供的显示画面的示意图。用户通过点击显示画面300中的攀爬控件310触发攀爬指令,该攀爬指令用于触发虚拟对象320攀爬位于虚拟对象320前方的墙330。
当然,在其它可能的实现方式中,上述攀爬指令还可以通过语音、手势、表情等触发,本申请实施例对此不作限定。
步骤203,显示虚拟对象攀爬目标障碍物的攀爬动画,攀爬动画是虚拟对象的终点位置相对于虚拟对象的起点位置发生改变的位移动画。
当终端接收到针对虚拟对象的攀爬指令后,终端会在显示画面中显示虚拟对象攀爬目标障碍物的攀爬动画。
在本申请实施例中,攀爬动画是一个完整的动画,其可以指示虚拟对象从起点位置攀爬目标障碍物至终点位置的位移轨迹。位移动画是指带位置以及朝向改变的动画。
综上所述,本申请实施例提供的技术方案中,通过一个完整的攀爬动画指示虚拟对象从起点位置攀爬障碍物至终点位置的位移轨迹,本申请实施例不需要将位移动画拆分成多个分段动画,降低了攀爬动画的实现复杂度。
请参考图4,其示出了本申请另一个实施例提供的虚拟对象的控制方法的流程图。该方法可应用于图1所示的应用程序运行环境中的终端10。该方法可以包括以下几个步骤。
步骤401,显示虚拟环境的显示画面,虚拟环境中包括虚拟对象。
步骤401的实现方式与步骤201的实现方式类似,有关步骤401的介绍说明可参见上文实施例,此处不再赘述。
步骤402,接收针对虚拟对象的攀爬指令,攀爬指令用于触发虚拟对象攀爬位于虚拟对象前方的目标障碍物。
步骤402的实现方式与步骤202的实现方式类似,有关步骤402的介绍说明可参见上文实施例,此处不再赘述。
步骤403,获取虚拟对象与目标障碍物之间的水平距离。
在可能的实现方式中,终端通过如下方式获取虚拟对象与目标障碍物之间的水平距离:
步骤403a,生成虚拟对象对应的第一模拟胶囊体,该第一模拟胶囊体与虚拟对象的实际模拟胶囊体的尺寸相同。
如图5所示,将虚拟对象510当作一个实际模拟胶囊体520,该实际模拟胶囊体520的尺寸与虚拟对象510的尺寸相同。
步骤403b,控制第一模拟胶囊体沿第一方向移动,直至第一模拟胶囊体与目标障碍物发生碰撞,使得第一模拟胶囊体位于碰撞位置;其中,第一方向是指虚拟对象的实际胶囊体朝向目标障碍物的方向。
如图6所示,其示出了本申请一个实施例提供的碰撞过程的示意图。第一模拟胶囊体610与目标障碍物620在碰撞位置发生碰撞,碰撞位置(也可以称为碰撞点)记为点P,碰撞点法线向量630垂直于碰撞点,且方向与第一方向相反。
步骤403c,基于虚拟对象的实际位置和碰撞位置,确定虚拟对象与目标障碍物之间的水平距离。
虚拟对象的实际位置就是实际模拟胶囊体的位置。如图6所示,将点Q(点Q是指碰撞点法线向量与实际模拟胶囊体的交点)作为虚拟对象640的实际位置,点Q和点P之间的距离即为虚拟对象640与目标障碍物620之间的水平距离。
步骤404,检测水平距离是否大于阈值。若水平距离大于阈值,则执行步骤405;若水平距离小于阈值,则从步骤406开始执行。
在可能的实现方式中,阈值是默认数值,例如,阈值默认为0.2米;当然,在其它可能的实现方式中,阈值是用户设定的值,例如,用户可以根据不同的障碍物类型设置不同的阈值,本申请实施例对阈值的设置类型不作限定。
在可能的实现方式中,若水平距离等于阈值,也从步骤406开始执行。
步骤405,确定虚拟对象无法攀爬目标障碍物。
示例性地,以阈值为0.2米为例进行介绍说明,当水平距离大于0.2米时,确定虚拟对象无法攀爬目标障碍物。
步骤406,获取目标障碍物的实际攀爬高度,以及攀爬动画的设计攀爬高度。
示例性地,以阈值为0.2米为例进行介绍说明,当水平距离小于0.2米时,显示虚拟对象攀爬目标障碍物的攀爬动画。显示虚拟对象攀爬目标障碍物的攀爬动画的流程包括步骤406至步骤409。
实际攀爬高度是指虚拟对象实际攀爬的高度。
设计攀爬高度是指虚拟对象预设攀爬的高度。示例性地,设计攀爬高度是基于参考障碍物设定的,参考障碍物和目标障碍物的类型可以一致,也可以不一致;参考障碍物和目标障碍物的高度可以一致,也可以不一致;参考障碍物和目标障碍物的宽度可以一致,也可以不一致,本申请实施例对此不作限定。
在可能的实现方式中,实际攀爬高度可以等于设计攀爬高度,也可以大于设计攀爬高度,还可以小于设计攀爬高度,本申请实施例对此不作限定。
在可能的实现方式中,目标障碍物的实际攀爬高度,可以等于目标障碍物的高度,也可以大于目标障碍物的高度,还可以小于目标障碍物的高度,本申请实施例对此不作限定。
步骤407,基于实际攀爬高度和设计攀爬高度,确定攀爬动画的缩放系数。
由于在真正的场景中会出现许多跟设计攀爬高度不同的实际攀爬高度,如图7所示,图7示出了本申请另一个实施例提供的显示画面的示意图。显示画面700中显示有凹凸不平的墙壁710,该墙壁710即为目标障碍物,该墙壁710具有不同的高度,而美术工作人员在制作攀爬动画的时候只会设置一个固定翻越的高度(即,设计攀爬高度),如果实际场景中目标障碍物的高度高于设计攀爬高度,显示画面中直接播放美术工作人员制作好的攀爬动画,虚拟对象是无法攀爬过去的,因此,需要把美术工作人员制作好的攀爬动画保存成代码内存数据,然后通过程序代码逻辑控制其位移变化,其实就是按照攀爬动画的数据来模拟,但是在模拟的过程中我们可以对数据进行缩放,简而言之,就是在程序逻辑里面会将设计攀爬高度缩放成实际攀爬高度使得虚拟对象的位移能够移动到实际攀爬高度。
在可能的实现方式中,将实际攀爬高度和设计攀爬高度之商,确定为攀爬动画的缩放系数。示例性地,实际攀爬高度为1.5米,设计攀爬高度为1米,则缩放系数为1.5/1=1.5。
步骤408,基于缩放系数对攀爬动画中虚拟对象的设计高度进行调整,得到调整后的攀爬动画。
示例性地,如图8所示,其示出了设计攀爬高度高于实际攀爬高度时的攀爬动画800。
在可能的实现方式中,步骤408包括如下几个子步骤:
步骤408a,对于攀爬动画中的每一个动画帧,获取虚拟对象在动画帧中的设计高度。
由于攀爬动画反应的是虚拟对象在攀爬过程中的位移轨迹,攀爬动画包括多帧,因此,攀爬动画中的每一个动画帧都对应有各自的虚拟对象在动画帧中的设计高度,虚拟对象在动画帧中的设计高度反应了虚拟对象在攀爬过程中相对于参考障碍物的位移变化。虚拟对象在动画帧中的设计高度是指虚拟对象所在位置与水平面之间的竖直距离。
步骤408b,将设计高度与缩放系数相乘,得到虚拟对象的调整后高度;其中,缩放系数是将实际攀爬高度与设计攀爬高度相除得到的。
示例性地,假设攀爬动画包括:动画帧1、动画帧2、动画帧3。虚拟对象在动画帧1中的设计高度为0.5米,虚拟对象在动画帧2中的设计高度为1米,虚拟对象在动画帧3中的设计高度为0.75米,缩放系数为1.5,则在动画帧1中虚拟对象调整后的高度为0.5*1.5=0.75米,在动画帧2中虚拟对象调整后的高度为1*1.5=1.5米,在动画帧3中虚拟对象调整后的高度为0.75*1.5=1.125米。
步骤408c,将虚拟对象在动画帧中的高度由设计高度修改为调整后高度,得到调整后的动画帧。
示例性地,仍然以上述示例为例,终端将虚拟对象在动画帧1中的高度由0.5米调整为0.75米,将虚拟对象在动画帧2中的高度由1米调整为1.5米,将虚拟对象在动画帧3中的高度由0.75米调整为1.125米,得到调整后的动画帧1、调整后的动画帧2、调整后的动画帧3。
步骤408d,基于各个调整后的动画帧,得到调整后的攀爬动画。
示例性地,基于调整后的动画帧1、调整后的动画帧2和调整后的动画帧3,得到调整后的攀爬动画。
步骤409,显示调整后的攀爬动画。
在可能的实现方式中,攀爬动画中仅包括虚拟对象,将攀爬动画与虚拟环境结合起来,用户即可以看到虚拟对象攀爬目标障碍物时的位移轨迹。
综上所述,本申请实施例提供的技术方案中,通过将实际攀爬高度和设计攀爬高度之商确定为缩放系数,然后基于缩放系数对攀爬动画中虚拟对象的设计高度进行调整,实现了将攀爬动画灵活适应不同的实际攀爬高度,更简单高效,简化了计算量。
在示意性实施例中,当终端接收到针对虚拟对象的攀爬指令之后,终端还可以执行下述步骤:
第一、获取目标障碍物的属性信息。
在可能的实现方式中,终端生成虚拟对象对应的模拟胶囊体,通过模拟胶囊体对目标障碍物进行碰撞检测,得到目标障碍物的属性信息。
示例性地,目标障碍物的属性信息包括目标障碍物的高度。目标障碍物的高度是指目标障碍物相对于虚拟对象的脚底所在水平面的高度。
终端可以通过如下方式获取目标障碍物的高度:
1、生成虚拟对象对应的第一模拟胶囊体,第一模拟胶囊体与虚拟对象的实际胶囊体的尺寸相同。
示例性地,第一模拟胶囊体用于模拟虚拟对象的运动轨迹。
2、控制第一模拟胶囊体沿第一方向移动,直至第一模拟胶囊体与目标障碍物发生碰撞;其中,第一方向是指虚拟对象的实际胶囊体朝向目标障碍物的方向。
如图9所示,其示出了本申请一个实施例提供的攀爬过程的示意图。第一模拟胶囊体910向第一方向移动,在碰撞位置(也称为碰撞点的位置,如图9中的点P的位置)与目标障碍物920发生碰撞。
在可能的实现方式中,可以将第一模拟胶囊体碰撞速度设为预设速度v,将第一模拟胶囊体从起点位置移动至碰撞位置所花的时间记为t,则点P的横坐标可以基于v、t以及实际模拟胶囊体的起点位置确定,v与t的乘积为第一模拟胶囊体从起点位置移动到碰撞位置所移动的距离。点P的纵坐标可以基于实际模拟胶囊体的起点位置确定。
3、在发生碰撞后控制第一模拟胶囊体沿第一方向继续移动第一距离,使得第一模拟胶囊体位于第一位置。
在可能的实现方式中,第一距离为第一模拟胶囊体的半径,将第一距离设置为第一模拟胶囊体的半径,保证虚拟对象可以在目标障碍物上方平稳站立。示例性地,第一模拟胶囊体的半径为0.37米,则第一距离为0.37米。当然,在其它可能的实现方式中,第一距离还可以是其它数值,例如,第一距离可以是第一模拟胶囊体的直径,或者可以是第一模拟胶囊体的预设数值的半径,或者还可以是第一模拟胶囊体的预设数值的直径等,本申请实施例对此不作限定。
4、控制第一模拟胶囊体从第一位置沿第二方向移动第二距离,使得第一模拟胶囊体位于第二位置;其中,第二方向是与第一方向垂直且竖直向上的方向。
在可能的实现方式中,第二距离为2.5米,因为实际攀爬高度限制在2.3米,在此基础上添加0.2米得到第二距离。
如图9所示,第一模拟胶囊体910位于第二位置,将第一模拟胶囊体910的底部端点记为点S。点S的横坐标和纵坐标可以基于点P的横坐标和纵坐标计算得到,假设点P的横坐标为xp,纵坐标为yp,假设第一方向为横轴的负方向,碰撞点法线向量的方向为横轴的正方向,第二方向为纵轴的正方向,第一距离为0.37米,第二距离为2.5米,横轴的单位向量表示为N,纵轴的单位向量表示为UP,则点S的横坐标可以表示为(xp-N*0.37),点S的纵坐标为(yp+2.5*UP)。
5、基于第二位置的高度、第二位置与目标障碍物之间的垂直距离,以及虚拟对象的高度,确定目标障碍物的高度。
在可能的实现方式中,将第一模拟胶囊体沿第二方向的相反方向移动,直至第一模拟胶囊体与目标障碍物发生碰撞,确定上方碰撞点的位置,将上方碰撞点记为A,点A和点S之间的垂直距离为第二位置与目标障碍物之间的垂直距离,将点S的纵坐标记为第二位置的高度。
将实际模拟胶囊体930的底部端点记为点B,点A和点B之间的竖直距离即为目标障碍物的高度。假设点A的纵坐标表示为yA,点B的纵坐标表示为yB,则目标障碍物的高度H可以通过如下公式确定:yA-yB。
在可能的实现方式中,点B的位置可以通过点P的纵坐标以及虚拟对象的高度确定得到,假设虚拟对象的高度为h,示例性地,点B的纵坐标可以表示为:yP-1/2h。
示例性地,目标障碍物的属性信息包括目标障碍物的宽度。终端可以通过如下方式获取目标障碍物的属性信息:
1、生成与虚拟对象的实际胶囊体相对应的第一模拟胶囊体。
2、控制第一模拟胶囊体沿第一方向移动,直至第一模拟胶囊体与目标障碍物发生碰撞,确定第一碰撞点的位置;其中,第一方向是指虚拟对象的实际胶囊体朝向目标障碍物的方向。
如图10所示,其示出了本申请另一个实施例提供的攀爬过程的示意图。第一模拟胶囊体1010向第一方向移动,在碰撞位置(即第一碰撞点的位置,如图10中的点P的位置)与目标障碍物1020发生碰撞。
3、在发生碰撞后控制第一模拟胶囊体沿第一方向继续移动第三距离,使得第一模拟胶囊体位于第三位置。
在可能的实现方式中,第三距离为2.5米。如图10所示,第一模拟胶囊体1010位于第三位置,将第一模拟胶囊体1010的底部端点记为点S。
4、控制第一模拟胶囊体从第三位置沿第一方向的相反方向移动。
如图10所示,第一模拟胶囊体1010从第三位置沿第一方向的相反方向移动。
5、若在沿第一方向的相反方向移动的过程中,第一模拟胶囊体与目标障碍物发生碰撞,则确定第二碰撞点的位置。
如图10所示,将第一模拟胶囊体1010与目标障碍物1020发生碰撞的第二碰撞点记为点C。
若在沿第一方向的相反方向移动的过程中,第一模拟胶囊体与目标障碍物没有发生碰撞,则认为目标障碍物的宽度无限大。
6、基于第一碰撞点的位置和第二碰撞点的位置之间的水平距离,确定目标障碍物的宽度。
示例性地,将点C和点P之间的水平距离,确定为目标障碍物的宽度。假设点C的横坐标为xC,点P的横坐标为xP,则目标障碍物的宽度可以通过如下公式确定:|xC-xP|,目标障碍物的宽度为点C和横坐标和点P的横坐标的差值的绝对值。
在可能的实现方式中,当目标障碍物的宽度大于等于预设宽度时,虚拟对象可以跳跃到目标障碍物的上方。
在可能的实现方式中,当目标障碍物的宽度小于预设宽度时,虚拟对象不能跳跃到目标障碍物的上方,虚拟对象会翻越到目标障碍物的对面。
示例性地,目标障碍物的属性信息包括目标障碍物上方是否有阻挡物,以及阻挡物的阻挡高度。终端可以通过如下方式获取目标障碍物的属性信息:
1、生成虚拟对象对应的第二模拟胶囊体,第二模拟胶囊体的高度小于虚拟对象的实际胶囊体的高度。
在可能的实现方式中,因为虚拟对象在攀爬的时候身体会蜷缩,所以可以将第二模拟胶囊体的高度设置为与虚拟对象蹲下时的高度一致。
2、控制第二模拟胶囊体沿第一方向移动,直至第二模拟胶囊体与目标障碍物发生碰撞;其中,第一方向是指虚拟对象的实际胶囊体朝向目标障碍物的方向。
3、在发生碰撞后控制第二模拟胶囊体沿第二方向移动,直至第二模拟胶囊体的底部位置与目标障碍物的顶部位置齐平;其中,第二方向是与第一方向垂直且竖直向上的方向。
4、控制第二模拟胶囊体沿第一方向继续移动第四距离。
如图11所示,其示出了本申请另一个实施例提供的攀爬过程的示意图。路径1110示出了第二模拟胶囊体1120沿第二方向移动,直至第二模拟胶囊体的底部位置与目标障碍物1130的顶部位置齐平,然后再沿第一方向继续移动第四距离的过程。
5、若在第二模拟胶囊体沿第一方向继续移动第四距离的移动过程中,第二模拟胶囊体未与其他障碍物发生碰撞,则确定目标障碍物上方没有阻挡物。
6、若在第二模拟胶囊体沿第一方向继续移动第四距离的移动过程中,第二模拟胶囊体与其他障碍物发生碰撞,则确定目标障碍物上方有阻挡物,并获取阻挡物与目标障碍物之间的垂直距离,作为阻挡物的阻挡高度。
示例性地,如图12所示,其示出了本申请一个实施例提供的不同模拟胶囊体的的示意图。图12中的(a)部分示出了模拟胶囊体1210在目标障碍物1220上方有阻挡物1230的情况下的高度示意图,当目标障碍物上方有阻挡物时,虚拟对象可以处于蹲下、半蹲、趴下等状态;图12中的(b)部分示出了模拟胶囊体1210在目标障碍物1220上方没有阻挡物1230的情况下的高度示意图,当目标障碍物上方有阻挡物时,虚拟对象可以处于站立、蹲下、半蹲、趴下等状态。
第二、从攀爬动画库中选取与目标障碍物的属性信息相匹配的攀爬动画。
在本申请实施例中,攀爬动画库中包括多个适用于具有不同属性信息的障碍物的攀爬动画。
示例性地,目标障碍物的属性信息包括目标障碍物的高度,不同的高度范围对应于不同的攀爬动画,且不同的攀爬动画中虚拟对象具有不同的攀爬姿态。
如图13所示,其示出了不同高度范围与攀爬动画之间的对应关系,示例性地,将目标障碍物的高度划分为小于0.6米、0.6-1.2米、1.2-1.6米、1.6-2米、大于2米这五个区间,每个区间都对应有各自的攀爬动画,这五个区间中的攀爬动画中虚拟对象具有不同的攀爬姿态。
示例性地,目标障碍物的属性信息包括目标障碍物的宽度,不同的宽度范围对应于不同的攀爬动画,且不同的攀爬动画中虚拟对象具有不同的落地姿态。
示例性地,虚拟对象在不同的宽度范围的目标障碍物上的落地姿态不同。
示例性地,目标障碍物的属性信息包括目标障碍物上方阻挡物的阻挡高度,不同的阻挡高度范围对应于不同的攀爬动画,且不同的攀爬动画中虚拟对象具有不同的攀爬姿态。
示例性地,虚拟对象在不同的阻挡高度范围的阻挡物上的攀爬姿态不同。
综上所述,本申请实施例提供的技术方案中,通过先确定目标障碍物的属性信息,然后再从攀爬动画库中选取与目标障碍物的属性信息相匹配的攀爬动画,使得虚拟对象的姿态具有多样性,且能更好的适应于不同的目标障碍物。
另外,本申请实施例中基于模拟胶囊体去实测障碍物的属性信息,最终确定的障碍物的属性信息更准确,且具有灵活性,能适应虚拟环境的变化。相较于相关技术中设置固定属性信息的障碍物,本申请实施例可以随机生成任意属性信息的障碍物,提高了障碍物的多样性。
另外,为了便于理解,如图14所示,以目标障碍物为墙壁为例,对本申请进行完整介绍。
步骤1401,终端控制虚拟对象靠近墙壁。
示例性地,用户操作虚拟对象,以使得虚拟对象靠近墙壁。相应地,终端接收用户的操作指令,控制虚拟对象靠近墙壁。
步骤1402,终端检测是否接收到攀爬指令。若没有接收到攀爬指令,则执行步骤1401;若接收到攀爬指令,则从步骤1403开始执行。
在可能的实现方式中,用户可以通过点击攀爬控件触发攀爬指令。当然,在其它可能的实现方式中,用户还可以通过语音、收拾等触发攀爬指令。
步骤1403,终端获取墙壁的障碍物高度。
当终端接收到攀爬指令后,终端获取墙壁的障碍物高度。有关墙壁的障碍物高度的确定方式可参见上文实施例,此处不再赘述。
步骤1404,终端检测虚拟对象是否能翻越该障碍物高度的墙壁。若虚拟对象不能翻越该障碍物高度的墙壁,则执行步骤1405;若虚拟对象能翻越该障碍物高度的墙壁,则从步骤1406开始执行。
终端可以基于上文实施例中介绍的流程检测虚拟对象是否能翻越该障碍物高度的墙壁。
步骤1405,终端显示虚拟对象翻越失败。
若终端确定虚拟对象不能翻越该障碍物高度的墙壁,则显示虚拟对象翻越失败。
步骤1406,终端计算缩放系数。
若终端确定虚拟对象能翻越该障碍物高度的墙壁,则基于上文实施例中介绍的流程计算缩放系数。
步骤1407,终端显示攀爬动画。
终端基于确定缩放系数显示攀爬动画。
步骤1408,终端检测虚拟对象是否落地;若终端确定虚拟对象未落地,则执行步骤1407;若终端确定虚拟对象落地,则执行步骤1409。
示例性地,当终端确定虚拟对象未落地时,则终端继续显示攀爬动画。
步骤1409,终端显示虚拟对象翻越成功。
当终端确定虚拟对象已落地时,终端显示虚拟对象翻越成功。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图15,其示出了本申请一个实施例提供的虚拟对象的控制装置的框图。该装置具有实现上述虚拟对象的控制方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是终端,也可以设置终端中。该装置1500可以包括:画面显示模块1510、指令接收模块1520、动画显示模块1530。
画面显示模块1510,用于显示虚拟环境的显示画面,所述虚拟环境中包括虚拟对象;
指令接收模块1520,用于接收针对所述虚拟对象的攀爬指令,所述攀爬指令用于触发所述虚拟对象攀爬位于所述虚拟对象前方的目标障碍物;
动画显示模块1530,用于显示所述虚拟对象攀爬所述目标障碍物的攀爬动画,所述攀爬动画是所述虚拟对象的终点位置相对于所述虚拟对象的起点位置发生改变的位移动画。
综上所述,本申请实施例提供的技术方案中,通过一个完整的攀爬动画指示虚拟对象从起点位置攀爬障碍物至终点位置的位移轨迹,本申请实施例不需要将位移动画拆分成多个分段动画,降低了攀爬动画的实现复杂度。
在示意性实施例中,所述动画显示模块1530,包括:高度获取单元、系数确定单元、高度调整单元和动画显示单元(图中未示出)。
高度获取单元,用于获取所述目标障碍物的实际攀爬高度,以及所述攀爬动画的设计攀爬高度;
系数确定单元,用于基于所述实际攀爬高度和所述设计攀爬高度,确定所述攀爬动画的缩放系数;
高度调整单元,用于基于所述缩放系数对所述攀爬动画中所述虚拟对象的设计高度进行调整,得到调整后的攀爬动画;
动画显示单元,用于显示所述调整后的攀爬动画。
在示意性实施例中,所述高度调整单元,用于:
对于所述攀爬动画中的每一个动画帧,获取所述虚拟对象在所述动画帧中的设计高度;
将所述设计高度与所述缩放系数相乘,得到所述虚拟对象的调整后高度;其中,所述缩放系数是将所述实际攀爬高度与所述设计攀爬高度相除得到的;
将所述虚拟对象在所述动画帧中的高度由所述设计高度修改为所述调整后高度,得到调整后的动画帧;
基于各个所述调整后的动画帧,得到所述调整后的攀爬动画。
在示意性实施例中,所述装置,还包括:信息获取模块、动画选取模块(图中未示出)。
信息获取模块,用于获取所述目标障碍物的属性信息;
动画选取模块,用于从攀爬动画库中选取与所述目标障碍物的属性信息相匹配的攀爬动画;
其中,所述攀爬动画库中包括多个适用于具有不同属性信息的障碍物的攀爬动画。
在示意性实施例中,所述目标障碍物的属性信息包括所述目标障碍物的高度;
所述信息获取模块,用于:
生成所述虚拟对象对应的第一模拟胶囊体,所述第一模拟胶囊体与所述虚拟对象的实际胶囊体的尺寸相同;
控制所述第一模拟胶囊体沿第一方向移动,直至所述第一模拟胶囊体与所述目标障碍物发生碰撞;其中,所述第一方向是指所述虚拟对象的实际胶囊体朝向所述目标障碍物的方向;
在发生碰撞后控制所述第一模拟胶囊体沿所述第一方向继续移动第一距离,使得所述第一模拟胶囊体位于第一位置;
控制所述第一模拟胶囊体从所述第一位置沿第二方向移动第二距离,使得所述第一模拟胶囊体位于第二位置;其中,所述第二方向是与所述第一方向垂直且竖直向上的方向;
基于所述第二位置的高度、所述第二位置与所述目标障碍物之间的垂直距离,以及所述虚拟对象的高度,确定所述目标障碍物的高度。
在示意性实施例中,所述目标障碍物的属性信息包括所述目标障碍物的宽度;
所述信息获取模块,用于:
生成与所述虚拟对象的实际胶囊体相对应的第一模拟胶囊体;
控制所述第一模拟胶囊体沿第一方向移动,直至所述第一模拟胶囊体与所述目标障碍物发生碰撞,确定第一碰撞点的位置;其中,所述第一方向是指所述虚拟对象的实际胶囊体朝向所述目标障碍物的方向;
在发生碰撞后控制所述第一模拟胶囊体沿所述第一方向继续移动第三距离,使得所述第一模拟胶囊体位于第三位置;
控制所述第一模拟胶囊体从所述第三位置沿所述第一方向的相反方向移动;
若在沿所述第一方向的相反方向移动的过程中,所述第一模拟胶囊体与所述目标障碍物发生碰撞,则确定第二碰撞点的位置;
基于所述第一碰撞点的位置和所述第二碰撞点的位置之间的水平距离,确定所述目标障碍物的宽度。
在示意性实施例中,所述目标障碍物的属性信息包括所述目标障碍物上方是否有阻挡物,以及所述阻挡物的阻挡高度;
所述信息获取模块,用于:
生成所述虚拟对象对应的第二模拟胶囊体,所述第二模拟胶囊体的高度小于所述虚拟对象的实际胶囊体的高度;
控制所述第二模拟胶囊体沿第一方向移动,直至所述第二模拟胶囊体与所述目标障碍物发生碰撞;其中,所述第一方向是指所述虚拟对象的实际胶囊体朝向所述目标障碍物的方向;
在发生碰撞后控制所述第二模拟胶囊体沿所述第二方向移动,直至所述第二模拟胶囊体的底部位置与所述目标障碍物的顶部位置齐平;其中,所述第二方向是与所述第一方向垂直且竖直向上的方向;
控制所述第二模拟胶囊体沿所述第一方向继续移动第四距离;
若在所述第二模拟胶囊体沿所述第一方向继续移动第四距离的移动过程中,所述第二模拟胶囊体未与其他障碍物发生碰撞,则确定所述目标障碍物上方没有阻挡物;
若在所述第二模拟胶囊体沿所述第一方向继续移动第四距离的移动过程中,所述第二模拟胶囊体与其他障碍物发生碰撞,则确定所述目标障碍物上方有阻挡物,并获取所述阻挡物与所述目标障碍物之间的垂直距离,作为所述阻挡物的阻挡高度。
在示意性实施例中,所述目标障碍物的属性信息包括所述目标障碍物的高度,不同的高度范围对应于不同的攀爬动画,且所述不同的攀爬动画中所述虚拟对象具有不同的攀爬姿态;
和/或,
所述目标障碍物的属性信息包括所述目标障碍物的宽度,不同的宽度范围对应于不同的攀爬动画,且所述不同的攀爬动画中所述虚拟对象具有不同的落地姿态;
和/或,
所述目标障碍物的属性信息包括所述目标障碍物上方阻挡物的阻挡高度,不同的阻挡高度范围对应于不同的攀爬动画,且所述不同的攀爬动画中所述虚拟对象具有不同的攀爬姿态。
在示意性实施例中,所述装置,还包括:距离获取模块和攀爬确定模块(图中未示出)。
距离获取模块,用于获取所述虚拟对象与所述目标障碍物之间的水平距离;
攀爬确定模块,用于若所述水平距离大于阈值,则确定所述虚拟对象无法攀爬所述目标障碍物;
所述动画显示模块,还用于若所述水平距离小于阈值,则执行所述显示所述虚拟对象攀爬所述目标障碍物的攀爬动画的步骤。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图16,其示出了本申请一个实施例提供的终端1600的结构框图。该终端1600可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC等电子设备。该终端用于实施上述实施例中提供的虚拟对象的控制方法。该终端可以是图1所示游戏运行环境中的终端10。具体来讲:
通常,终端1600包括有:处理器1601和存储器1602。
处理器1601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1602中的非暂态的计算机可读存储介质用于存储至少一个指令,至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集,且经配置以由一个或者一个以上处理器执行,以实现上述虚拟对象的控制方法。
在一些实施例中,终端1600还可选包括有:外围设备接口1603和至少一个外围设备。处理器1601、存储器1602和外围设备接口1603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1603相连。具体地,外围设备包括:射频电路1604、显示屏1605、摄像头组件1606、音频电路1607、定位组件1608和电源1609中的至少一种。
本领域技术人员可以理解,图16中示出的结构并不构成对终端1600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时以实现上述虚拟对象的控制方法。
可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述虚拟对象的控制方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种虚拟对象的控制方法,其特征在于,所述方法包括:
显示虚拟环境的显示画面,所述虚拟环境中包括虚拟对象;
接收针对所述虚拟对象的攀爬指令,所述攀爬指令用于触发所述虚拟对象攀爬位于所述虚拟对象前方的目标障碍物;
显示所述虚拟对象攀爬所述目标障碍物的攀爬动画,所述攀爬动画是所述虚拟对象的终点位置相对于所述虚拟对象的起点位置发生改变的位移动画。
2.根据权利要求1所述的方法,其特征在于,所述显示所述虚拟对象攀爬所述目标障碍物的攀爬动画,包括:
获取所述目标障碍物的实际攀爬高度,以及所述攀爬动画的设计攀爬高度;
基于所述实际攀爬高度和所述设计攀爬高度,确定所述攀爬动画的缩放系数;
基于所述缩放系数对所述攀爬动画中所述虚拟对象的设计高度进行调整,得到调整后的攀爬动画;
显示所述调整后的攀爬动画。
3.根据权利要求2所述的方法,其特征在于,所述基于所述缩放系数对所述攀爬动画中所述虚拟对象的设计高度进行调整,得到调整后的攀爬动画,包括:
对于所述攀爬动画中的每一个动画帧,获取所述虚拟对象在所述动画帧中的设计高度;
将所述设计高度与所述缩放系数相乘,得到所述虚拟对象的调整后高度;其中,所述缩放系数是将所述实际攀爬高度与所述设计攀爬高度相除得到的;
将所述虚拟对象在所述动画帧中的高度由所述设计高度修改为所述调整后高度,得到调整后的动画帧;
基于各个所述调整后的动画帧,得到所述调整后的攀爬动画。
4.根据权利要求1所述的方法,其特征在于,所述接收针对所述虚拟对象的攀爬指令之后,还包括:
获取所述目标障碍物的属性信息;
从攀爬动画库中选取与所述目标障碍物的属性信息相匹配的攀爬动画;
其中,所述攀爬动画库中包括多个适用于具有不同属性信息的障碍物的攀爬动画。
5.根据权利要求4所述的方法,其特征在于,所述目标障碍物的属性信息包括所述目标障碍物的高度;
所述获取所述目标障碍物的属性信息,包括:
生成所述虚拟对象对应的第一模拟胶囊体,所述第一模拟胶囊体与所述虚拟对象的实际胶囊体的尺寸相同;
控制所述第一模拟胶囊体沿第一方向移动,直至所述第一模拟胶囊体与所述目标障碍物发生碰撞;其中,所述第一方向是指所述虚拟对象的实际胶囊体朝向所述目标障碍物的方向;
在发生碰撞后控制所述第一模拟胶囊体沿所述第一方向继续移动第一距离,使得所述第一模拟胶囊体位于第一位置;
控制所述第一模拟胶囊体从所述第一位置沿第二方向移动第二距离,使得所述第一模拟胶囊体位于第二位置;其中,所述第二方向是与所述第一方向垂直且竖直向上的方向;
基于所述第二位置的高度、所述第二位置与所述目标障碍物之间的垂直距离,以及所述虚拟对象的高度,确定所述目标障碍物的高度。
6.根据权利要求4所述的方法,其特征在于,所述目标障碍物的属性信息包括所述目标障碍物的宽度;
所述获取所述目标障碍物的属性信息,包括:
生成与所述虚拟对象的实际胶囊体相对应的第一模拟胶囊体;
控制所述第一模拟胶囊体沿第一方向移动,直至所述第一模拟胶囊体与所述目标障碍物发生碰撞,确定第一碰撞点的位置;其中,所述第一方向是指所述虚拟对象的实际胶囊体朝向所述目标障碍物的方向;
在发生碰撞后控制所述第一模拟胶囊体沿所述第一方向继续移动第三距离,使得所述第一模拟胶囊体位于第三位置;
控制所述第一模拟胶囊体从所述第三位置沿所述第一方向的相反方向移动;
若在沿所述第一方向的相反方向移动的过程中,所述第一模拟胶囊体与所述目标障碍物发生碰撞,则确定第二碰撞点的位置;
基于所述第一碰撞点的位置和所述第二碰撞点的位置之间的水平距离,确定所述目标障碍物的宽度。
7.根据权利要求4所述的方法,其特征在于,所述目标障碍物的属性信息包括所述目标障碍物上方是否有阻挡物,以及所述阻挡物的阻挡高度;
所述获取所述目标障碍物的属性信息,包括:
生成所述虚拟对象对应的第二模拟胶囊体,所述第二模拟胶囊体的高度小于所述虚拟对象的实际胶囊体的高度;
控制所述第二模拟胶囊体沿第一方向移动,直至所述第二模拟胶囊体与所述目标障碍物发生碰撞;其中,所述第一方向是指所述虚拟对象的实际胶囊体朝向所述目标障碍物的方向;
在发生碰撞后控制所述第二模拟胶囊体沿所述第二方向移动,直至所述第二模拟胶囊体的底部位置与所述目标障碍物的顶部位置齐平;其中,所述第二方向是与所述第一方向垂直且竖直向上的方向;
控制所述第二模拟胶囊体沿所述第一方向继续移动第四距离;
若在所述第二模拟胶囊体沿所述第一方向继续移动第四距离的移动过程中,所述第二模拟胶囊体未与其他障碍物发生碰撞,则确定所述目标障碍物上方没有阻挡物;
若在所述第二模拟胶囊体沿所述第一方向继续移动第四距离的移动过程中,所述第二模拟胶囊体与其他障碍物发生碰撞,则确定所述目标障碍物上方有阻挡物,并获取所述阻挡物与所述目标障碍物之间的垂直距离,作为所述阻挡物的阻挡高度。
8.根据权利要求4所述的方法,其特征在于,
所述目标障碍物的属性信息包括所述目标障碍物的高度,不同的高度范围对应于不同的攀爬动画,且所述不同的攀爬动画中所述虚拟对象具有不同的攀爬姿态;
和/或,
所述目标障碍物的属性信息包括所述目标障碍物的宽度,不同的宽度范围对应于不同的攀爬动画,且所述不同的攀爬动画中所述虚拟对象具有不同的落地姿态;
和/或,
所述目标障碍物的属性信息包括所述目标障碍物上方阻挡物的阻挡高度,不同的阻挡高度范围对应于不同的攀爬动画,且所述不同的攀爬动画中所述虚拟对象具有不同的攀爬姿态。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述接收针对所述虚拟对象的攀爬指令之后,还包括:
获取所述虚拟对象与所述目标障碍物之间的水平距离;
若所述水平距离大于阈值,则确定所述虚拟对象无法攀爬所述目标障碍物;
若所述水平距离小于阈值,则执行所述显示所述虚拟对象攀爬所述目标障碍物的攀爬动画的步骤。
10.一种虚拟对象的控制装置,其特征在于,所述装置包括:
画面显示模块,用于显示虚拟环境的显示画面,所述虚拟环境中包括虚拟对象;
指令接收模块,用于接收针对所述虚拟对象的攀爬指令,所述攀爬指令用于触发所述虚拟对象攀爬位于所述虚拟对象前方的目标障碍物;
动画显示模块,用于显示所述虚拟对象攀爬所述目标障碍物的攀爬动画,所述攀爬动画是所述虚拟对象的终点位置相对于所述虚拟对象的起点位置发生改变的位移动画。
11.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至9任一项所述的虚拟对象的控制方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至9任一项所述的虚拟对象的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011352762.XA CN112316429A (zh) | 2020-11-27 | 2020-11-27 | 虚拟对象的控制方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011352762.XA CN112316429A (zh) | 2020-11-27 | 2020-11-27 | 虚拟对象的控制方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112316429A true CN112316429A (zh) | 2021-02-05 |
Family
ID=74308119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011352762.XA Pending CN112316429A (zh) | 2020-11-27 | 2020-11-27 | 虚拟对象的控制方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112316429A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113457136A (zh) * | 2021-06-29 | 2021-10-01 | 完美世界(北京)软件科技发展有限公司 | 游戏动画的生成方法及装置、存储介质、终端 |
CN113546412A (zh) * | 2021-07-26 | 2021-10-26 | 网易(杭州)网络有限公司 | 游戏中的显示控制方法、装置和电子设备 |
CN113559516A (zh) * | 2021-07-30 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 虚拟角色的控制方法和装置、存储介质及电子设备 |
WO2024125424A1 (zh) * | 2022-12-13 | 2024-06-20 | 苏州幻塔网络科技有限公司 | 角色攀爬方法、装置、计算机设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130235046A1 (en) * | 2012-03-07 | 2013-09-12 | Unity Technologies Canada Inc. | Method and system for creating animation with contextual rigging |
US8979652B1 (en) * | 2014-03-27 | 2015-03-17 | TECHLAND Sp. z o. o | Natural movement in a virtual environment |
CN111068324A (zh) * | 2019-11-26 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、设备及存储介质 |
CN111275797A (zh) * | 2020-02-26 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 动画显示方法、装置、设备及存储介质 |
CN111494954A (zh) * | 2020-04-22 | 2020-08-07 | 网易(杭州)网络有限公司 | 游戏中的动画处理方法、装置、电子设备及存储介质 |
CN111714891A (zh) * | 2020-06-22 | 2020-09-29 | 苏州幻塔网络科技有限公司 | 角色攀爬方法、装置、计算机设备及可读存储介质 |
-
2020
- 2020-11-27 CN CN202011352762.XA patent/CN112316429A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130235046A1 (en) * | 2012-03-07 | 2013-09-12 | Unity Technologies Canada Inc. | Method and system for creating animation with contextual rigging |
US8979652B1 (en) * | 2014-03-27 | 2015-03-17 | TECHLAND Sp. z o. o | Natural movement in a virtual environment |
CN111068324A (zh) * | 2019-11-26 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、设备及存储介质 |
CN111275797A (zh) * | 2020-02-26 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 动画显示方法、装置、设备及存储介质 |
CN111494954A (zh) * | 2020-04-22 | 2020-08-07 | 网易(杭州)网络有限公司 | 游戏中的动画处理方法、装置、电子设备及存储介质 |
CN111714891A (zh) * | 2020-06-22 | 2020-09-29 | 苏州幻塔网络科技有限公司 | 角色攀爬方法、装置、计算机设备及可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113457136A (zh) * | 2021-06-29 | 2021-10-01 | 完美世界(北京)软件科技发展有限公司 | 游戏动画的生成方法及装置、存储介质、终端 |
CN113546412A (zh) * | 2021-07-26 | 2021-10-26 | 网易(杭州)网络有限公司 | 游戏中的显示控制方法、装置和电子设备 |
CN113546412B (zh) * | 2021-07-26 | 2024-06-04 | 网易(杭州)网络有限公司 | 游戏中的显示控制方法、装置和电子设备 |
CN113559516A (zh) * | 2021-07-30 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 虚拟角色的控制方法和装置、存储介质及电子设备 |
WO2023005562A1 (zh) * | 2021-07-30 | 2023-02-02 | 腾讯科技(深圳)有限公司 | 虚拟角色的控制方法和装置、存储介质及电子设备 |
CN113559516B (zh) * | 2021-07-30 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 虚拟角色的控制方法和装置、存储介质及电子设备 |
WO2024125424A1 (zh) * | 2022-12-13 | 2024-06-20 | 苏州幻塔网络科技有限公司 | 角色攀爬方法、装置、计算机设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7331124B2 (ja) | 仮想オブジェクトの制御方法、装置、端末及び記憶媒体 | |
CN112316429A (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
EP1047022B1 (en) | Image generating device | |
US20090104990A1 (en) | Game device | |
JP7309917B2 (ja) | 情報表示方法、装置、機器及びプログラム | |
CN110465087B (zh) | 虚拟物品的控制方法、装置、终端及存储介质 | |
CN110339564B (zh) | 虚拟环境中的虚拟对象显示方法、装置、终端及存储介质 | |
CN110732135B (zh) | 虚拟场景显示方法、装置、电子设备及存储介质 | |
WO2022237072A1 (zh) | 控件的显示方法、装置、设备、介质及程序产品 | |
TWI804032B (zh) | 虛擬場景中的資料處理方法、裝置、設備、儲存媒體及程式產品 | |
JP7447296B2 (ja) | 仮想道具のインタラクティブ処理方法、装置、電子機器及びコンピュータプログラム | |
WO2022257653A1 (zh) | 虚拟道具的显示方法、装置、电子设备及存储介质 | |
JP7406567B2 (ja) | 仮想環境の画面表示方法及び装置、並びにコンピュータ装置及びプログラム | |
CN110801629B (zh) | 虚拟对象生命值提示图形的显示方法、装置、终端及介质 | |
US20230033530A1 (en) | Method and apparatus for acquiring position in virtual scene, device, medium and program product | |
US20230124014A1 (en) | Image display method and apparatus, device and storage medium | |
JP2023543519A (ja) | 仮想アイテムの投入方法、装置、端末、及びプログラム | |
CN112691366A (zh) | 虚拟道具的显示方法、装置、设备及介质 | |
CN113633975A (zh) | 虚拟环境画面的显示方法、装置、终端及存储介质 | |
CN115430153A (zh) | 虚拟环境中的碰撞检测方法、装置、设备、介质及程序 | |
JP2024054232A (ja) | ウィジェットの表示方法、装置、機器及びコンピュータプログラム | |
WO2023071808A1 (zh) | 基于虚拟场景的图形显示方法、装置、设备以及介质 | |
CN114210063A (zh) | 虚拟对象之间的互动方法、装置、设备、介质及程序产品 | |
WO2024131391A1 (zh) | 虚拟环境的显示方法、装置、设备、介质及程序产品 | |
CN115300913A (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: 40037956 Country of ref document: HK |