CN111921189A - 虚拟对象控制方法和装置 - Google Patents
虚拟对象控制方法和装置 Download PDFInfo
- Publication number
- CN111921189A CN111921189A CN202010849333.7A CN202010849333A CN111921189A CN 111921189 A CN111921189 A CN 111921189A CN 202010849333 A CN202010849333 A CN 202010849333A CN 111921189 A CN111921189 A CN 111921189A
- Authority
- CN
- China
- Prior art keywords
- virtual object
- virtual
- determining
- target
- candidate
- 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.)
- Granted
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/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
-
- 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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/837—Shooting of targets
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及一种虚拟对象控制方法和装置。所述方法包括:展示虚拟交互场景,虚拟交互场景中包括虚拟对象和虚拟物体;确定处于虚拟对象的视野范围内、且位于虚拟物体上的候选位置;根据候选位置确定目标位置;响应于发射指令,控制虚拟对象向目标位置发射虚拟道具,发射后的虚拟道具的两端分别连接有虚拟对象和虚拟物体;通过虚拟道具,控制虚拟对象从当前位置朝目标位置运动。采用本方法能够提升虚拟对象的控制效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种虚拟对象控制方法和装置。
背景技术
随着计算机技术的发展,在计算机设备上能够进行的游戏种类越来越多。其中,射击类游戏就是一种比较盛行的游戏,这类游戏通常可以通过虚拟道具,控制虚拟对象移动至预设目标位置,比如,可以通过虚拟抓钩控制虚拟对象移动至虚拟钩头所固定的位置处。
传统方案中,为了实现通过虚拟道具来控制虚拟对象运动的功能,需要依赖于场景编辑人员预先在游戏地图中手动设置目标位置,再为该目标位置配置相应的移动信息,如此,在游戏过程中,才能从地图数据中读取相关的移动信息,并按照移动信息将虚拟对象移动至目标位置处。但是随着游戏技术和计算机硬件的发展,游戏地图的尺寸也越来越大,这就导致场景编辑人员需要花费大量的时间来手动配置大量的目标位置,从而导致虚拟对象的控制效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升虚拟对象的控制效率的虚拟对象控制方法、装置、计算机设备和存储介质。
一种虚拟对象控制方法,所述方法包括:
展示虚拟交互场景,所述虚拟交互场景中包括虚拟对象和虚拟物体;
确定处于所述虚拟对象的视野范围内、且位于所述虚拟物体上的候选位置;
根据所述候选位置确定目标位置;
响应于发射指令,控制所述虚拟对象向所述目标位置发射虚拟道具,发射后的所述虚拟道具的两端分别连接有所述虚拟对象和所述虚拟物体;
通过所述虚拟道具,控制所述虚拟对象从当前位置朝所述目标位置运动。
一种虚拟对象控制装置,所述装置包括:候选位置确定模块、目标位置确定模块和运动模块,其中:
候选位置确定模块,用于展示虚拟交互场景,所述虚拟交互场景中包括虚拟对象和虚拟物体;确定处于所述虚拟对象的视野范围内、且位于所述虚拟物体上的候选位置;
目标位置确定模块,用于根据所述候选位置确定目标位置;
运动模块,用于响应于发射指令,控制所述虚拟对象向所述目标位置发射虚拟道具,发射后的所述虚拟道具的两端分别连接有所述虚拟对象和所述虚拟物体;通过所述虚拟道具,控制所述虚拟对象从当前位置朝所述目标位置运动。
在一个实施例中,候选位置确定模块还用于确定与所述虚拟对象对应的瞄准点、以及所述虚拟对象的视角方向;以所述瞄准点为射线起始点,朝所述视角方向发射射线;当所述射线与所述虚拟物体相交时,将所述射线与所述虚拟物体间的交点作为候选位置。
在一个实施例中,目标位置确定模块还用于当所述虚拟交互场景中与所述候选位置对应的目标空间区域通过空间检查时,将所述虚拟道具从无效状态切换至有效状态;将所述候选位置确定为目标位置,并确定对应的提示方式;按照所述提示方式显示与所述目标位置相对应提示信息;所述提示信息用于表征所述目标位置为有效的固定点位置。
在一个实施例中,目标位置确定模块还用于当所述虚拟交互场景中与所述候选位置对应的目标空间区域通过空间检查时,根据所述候选位置确定目标位置;目标位置确定模块还包括空间检查模块,用于当所述虚拟交互场景中与所述候选位置对应的目标空间区域通过空间检查时,根据所述候选位置确定目标位置之前,根据所述候选位置确定空间检查的空间起始点;基于所述空间起始点设置预设大小的空间几何模型,设置的所述空间几何模型所占用的空间区域为目标空间区域;当所述虚拟交互场景中未存在与所述空间几何模型相交的障碍物时,判定所述目标空间区域通过空间检查。
在一个实施例中,空间检查模块还用于确定所述虚拟物体上存在所述候选位置的接触面;根据所述候选位置和所述接触面,确定与所述候选位置对应的初始落脚点位置;基于所述初始落脚点位置,朝背离所述虚拟物体、且靠近所述虚拟对象的方向进行预设距离的平移,得到空间检查的空间起始点。
在一个实施例中,空间检查模块还用于根据所述候选位置和所述接触面确定与所述候选位置对应的第一法线;根据所述第一法线与所述虚拟交互场景所提供的水平线间的夹角,确定所述虚拟对象的悬挂姿态;根据所述悬挂姿态、所述候选位置、及所述第一法线,确定与所述候选位置对应的初始落脚点位置。
在一个实施例中,空间检查模块还用于当所述第一法线与所述虚拟交互场景所提供的水平线间的夹角小于预设角度阈值时,确定所述虚拟对象的悬挂姿态为侧面悬挂;当所述第一法线与所述虚拟交互场景所提供的水平线间的夹角等于所述预设角度阈值时,确定所述虚拟对象的悬挂姿态为倒立悬挂。
在一个实施例中,空间检查模块还用于当所述虚拟对象的悬挂姿态为侧面悬挂时,根据所述候选位置和相应的第一法线,朝背离所述虚拟物体、且靠近所述虚拟对象的方向确定扫略起始点;通过预设的扫略体,从所述扫略起始点起,朝靠近所述虚拟物体的方向进行扫略查询,直至所述扫略体与所述虚拟物体相交;将所述扫略体与所述虚拟物体之间的交点作为初始落脚点位置;当所述虚拟对象的悬挂姿态为倒立悬挂时,根据所述第一法线的法线方向,将位于所述第一法线上、且距所述候选位置预设距离的空间点作为初始落脚点位置。
在一个实施例中,目标位置确定模块还用包括障碍物检查模块,用于基于所述虚拟物体上存在所述候选位置的接触面、以及所述候选位置,确定与所述候选位置对应的初始落脚点位置,并根据所述初始落脚点位置确定对应的目标空间区域;当所述目标空间区域通过空间检查、且所述候选位置和所述初始落脚点位置通过障碍物检查时,将所述候选位置确定为目标位置。
在一个实施例中,障碍物检查模块还用于以处于所述当前位置的所述虚拟对象的中心点为基准,向所述候选位置和所述初始落脚点位置分别发射射线;当发射的两条射线分别成功到达所述候选位置和所述初始落脚点位置时,确定所述候选位置和所述初始落脚点位置通过障碍物检查。
在一个实施例中,所述虚拟道具包括虚拟钩头、以及与所述虚拟钩头的其中一端相连接的虚拟钩绳,发射后的所述虚拟钩头的另一端射入所述虚拟物体的目标位置处,所述虚拟钩绳的另一端与所述目标对象相连接;运动模块还用于通过不断收缩所述虚拟钩绳,以控制所述虚拟对象随着所述虚拟钩绳的收缩而从当前位置朝所述目标位置运动,直至控制所述虚拟对象的目标部位附着在所述初始落脚点位置为止。
在一个实施例中,虚拟对象控制装置还包括衍生落脚点位置生成模块,用于当所述目标空间区域未通过空间检查、所述候选位置未通过障碍物检查和所述初始落脚点位置未通过障碍物检查中的至少一种情况发生时,根据所述初始落脚点位置,确定新的衍生落脚点位置;对与所述新的衍生落脚点位置所对应的目标空间区域进行空间检查、以及对所述候选位置和所述新的衍生落脚点位置进行障碍物检查;当与所述新的衍生落脚点位置对应的目标空间区域通过空间检查,且所述候选位置和所述新的衍生落脚点位置通过障碍物检查时,将所述候选位置确定为目标位置;否则,返回所述根据所述初始落脚点位置,确定新的衍生落脚点位置的步骤并继续执行,直至达到停止条件时停止。
在一个实施例中,衍生落脚点位置生成模块还用于确定与所述初始落脚点位置对应的扫略起始点;对所述扫略起始点进行更新,得到更新后的扫略起始点;通过预设的扫略体,从所述更新后的扫略起始点起,朝靠近所述虚拟物体的方向进行扫略查询,直至所述扫略体与所述虚拟物体相交,并将所述扫略体与所述虚拟物体之间的交点作为新的衍生落脚点位置。
在一个实施例中,衍生落脚点位置生成模块还用于调整与当前的所述初始落脚点位置对应的悬挂姿态;根据调整后的悬挂姿态、所述候选位置、以及与所述候选位置对应的第一法线,构建衍生落脚点位置。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
展示虚拟交互场景,所述虚拟交互场景中包括虚拟对象和虚拟物体;
确定处于所述虚拟对象的视野范围内、且位于所述虚拟物体上的候选位置;
根据所述候选位置确定目标位置;
响应于发射指令,控制所述虚拟对象向所述目标位置发射虚拟道具,发射后的所述虚拟道具的两端分别连接有所述虚拟对象和所述虚拟物体;
通过所述虚拟道具,控制所述虚拟对象从当前位置朝所述目标位置运动。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
展示虚拟交互场景,所述虚拟交互场景中包括虚拟对象和虚拟物体;
确定处于所述虚拟对象的视野范围内、且位于所述虚拟物体上的候选位置;
根据所述候选位置确定目标位置;
响应于发射指令,控制所述虚拟对象向所述目标位置发射虚拟道具,发射后的所述虚拟道具的两端分别连接有所述虚拟对象和所述虚拟物体;
通过所述虚拟道具,控制所述虚拟对象从当前位置朝所述目标位置运动。
上述虚拟对象控制方法、装置、计算机设备和存储介质,展示虚拟交互场景,并基于虚拟交互场景中的虚拟对象,确定处于视野范围内、且处于虚拟物体上的候选位置。通过确定候选位置,可以根据候选位置确定目标位置,如此,便能在接收到发射指令时,通过虚拟道具,控制虚拟对象从当前位置朝目标位置运动。由于可以自动对虚拟对象视野范围内的候选位置进行合理性和可行性检查,并根据检查结果,确定是否将候选位置确定为目标位置,因此,相比于传统的预先在游戏地图中手动设置目标位置,本申请可以大大减少手动设置目标位置所耗费的时间资源,从而提升虚拟对象的控制效率。
附图说明
图1为一个实施例中虚拟对象控制方法的应用环境图;
图2为一个实施例中虚拟对象控制方法的流程示意图;
图3为一个实施例中射线查询的示意图;
图4为一个实施例中显示与目标位置相对应提示信息的示意图;
图5为一个实施例中通过虚拟道具控制虚拟对象运动的示意图;
图6为一个实施例中确定与侧面悬挂姿态对应的初始落脚点的示意图;
图7为一个实施例中确定与倒立悬挂姿态对应的初始落脚点的示意图;
图8为一个实施例中基于空间几何模型对目标空间区域进行空间检查的示意图;
图9为一个实施例中筛选-生成迭代过程的示意图;
图10为一个实施例中衍生落脚点位置的示意图;
图11A为一个实施例中通过改变倒立悬挂为侧面悬挂来确定衍生落脚点位置的示意图;
图11B为一个实施例中通过改变侧面悬挂为倒立悬挂来确定衍生落脚点位置的示意;
图12为一个实施例中虚拟对象控制方法的具体流程示意图;
图13为一个具体实施例中虚拟对象控制方法的流程示意图;
图14为另一个具体实施例中虚拟对象控制方法的流程示意图;
图15为一个实施例中虚拟对象控制装置的结构框图;
图16为另一个实施例中虚拟对象控制装置的结构框图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中虚拟对象控制的应用环境图。参照图1,该虚拟对象控制方法应用于虚拟对象控制系统。该虚拟对象控制系统包括终端102和服务器104。终端102和服务器104通过网络连接。终端102具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。终端102中运行有目标应用程序,基于此目标应用程序可以从服务器104中拉取地图数据,并根据拉取得到的地图数据展示虚拟交互场景,从而当用户确定虚拟交互场景中的候选位置时,可以对候选位置进行检查。在候选位置通过检查时,目标应用程序将候选位置确定为目标位置,并基于目标位置实现对虚拟对象的控制。服务器104为目标应用程序的后台服务器,其可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
应该理解的是,本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。除非上下文另外清楚地指出,否则单数形式“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。
在一个实施例中,如图2所示,提供了一种虚拟对象控制方法,以该方法应用于图1中的终端进行说明,其中,该虚拟对象控制方法包括以下步骤:
步骤S202,展示虚拟交互场景,虚拟交互场景中包括虚拟对象和虚拟物体。
其中,虚拟交互场景是应用程序运行时所显示的画面。该虚拟交互场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟交互场景可以是二维虚拟交互场景、2.5维虚拟交互场景和三维虚拟交互场景中的任意一种,本申请对此不作限定。例如,虚拟交互场景可以包括天空、陆地、或建筑物等,用户可以控制虚拟对象在该虚拟交互场景中运动或执行交互动作。
虚拟对象是在虚拟交互场景中的可活动对象。该可活动对象具体可以为一个虚拟的用于代表用户的虚拟形象,该虚拟形象不限于为虚拟人物、虚拟动物、或动漫人物等,比如,该虚拟形象可以为在虚拟交互环境中显示的人物、动物、或植物等。虚拟交互场景中可以包括多个虚拟对象,每个虚拟对象在虚拟交互场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。可选地,该虚拟对象可以是用户通过应用程序客户端操作控制的虚拟角色,也可以是由人工智能操作控制的虚拟角色,还可以是设置在虚拟交互场景中的非玩家角色等,本申请实施例对此不作限定。
虚拟物体是在虚拟交互场景中的不可活动对象,该不可活动对象可以是虚拟建筑物、或虚拟植物等,比如,可以为在虚拟交互场景中显示的陆地、房屋、墙壁、石块、或大树等。虚拟场景中可以包括多个虚拟物体,每个虚拟物体在虚拟交互场景中具有自身的形状和体积,占据虚拟交互场景中的一部分空间。可选地,用户可以通过虚拟道具控制虚拟对象移动至虚拟物体处。以射击类游戏为例,当虚拟道具为虚拟抓钩时,用户可以向虚拟物体发射虚拟抓钩,并通过发射后的虚拟抓钩控制虚拟对象移动至虚拟抓钩处。
在一个实施例中,当检测到目标应用程序的启动操作时,终端启动目标应用程序,并通过目标应用程序显示虚拟交互场景。其中,目标应用程序具体可以是游戏应用。该目标应用程序可以为母应用,也可以为子应用。子应用是能够在母应用提供的运行环境中运行的应用,母应用则是运行于操作系统上并为子应用提供运行环境的原生应用。母应用为子应用的运行提供环境,创建用于实现子应用的逻辑层处理单元和视图层处理单元。视图层处理单元用于处理子应用的视图;逻辑层处理单元用于处理子应用的交互逻辑。处理单元具体可以是进程或者线程,如逻辑层线程和相应的视图层线程。逻辑层处理单元可运行于虚拟机中,如JavaScript虚拟机等。
启动目标应用程序的方式可以有多种,比如,母应用的客户端可以通过检测用户点击屏幕中的子应用图标,确定触发子应用启动操作;或者通过识别用户的语音信息,确定触发子应用的启动操作;亦或者通过检测用户的手势,当手势与预设手势匹配,则确定触发子应用的启动操作,不限于此。
步骤S204,确定处于虚拟对象的视野范围内、且位于虚拟物体上的候选位置。
其中,视野范围是控制虚拟对象不动的情况下,在转换虚拟对象视角的过程中,终端所显示的全部虚拟交互场景的空间范围。比如,视野范围可以为转换视角之前终端所显示的虚拟交互场景,至转换视角之后终端所显示的虚拟交互场景之间的空间范围。视角是当前虚拟物体的观察方向,比如,当虚拟对象为虚拟人物,被观察的物体为A植物时,视角可以为虚拟人物观察到A植物的观察方向。
处于虚拟对象的视野范围内的、且位于虚拟物体上的候选位置,具体可以理解为该候选位置与虚拟对象间无障碍物遮挡,也就是可以通过旋转虚拟对象的朝向而使得该候选位置处于该虚拟对象的视角范围内。
具体地,当用户控制虚拟对象装备上虚拟道具后,终端会自动开启候选位置检测功能。用户可以通过目标应用程序中的瞄准点瞄准虚拟物体,以及控制虚拟对象的视角方向,从而终端可以根据虚拟对象的视角方向确定处于虚拟对象视野范围内、且处于被瞄准的虚拟物体上的候选位置。其中,瞄准点用于指示虚拟道具的瞄准位置,也可以称之为准心或准星。比如,当虚拟道具为虚拟抓钩,虚拟物体为墙壁时,用户可以通过瞄准点瞄准位于墙壁上的候选位置,从而后续当瞄准点所瞄准的候选位置为目标位置时,可以控制虚拟对象发射虚拟抓钩,并控制虚拟抓钩中的虚拟钩头固定在目标位置处,通过与虚拟钩头相连的虚拟抓钩中的虚拟钩绳,控制虚拟对象随着虚拟钩绳的收缩从当前位置朝目标位置运动。
在一个实施例中,终端可以对应显示虚拟对象的视野范围内的虚拟物体在世界坐标系中的坐标信息,从而用户可以根据显示的坐标信息输入期望成为候选位置的位置坐标,进而终端可以根据用户的输入的位置坐标确定对应的候选位置。比如,用户可以通过终端提示的A虚拟物体的坐标范围,输入具体的位置坐标,如此,终端便能根据用户输入的具体位置坐标确定位于A虚拟物体上的候选位置。
在一个实施例中,确定处于虚拟对象的视野范围内、且位于虚拟物体上的候选位置,包括:确定与虚拟对象对应的瞄准点、以及虚拟对象的视角方向;以瞄准点为射线起始点,朝视角方向发射射线;当射线与虚拟物体相交时,将射线与虚拟物体间的交点作为候选位置。
具体地,终端可以从瞄准点出发,向虚拟对象的视角发射一条射线,即向瞄准点的方向发射一条射线,当该射线与虚拟交互场景中的虚拟物体相交时,获取射线与虚拟物体间的交点,并将该交点作为候选位置。比如,参考图3,当射线成功到达虚拟物体上时,即可得到如图3所示的交点,从而终端将此交点作为候选位置。图3示出了一个实施例中,射线查询的示意图。
上述实施例中,通过射线检测的方式来确定处于视野范围内、且位于虚拟物体上的候选位置,能够精准获知当前瞄准点所瞄准的候选位置,进而后续虚拟对象移动时的位置精度也较高,用户对虚拟对象的控制也更为精准。
步骤S206,根据候选位置确定目标位置。
具体地,终端可以根据候选位置确定目标位置,比如将候选位置确定为目标位置。进一步地,为了减少虚拟对象通过虚拟道具运动至目标空间区域后,虚拟对象的身体陷入虚拟交互场景中的虚拟物体的概率,可以预先对与候选位置相对应的目标空间区域进行空间检查。当目标空间区域通过空间检查时,终端根据候选位置确定目标位置,即终端将当前候选位置确定为目标位置,将虚拟道具从无效状态切换至有效状态,从而后续可以通过处于有效状态的虚拟道具控制虚拟对象从当前位置朝目标位置运动,如此,便能保证虚拟对象停止于目标空间区域时,虚拟对象的身体不会陷入虚拟物体中。其中,虚拟物体可以为虚拟交互场景中,存在被瞄准点所瞄准的当前候选位置的虚拟物体,也可以为不存在当前候选位置的其它虚拟物体,为了描述方便,下述将不存在当前候选位置的其它虚拟物体称作障碍物。
在一个实施例中,可以在真正移动虚拟对象之前,通过终端预测虚拟对象朝当前候选位置运动,直至运动停止时,虚拟对象所占用空间区域,并将虚拟对象所占用的空间区域作为目标空间区域。
在一个实施例中,根据候选位置确定目标位置,包括:当虚拟交互场景中与候选位置对应的目标空间区域通过空间检查时,根据候选位置确定目标位置;当虚拟交互场景中与候选位置对应的目标空间区域通过空间检查时,根据候选位置确定目标位置之前还包括:根据候选位置确定空间检查的空间起始点;基于空间起始点设置预设大小的空间几何模型,设置的空间几何模型所占用的空间区域为目标空间区域;当虚拟交互场景中未存在与空间几何模型相交的障碍物时,判定目标空间区域通过空间检查。
具体地,终端中预设有空间起始点的查找规则,当确定候选位置时,终端获取候选位置在世界坐标系中的位置坐标,并根据位置坐标以及查找规则确定对应的空间检查的空间起始点。其中,查找规则可以根据需求自由设定,比如,开发人员可以预先计算虚拟对象朝位于虚拟物体上的候选位置运动,直至运动停止时,虚拟对象的落脚点位置与候选位置之间的差距,并根据差距设置相应的查找规则,从而后续,当需要对与当前候选位置对应的目标空间进行空间检查时,终端可以根据预设的查找规则,确定与当前候选位置相对应的落脚点位置,并将落脚点位置作为空间检查的空间起始点,或将距落脚点预设距离的空间点作为空间检查的空间起始点等。其中,落脚点位置是指虚拟对象运动朝候选位置或目标位置运动,直至运动停止时,虚拟对象的目标部位在虚拟交互场景中的位置。
进一步地,终端基于空间起始点设置预设大小的空间几何模型,比如,以空间起始点为起点,设置预设大小的空间几何模型,并将设置的空间几何模型所占用的空间区域设置为目标空间区域。其中,空间几何模型的大小可以与朝候选位置运动,直至运动停止时的虚拟对象所占用的空间相匹配,如此,便能通过空间几何模型预测运动停止时,虚拟对象的身体是否会陷入虚拟交互场景中的障碍物中。当虚拟交互场景中不存在与空间几何模型相交的障碍物时,表明虚拟对象运动至与候选位置对应的目标空间区域后,虚拟对象的身体不会陷入障碍物中,此时判定目标空间区域通过空间检查;当虚拟交互场景中存在与空间几何模型相交的障碍物时,表明虚拟对象运动至与候选位置对应的目标空间区域后,虚拟对象的身体会陷入障碍物中,此时判定目标空间区域未通过空间检查。
在一个实施例中,终端中可以预存储有多个不同大小的空间几何模型,从而终端可以根据虚拟对象在目标空间区域中的身体姿态,选择对应的空间几何模型。比如,当预测虚拟对象运动至目标空间时的身体姿态为站立姿态时,终端选择与站立姿态相对应的空间几何模型;当预测虚拟对象运动至目标空间时的身体姿态为坐立姿态时,终端选择与坐立姿态相对应的空间几何模型。
在一个实施例中,根据候选位置确定目标位置,包括:当虚拟交互场景中与候选位置对应的目标空间区域通过空间检查时,将虚拟道具从无效状态切换至有效状态;将候选位置确定为目标位置,并确定对应的提示方式;按照提示方式显示与目标位置相对应提示信息;提示信息用于表征目标位置为有效的固定点位置。
具体地,当虚拟交互场景中与候选位置对应的目标空间区域通过空间检查时,终端将虚拟对象装备上的虚拟道具从无效状态切换至有效状态,将候选位置确定为目标位置。进一步地,终端中预设有一种或一种以上的提示方式,如图标提示方式或文字提示方式等,当将候选位置确定为目标位置时,终端确定对应的提示方式,并按照确定的提示方式显示与目标位置相对应的提示信息,用以向用户提示目标位置为虚拟道具的有效固定点位置。其中,确定对应的提示方式的方法可以根据需求自由设定,比如,当终端中预设有多种提示方式时,可以根据用户的喜好,确定对应的提示方式,或者轮流从多种提示方式中选择对应的提示方式。本实施例在此不作限定。
比如,参考图4,当确定的提示方式为图标提示时,终端通过将圆形瞄准点切换为如图4所示的尖括号的形状,以提示用户所瞄准的位置为有效的固定点位置。又比如,当确定提示方式为文字提示,确定候选位置为目标位置时,终端通过在当前目标位置处显示字提示信息“固定点”,以提示用户所瞄准的位置为有效的固定点位置。图4示出了一个实施例中,显示与目标位置相对应提示信息的示意图。
上述实施例中,按照提示方式显示与目标位置相对应提示信息,使得用户可以通过显示的提示信息快速得知当前瞄准点是否为虚拟道具的有效固定点,从而在当前瞄准点不为有效固定点时,可以选择更换为其它瞄准点,如此,不仅提升了应用程序的互动性,而且使得用户可以根据准确获知的虚拟道具的可用情况,提升虚拟道具的操作效率。
在一个实施例中,当与候选位置对应的目标空间区域通过空间检查时,获取对应的标记信息;将标记信息添加候选位置所对应的地图数据中;标记信息用于表征候选位置确定为目标位置。
当候选位置确定为目标位置时,终端可获取预设的用于区分候选位置与目标位置的标记信息,并将此标记信息添加至通过目标空间检查的候选位置中。其中,标记信息以及将标记信息添加至地图数据中的方式可以根据需要自定义,比如,可以将标记信息设置为字符“目标位置”,从而可以将字符“目标位置”添加至地图数据中。
步骤S208,响应于发射指令,控制虚拟对象向目标位置发射虚拟道具,发射后的虚拟道具的两端分别连接有虚拟对象和所述虚拟物体。
具体地,发射指令可以通过虚拟道具的触发控件生成,终端在虚拟交互场景中显示该虚拟道具的触发控件,当用户看见该虚拟道具的触发控件时,可以对其进行触发操作,进而计算机可以根据用户的触发操作生成发射指令。其中,虚拟道具的触发控件的样式及显示位置可以由开发人员根据需求自由设置,本实施例对此不作限定。值得注意的是,该虚拟道具的触发控件可以具有不同的状态,例如,可触发状态和不可触发状态,在虚拟道具从无效状态切换为有效状态时,对应的触发控件从不可触发状态切换为可触发状态。
进一步地,终端响应于发射指令,控制虚拟对象向目标位置发射虚拟道具,并基于虚拟道具的两端将虚拟对象和虚拟物体相连。比如,当虚拟道具为虚拟抓钩时,终端控制虚拟抓钩中的虚拟钩头嵌入目标位置处,并通过虚拟抓钩中的与虚拟钩头相连的虚拟钩绳连接虚拟对象。通过用户手动操作触发发射指令,使得用户可以根据需求自由选择是否发射虚拟道具,如此,不仅提升了用户体验,而且提升了虚拟道具的控制效果。
在一个实施例中,终端响应于发射指令,播放第一目标动画,该第一目标动画用于展示虚拟道具的一端嵌入目标位置处,一端与虚拟对象相连接。通过播放第一目标动画,使得该道具的发射过程更为形象,能够真实模拟现实场景,现实效果好。
在一个实施例中,虚拟道具的触发控件可以为虚拟道具本身,在虚拟道具从无效状态切换为有效状态时,用户可通过点击虚拟道具,生成发射指令。
在一个实施例中,发射指令也可以自动生成,比如,自将候选位置确定为目标位置起,预设时长后,终端自动生成发射指令。通过自动生成发射指令,可以简化虚拟对象的控制流程,从而提升虚拟对象的控制效率。
步骤S210,通过虚拟道具,控制虚拟对象从当前位置朝目标位置运动。
具体地,当虚拟道具发射成功后,终端通过虚拟道具,控制虚拟对象从当前位置运动。该虚拟道具可以为不同形态的道具,例如虚拟钩头与虚拟钩绳的结合,又例如,虚拟吸铁石与虚拟钩绳的结合等。以虚拟钩头与虚拟钩绳的结合而得的虚拟抓钩为例进行说明,参考图5,当虚拟抓钩包括虚拟钩头和虚拟钩绳时,虚拟对象发射虚拟抓钩,虚拟抓钩的虚拟钩头501嵌入虚拟物体墙壁中,嵌入位置即为目标位置,该虚拟对象502手中抓住虚拟钩绳503,通过不断收缩的钩绳503控制虚拟对象朝虚拟钩头运动,直至以侧面悬挂的悬挂姿态悬挂于目标空间区域中,或者以倒立悬挂的悬挂姿态悬挂于目标空间中。图5示出了一个实施例中,通过虚拟道具控制虚拟对象运动的示意图。
在一个实施例中,终端通过控制虚拟对象通过虚拟道具从当前位置移动到目标空间区域时,还可以播放第二目标动画,该第二目标动画用于展示该虚拟道具控制虚拟对象运动的过程,这样能够更真实模拟虚拟对象的运动过程,显示效果更好。
上述虚拟对象控制方法中,展示虚拟交互场景,并基于虚拟交互场景中的虚拟对象,确定处于视野范围内、且处于虚拟物体上的候选位置。通过确定候选位置,可以根据候选位置确定目标位置,如此,便能在接收到发射指令时,通过虚拟道具,控制虚拟对象从当前位置朝目标位置运动。由于可以自动对虚拟对象视野范围内的候选位置进行合理性和可行性检查,并根据检查结果,确定是否将候选位置确定为目标位置,因此,相比于传统的预先在游戏地图中手动设置目标位置,本申请可以大大减少手动设置目标位置所耗费的时间等资源,从而提升虚拟对象的控制效率。
在一个实施例中,根据候选位置确定空间检查的空间起始点,包括:确定虚拟物体上存在候选位置的接触面;根据候选位置和接触面,确定与候选位置对应的初始落脚点位置;基于初始落脚点位置,朝背离虚拟物体、且靠近所述虚拟对象的方向进行预设距离的平移,得到空间检查的空间起始点。
其中,初始落脚点位置是指虚拟对象的目标部位在虚拟交互场景中的位置,比如,当虚拟对象为虚拟人物时,初始落脚点位置即为虚拟人物运动至目标空间区域后,此虚拟人物的脚掌在虚拟交互场景中的位置。
具体地,终端根据应用程序的地图数据,确定虚拟物体上存在当前候选位置的接触面在世界坐标系中的坐标信息,以及当前候选位置在世界坐标系中的位置信息,并根据接触面的坐标信息以及当前候选位置的坐标信息,确定初始落脚点在世界坐标系中的位置信息。终端以初始落脚点为基准,朝背离虚拟物体、且靠近虚拟对象的方向进行预设距离的平移,得到空间检查的起始点。其中,平移的预设距离可以根据需求自由设定。
本实施例中,根据落脚点确定对应的空间起始点,使得基于空间起始点所放置的空间几何模型可以精准地反映出虚拟对象运动在停止时所占用的空间区域,从而基于空间几何模型进行的空间检查更为准确。
在一个实施例中,根据候选位置和接触面确定与候选位置对应的初始落脚点位置,包括:根据候选位置和接触面确定与候选位置对应的第一法线;根据第一法线与虚拟交互场景所提供的水平线间的夹角,确定虚拟对象的悬挂姿态;根据悬挂姿态、候选位置、及第一法线,确定与候选位置对应的初始落脚点位置。
其中,第一法线是指垂直于虚拟物体上存在候选位置的接触面、且经过候选位置的法线。
具体地,终端根据地图数据,确定位于接触面中的任意两个不重复向量,根据不重复的两个向量以及候选位置在世界坐标系中的坐标信息,确定第一法线。比如,当第一法线在世界坐标系中的坐标为,接触面中两个不重复的向量分别为候选位置的坐标为(x1,y1,z1)时,通过解公式组 即可得到垂直于接触面的多个解,终端从中筛选出经过候选位置(x1,y1,z1)的目标解,即得到第一法线。
终端根据地图数据确定虚拟交互场景所提供的水平线,并计算第一法线与水平线之间的夹角,根据第一法线与水平线之间的夹角确定虚拟对象运动至目标空间后,在目标空间区域中的悬挂姿态。进一步地,终端根据确定的悬挂姿态选择对应的初始落脚点确定方式,并按照选定的初始落脚点确定方式、候选位置以及第一法线,确定对应的初始落脚点位置。比如,虚拟对象在目标空间区域的悬挂姿态可以为侧面悬挂和倒立悬挂,当确定虚拟对象运动朝候选位置运动后,将以侧面悬挂的姿态悬挂于对应的目标空间区域时,终端按照第一初始落脚点确定方式,基于候选位置以及第一法线,确定初始落脚点位置;当确定虚拟对象运动朝候选位置运动后,将以倒立悬挂的姿态悬挂于对应的目标空间区域时,终端按照第二初始落脚点确定方式,基于候选位置以及第一法线,确定初始落脚点位置;
本实施例中,由于不同的悬挂姿态可以对应不同的初始落脚点位置,因此通过悬挂姿态的确定,可以得到更为精准的初始落脚点位置,从而使得虚拟对象的控制更为准确。
在一个实施例中,根据第一法线与虚拟交互场景所提供的水平线间的夹角,确定虚拟对象的悬挂姿态,包括:当第一法线与虚拟交互场景所提供的水平线间的夹角小于预设角度阈值时,确定虚拟对象的悬挂姿态为侧面悬挂;当第一法线与虚拟交互场景所提供的水平线间的夹角等于预设角度阈值时,确定虚拟对象的悬挂姿态为倒立悬挂。
具体地,当确定第一法线与虚拟交互场景所提供的水平线间的夹角时,终端判断第一法线与水平线间的夹角是否小于或等于预设角度阈值,比如是否小于或等于90度,若小于,则表明虚拟物体上存在当前候选位置的接触面不与水平线所在的水平面平行,此时虚拟对象朝当前候选位置运动后,将会以侧面悬挂的悬挂姿态固定在接触面上。若等于,则表明虚拟物体上存在当前候选位置的接触面与水平线所在的水平面平行,此时虚拟对象朝当前候选位置运动后,将会以倒立悬挂的悬挂姿态固定于对应的目标空间区域中。
比如,当虚拟道具为虚拟抓钩,且第一法线与水平线间的夹角小于90度时,虚拟对象将会通过虚拟抓钩以及虚拟钩绳,以侧面悬挂的悬挂姿态固定于墙壁上;当第一法线与水平线间的夹角等于90度时,虚拟对象将会通过虚拟抓钩以及虚拟钩绳以倒立悬挂的悬挂姿态固定于空中。
本实施例中,由于可以基于第一法线与水平线间的夹角确定对应的悬挂姿态,使得虚拟对象的悬挂场景更符合现实情况,从而提升了显示效果。
在一个实施例中,根据悬挂姿态、候选位置、第一法线,确定与候选位置对应的初始落脚点位置,包括:当虚拟对象的悬挂姿态为侧面悬挂时,根据候选位置和相应的第一法线,朝背离虚拟物体、且靠近所述虚拟对象的方向确定扫略起始点;通过预设的扫略体,从扫略起始点起,朝靠近虚拟物体的方向进行扫略查询,直至扫略体与虚拟物体相交;将扫略体与虚拟物体之间的交点作为初始落脚点位置;当虚拟对象的悬挂姿态为倒立悬挂时,根据第一法线的法线方向,将位于第一法线上、且距候选位置预设距离的空间点作为初始落脚点位置。
具体地,当预测得到虚拟对象运动至目标区域空间后,将会以侧面悬挂的悬挂姿态固定时,终端朝背离虚拟物体、且靠近虚拟对象的方向确定扫略起始点,即朝第一法线的正向方向确定扫略起始点。比如,参考图6,如图6所示,终端以候选位置601为基准,沿竖直向下的方向平移第一预设距离,再沿第一法线602的正向方向平移第二预设距离,得到扫略起始位置603。其中,第一法线的正向方向是指第一法线所指向的背离虚拟物体、且靠近虚拟对象的方向。
进一步地,终端通过预设的扫略体,从扫略起始点起,朝靠近虚拟物体的方向进行扫略查询,直至扫略体与虚拟物体相交,并将扫略体与虚拟物体之间的交点作为初始落脚点位置。比如,参考图6,当确定扫略起始位置603后,终端以扫略起始位置603为基准,通过预设大小的球体604,从扫略起始点起,朝第一法线的反方向进行扫略查询,直至球体604与虚拟物体相交,得到初始落脚点位置605。图6示出了一个实施例中,确定与侧面悬挂姿态对应的初始落脚点的示意图。
当预测得到虚拟对象运动至目标区域空间后,将会以倒立悬挂的悬挂姿态固定时,终端将位于第一法线的正向方向上、且距候选位置第三预设距离的空间点作为初始落脚点。比如,参考图7,终端以候选位置701为基准,沿竖直向下的方向平移第三预设距离,得到初始落脚点位置702。图7示出了一个实施例中,确定与倒立悬挂姿态对应的初始落脚点的示意图。
本实施例中,通过平移以及扫略的方式确定对应的初始落脚点位置,使得所确定的初始落脚点位置更为准确。
在一个实施例中,根据候选位置确定目标位置,包括:基于虚拟物体上存在候选位置的接触面、以及候选位置,确定与候选位置对应的初始落脚点位置,并根据初始落脚点位置确定对应的目标空间区域;当目标空间区域通过空间检查、且候选位置和初始落脚点位置通过障碍物检查时,将候选位置确定为目标位置。
具体地,终端按照上述方法,通过虚拟物体上存在当前候选位置的接触面、以及当前候选位置,确定与当前候选位置对应的第一法线,并根据第一法线、以及当前候选位置确定与当前候选位置对应的初始落脚点位置。当虚拟物体将以侧面悬挂的悬挂姿态固定于目标空间区域时,终端确定初始落脚点所在的接触面,并根据初始落脚点位置、以及与初始落脚点所在的接触面,确定与初始落脚点位置对应的第二法线;当虚拟物体将以倒立悬挂的悬挂姿态固定于目标空间区域时,终端根据初始落脚点位置、以及当前候选位置所在的接触面,确定与初始落脚点位置对应的第二法线。
进一步地,终端以初始落脚点为基准,沿第二法线的正向方向平移预设的平移距离,得到空间检查的空间起始点。终端在空间检查的起始点放置预设大小的空间几何模型,并旋转空间几何模型,使得旋转后的空间几何模型与第二法线垂直,从而旋转后的空间几何模型能够将朝当前候选位置运动后的虚拟对象包裹。其中,空间几何模型的预设大小可以与虚拟对象倒立悬挂或侧面悬挂时所占用的空间大小相匹配。
进一步地,终端判断虚拟交互场景中是否存在与空间几何模型相交的障碍物,当不存在与空间几何模型相交的障碍物时,判定与当前候选位置对应的目标空间区域通过空间检查;当虚拟交互场景中存在与空间几何模型相交的障碍物时,判定与当前候选位置对应的目标空间区域未通过空间检查。
进一步地,为了减少虚拟物体朝候选位置运动的过程中,穿过障碍物的概率,终端还需要对候选位置和初始落脚点位置进行障碍物检查。在目标空间区域通过空间检查、且候选位置和初始落脚点位置通过障碍物检查时,终端将候选位置确定为目标位置。
在一个实施例中,参考图8,由于胶囊体能够较好地包裹虚拟对象的身体模型,因此为了更好地基于空间几何模型模拟虚拟对象朝候选位置移动后,所占用的空间,可以将空间几何模型设置为如图8所示的胶囊体。图8示出了一个实施例中,基于空间几何模型对目标空间区域进行空间检查的示意图。
在一个实施例中,候选位置第一法线初始落脚点位置第二法线这4个三维空间矢量可以唯一确定一次虚拟抓钩行为的虚拟钩头位置、虚拟钩绳长度、虚拟对象的悬挂位置和悬挂姿态,因此可以将候选位置第一法线初始落脚点位置第二法线这4个三维空间矢量以看作一个解。本实施例的最终目的就是需要找到一个可行的且符合用户预期的解。
上述实施例中,由于可以对目标空间区域进行空间检查、以及对候选位置和初始落脚点位置进行障碍物检查,从而当目标空间区域通过空间检查、以及候选位置和初始落脚点位置通过障碍物检查时,才将候选位置确定为目标位置,使得后续虚拟对象朝目标位置运动的过程中不会穿越障碍物,且固定于目标空间区域时,不会陷入障碍物中,如此,便能得到一个可行的且符合用户预期的解。
在一个实施例中,对候选位置和初始落脚点位置进行障碍物检查的步骤包括:以处于当前位置的虚拟对象的中心点为基准,向候选位置和初始落脚点位置分别发射射线;当发射的两条射线分别成功到达候选位置和初始落脚点位置时,确定候选位置和初始落脚点位置通过障碍物检查。
具体地,终端根据地图数据,确定处于当前位置的虚拟对象的中心点,并以处于当前位置的虚拟对象的中心点为基准,向候选位置和初始落脚点位置分别发射射线。其中,处于当前位置的虚拟对象是指未朝目标位置运动时,虚拟对象所处的位置。终端判断发射的两条射线是否分别成功到达候选位置和初始落脚点位置,若发射的两条射线分别成功到达候选位置和初始落脚点位置,确定候选位置和初始落脚点位置通过障碍物检查;若发射的射线未成功到达候选位置,确定候选位置未通过障碍物检查;若发射的射线未成功到达初始落脚点位置,确定初始落脚点位置未通过障碍物检查。
本实施例中,基于射线对候选位置以及落脚点位置进行障碍物检查,不仅操作简单,而且检查结果准确。
在一个实施例中,虚拟道具包括虚拟钩头、以及与虚拟钩头的其中一端相连接的虚拟钩绳,发射后的虚拟钩头的另一端射入虚拟物体的目标位置处,虚拟钩绳的另一端与目标对象相连接;通过虚拟道具,控制虚拟对象从当前位置朝目标位置运动,包括:通过不断收缩虚拟钩绳,以控制虚拟对象随着虚拟钩绳的收缩而从当前位置朝目标位置运动,直至控制虚拟对象的目标部位附着在初始落脚点位置为止。
具体地,当虚拟道具包括虚拟钩头、以及与虚拟钩头的其中一端相连接的虚拟钩绳时,终端可以控制虚拟对象将虚拟钩头从虚拟对象的身上发射至目标位置处,并在虚拟钩头移动的过程中,控制虚拟钩绳随虚拟钩头的移动而伸长。也即使,虚拟对象可以抓住虚拟钩绳的一端,该虚拟钩绳连接的虚拟钩头被发射到目标位置处,从而通过嵌入虚拟物体的虚拟钩头,实现虚拟道具的两端分别连接虚拟对象和虚拟物体。
当虚拟钩头嵌入虚拟物体时,终端控制虚拟钩绳不断收缩,从而通过不断收缩的虚拟钩绳,控制虚拟对象从当前位置处朝目标位置运动,直至虚拟对象运动至与目标位置对应的空间区域中,此时虚拟对象的目标部位附着在初始落脚点位置,比如,虚拟对象的脚掌附着在初始落脚点位置。
本实施例中,通过提供一种能够连接虚拟对象和虚拟物体的虚拟道具,使得可以通过该道具控制虚拟对象灵活地运动,不仅能够满足用户的需求,而且具有较好的控制效果。
在一个实施例中,虚拟对象的控制方法还包括重新确定落脚点位置,重新确定落脚点位置的步骤包括:当目标空间区域未通过空间检查、候选位置未通过障碍物检查和初始落脚点位置未通过障碍物检查中的至少一种情况发生时,根据初始落脚点位置,确定新的衍生落脚点位置;对与新的衍生落脚点位置所对应的目标空间区域进行空间检查、以及对候选位置和新的衍生落脚点位置进行障碍物检查;当与新的衍生落脚点位置对应的目标空间区域通过空间检查,且候选位置和新的衍生落脚点位置通过障碍物检查时,将候选位置确定为目标位置;否则,返回根据初始落脚点位置,确定新的衍生落脚点位置的步骤并继续执行,直至达到停止条件时停止。
具体地,为了保障虚拟对象能够正常地朝候选位置运动,当目标空间区域未通过空间检查、候选位置未通过障碍物检查和初始落脚点位置未通过障碍物检查中的至少一种情况发生时,终端还可以通过其他方式确定新的衍生落脚点位置,如此,便能基于新的衍生落脚点位置,提升用户所瞄准的候选位置成为有效固定点位置的概率,进而实现减少用户更换候选位置的次数的目的。其中,衍生落脚点位置是指终端重新确定的初始落脚点位置之外的其它落脚点位置。
当目标空间区域未通过空间检查、候选位置未通过障碍物检查和初始落脚点位置未通过障碍物检查中的至少一种情况发生时,终端按照预设的衍生落脚点生成方式生成新的衍生落脚点,并按照上述方式对与新的衍生落脚点位置所对应的目标空间区域进行空间检查、以及对候选位置和新的衍生落脚点位置进行障碍物检查。当确定与新的衍生落脚点位置对应的目标空间区域通过空间检查,且候选位置和新的衍生落脚点位置通过障碍物检查时,终端将候选位置确定为目标位置;否则,终端返回根据初始落脚点位置,确定新的衍生落脚点位置的步骤并继续执行,直至达到停止条件时停止。其中,停止条件可以根据需求自由设定,比如,停止条件可以为达到预设的迭代次数等。
在一个实施例中,参考图9,包括有候选位置、第一法线、初始落脚点位置、与初始落脚点位置相对应的第二法线的原始解,以及包括有候选位置、第一法线、衍生落脚点位置以及于衍生落脚点位置对应的第二法线的衍生解均会被加入到一个如图9所示的列表中,这个列表称作解池。验证机制会依次从解池中提取原始解或衍生解来验证其可行性,同时新生成的衍生解也会加入到解池中。这个流程称作筛选-生成迭代。每次迭代,终端均会从解池中的依次取出解,并对其进行筛选验证,若通过验证,则说明找到了可行解,流程结束。若解池中的解均未通过验证,终端删除未通过验证的解,并生成新的衍生解加入解池,开启下一轮迭代。为了保证应用程序的运行效率,需要控制生成的衍生解的总数,以避免降低帧数或发生卡顿。当达到生成衍生解的总数,且未找到可行解时,则流程结束,并宣告无合适的落脚点位置。图9示出了一个实施例中,筛选-生成迭代过程的示意图。
上述实施例中,通过生成新的衍生落脚点位置,使得可以在尽可能减少更换候选位置的次数的情况下,寻找到可行的落脚点位置,如此,便能提升虚拟对象的控制效率。
在一个实施例中,根据初始落脚点位置,确定新的衍生落脚点位置,包括:确定与初始落脚点位置对应的扫略起始点;对扫略起始点进行更新,得到更新后的扫略起始点;通过预设的扫略体,从更新后的扫略起始点起,朝靠近虚拟物体的方向进行扫略查询,直至扫略体与虚拟物体相交,并将扫略体与虚拟物体之间的交点作为新的衍生落脚点位置。
具体地,终端确定与初始落脚点对应的扫略起始点,并根据预设的扫略起始点更新规则对扫略起始点进行更新。比如,扫略起始点更新规则可以为以扫略起始点为基准,朝预设方向平移第一段预设的距离。其中,预设方向和平移的预设距离均可以根据需求自由设定,比如预设方向可以为垂直水平面的垂直方向,预设的距离可以为10厘米等。其中,扫略起始点更新规则可以有多条,从而终端可以根据多条扫略起始点更新规则,得到多个更新后的扫略起始点。
终端按照上述基于扫略起始点确定初始落脚点位置的方法,通过预设的扫略体,从更新后的扫略起始点起,朝靠近虚拟物体的方向进行扫略查询,直至扫略体与虚拟物体相交,并将扫略体与所述虚拟物体之间的交点作为新的衍生落脚点位置。比如,参考图10,终端可以基于多个更新后的扫略起始点,在初始落脚点位置R0的正左、正右、正下、左下、右下5个方位分别生成对应的更新后的初始落脚点位置R1、R2、R3、R4以及R5。图10示出了一个实施例中,衍生落脚点位置的示意图。
本实施例中,通过改变扫略起始点的位置来确定新的衍生落脚点位置,不仅操作简单,而且可以灵活地生成多个衍生落脚点位置。
在一个实施例中,根据落脚点位置,确定新的衍生落脚点位置,包括:调整与当前的初始落脚点位置对应的悬挂姿态;根据调整后的悬挂姿态、候选位置、以及与候选位置对应的第一法线,构建衍生落脚点位置。
具体地,原则上虚拟对象的悬挂姿态是由接触面的倾斜程度决定的,但是由于一些特殊的情况的存在,需要在侧面悬挂和倒立悬挂之间进行转换。比如,参考图11A,当悬挂姿态为倒立悬挂时,由于悬挂空间不足,使得倒立悬挂所占用的目标空间区域无法通过空间检查,但当调整悬挂姿态为侧面悬挂之后,侧面悬挂所占用的目标空间区域可能可以通过空间检查。又比如,参考图11B,当悬挂姿态为侧面悬挂时,由于悬挂空间不足,使得侧面悬挂所占用的目标空间区域无法通过空间检查,但当调整悬挂姿态为倒立悬挂之后,倒立悬挂所占用的目标空间区域可能可以通过空间检查。图11A示出了一个实施例中,通过改变倒立悬挂为侧面悬挂来确定衍生落脚点位置的示意图。图11B示出了一个实施例中,通过改变侧面悬挂为倒立悬挂来确定衍生落脚点位置的示意图。
进一步地,终端调整与当前的初始落脚点位置所对应的悬挂姿态,并根据调整后的悬挂姿态、候选位置、以及与候选位置对应的第一法线,构建衍生落脚点位置。其中,根据调整后的悬挂姿态、候选位置、以及与候选位置对应的第一法线,构建衍生落脚点位置的方法,与根据调整前的悬挂姿态、候选位置、以及与候选位置对应的第一法线,确定初始生落脚点位置的方法可以一致。
本实施例中,由于可以通过改变悬挂姿态来生成新的衍生落脚点,使得后续可以不仅仅只局限于基于接触面的倾斜程度来确定对应的悬挂姿态,还可以基于目标空间区域的实际情况灵活选择对应的悬挂姿态,从而提升了虚拟对象的控制灵活度。
为了便于本领域技术人员的理解,如图12所示,提供了一种虚拟对象控制方法的具体流程示意图。当确定候选位置时,终端根据所确定的候选位置确定对应的第一法线、初始落脚点位置、与初始落脚点位置对应的第二法线,并将候选位置、第一法线、初始落脚点位置、与初始落脚点位置对应的第二法线作为原始解加入解池中。终端判断解池是否为空,若解池不为空,终端对解池中的解进行空间检查和障碍物检查,并在检查得到空间检查以及障碍物检查均通过的解时,即得到可行解时,结束筛选-生成迭代的过程,将当前候选位置确定为目标位置;在未检查得到空间检查以及障碍物检查均通过的解时,即解池中不存在可行解时,删除不可行解,并生成衍生落脚点,基于衍生落脚点生成新的衍生解,将新的衍生解加入解池中。终端返回判断解池是否为空的步骤,若解池为空,则结束筛选-生成迭代的过程,判定在此次迭代过程中未找到可行解,用户所确定的当前候选位置不为目标位置。
如图13所示,在一个具体的实施例中,虚拟对象控制方法包括以下步骤:
S1302,展示虚拟交互场景,虚拟交互场景中包括虚拟对象和虚拟物体。
S1304,确定与虚拟对象对应的瞄准点、以及虚拟对象的视角方向;以瞄准点为射线起始点,朝视角方向发射射线;当射线与虚拟物体相交时,将射线与虚拟物体间的交点作为候选位置。
S1306,根确定虚拟物体上存在候选位置的接触面;根据候选位置和接触面确定与候选位置对应的第一法线。
S1308,当第一法线与虚拟交互场景所提供的水平线间的夹角小于预设角度阈值时,确定虚拟对象的悬挂姿态为侧面悬挂;当第一法线与虚拟交互场景所提供的水平线间的夹角等于预设角度阈值时,确定虚拟对象的悬挂姿态为倒立悬挂。
S1310,当虚拟对象的悬挂姿态为侧面悬挂时,根据候选位置和相应的第一法线,朝背离虚拟物体、且靠近虚拟对象的方向确定扫略起始点;通过预设的扫略体,从扫略起始点起,朝靠近虚拟物体的方向进行扫略查询,直至扫略体与虚拟物体相交;将扫略体与虚拟物体之间的交点作为初始落脚点位置;当虚拟对象的悬挂姿态为倒立悬挂时,根据第一法线的法线方向,将位于第一法线上、且距候选位置预设距离的空间点作为初始落脚点位置。
S1312,基于初始落脚点位置,朝背离虚拟物体、且靠近虚拟对象的方向进行预设距离的平移,得到空间检查的空间起始点。基于空间起始点设置预设大小的空间几何模型,设置的空间几何模型所占用的空间区域为目标空间区域。
S1314,当虚拟交互场景中未存在与空间几何模型相交的障碍物时,判定目标空间区域通过空间检查。
S1316,当虚拟交互场景中与候选位置对应的目标空间区域通过空间检查时,将虚拟道具从无效状态切换至有效状态;将候选位置确定为目标位置,并确定对应的提示方式;按照提示方式显示与目标位置相对应提示信息;提示信息用于表征目标位置为有效的固定点位置。
S1318,响应于发射指令,控制虚拟对象向目标位置发射虚拟道具,发射后的虚拟道具的两端分别连接有虚拟对象和虚拟物体。
S1320,虚拟道具包括虚拟钩头、以及与虚拟钩头的其中一端相连接的虚拟钩绳,发射后的虚拟钩头的另一端射入虚拟物体的目标位置处,虚拟钩绳的另一端与目标对象相连接;通过不断收缩虚拟钩绳,以控制虚拟对象随着虚拟钩绳的收缩而从当前位置朝目标位置运动,直至控制虚拟对象的目标部位附着在初始落脚点位置为止。
展示虚拟交互场景,基于虚拟交互场景中的虚拟对象,确定处于视野范围内、且处于虚拟物体上的候选位置。通过确定候选位置,可以根据候选位置确定为目标位置,如此,便能在接收到发射指令时,通过虚拟道具,控制虚拟对象从当前位置朝目标位置运动,直至运动至对应的目标空间区域中。由于可以自动对虚拟对象视野范围内的候选位置进行合理性和可行性检查,并根据检查结果,确定是否将候选位置确定为目标位置,因此,相比于传统的预先在游戏地图中手动设置目标位置,本申请可以大大减少手动设置目标位置所耗费的时间资源,从而提升虚拟对象的控制效率。
如图14所示,在另一个具体的实施例中,虚拟对象控制方法包括以下步骤:
S1402,展示虚拟交互场景,虚拟交互场景中包括虚拟对象和虚拟物体。
S1404,确定处于虚拟对象的视野范围内、且位于虚拟物体上的候选位置。
S1406,基于虚拟物体上存在候选位置的接触面、以及候选位置,确定与候选位置对应的初始落脚点位置,并根据初始落脚点位置确定对应的目标空间区域。
S1408,以处于当前位置的虚拟对象的中心点为基准,向候选位置和初始落脚点位置分别发射射线,以及基于空间起始点设置预设大小的空间几何模型。
S1410,判断目标空间区域是否通过空间检查,及候选位置和初始落脚点位置是否通过障碍物检查。
S1412,当目标空间区域通过空间检查、且候选位置和初始落脚点位置通过障碍物检查时,根据候选位置确定目标位置。
S1414,当目标空间区域未通过空间检查、候选位置未通过障碍物检查和初始落脚点位置未通过障碍物检查中的至少一种情况发生时,确定与初始落脚点位置对应的扫略起始点;对扫略起始点进行更新,得到更新后的扫略起始点;通过预设的扫略体,从更新后的扫略起始点起,朝靠近虚拟物体的方向进行扫略查询,直至扫略体与虚拟物体相交,并将扫略体与虚拟物体之间的交点作为新的衍生落脚点位置。
S1416,调整与当前的初始落脚点位置对应的悬挂姿态;根据调整后的悬挂姿态、候选位置、以及与候选位置对应的第一法线,构建衍生落脚点位置。
S1418,当与新的衍生落脚点位置对应的目标空间区域通过空间检查,且候选位置和新的衍生落脚点位置通过障碍物检查时,将候选位置确定为目标位置;否则,返回根据初始落脚点位置,确定新的衍生落脚点位置的步骤并继续执行,直至达到停止条件时停止。
S1420,响应于发射指令,控制虚拟对象向目标位置发射虚拟道具,发射后的虚拟道具的两端分别连接有虚拟对象和虚拟物体;通过虚拟道具,控制虚拟对象从当前位置朝目标位置运动。
本申请还提供一种应用场景,该应用场景应用上述的虚拟对象控制方法。具体地,该虚拟对象控制方法在该应用场景的应用如下:当用户进入A射击游戏,并控制虚拟对象装备上虚拟抓钩道具时,计算机设备自动开启候选位置检查系统,此时,用户可以使用屏幕中心的小圆点准心瞄准想要抓取的目标,即使用准心瞄准候选位置。计算机设备对候选位置进行空间检查和障碍物检查,在空间检查以及障碍物检查均通过时,将候选位置确定为目标位置,并将小圆点准心切换为尖括号形状的准心,以提示用户所瞄准的位置为有效固定点位置。
当检测到有效固定点位置后,用户可以按下互动键以发射虚拟抓钩,发射后的虚拟抓钩将虚拟钩头固定在目标位置处,并通过不断收缩的虚拟钩绳控制虚拟对象朝目标位置处移动,直至以倒立悬挂或侧面悬挂的悬挂姿态悬挂于目标空间区域中。
应该理解的是,虽然图2、13和14的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、13和14中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图15所示,提供了一种虚拟对象控制装置1500,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:候选位置确定模块1502、目标位置确定模块1504和运动模块1506,其中:
候选位置确定模块1502,用于展示虚拟交互场景,虚拟交互场景中包括虚拟对象和虚拟物体;确定处于虚拟对象的视野范围内、且位于虚拟物体上的候选位置。
目标位置确定模块1504,用于根据候选位置确定目标位置。
运动模块1506,用于响应于发射指令,控制虚拟对象向目标位置发射虚拟道具,发射后的虚拟道具的两端分别连接有虚拟对象和虚拟物体;通过虚拟道具,控制虚拟对象从当前位置朝目标位置运动。
在一个实施例中,如图16所示,候选位置确定模块1502还用于确定与虚拟对象对应的瞄准点、以及虚拟对象的视角方向;以瞄准点为射线起始点,朝视角方向发射射线;当射线与虚拟物体相交时,将射线与虚拟物体间的交点作为候选位置。
在一个实施例中,目标位置确定模块1504还用于当虚拟交互场景中与候选位置对应的目标空间区域通过空间检查时,将虚拟道具从无效状态切换至有效状态;将候选位置确定为目标位置,并确定对应的提示方式;按照提示方式显示与目标位置相对应提示信息;提示信息用于表征目标位置为有效的固定点位置。
在一个实施例中,目标位置确定模块1504还用于当所述虚拟交互场景中与所述候选位置对应的目标空间区域通过空间检查时,根据所述候选位置确定目标位置;目标位置确定模块1504还包括空间检查模块1541,用于当虚拟交互场景中与候选位置对应的目标空间区域通过空间检查时,根据候选位置确定目标位置之前,根据候选位置确定空间检查的空间起始点;基于空间起始点设置预设大小的空间几何模型,设置的空间几何模型所占用的空间区域为目标空间区域;当虚拟交互场景中未存在与空间几何模型相交的障碍物时,判定目标空间区域通过空间检查。
在一个实施例中,空间检查模块1541还用于确定虚拟物体上存在候选位置的接触面;根据候选位置和接触面,确定与候选位置对应的初始落脚点位置;基于初始落脚点位置,朝背离虚拟物体、且靠近虚拟对象的方向进行预设距离的平移,得到空间检查的空间起始点。
在一个实施例中,空间检查模块1541还用于根据候选位置和接触面确定与候选位置对应的第一法线;根据第一法线与虚拟交互场景所提供的水平线间的夹角,确定虚拟对象的悬挂姿态;根据悬挂姿态、候选位置、及第一法线,确定与候选位置对应的初始落脚点位置。
在一个实施例中,空间检查模块1541还用于当第一法线与虚拟交互场景所提供的水平线间的夹角小于预设角度阈值时,确定虚拟对象的悬挂姿态为侧面悬挂;当第一法线与虚拟交互场景所提供的水平线间的夹角等于预设角度阈值时,确定虚拟对象的悬挂姿态为倒立悬挂。
在一个实施例中,空间检查模块1541还用于当虚拟对象的悬挂姿态为侧面悬挂时,根据候选位置和相应的第一法线,朝背离虚拟物体、且靠近虚拟对象的方向确定扫略起始点;通过预设的扫略体,从扫略起始点起,朝靠近虚拟物体的方向进行扫略查询,直至扫略体与虚拟物体相交;将扫略体与虚拟物体之间的交点作为初始落脚点位置;当虚拟对象的悬挂姿态为倒立悬挂时,根据第一法线的法线方向,将位于第一法线上、且距候选位置预设距离的空间点作为初始落脚点位置。
在一个实施例中,目标位置确定模块1504还用包括障碍物检查模块1542,用于基于虚拟物体上存在候选位置的接触面、以及候选位置,确定与候选位置对应的初始落脚点位置,并根据初始落脚点位置确定对应的目标空间区域;当目标空间区域通过空间检查、且候选位置和初始落脚点位置通过障碍物检查时,将候选位置确定为目标位置。
在一个实施例中,障碍物检查模块1542还用于以处于当前位置的虚拟对象的中心点为基准,向候选位置和初始落脚点位置分别发射射线;当发射的两条射线分别成功到达候选位置和初始落脚点位置时,确定候选位置和初始落脚点位置通过障碍物检查。
在一个实施例中,虚拟道具包括虚拟钩头、以及与虚拟钩头的其中一端相连接的虚拟钩绳,发射后的虚拟钩头的另一端射入虚拟物体的目标位置处,虚拟钩绳的另一端与目标对象相连接;运动模块1506还用于通过不断收缩虚拟钩绳,以控制虚拟对象随着虚拟钩绳的收缩而从当前位置朝目标位置运动,直至控制虚拟对象的目标部位附着在初始落脚点位置为止。
在一个实施例中,虚拟对象控制装置1500还包括衍生落脚点位置生成模块1508,用于当目标空间区域未通过空间检查、候选位置未通过障碍物检查和初始落脚点位置未通过障碍物检查中的至少一种情况发生时,根据初始落脚点位置,确定新的衍生落脚点位置;对与新的衍生落脚点位置所对应的目标空间区域进行空间检查、以及对候选位置和新的衍生落脚点位置进行障碍物检查;当与新的衍生落脚点位置对应的目标空间区域通过空间检查,且候选位置和新的衍生落脚点位置通过障碍物检查时,将候选位置确定为目标位置;否则,返回根据初始落脚点位置,确定新的衍生落脚点位置的步骤并继续执行,直至达到停止条件时停止。
在一个实施例中,衍生落脚点位置生成模块1508还用于确定与初始落脚点位置对应的扫略起始点;对扫略起始点进行更新,得到更新后的扫略起始点;通过预设的扫略体,从更新后的扫略起始点起,朝靠近虚拟物体的方向进行扫略查询,直至扫略体与虚拟物体相交,并将扫略体与虚拟物体之间的交点作为新的衍生落脚点位置。
在一个实施例中,衍生落脚点位置生成模块1508还用于调整与当前的初始落脚点位置对应的悬挂姿态;根据调整后的悬挂姿态、候选位置、以及与候选位置对应的第一法线,构建衍生落脚点位置。
关于虚拟对象控制装置的具体限定可以参见上文中对于虚拟对象控制方法的限定,在此不再赘述。上述虚拟对象控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储虚拟对象控制数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种虚拟对象控制方法。
本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种虚拟对象控制方法,其特征在于,所述方法包括:
展示虚拟交互场景,所述虚拟交互场景中包括虚拟对象和虚拟物体;
确定处于所述虚拟对象的视野范围内、且位于所述虚拟物体上的候选位置;
根据所述候选位置确定目标位置;
响应于发射指令,控制所述虚拟对象向所述目标位置发射虚拟道具,发射后的所述虚拟道具的两端分别连接有所述虚拟对象和所述虚拟物体;
通过所述虚拟道具,控制所述虚拟对象从当前位置朝所述目标位置运动。
2.根据权利要求1所述的方法,其特征在于,所述确定处于所述虚拟对象的视野范围内、且位于所述虚拟物体上的候选位置,包括:
确定与所述虚拟对象对应的瞄准点、以及所述虚拟对象的视角方向;
以所述瞄准点为射线起始点,朝所述视角方向发射射线;
当所述射线与所述虚拟物体相交时,将所述射线与所述虚拟物体间的交点作为候选位置。
3.根据权利要求1所述的方法,其特征在于,所述根据所述候选位置确定目标位置,包括:
当所述虚拟交互场景中与所述候选位置对应的目标空间区域通过空间检查时,将所述虚拟道具从无效状态切换至有效状态;
将所述候选位置确定为目标位置,并确定对应的提示方式;
按照所述提示方式显示与所述目标位置相对应提示信息;所述提示信息用于表征所述目标位置为有效的固定点位置。
4.根据权利要求1所述的方法,其特征在于,所述根据所述候选位置确定目标位置,包括:
当所述虚拟交互场景中与所述候选位置对应的目标空间区域通过空间检查时,根据所述候选位置确定目标位置;
所述当所述虚拟交互场景中与所述候选位置对应的目标空间区域通过空间检查时,根据所述候选位置确定目标位置之前,所述方法还包括:
根据所述候选位置确定空间检查的空间起始点;
基于所述空间起始点设置预设大小的空间几何模型,设置的所述空间几何模型所占用的空间区域为目标空间区域;
当所述虚拟交互场景中未存在与所述空间几何模型相交的障碍物时,判定所述目标空间区域通过空间检查。
5.根据权利要求4所述的方法,其特征在于,所述根据所述候选位置确定空间检查的空间起始点,包括:
确定所述虚拟物体上存在所述候选位置的接触面;
根据所述候选位置和所述接触面,确定与所述候选位置对应的初始落脚点位置;
基于所述初始落脚点位置,朝背离所述虚拟物体、且靠近所述虚拟对象的方向进行预设距离的平移,得到空间检查的空间起始点。
6.根据权利要求5所述的方法,其特征在于,所述根据所述候选位置和所述接触面,确定与所述候选位置对应的初始落脚点位置,包括:
根据所述候选位置和所述接触面确定与所述候选位置对应的第一法线;
根据所述第一法线与所述虚拟交互场景所提供的水平线间的夹角,确定所述虚拟对象的悬挂姿态;
根据所述悬挂姿态、所述候选位置、及所述第一法线,确定与所述候选位置对应的初始落脚点位置。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一法线与所述虚拟交互场景所提供的水平线间的夹角,确定所述虚拟对象的悬挂姿态,包括:
当所述第一法线与所述虚拟交互场景所提供的水平线间的夹角小于预设角度阈值时,确定所述虚拟对象的悬挂姿态为侧面悬挂;
当所述第一法线与所述虚拟交互场景所提供的水平线间的夹角等于所述预设角度阈值时,确定所述虚拟对象的悬挂姿态为倒立悬挂。
8.根据权利要求6所述的方法,其特征在于,所述根据所述悬挂姿态、所述候选位置、及所述第一法线,确定与所述候选位置对应的初始落脚点位置,包括:
当所述虚拟对象的悬挂姿态为侧面悬挂时,根据所述候选位置和相应的第一法线,朝背离所述虚拟物体、且靠近所述虚拟对象的方向确定扫略起始点;
通过预设的扫略体,从所述扫略起始点起,朝靠近所述虚拟物体的方向进行扫略查询,直至所述扫略体与所述虚拟物体相交;
将所述扫略体与所述虚拟物体之间的交点作为初始落脚点位置;
当所述虚拟对象的悬挂姿态为倒立悬挂时,根据所述第一法线的法线方向,将位于所述第一法线上、且距所述候选位置预设距离的空间点作为初始落脚点位置。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述根据所述候选位置确定目标位置,包括:
基于所述虚拟物体上存在所述候选位置的接触面、以及所述候选位置,确定与所述候选位置对应的初始落脚点位置,并根据所述初始落脚点位置确定对应的目标空间区域;
当所述目标空间区域通过空间检查、且所述候选位置和所述初始落脚点位置通过障碍物检查时,将所述候选位置确定为目标位置。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
以处于所述当前位置的所述虚拟对象的中心点为基准,向所述候选位置和所述初始落脚点位置分别发射射线;
当发射的两条射线分别成功到达所述候选位置和所述初始落脚点位置时,确定所述候选位置和所述初始落脚点位置通过障碍物检查。
11.根据权利要求9所述的方法,其特征在于,所述虚拟道具包括虚拟钩头、以及与所述虚拟钩头的其中一端相连接的虚拟钩绳,发射后的所述虚拟钩头的另一端射入所述虚拟物体的目标位置处,所述虚拟钩绳的另一端与所述目标对象相连接;
所述通过所述虚拟道具,控制所述虚拟对象从当前位置朝所述目标位置运动,包括:
通过不断收缩所述虚拟钩绳,以控制所述虚拟对象随着所述虚拟钩绳的收缩而从当前位置朝所述目标位置运动,直至控制所述虚拟对象的目标部位附着在所述初始落脚点位置为止。
12.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述目标空间区域未通过空间检查、所述候选位置未通过障碍物检查和所述初始落脚点位置未通过障碍物检查中的至少一种情况发生时,根据所述初始落脚点位置,确定新的衍生落脚点位置;
对与所述新的衍生落脚点位置所对应的目标空间区域进行空间检查、以及对所述候选位置和所述新的衍生落脚点位置进行障碍物检查;
当与所述新的衍生落脚点位置对应的目标空间区域通过空间检查,且所述候选位置和所述新的衍生落脚点位置通过障碍物检查时,将所述候选位置确定为目标位置;
否则,返回所述根据所述初始落脚点位置,确定新的衍生落脚点位置的步骤并继续执行,直至达到停止条件时停止。
13.根据权利要求12所述的方法,其特征在于,所述根据所述初始落脚点位置,确定新的衍生落脚点位置,包括:
确定与所述初始落脚点位置对应的扫略起始点;
对所述扫略起始点进行更新,得到更新后的扫略起始点;
通过预设的扫略体,从所述更新后的扫略起始点起,朝靠近所述虚拟物体的方向进行扫略查询,直至所述扫略体与所述虚拟物体相交,并将所述扫略体与所述虚拟物体之间的交点作为新的衍生落脚点位置。
14.根据权利要求12所述的方法,其特征在于,所述根据所述落脚点位置,确定新的衍生落脚点位置,包括:
调整与当前的所述初始落脚点位置对应的悬挂姿态;
根据调整后的悬挂姿态、所述候选位置、以及与所述候选位置对应的第一法线,构建衍生落脚点位置。
15.一种虚拟对象控制装置,其特征在于,所述装置包括:
候选位置确定模块,用于展示虚拟交互场景,所述虚拟交互场景中包括虚拟对象和虚拟物体;确定处于所述虚拟对象的视野范围内、且位于所述虚拟物体上的候选位置;
目标位置确定模块,用于根据所述候选位置确定目标位置;
运动模块,用于响应于发射指令,控制所述虚拟对象向所述目标位置发射虚拟道具,发射后的所述虚拟道具的两端分别连接有所述虚拟对象和所述虚拟物体;通过所述虚拟道具,控制所述虚拟对象从当前位置朝所述目标位置运动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010849333.7A CN111921189B (zh) | 2020-08-21 | 2020-08-21 | 虚拟对象控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010849333.7A CN111921189B (zh) | 2020-08-21 | 2020-08-21 | 虚拟对象控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111921189A true CN111921189A (zh) | 2020-11-13 |
CN111921189B CN111921189B (zh) | 2022-03-01 |
Family
ID=73306175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010849333.7A Active CN111921189B (zh) | 2020-08-21 | 2020-08-21 | 虚拟对象控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111921189B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110123122A1 (en) * | 2009-11-24 | 2011-05-26 | Agrawal Amit K | System and Method for Determining Poses of Objects |
CN108245893A (zh) * | 2018-02-09 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 三维虚拟环境中虚拟对象的姿态确定方法、装置及介质 |
CN108595010A (zh) * | 2018-04-27 | 2018-09-28 | 网易(杭州)网络有限公司 | 虚拟现实中虚拟物体的交互方法及装置 |
CN109432776A (zh) * | 2018-09-21 | 2019-03-08 | 苏州蜗牛数字科技股份有限公司 | 一种空间自由寻路方法 |
US20190178638A1 (en) * | 2013-07-12 | 2019-06-13 | Magic Leap, Inc. | Method and system for obtaining texture data of a space |
CN110882545A (zh) * | 2019-12-06 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、电子设备及存储介质 |
CN111097167A (zh) * | 2019-11-28 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 移动控制方法、服务器、电子装置及存储介质 |
US10653945B1 (en) * | 2010-07-09 | 2020-05-19 | Open Invention Network Llc | Action or position triggers in a game play mode |
CN111318018A (zh) * | 2020-02-07 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 虚拟道具的控制方法和装置、存储介质及电子装置 |
CN111488280A (zh) * | 2020-04-09 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及电子设备 |
-
2020
- 2020-08-21 CN CN202010849333.7A patent/CN111921189B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110123122A1 (en) * | 2009-11-24 | 2011-05-26 | Agrawal Amit K | System and Method for Determining Poses of Objects |
US10653945B1 (en) * | 2010-07-09 | 2020-05-19 | Open Invention Network Llc | Action or position triggers in a game play mode |
US20190178638A1 (en) * | 2013-07-12 | 2019-06-13 | Magic Leap, Inc. | Method and system for obtaining texture data of a space |
CN108245893A (zh) * | 2018-02-09 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 三维虚拟环境中虚拟对象的姿态确定方法、装置及介质 |
CN108595010A (zh) * | 2018-04-27 | 2018-09-28 | 网易(杭州)网络有限公司 | 虚拟现实中虚拟物体的交互方法及装置 |
CN109432776A (zh) * | 2018-09-21 | 2019-03-08 | 苏州蜗牛数字科技股份有限公司 | 一种空间自由寻路方法 |
CN111097167A (zh) * | 2019-11-28 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 移动控制方法、服务器、电子装置及存储介质 |
CN110882545A (zh) * | 2019-12-06 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、电子设备及存储介质 |
CN111318018A (zh) * | 2020-02-07 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 虚拟道具的控制方法和装置、存储介质及电子装置 |
CN111488280A (zh) * | 2020-04-09 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111921189B (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11948260B1 (en) | Streaming mixed-reality environments between multiple devices | |
CN110170168B (zh) | 虚拟对象射击控制方法、装置、电子设备及存储介质 | |
EP3882870B1 (en) | Method and device for image display, storage medium and electronic device | |
CN108434735B (zh) | 虚拟物品显示方法、装置、电子装置及存储介质 | |
CN111589126A (zh) | 虚拟对象的控制方法、装置、设备及存储介质 | |
CN110732135B (zh) | 虚拟场景显示方法、装置、电子设备及存储介质 | |
JP2016539668A (ja) | 拡張現実装置、方法およびプログラム | |
JP2021512418A (ja) | 仮想オブジェクト制御方法、装置、電子機器、及び記憶媒体 | |
CN112402960B (zh) | 虚拟场景中状态切换方法、装置、设备及存储介质 | |
US20240157244A1 (en) | Virtual object control method and apparatus, terminal, and storage medium | |
KR20190141213A (ko) | 가상 인터랙티브 장면에서의 타깃 포지셔닝 방법 및 장치 | |
CN111228799B (zh) | 游戏区域的目标点检测方法、装置和计算机设备 | |
CN110882545B (zh) | 虚拟对象控制方法、装置、电子设备及存储介质 | |
CN112927260B (zh) | 一种位姿生成方法、装置、计算机设备和存储介质 | |
KR102698789B1 (ko) | 가상 장면의 정보 처리 방법 및 장치, 디바이스, 매체 및 프로그램 제품 | |
WO2022237420A1 (zh) | 虚拟对象的控制方法、装置、设备、存储介质及程序产品 | |
JP2022540277A (ja) | 仮想オブジェクト制御方法、装置、端末及びコンピュータプログラム | |
CN110302537A (zh) | 虚拟对象控制方法、装置、存储介质和计算机设备 | |
US20230338854A1 (en) | Object processing method and apparatus in virtual scene, device, and storage medium | |
CN111921189B (zh) | 虚拟对象控制方法和装置 | |
CN112843739B (zh) | 拍摄方法、装置、电子设备及存储介质 | |
CN113769392B (zh) | 虚拟场景的状态处理方法、装置、电子设备及存储介质 | |
CN112121433B (zh) | 虚拟道具的处理方法、装置、设备及计算机可读存储介质 | |
CN114247132B (zh) | 虚拟对象的控制处理方法、装置、设备、介质及程序产品 | |
CN112807698B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |