虚拟对象的控制方法及相关装置与流程

文档序号:12125383阅读:200来源:国知局
虚拟对象的控制方法及相关装置与流程

本发明涉及计算机技术领域,特别是涉及虚拟对象的控制方法及相关装置。



背景技术:

游戏、仿真等类型的应用(如MOBA类型的竞技游戏)可为用户提供可参与的虚拟场景,用户可通过创建的虚拟角色在虚拟场景中活动。在虚拟场景中,除用户的虚拟角色外,还可能存在由应用的系统所控制的虚拟对象,这些虚拟对象被设计成可与用户的虚拟角色进行交互。例如,非玩家角色会主动或因被玩家攻击而追逐玩家控制的虚拟角色。

本发明的发明人发现,这类虚拟对象的移动,一般由用户的虚拟角色的活动所触发,并按照应用的系统预置的移动策略进行移动。作为在虚拟场景中与用户的虚拟角色进行交互的重要对象,优化虚拟对象的移动控制,显得尤为必要。



技术实现要素:

本发明的目的在于提供虚拟对象的控制方法及相关装置,以解决上述问题。

为实现上述目的,本发明提供了如下方案:

一方面,本申请的实施例提供一种虚拟对象的控制方法,其特征在于,包括:

获取虚拟对象的关联区域特征数据;

根据所述联区域特征数据,确定所述虚拟场景中与所述虚拟对象相关联的关联区域;

实时获取所述虚拟对象在所述虚拟场景中的当前位置;

判断所述虚拟对象的当前位置是否位于所述虚拟对象的关联区域之外;

若所述虚拟对象的当前位置位于所述虚拟对象的关联区域之外,控制所述虚拟对象返回所述虚拟场景中的指定位置,所述指定位置位于与所述虚拟对象相关联的关联区域中。

另一方面,本发明实施例提供了一种虚拟对象的控制装置,包括:

第一获取单元,用于获取虚拟对象的关联区域特征数据;

确定单元,用于根据所述关联区域特征数据,确定虚拟场景中与所述虚拟对象相关联的关联区域;

第二获取单元,用于实时获取所述虚拟对象在所述虚拟场景中的当前位置;

判断单元,用于所述虚拟对象的当前位置是否位于所述虚拟对象的关联区域之外;

返回控制单元,用于响应于所述判断单元判断出所述当前位置位于所述虚拟对象的关联区域之外,控制所述虚拟对象返回指定位置,所述指定位置位于与所述虚拟对象相关联的关联区域中。

又一方面,本发明实施例提供一种终端设备,包括上述的虚拟对象的控制装置。

本发明提供的方案中,可实时获取虚拟对象的当前位置,判断其是否位于关联区域之外,并在判定虚拟对象位于关联区域之外时,控制虚拟对象返回。这样可控制虚拟对象在超出关联区域后返回,从而可提高控制的准确度,优化了虚拟对象的移动控制。同时,上述关联区域是由关联区域特征数据确定的,设计人员可根据具体的情况例如地形等去配置关联区域特征数据,使得虚拟对象的关联区域与具体情况相适配,增加了其适应性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1a、1b为本发明实施例提供的应用场景示例性示意图;

图2、9为本发明实施例提供的终端设备/虚拟对象的控制装置示例性结构图;

图3、4、8为本发明实施例提供的虚拟对象的控制方法的示例性流程图;

图5a和图5b为本发明实施例提供的扇形区域示意图;

图5c为本发明实施例提供的自定义区域示意图;

图6为本发明实施例提供的配置列表示意图;

图7为本发明实施例提供的默认区域半径设置示意图。

具体实施方式

本发明实施例提供了虚拟对象的控制方法及相关装置,以提高时效性。

本发明实施例所涉及到的相关装置包括虚拟对象的控制装置和终端设备。

上述虚拟对象的控制装置可以软件或硬件的方式应用于上述终端设备中。

图1a示出了上述终端设备的一种示例性应用场景:在该应用场景中包括接入同一虚拟场景的、多个终端设备C1-C5,以及与之相连的服务器。

其中,终端设备C1-C5等可以是各种具有通信功能的手持设备、车载设备、可穿戴设备、计算设备、定位设备或连接到无线调制解调器的其它处理设备,以及各种形式的用户设备(User Equipment,简称UE)、移动台(Mobile station,简称MS)、手机、平板电脑、台式电脑、PDA(PersonalDigital Assistant,个人数字助理)等等。

上述各终端设备上可部署客户端。在游戏、仿真等类型的应用可为用户提供可参与的虚拟场景的情况下,用户可通过客户端控制虚拟场景中某一虚拟对象(虚拟角色)在虚拟场景中进行活动。

服务器负责对网络上各个接入者(即终端设备)提供服务,例如,将某一客户端发送的帧同步命令,在下一帧广播给所有客户端,客户端接收到帧同步命令后,按帧同步命令进行操作。

服务器可以是应用服务器,其可以是一台或多台服务器组成的服务器集群,或云平台。

图1b示出了上述终端设备的另一种示例性应用场景,与图1a不同的是,图1b所示应用场景中并不包括服务器。各终端设备上兼备了图1a所示服务器的功能。

当一个客户端产生了帧同步命令,它可以在下一帧广播给所有客户端,以便各客户端依据帧同步命令进行操作。

需要说明的是,图1a和1b示例性的显示了5个终端设备,在实际应用场景中,终端设备数目并不仅局限于5个,其可以更少或更多。

图2是上述终端设备/虚拟对象的控制装置的一种结构示例图,如图2所示,可包括总线、处理器1、存储器2、通信接口3、输入设备4和输出设备5。处理器1、存储器2、通信接口3、输入设备4和输出设备5通过总线相互连接。其中:

总线可包括一通路,在计算机系统各个部件之间传送信息。

处理器1可以是通用处理器,例如通用中央处理器(CPU)、网络处理器(Network Processor,简称NP)、微处理器等,也可以是特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在一个示例中,处理器1可包括主处理器、基带芯片和调制解调器(modem)。

存储器2中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器2可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。

输入设备4可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。

输出设备5可包括允许输出信息给用户的装置,例如显示屏、扬声器等。

通信接口3可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。

处理器1执行存储器2中所存放的程序,以及调用其他设备,可用于实现本发明所提供的虚拟对象的控制方法。

下面将以图1a或图1b所示的系统架构为基础,基于上面所述的本发明涉及的共性方面,进行进一步详细说明。

为简单起见,本发明所有实施例以一个虚拟对象为例,进行说明。可以理解的是,对于存在多个虚拟对象的虚拟场景。对每一个虚拟对象的返回控控制均可采用本发明提供的方案。

图3为本发明实施例提供的虚拟对象的控制方法的一种示例性流程示意图,由终端设备处理器1执行存储器2中所存放的程序,以及调用其他设备实现。

该示例性流程包括:

在300部分:获取虚拟对象的关联区域特征数据。

在MOBA类型的竞技游戏中,虚拟对象可为非玩家角色,例如虚拟怪物、虚拟野兽等。

在其他场景下,虚拟对象可为需要被控制的虚拟物体或人物。

上述关联区域特征数据表征了该虚拟对象在虚拟场景中的关联区域的特征。后续可根据关联区域特征数据来确定虚拟对象在虚拟场景中的关联区域。

需要说明的是,设计人员可根据具体的情况例如地形等去配置上述关联区域特征数据,使得虚拟对象的关联区域与具体情况相适配,增加了其适应性。

在301部分:根据虚拟对象在虚拟场景中的关联区域特征数据,确定虚拟场景中与该虚拟对象相关联的关联区域。

在一些游戏场景中,关联区域具体可为寻敌范围。寻敌范围是游戏中用以界定怪物追击敌人的范围极限。

需要说明的是,关联区域可为在地图上的二维闭合区域或者三维闭合区域。

本文后续将以二维闭合区域为例进行介绍,如无特殊声明,本文后续的闭合区域或关联区域均指的是二维闭合区域。

上述闭合区域可根据不同的地形等具体情况,有不同的形状。例如,四边形、三边形、圆形、椭圆形,乃至不规则形状。本文后续还将进行进一步的详细介绍。

在游戏场景中,300部分和301部分可归属于一局游戏的初始化部分。

在302部分:实时获取该虚拟对象在该虚拟场景中的当前位置,判断该虚拟对象的当前位置是否位于上述关联区域之外。

可逐帧或隔几帧读取虚拟对象的当前位置。

在一个示例中,可逐帧判断虚拟对象的当前位置是否在其关联区域之外。

更具体的,以游戏中的怪物为例,可逐帧判断怪物当前所处位置是否在其“寻敌范围”外。当然,也可每隔几帧判断一次,例如,每隔2帧判断一次。本发明不作具体限制。

在303部分:若该虚拟对象的当前位置位于上述关联区域之外,控制该虚拟对象返回该虚拟场景中的指定位置。

上述指定位置须位于虚拟对象的关联区域中。

在游戏场景下,很多怪物都有其出生点,则可将怪物的出生点位置作为上述指定位置。

当然,若判定虚拟对象的当前位置位于其关联区域之内,则不控制其返回。

可见,本发明实施例提供的方案中,可实时获取虚拟对象的当前位置,判断其是否位于关联区域之外,并在判定虚拟对象位于关联区域之外时,控制虚拟对象返回。这样可控制虚拟对象在超出关联区域后返回,从而可提高控制的准确度,优化了虚拟对象的移动控制。同时,上述关联区域是由关联区域特征数据确定的,设计人员可根据具体的情况例如地形、营地等去配置关联区域特征数据,使得虚拟对象的关联区域与具体情况相适配,增加了其适应性。

此外,还需要说明的是,本发明实施例也可应用于非虚拟场景中的移动物体的行动控制。举例来讲,本发明实施例可应用于无人机反侦察场景:若可疑飞行物进入无人机的巡逻区域,无人机可对其进行驱赶,当无人机飞出其巡逻区域之外后,可控制无人机返航。

图4为本发明实施例提供的虚拟对象的控制方法的另一种示例性流程示意图,由终端设备处理器1执行存储器2中所存放的程序,以及调用其他设备实现。

该示例性流程包括:

400部分至402部分与300部分和302部分相同,在此不作赘述。

在403部分:判断上述虚拟对象是否正在进行指定动作之外的动作,若是,进入404部分,否则进入405部分。

在一个示例中,指定动作可为待机动作。

以游戏场景为例,非玩家角色的待机动作具体可为idle动作。以怪物为例,其idle动作可为呼吸动作。

在404部分:等待该虚拟对象完成该指定动作之外的动作。

在游戏场景下,非玩家角色会在不同的情况下播放不同的动作(动画),例如攻击、死亡、被击飞等等,一个动作可能会使用一帧或多帧播放。

假定需要在第1000-1004帧播放怪物的攻击动作,但是在第1002帧判断出怪物位于其关联区域之外,如果直接令其返回,其攻击动作并没有完成。此时会发生动作冲突,从动画表现上看,怪物就会出现来回跑动/抖动/卡住等现象。

为了避免上述动作冲突,可等待虚拟对象完成该指定动作之外的动作后,再控制其返回。

在405部分:等待预定时长。

在一个示例中,预定时长可为0.5秒~1秒。当然,本领域技术人员根据实际情况,可将预定时长设计得更长或更短。

等待预设时长的目的是为了等待指定动作完成。

在406部分:控制该虚拟对象返回该虚拟场景中的指定位置。

上述指定位置须位于虚拟对象的关联区域中。

在游戏场景下,很多怪物都有其出生点,则可将怪物的出生点位置作为上述指定位置。

当然,若虚拟对象的当前位置位于其关联区域之内,则不控制其返回。

在一个示例中,可通过播放虚拟对象朝指定位置跑回去的动作来实现控制虚拟对象返回指定位置。

在返回过程中,怪物不会再次响应对他的任何攻击。回到出生点后,怪物的AI行为重置。

所谓AI行为,指的是怪物行为的总括。

在本实施例中,若虚拟对象位于关联区域之外,并不立即返回,而是等待虚拟对象完成正在进行的动作,或等待预定时长。这样可避免虚拟对象出现来回跑动/抖动/卡住等现象。

此外,需要说明的是,本发明实施例也可应用于非虚拟场景中的移动物体的行动控制。举例来讲,本发明实施例可应用于无人机反侦察场景:若无人机飞出其巡逻区域之外后,可在等待无人机完成正在进行的动作或等待预定时长后,控制其返航。

下面,将介绍闭合区域及关联区域特征数据。

在本实施例中,可将闭合区域分为三类:自定义区域、扇形/圆形区域、默认区域。

其中,默认区域是以指定位置为圆心的圆形区域,也即,默认区域的圆心位置为指定位置。

在某些游戏场景下,上述指定位置是怪物的出生点。

由于默认区域的圆心位置与指定位置重合,所以其对应的关联区域特征数据可仅包括该默认区域的半径信息。

至于上述扇形/圆形区域,其圆心位置不与指定位置重合,则其对应的关联区域特征数据可包括:扇形/圆形区域的圆心位置信息、半径信息、角度信息和角度锚点位置信息。

请参见图5a和图5b,图5a和图5b是朝向和角度不同的两个扇形。可见,圆心位置信息和角度锚点位置信息决定了扇形区域的朝向。

若将角度设为360度,则可生成圆形区域。

除了扇形、圆形外,受地形等影响,虚拟对象(怪物)的关联区域可能为四边形、三边形、乃至不规则形状。例如,请参见图5c,因为路口有一片草丛,所以怪物的关联区域(寻敌范围)为一个不规则的六边形。

当该闭合区域为自定义区域时,其对应的关联区域特征数据包括该自动义区域各顶点的位置信息。

在设计过程中,可使用编辑器对上述关联区域特征数据进行设计。

在一个示例中,编辑器可安装于某一台终端设备或服务器上,向设计人员提供可视化的编辑界面。

为了便于设计,可将怪物所在的地图导入编辑界面。

每一怪物都有自己的ID,设计人员可输入怪物ID,或由编辑器向设计人员提供地图上各个怪物的ID,由设计人员通过输入设备(一般为鼠标、键盘)选中某一ID。则可对该ID对应的怪物的关联区域特征数据进行配置。

编辑界面还可向设计人员提供区域配置属性选项,以供选择。

上述区域配置属性选项可包括:自定义区域配置属性、扇形/圆形区域配置属性和基础区域配置属性。可以勾选或其他方式选中其中一个选项。

上述关联区域特征数据即为某一区域配置属性的属性值。

具体的,编辑界面可列出上述三个选项,每一选项之前可具有一勾选框,假定设计人员通过输入设备输入了选择指令(设计人员通过鼠标、键盘等点击上述勾选框的位置,则输入了选择指令),可选中某一选项。

当某一配置属性被选中后,会展开该属性关联的配置列表,供设计人员输入数据。

例如,请参见图6,设计人员选择了扇形/圆形区域配置属性,则会展开关于扇形/圆形的配置列表。编辑器会监听输入设备的输入,根据输入设备的输入填写配置列表。

或者,也可以视图的形式令设计人员手动调节。

例如,以图5a为例,设计人员选择了扇形/圆形区域配置属性,则在地图上显示一个扇形,该扇形的圆心、半径、角度和角度锚点信息都是缺省信息。

设计人员可通过输入设备移动圆心和角度锚点,来改变圆心位置和角度锚点位置。

此外,请参见图5a或图5b,设计人员可通过输入设备移动角度调整点,来改变半径长度和角度大小。

对于基础区域配置属性,设计人员可通过输入设备直接输入其半径的大小。

或者,请参见图7,在默认区域的圆周上,也可设置半径调整点,设计人员可通过输入设备移动半径调整点,来改变半径长度。

再例如,设计人员选择了自定义区域配置属性,可在编辑器导入的地图上显示至少三个顶点。编辑界面可提供顶点的图标,若需要再加入顶点,可拖动顶点的图标进入编辑区,则可实现添加顶点。

编辑器会自动根据编辑区的顶点生成闭合区域。设计人员可通过输入设备移动顶点,来改变自定义区域的形状。

在设计完成后,设计人员点击保存,则自动义区域各顶点的位置信息将作为虚拟对象的自定义区域配置属性的属性值进行存储;而扇形/圆形区域的圆心位置信息、半径信息、角度信息和角度锚点位置信息等,将作为虚拟对象的扇形/圆形区域配置属性的属性值进行存储;默认区域的半径信息则作为虚拟对象的基础区域配置属性的属性值存储。

需要说明的是,如果以上各属性的属性值均没有配置,则在保存或导出地图时,将会报错。

所谓的导出地图,指的是将编辑器中的地图及相关数据,转换成客户端可以使用的文件。

需要说明的是,上述虚拟对象的各种相关数据可存储在地图编辑器中和基础表格中。

在游戏中,地图编辑器读取和使用游戏资源,并输出相应格式的地图数据,客户端/服务器通过地图数据构建游戏场景,将其呈现给用户。

地图编辑器的主要功能包括地图制作和地图资源管理两部分。其中,地图制作主要包括地地表生成、地图虚拟对象摆放、地图属性设置和地图数据输出;地图资源管理包括地图虚拟对象编辑、地图虚拟对象属性设置和资源数据输出。地图虚拟对象是指用于表示地表、树木、房屋、非玩家角色等摆放在游戏地图上的图片和动画资源。

在一个示例中,扇形/圆形区域配置属性及自定义区域配置属性可作为地图属性,扇形/圆形区域配置属性或自定义区域配置属性对应的属性值可配置(存储)在地图编辑器中。

需要说明的是,多个虚拟对象的扇形/圆形区域配置属性及属性值,或,自定义区域配置属性及属性值都配置在同一个地图中。

而基础区域配置属性及其属性值可配置在虚拟对象的基础表格中。

下面,将以一个更详细的实施例来对本发明的技术方案进行介绍。

图8为本发明实施例提供的虚拟对象的控制方法的又一种示例性流程示意图,由终端设备处理器1执行存储器2中所存放的程序,以及调用其他设备实现。

该示例性流程包括:

在800部分:虚拟对象被激活后,客户端判断该虚拟对象是否具有自定义区域配置属性,若是,进入801部分,否则进入802部分;

更具体的,游戏初始化时,或怪物被攻击,被怪物被激活。

在一个示例中,可通过虚拟对象的ID在地图编辑器中寻找其自定义区域配置属性,若寻找到,则虚拟对象具有自定义区域配置属性,否则不具有具有自定义区域配置属性。

在801部分:客户端获取该自定义区域配置属性的属性值。

若虚拟对象具有自定义区域配置属性,则其属性值即为前述的关联区域特征数据。

或者,在本发明其他实施例中,也可直接根据虚拟对象的ID去读取其自定义区域配置属性的属性值,若读取结果为空,则表示虚拟对象不具有自定义区域配置属性。

在802部分:客户端判断该虚拟对象是否具有扇形/圆形区域配置属性,若是,进入803部分,否则进入804部分;

802部分与800部分相类似,在此不作赘述。

在803部分:客户端获取该扇形/圆形区域配置属性的属性值。

803部分与801部分相类似,在此不作赘述。

在804部分:客户端读取虚拟对象的基础区域配置属性的属性值。

更具体的,可读取虚拟对象的基础表格中的半径信息。

在805部分:客户端生成虚拟对象在上述虚拟场景中的关联区域。

需要说明的是,若获取的是默认区域的半径信息,则以虚拟对象的出生点为圆心,生成一个圆形区域;若获取的是圆心位置信息、半径信息、角度信息和角度锚点位置信息,则生成相应的扇形/圆形区域;若获取的是顶点的位置信息,则根据顶点的位置信息生成自定义区域。

806-810部分与前述实施例的402-406部分相同,在此不作赘述。

上述主要从各个装置之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个装置,例如终端设备、基站等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

图9示出了上述实施例中所涉及的终端设备或控制装置的一种可能的结构示意图,包括:

第一获取单元901,用于获取虚拟对象的关联区域特征数据;

确定单元902,用于根据上述关联区域特征数据,确定该虚拟对象在上述虚拟场景中的关联区域;

第二获取单元903,用于实时获取上述虚拟对象在虚拟场景中的当前位置;

判断单元904,用于判断虚拟对象的当前位置是否位于上述关联区域之外;

返回控制单元905,用于响应于判断单元904判断出当前位置位于关联区域之外,控制该虚拟对象返回指定位置。

上述指定位置位于上述关联区域中。

相关描述请参见本文方法部分,在此不作赘述。

在本发明其他实施例中,上述返回控制单元905还可用于:

在控制虚拟对象返回指定位置之前,判断该虚拟对象是否正在进行指定动作之外的动作;

若判定所述虚拟对象正在进行指定动作之外的动作,等待所述虚拟对象完成所述指定动作之外的动作;

若判定所述虚拟对象正在进行指定动作,等待预定时长;

所述控制所述虚拟对象返回所述虚拟场景中的指定位置的操作是在等待所述虚拟对象完成所述指定动作之外的动作后或在等待预定时长后执行的。

相关描述请参见本文方法部分,在此不作赘述。

其中,第一获取单元901可用于执行图3所示实施例的300部分;此外,还可执行图4所示实施例的400部分,以及图8所示实施例的800-804部分。

确定单元902可用于执行图3所示实施例的301部分;此外,还可执行图4所示实施例的401部分,以及图8所示实施例的805部分。

第二获取单元903可用于执行图3所示实施例的302部分的“实时获取虚拟对象的当前位置”操作,图4所示实施例的402部分的“实时获取虚拟对象的当前位置”操作,以及,图8所示实施例的806部分的“实时获取虚拟对象的当前位置”操作。

判断单元904可用于执行图3所示实施例的302部分的相关判断操作,图4所示实施例的402部分的相关判断操作,以及,图8所示实施例的806部分的相关判断操作。

返回控制单元905可用于执行图3所示实施例的303部分,图4所示实施例的403-406部分,以及,图8所示实施例的807-810部分。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1