虚拟角色的射击控制方法、装置、电子设备及存储介质与流程

文档序号:27503421发布日期:2021-11-22 16:37阅读:196来源:国知局
虚拟角色的射击控制方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机人机交互技术领域,尤其涉及一种虚拟角色的射击控制方法、装置、电子设备、计算机可读存储介质及计算机程序产品。


背景技术:

2.基于图形处理硬件的虚拟场景的人机交互技术,能够根据实际应用需求实现受控于用户或人工智能的虚拟角色之间的多样化的交互,具有广泛的实用价值。例如在军事演习仿真、以及游戏等的虚拟场景中,能够模拟虚拟角色之间的真实的对战过程。
3.以游戏场景为例,射击游戏是一款深受用户喜爱的竞技游戏,不仅可以帮助用户释放压力、放松心情,并且还可以通过射击游戏提高用户自身的反应能力和灵敏性。
4.然而,相关技术提供的方案中,虚拟射击道具的射击控制方式比较单一,无法适应虚拟角色在虚拟场景中的多样化的状态,例如以虚拟射击道具为霰弹枪为例,相关技术中,在不同的操作模式下,例如无论是跳跃射击还是站立射击,霰弹枪子弹的发射形态都是一样的,从而影响了射击控制的精度和效率。


技术实现要素:

5.本技术实施例提供一种虚拟角色的射击控制方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够在控制虚拟射击道具进行射击时实现虚拟子弹多样化的发射形态,从而提高了射击控制的精度和效率。
6.本技术实施例的技术方案是这样实现的:
7.本技术实施例提供一种虚拟角色的射击控制方法,包括:
8.在虚拟场景中显示虚拟角色以及所述虚拟角色握持的虚拟射击道具,其中,所述虚拟射击道具在每次射击时能够同时发射多颗虚拟子弹;
9.响应于当所述虚拟角色处于静止状态时针对所述虚拟射击道具的第一射击触发操作,控制所述虚拟射击道具向第一落弹区域发射第一数量的虚拟子弹;
10.响应于当所述虚拟角色处于运动状态时针对所述虚拟射击道具的第二射击触发操作,控制所述虚拟射击道具向第二落弹区域发射第二数量的虚拟子弹,其中,所述第二落弹区域小于所述第一落弹区域。
11.本技术实施例提供一种虚拟角色的射击控制装置,包括:
12.显示模块,用于在虚拟场景中显示虚拟角色以及所述虚拟角色握持的虚拟射击道具,其中,所述虚拟射击道具在每次射击时能够同时发射多颗虚拟子弹;
13.控制模块,用于响应于当所述虚拟角色处于静止状态时针对所述虚拟射击道具的第一射击触发操作,控制所述虚拟射击道具向第一落弹区域发射第一数量的虚拟子弹;
14.所述控制模块,还用于响应于当所述虚拟角色处于运动状态时针对所述虚拟射击道具的第二射击触发操作,控制所述虚拟射击道具向第二落弹区域发射第二数量的虚拟子弹,其中,所述第二落弹区域小于所述第一落弹区域。
15.上述方案中,所述装置还包括确定模块,用于基于第一射击碰撞位置以及第一散射距离确定第一落弹区域,其中,所述第一散射距离为所述虚拟角色处于静止状态时对应的散射距离;所述控制模块,还用于控制所述虚拟射击道具向所述第一落弹区域进行至少一次第一射击以发射第一数量的虚拟子弹,并控制所述第一数量的虚拟子弹随机分布在所述第一落弹区域中第一数量的落弹点。
16.上述方案中,所述装置还包括生成模块,用于以所述虚拟射击道具的发射口为起点,生成沿所述至少一次第一射击的射击方向延伸的第一检测射线;所述确定模块,还用于以所述第一检测射线与所述虚拟场景中的第一虚拟障碍物之间的第一射击碰撞位置为参考点,并基于第一散射距离确定第一落弹区域。
17.上述方案中,所述控制模块,还用于针对每颗虚拟子弹执行以下处理:在所述第一落弹区域中随机生成一个落弹点,以作为所述虚拟子弹对应的落弹点,并控制所述虚拟子弹击中所述落弹点。
18.上述方案中,所述确定模块,还用于基于第二射击碰撞位置以及第二散射距离确定第二落弹区域,其中,所述第二散射距离小于所述虚拟角色处于静止状态时对应的第一散射距离;所述控制模块,还用于控制所述虚拟射击道具向所述第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹,并控制所述第二数量的虚拟子弹随机分布在所述第二落弹区域中第二数量的落弹点。
19.上述方案中,所述装置还包括检测模块,用于检测所述运动状态包括的动作;所述确定模块,还用于当所述运动状态包括一个类型的单一动作,或者包括先后接续的多个不同类型的单一动作时,确定将转入执行控制所述虚拟射击道具向所述第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹的操作。
20.上述方案中,所述生成模块,还用于以所述虚拟射击道具的发射口为起点,生成沿所述至少一次第二射击的射击方向延伸的第二检测射线;所述确定模块,还用于以所述第二检测射线与所述虚拟场景中的第二虚拟障碍物之间的第二射击碰撞位置为参考点,并基于第二散射距离确定第二落弹区域。
21.上述方案中,所述确定模块,还用于通过以下任意一种方式确定第二散射距离:将所述第一散射距离减去固定的调整幅度得到所述第二散射距离;将所述第一散射距离除以固定的调整倍数得到所述第二散射距离,其中,所述调整倍数大于1。
22.上述方案中,所述确定模块,还用于通过以下方式确定第二散射距离:检测所述运动状态包括的动作的动作参数;确定与所述动作参数负相关的调整系数,并根据所述调整系数与固定的调整幅度或固定的调整倍数的乘积,对应得到动态的调整幅度或动态的调整倍数;根据所述动态的调整幅度或动态的调整倍数对所述第一散射距离进行调整,得到所述第二散射距离。
23.上述方案中,当所述虚拟射击道具处于连发模式时,所述确定模块,还用于针对所述连发模式中的每个射击阶段执行以下处理:对上一射击阶段对应的第二散射距离或相邻落弹点之间的平均距离进行更新;将更新后的第二散射距离作为当前射击阶段对应的第二散射距离,或将更新后的相邻落弹点之间的平均距离作为当前射击阶段对应的相邻落弹点之间的平均距离;其中,每个所述射击阶段包括至少一次第二射击。
24.上述方案中,所述控制模块,还用于控制所述虚拟射击道具向第二落弹区域进行
至少一次第二射击以发射第二数量的虚拟子弹;控制所述第二数量的虚拟子弹随机分布在所述第二落弹区域中第二数量的落弹点,且所述第二落弹区域中相邻落弹点之间的平均距离小于所述第一落弹区域中相邻落弹点之间的平均距离。
25.上述方案中,所述检测模块,还用于检测所述运动状态包括的动作;所述确定模块,还用于当所述运动状态包括同时发生的多个不同类型的单一动作时,确定将转入执行控制所述虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹的操作。
26.上述方案中,所述装置还包括划分模块,用于将所述第二落弹区域平均划分成第二数量的候选区域;所述生成模块,还用于在每个所述候选区域中随机生成一个落弹点,得到第二数量的落弹点;所述控制模块,还用于将所述第二数量的落弹点分别分配给所述第二数量的虚拟子弹;根据为所述第二数量的虚拟子弹分别分配的落弹点,控制所述第二数量的虚拟子弹分别击中所述第二落弹区域中对应分配的落弹点。
27.上述方案中,所述划分模块,还用于将所述第二落弹区域划分为第一子区域和第二子区域,其中,所述第一子区域和所述第二子区域的中心重合、且所述第一子区域小于所述第二子区域;所述生成模块,还用于在所述第一子区域中随机生成第三数量的落弹点,并将所述第三数量的落弹点分别分配给第三数量的虚拟子弹,其中,所述第三数量小于所述第二数量;所述控制模块,还用于根据为所述第三数量的虚拟子弹分别分配的落弹点,控制所述第三数量的虚拟子弹分别击中所述第二落弹区域中对应分配的落弹点;所述划分模块,还用于将所述第二子区域平均划分成第四数量的候选区域,其中,所述第四数量为所述第二数量与所述第三数量的差值;所述生成模块,还用于在每个所述候选区域中随机生成一个落弹点,得到第四数量的落弹点;所述控制模块,还用于将所述第四数量的落弹点分别分配给所述第四数量的虚拟子弹;根据为所述第四数量的虚拟子弹分别分配的落弹点,控制所述第四数量的虚拟子弹分别击中所述第二落弹区域中对应分配的落弹点。
28.上述方案中,当所述第二落弹区域为半径为r的圆形区域时,所述划分模块,还用于以所述第二落弹区域的中心为圆心,将所述第二落弹区域划分成半径为p的第一子区域、以及内环半径为s,外环半径为r的第二子区域,其中,p小于或等于s、且s小于r。
29.上述方案中,所述划分模块,还用于将所述内环半径为s,外环半径为r的第二子区域平均划分成第四数量的候选区域,其中,每个所述候选区域对应的角度范围为360
°
/第四数量;所述生成模块,还用于针对每个所述候选区域执行以下处理:从所述候选区域对应的角度范围内随机生成一个角度、以及随机生成一个在s和r之间的半径;将所述候选区域中与所述角度以及所述半径对应的点,作为所述候选区域对应的落弹点。
30.本技术实施例提供一种电子设备,所述电子设备包括:
31.存储器,用于存储可执行指令;
32.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的虚拟角色的射击控制方法。
33.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的虚拟角色的射击控制方法。
34.本技术实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本技术实施例提供的虚拟角色的射击控制方法。
35.本技术实施例具有以下有益效果:
36.当虚拟角色处于静止状态时接收到针对虚拟射击道具的射击触发操作,则控制虚拟射击道具向范围较大的第一落弹区域发射虚拟子弹;当虚拟角色处于运动状态时接收到针对虚拟射击道具的射击触发操作,则控制虚拟射击道具向范围较小的第二落弹区域发射虚拟子弹,如此,能够适应虚拟角色在虚拟场景中的多样化的状态进行精确射击,实现根据虚拟角色的不同状态进行多样化的发射形态,提高了射击控制效率。
附图说明
37.图1a是本技术实施例提供的虚拟角色的射击控制方法的应用模式示意图;
38.图1b是本技术实施例提供的虚拟角色的射击控制方法的应用模式示意图;
39.图2是本技术实施例提供的终端设备400的结构示意图;
40.图3是本技术实施例提供的虚拟角色的射击控制方法的流程示意图;
41.图4a是本技术实施例提供的虚拟角色的射击控制方法的流程示意图;
42.图4b是本技术实施例提供的虚拟角色的射击控制方法的流程示意图;
43.图5a是本技术实施例提供的运动状态下虚拟子弹发射形态示意图;
44.图5b是本技术实施例提供的运动状态下虚拟子弹发射形态示意图;
45.图6是相关技术提供的霰弹枪子弹发射形态示意图;
46.图7是相关技术提供的霰弹枪子弹发射形态下命中目标的示意图;
47.图8a是本技术实施例提供的虚拟角色的射击控制方法的应用场景示意图;
48.图8b是本技术实施例提供的虚拟角色的射击控制方法的应用场景示意图;
49.图9是本技术实施例提供的虚拟角色的射击控制方法的应用场景示意图;
50.图10是本技术实施例提供的虚拟角色的射击控制方法的应用场景示意图;
51.图11是本技术实施例提供的对落弹区域进行划分的原理示意图;
52.图12是本技术实施例提供的滑铲射击时霰弹枪子弹的发射形态示意图;
53.图13是本技术实施例提供的虚拟角色的射击控制方法的流程示意图;
54.图14是本技术实施例提供的确定子弹发射方向的原理示意图;
55.图15是本技术实施例提供的确定弹孔特效的原理示意图;
56.图16是本技术实施例提供的材质候选界面示意图。
具体实施方式
57.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
58.在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
59.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
60.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
61.1)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
62.2)客户端,终端设备中运行的用于提供各种服务的应用程序,例如视频播放客户端、游戏客户端等。
63.3)虚拟场景,是应用程序在终端设备上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本技术实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟角色在该虚拟场景中进行移动。
64.4)虚拟角色,虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,例如在虚拟场景中显示的人物、动物等。该虚拟角色可以是虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟角色,每个虚拟角色在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
65.例如,虚拟角色可以是通过3d游戏引擎或数字内容创建(dcc,digital content create)软件,借助3d图形建模渲染技术绘制的,其中,虚拟角色数据可以包括角色模型数据和角色骨骼数据。
66.5)场景数据,表示虚拟场景的特征数据,例如可以是虚拟场景中建造区域的面积、虚拟场景当前所处的建筑风格等;也可以包括虚拟建筑在虚拟场景中所处的位置、以及虚拟建筑的占地面积等。
67.本技术实施例提供一种虚拟角色的射击控制方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够在控制虚拟射击道具进行射击时实现虚拟子弹多样化的发射形态,从而提高了射击控制的精度和效率。为便于更容易理解本技术实施例提供的虚拟角色的射击控制方法,首先说明本技术实施例提供的虚拟角色的射击控制方法的示例性实施场景,本技术实施例提供的虚拟角色的射击控制处理方法中的虚拟场景可以完全基于终端设备输出,或者基于终端设备和服务器协同输出。
68.在一些实施例中,虚拟场景可以是军事演习仿真中所呈现的画面,用户可以在虚拟场景中,通过属于不同团队的虚拟对象来模拟战局、战略或战术,对于军事作战的指挥有着很大的指导作用。
69.在另一些实施例中,虚拟场景还可以是供游戏角色交互的环境,例如可以是供游戏角色在虚拟场景中进行对战,通过控制游戏角色的行动可以在虚拟场景中进行双方互动,从而使用户能够在游戏的过程中舒缓生活压力。
70.在一个实施场景中,参见图1a,图1a是本技术实施例提供的虚拟角色的射击控制方法的应用模式示意图,适用于一些完全依赖于终端设备400的图形处理硬件计算能力即可完成虚拟场景100的相关数据计算的应用模式,例如单机版/离线模式的游戏,通过智能
手机、平板电脑和虚拟现实/增强现实设备等各种不同类型的终端设备400完成虚拟场景的输出。
71.作为示例,图形处理硬件的类型包括中央处理器(cpu,central processing unit)和图形处理器(gpu,graphics processing unit)。
72.当形成虚拟场景100的视觉感知时,终端设备400通过图形计算硬件计算显示所需要的数据,并完成显示数据的加载、解析和渲染,在图形输出硬件输出能够对虚拟场景形成视觉感知的视频帧,例如,在智能手机的显示屏幕呈现二维的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;此外,为了丰富感知效果,终端设备400还可以借助不同的硬件来形成听觉感知、触觉感知、运动感知和味觉感知的一种或多种。
73.作为示例,终端设备400上运行有客户端410(例如单机版的游戏应用),在客户端410的运行过程中输出包括有角色扮演的虚拟场景,虚拟场景可以是供游戏角色交互的环境,例如可以是用于供游戏角色进行对战的平原、街道、山谷等等;以第一人称视角显示虚拟场景100为例,在虚拟场景100中显示有虚拟角色101以及虚拟角色101通过握持部位(例如手部)握持的虚拟射击道具102(例如虚拟霰弹枪),其中,虚拟角色101可以是受用户控制的游戏角色,即虚拟角色101受控于真实用户,将响应于真实用户针对控制器(例如触控屏、声控开关、键盘、鼠标和摇杆等)的操作而在虚拟场景100中运动,例如当真实用户向右移动摇杆时,虚拟角色101将在虚拟场景100中向右部移动,还可以保持原地静止、跳跃以及控制虚拟角色101进行射击操作等。
74.举例来说,当虚拟角色101处于静止状态时接收到针对虚拟射击道具102的第一射击触发操作(例如当虚拟角色101处于站立状态时,接收到用户针对虚拟场景100中显示的射击控件的点击操作),则控制虚拟射击道具102向第一落弹区域103发射第一数量的虚拟子弹;当虚拟角色101处于运动状态时接收到针对虚拟射击道具102的第二射击触发操作(例如当虚拟角色101处于跳跃状态时,接收到用户针对虚拟场景100中显示的射击控件的点击操作),则控制虚拟射击道具102向第二落弹区域104发射第二数量的虚拟子弹,由图1a可以看出,第二落弹区域104是小于第一落弹区域103的,也就是说,相较于静止状态,在虚拟角色101处于运动状态时控制虚拟射击道具102进行射击,虚拟子弹落入的范围会变小,从而更容易击中虚拟场景100中显示的目标(例如与虚拟角色101处于敌对阵营的虚拟角色),如此,在不同操作模式下控制虚拟射击道具102进行射击时,虚拟子弹对应的发射形态是不同的,从而适应了虚拟角色在虚拟场景中的多样化的状态,提高了射击控制的精度和效率,同时也提高了不同技术水平的用户的游戏体验。
75.在另一个实施场景中,参见图1b,图1b是本技术实施例提供的虚拟角色的射击控制方法的应用模式示意图,应用于终端设备400和服务器200,适用于依赖于服务器200的计算能力完成虚拟场景计算、并在终端设备400输出虚拟场景的应用模式。
76.以形成虚拟场景100的视觉感知为例,服务器200进行虚拟场景相关显示数据(例如场景数据)的计算并通过网络300发送到终端设备400,终端设备400依赖于图形计算硬件完成计算显示数据的加载、解析和渲染,依赖于图形输出硬件输出虚拟场景以形成视觉感知,例如可以在智能手机的显示屏幕呈现二维的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;对于虚拟场景的形式的感知而言,可以理解,可
以借助于终端设备400的相应硬件输出,例如使用麦克风形成听觉感知,使用振动器形成触觉感知等等。
77.作为示例,终端设备400上运行有客户端410(例如网络版的游戏应用),通过连接服务器200(例如游戏服务器)与其他用户进行游戏互动,终端设备400输出客户端410的虚拟场景100,以第一人称视角显示虚拟场景100为例,在虚拟场景100中显示有虚拟角色101以及虚拟角色101通过握持部位(例如手部)握持的虚拟射击道具102(例如虚拟霰弹枪),其中,虚拟角色101可以是受用户控制的游戏角色,即虚拟角色101受控于真实用户,将响应于真实用户针对控制器(例如触控屏、声控开关、键盘、鼠标和摇杆等)的操作而在虚拟场景100中运动,例如当真实用户向右移动摇杆时,虚拟角色101将在虚拟场景100中向右部移动,还可以保持原地静止、跳跃以及控制虚拟角色101进行射击操作等。
78.举例来说,当虚拟角色101处于静止状态时接收到针对虚拟射击道具102的第一射击触发操作(例如当虚拟角色101处于站立状态时,接收到用户针对虚拟场景100中显示的射击控件的点击操作),则控制虚拟射击道具102向第一落弹区域103发射第一数量的虚拟子弹;当虚拟角色101处于运动状态时接收到针对虚拟射击道具102的第二射击触发操作(例如当虚拟角色101处于跳跃状态时,接收到用户针对虚拟场景100中显示的射击控件的点击操作),则控制虚拟射击道具102向第二落弹区域104发射第二数量的虚拟子弹,由图1a可以看出,第二落弹区域104是小于第一落弹区域103的,也就是说,相较于静止状态,在虚拟角色101处于运动状态时控制虚拟射击道具102进行射击,虚拟子弹落入的范围会变小,从而更容易击中虚拟场景100中显示的目标(例如与虚拟角色101处于敌对阵营的虚拟角色),如此,在不同操作模式下控制虚拟射击道具102进行射击时,虚拟子弹对应的发射形态是不同的,从而适应了虚拟角色在虚拟场景中的多样化的状态,提高了射击控制的精度和效率,同时也提高了不同技术水平的用户的游戏体验。
79.在一些实施例中,终端设备400可以通过运行计算机程序来实现本技术实施例提供的虚拟角色的射击控制方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,例如射击类游戏app(即上述的客户端410);也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的游戏小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
80.以计算机程序为应用程序为例,在实际实施时,终端设备400安装和运行有支持虚拟场景的应用程序。该应用程序可以是第一人称射击游戏(fps,first

person shooting game)、第三人称射击游戏、虚拟现实应用程序、三维地图程序、军事仿真程序或者多人枪战类生存游戏中的任意一种。用户使用终端设备400操作位于虚拟场景中的虚拟角色进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷、建造虚拟建筑中的至少一种。示意性的,该虚拟角色可以是虚拟人物,比如仿真人物角色或动漫人物角色等。
81.在另一些实施例中,本技术实施例还可以借助于云技术(cloud technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
82.云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技
术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
83.示例的,图1b中的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
84.下面对图1a中示出的终端设备400的结构进行说明。参见图2,图2是本技术实施例提供的终端设备400的结构示意图,图2所示的终端设备400包括:至少一个处理器420、存储器460、至少一个网络接口430和用户接口440。终端设备400中的各个组件通过总线系统450耦合在一起。可理解,总线系统450用于实现这些组件之间的连接通信。总线系统450除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统450。
85.处理器420可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
86.用户接口440包括使得能够呈现媒体内容的一个或多个输出装置441,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口440还包括一个或多个输入装置442,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
87.存储器460可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器460可选地包括在物理位置上远离处理器420的一个或多个存储设备。
88.存储器460包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器460旨在包括任意适合类型的存储器。
89.在一些实施例中,存储器460能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
90.操作系统461,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
91.网络通信模块462,用于经由一个或多个(有线或无线)网络接口430到达其他计算设备,示例性的网络接口430包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
92.呈现模块463,用于经由一个或多个与用户接口440相关联的输出装置441(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
93.输入处理模块464,用于对一个或多个来自一个或多个输入装置442之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
94.在一些实施例中,本技术实施例提供的虚拟角色的射击控制装置可以采用软件方式实现,图2示出了存储在存储器460中的虚拟角色的射击控制装置465,其可以是程序和插件等形式的软件,包括以下软件模块:显示模块4651、控制模块4652、确定模块4653、生成模块4654、检测模块4655和划分模块4656,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。需要指出的是,在图2中为了方便表达,一次性示出了上述所有模块,但是不应视为在虚拟角色的射击控制装置465排除了可以只包括显示模块4651和控制模块4652的实施,将在下文中说明各个模块的功能。
95.在另一些实施例中,本技术实施例提供的虚拟角色的射击控制装置可以采用硬件方式实现,作为示例,本技术实施例提供的虚拟角色的射击控制装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的虚拟角色的射击控制方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field

programmable gate array)或其他电子元件。
96.下面将结合附图对本技术实施例提供的虚拟角色的射击控制方法进行具体说明。本技术实施例提供的虚拟角色的射击控制方法可以由图1a中的终端设备400单独执行,也可以由图1b中的终端设备400和服务器200协同执行。
97.下面,以由图1a中的终端设备400单独执行本技术实施例提供的虚拟角色的射击控制方法为例进行说明。参见图3,图3是本技术实施例提供的虚拟角色的射击控制方法的流程示意图,将结合图3示出的步骤进行说明。
98.需要说明的是,图3示出的方法可以由终端设备400上运行的各种形式的计算机程序执行,并不局限于上述的客户端410,还可以是上文所述的操作系统461、软件模块和脚本,因此客户端不应视为对本技术实施例的限定。
99.在步骤s101中,在虚拟场景中显示虚拟角色以及虚拟角色握持的虚拟射击道具。
100.这里,虚拟射击道具在每次射击时能够同时发射多颗虚拟子弹,例如虚拟射击道具可以是虚拟霰弹枪,霰弹枪一般包括8个枪口,在每次射击时该8个枪口可以同时发射子弹,即在每次射击时能够同时发射8颗子弹。当然,虚拟射击道具也可以是其他能够同时发射多颗虚拟子弹的虚拟武器,本技术实施例对此不作限定。
101.在一些实施例中,在终端设备上安装有支持虚拟场景的客户端(例如当虚拟场景为游戏时,对应的客户端可以是射击类游戏app),当用户打开终端设备上安装的客户端(例如用户点击在终端设备的用户界面呈现的射击类游戏app对应的图标),且终端设备运行该客户端时,可以在客户端的人机交互界面呈现的虚拟场景中显示虚拟角色(例如受控于用户的虚拟角色a)以及虚拟角色通过握持部位(例如手部)握持的虚拟射击道具(例如虚拟霰弹枪)。
102.在另一些实施例中,还可以通过以下方式实现上述的在虚拟场景中显示虚拟角色以及虚拟角色握持的虚拟射击道具:响应于虚拟射击道具选择操作,在虚拟场景中显示虚拟角色以及虚拟角色通过握持部位握持的被选中的目标虚拟射击道具(例如虚拟霰弹枪)。
103.示例的,以虚拟场景为游戏为例,在游戏中提供了多种虚拟武器供用户进行选择,例如包括虚拟重机枪、虚拟霰弹枪和虚拟狙击枪等,并且针对每个虚拟武器,在游戏画面中均显示有对应的图标。当用户点击游戏画面中显示的虚拟霰弹枪对应的图标时,则显示受控于用户的游戏角色通过手部握持虚拟霰弹枪的游戏画面。
104.在一些实施例中,在客户端的人机交互界面中可以是以第一人称视角显示虚拟场景(例如以用户自己的视角来扮演游戏中的虚拟角色);也可以是以第三人称视角显示虚拟场景(例如用户追着游戏中的虚拟角色来进行游戏);还可以是以鸟瞰大视角显示虚拟场景;其中,上述的不同视角之间可以进行任意的切换。
105.作为示例,虚拟角色可以是由游戏或者军事仿真中的当前用户所控制的对象,当然,虚拟场景中还可以包括其他的虚拟角色,例如可以由其他用户控制或由机器人程序控制的虚拟角色。虚拟角色可以被划分到多个团队中的任意一个团队中,团队之间可以是敌对关系或协作关系,虚拟场景中的团队可以包括上述关系的一种或者全部。
106.以第一人称视角显示虚拟场景为例,在人机交互界面中显示虚拟场景可以包括:根据虚拟角色在完整虚拟场景中的观看位置和视场角,确定虚拟角色的视场区域,呈现完整虚拟场景中位于视场区域中的部分虚拟场景,即所显示的虚拟场景可以是相对于全景虚拟场景的部分虚拟场景。因为第一人称视角是最能够给用户冲击力的观看视角,如此,能够实现用户在操作过程中身临其境的沉浸式感知。
107.以鸟瞰大视角显示虚拟场景为例,在人机交互界面中显示虚拟场景可以包括:响应于针对全景虚拟场景的缩放操作,在人机交互界面中呈现对应缩放操作的部分虚拟场景,即所显示的虚拟场景可以是相对于全景虚拟场景的部分虚拟场景。如此,能够提高用户在操作过程中的可操作性,从而能够提高人机交互的效率。
108.在步骤s102中,响应于当虚拟角色处于静止状态时针对虚拟射击道具的第一射击触发操作,控制虚拟射击道具向第一落弹区域发射第一数量的虚拟子弹。
109.这里,静止状态可以包括站立、蹲下、趴下等状态,第一数量是虚拟射击道具在每次射击时能够同时发射的多颗虚拟子弹的数量的整数倍,例如假设虚拟射击道具在每次射击时能够同时发射8颗虚拟子弹,则第一数量可以是8、16、24等(取决于第一射击的次数,例如当虚拟射击道具处于连发模式时,响应于针对虚拟射击道具的第一射击触发操作,控制虚拟射击道具向第一落弹区域进行两次第一射击,以发射16颗虚拟子弹)。
110.在一些实施例中,可以通过图4a示出的步骤s1021和步骤s1022实现上述的控制虚拟射击道具向第一落弹区域发射第一数量的虚拟子弹的操作,将结合图4a示出的步骤进行说明。
111.在步骤s1021中,基于第一射击碰撞位置以及第一散射距离确定第一落弹区域。
112.这里,第一散射距离为虚拟角色处于静止状态时对应的散射距离。
113.在一些实施例中,可以通过以下方式实现上述的基于第一射击碰撞位置以及第一散射距离确定第一落弹区域:以虚拟射击道具的发射口为起点,生成沿至少一次第一射击的射击方向延伸的第一检测射线;以第一检测射线与虚拟场景中的至少一个第一虚拟障碍物(例如虚拟墙体、或者虚拟场景中受控于其他用户或ai的虚拟角色等)之间的第一射击碰撞位置为参考点,并基于第一散射距离确定第一落弹区域。
114.示例的,以第一落弹区域为圆形区域(或者椭圆形区域)为例,可以以第一检测射
线与虚拟场景中的第一虚拟障碍物之间的第一射击碰撞位置为圆心,以第一散射距离为半径(或者椭圆的短轴)确定第一圆形区域(或者第一椭圆区域),并将第一圆形区域(或者第一椭圆区域)作为第一落弹区域。
115.示例的,以第一落弹区域为矩形区域为例,可以以第一检测射线与虚拟场景中的第一虚拟障碍物之间的第一射击碰撞位置为中心,以第一散射距离为矩形区域对角线长度的一半确定第一矩形区域,并将第一矩形区域作为第一落弹区域。
116.在步骤s1022中,控制虚拟射击道具向第一落弹区域进行至少一次第一射击以发射第一数量的虚拟子弹,并控制第一数量的虚拟子弹随机分布在第一落弹区域中第一数量的落弹点。
117.在一些实施例中,在确定出第一落弹区域之后,可以通过以下方式实现上述的控制第一数量的虚拟子弹随机分布在第一落弹区域中第一数量的落弹点,即针对每颗虚拟子弹执行以下处理:在第一落弹区域中随机生成一个落弹点(例如落弹点a),以作为虚拟子弹在第一落弹区域中对应的落弹点,并控制虚拟子弹击中落弹点a。
118.在另一些实施例中,在控制虚拟射击道具向第一落弹区域进行至少一次第一射击以发射第一数量的虚拟子弹,并控制第一数量的虚拟子弹随机分布在第一落弹区域中第一数量的落弹点之后,还可以执行以下处理:在每个落弹点显示与第一虚拟障碍物的材质适配的虚拟弹孔(即当虚拟子弹击中不同材质的虚拟障碍物时,对应的虚拟弹孔的特效是不同的),并在虚拟弹孔的显示时长大于时长阈值(例如2秒)时,停止显示虚拟弹孔。
119.在步骤s103中,响应于当虚拟角色处于运动状态时针对虚拟射击道具的第二射击触发操作,控制虚拟射击道具向第二落弹区域发射第二数量的虚拟子弹。
120.这里,第二落弹区域小于第一落弹区域,即相较于静止状态,在虚拟角色处于运动状态时虚拟射击道具发射的虚拟子弹落入的区域范围更小,从而更容易击中目标。运动状态包括虚拟角色的位置不变,但肢体动作发生变化的状态,或者虚拟角色的位置发生变化的状态,例如可以包括跳跃、奔跑、匍匐前进、滑铲(即在控制虚拟角色的身子低下的同时,控制虚拟角色快速地滑过一小段距离的动作)等状态。第二数量是虚拟射击道具在每次射击时能够同时发射的多颗虚拟子弹的数量的整数倍,例如假设虚拟射击道具在每次射击时能够同时发射8颗虚拟子弹,则第二数量可以是8、16、24等(取决于第二射击的次数,例如当虚拟射击道具处于连发模式时,响应于针对虚拟射击道具的第二射击触发操作,控制虚拟射击道具向第二落弹区域进行三次第二射击,以发射24颗虚拟子弹)。
121.此外,需要说明的是,在实际游戏场景中,从虚拟射击道具的发射口发射出的多颗虚拟子弹之间的间隙会随着距离的变远而变大,即距离越远虚拟射击道具发射的虚拟子弹的散射面积越大,因此本技术实施例中的第一落弹区域和第二落弹区域是指在相同距离或者相近距离下的落弹区域,即在静止状态和运动状态下的射击操作,虚拟射击道具的发射口与虚拟障碍物之间的距离是相同或者相近的,例如当虚拟角色站立时,控制虚拟射击道具向相距10米的虚拟墙体进行射击,弹孔痕迹在半径为1米的圆形区域内随机分布;当虚拟角色处于跳跃时,控制虚拟射击道具向相距10米的虚拟墙体进行射击,弹孔痕迹在半径为0.7米的圆形区域内随机分布,也就是说,相较于站立射击,跳跃射击时子弹落入的区域范围更小。
122.在一些实施例中,可以通过图4b示出的步骤s1031和步骤s1032实现上述的控制虚
拟射击道具向第二落弹区域发射第二数量的虚拟子弹的操作,将结合图4b示出的步骤进行说明。
123.在步骤s1031中,基于第二射击碰撞位置以及第二散射距离确定第二落弹区域。
124.这里,第二散射距离小于虚拟角色处于静止状态时对应的第一散射距离。
125.在一些实施例中,可以通过以下方式实现上述的基于第二射击碰撞位置以及第二散射距离确定第二落弹区域:以虚拟射击道具的发射口为起点,生成沿至少一次第二射击的射击方向延伸的第二检测射线;以第二检测射线与虚拟场景中的至少一个第二虚拟障碍物(例如虚拟墙体、受控于其他用户或者ai的虚拟角色)之间的第二射击碰撞位置为参考点,并基于第二散射距离确定第二落弹区域。
126.示例的,以第二落弹区域为圆形区域(或者椭圆形区域)为例,可以以第二检测射线与虚拟场景中的第二虚拟障碍物之间的第二射击碰撞位置为圆心,以第二散射距离为半径(或者椭圆的短轴)确定第二圆形区域(或者第二椭圆区域),并将第二圆形区域(或者第二椭圆区域)作为第二落弹区域。
127.示例的,以第二落弹区域为矩形区域为例,可以以第二检测射线与虚拟场景中的第二虚拟障碍物之间的第二射击碰撞位置为中心,以第二散射距离为矩形区域对角线长度的一半确定第二矩形区域,并将第二矩形区域作为第二落弹区域。
128.在一些实施例中,第二散射距离可以是通过对第一散射距离调整得到的,且调整参数可以是固定的,则在基于第二射击碰撞位置以及第二散射距离确定第二落弹区域之前,还可以执行以下处理:通过以下任意一种方式确定第二散射距离:将第一散射距离减去固定的调整幅度得到第二散射距离,例如假设第一散射距离为1米,调整幅度为0.3米,则将第一散射距离减去固定的调整幅度得到第二散射距离为0.7米;将第一散射距离除以固定的调整倍数(调整倍数大于1,例如可以是1.5)得到第二散射距离,例如假设第一散射距离为1米,调整倍数为1.5,则将第一散射距离除以固定的调整倍数得到第二散射距离为0.6米。
129.在另一些实施例中,调整参数也可以是动态的,则在基于第二射击碰撞位置以及第二散射距离确定第二落弹区域之前,还可以执行以下处理:通过以下方式确定第二散射距离:当虚拟角色处于运动状态时,检测运动状态包括的动作的动作参数(例如移动速度、加速度、旋转速度等);确定与动作参数负相关的调整系数,并根据调整系数与固定的调整幅度或固定的调整倍数的乘积,对应得到动态的调整幅度或动态的调整倍数;根据动态的调整幅度或动态的调整倍数对第一散射距离进行调整,得到第二散射距离,如此,第二散射距离是与虚拟角色的动作参数相关的,例如当虚拟角色的移动速度越快时,越难以瞄准目标,此时对应的第二散射距离也越小,从而更容易击中目标,也就是说,通过动作参数对第一散射距离进行动态调整得到第二散射距离的方式,能够进一步实现虚拟子弹发射形态的多样性,使射击的随机性根据运动状态而自适应变化,保证了射击精度,同时也满足了不同技术水平的用户的需求。
130.需要说明的是,在实际应用中,当运动状态包括多个不同类型的单一动作时,可以首先获取每个类型的单一动作的动作参数,接着将每个类型的单一动作的动作参数进行相加,得到最终的动作参数,随后确定与最终的动作参数负相关的调整系数,如此,能够综合反映虚拟角色所有的动作对虚拟子弹的落弹区域的影响,进而提高了射击操作的精度。
131.在一些实施例中,当虚拟射击道具处于连发模式时,还可以执行以下处理:针对连发模式中的每个射击阶段(其中,每个射击阶段包括至少一次第二射击,例如每个射击阶段可以仅包括一次第二射击,也可以包括多次第二射击)执行以下处理:对上一射击阶段对应的第二散射距离或多对相邻落弹点之间的平均距离进行更新(例如减小上一射击阶段对应的第二散射距离或多对相邻落弹点之间的平均距离);将更新后的第二散射距离作为当前射击阶段对应的第二散射距离(例如假设上一射击阶段对应的第二散射距离为0.8米,当前射击阶段对应的第二散射距离为0.7米),或将更新后的多对相邻落弹点之间的平均距离作为当前射击阶段对应的多对相邻落弹点之间的平均距离(例如假设上一射击阶段对应的多对相邻落弹点之间的平均距离为0.05米,当前射击阶段对应的多对相邻落弹点之间的平均距离为0.03米),如此,针对连发模式的不同射击阶段对应的子弹发射形态,能够根据虚拟角色的运动状态而适应变化,提升了射击的仿真性能,从而进一步提高了用户的游戏体验。
132.在步骤s1032中,控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹,并控制第二数量的虚拟子弹随机分布在第二落弹区域中第二数量的落弹点。
133.在一些实施例中,在控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹之前,还可以执行以下处理:检测虚拟角色的运动状态包括的动作;当运动状态包括一个类型的单一动作(例如跳跃、奔跑、匍匐前进等),或者包括先后接续的多个不同类型的单一动作时(例如滑铲),确定将转入执行控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹的操作。
134.在另一些实施例中,可以通过以下方式实现上述的控制虚拟射击道具向第二落弹区域发射第二数量的虚拟子弹:基于第二射击碰撞位置以及第二散射距离确定第二落弹区域,控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹;控制第二数量的虚拟子弹随机分布在第二落弹区域中第二数量的落弹点,且第二落弹区域中多对相邻落弹点之间的平均距离小于第一落弹区域中多对相邻落弹点之间的平均距离,也就是说,相较于静止状态,在虚拟角色处于运动状态时控制虚拟射击道具进行射击,虚拟射击道具发射出的虚拟子弹之间的间隙会变得更小,即多对虚拟子弹之间的距离会变得更加均匀,不会有太大的抖动,从而更加容易击中目标。
135.在一些实施例中,承接上述示例,在控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹之前,还可以执行以下处理:检测运动状态包括的动作;当虚拟角色的运动状态包括同时发生的多个(即至少2个)不同类型的单一动作(例如滑铲行为,该行为将虚拟角色的身子下移,并快速地滑过一小段距离)时,确定将转入执行控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹的操作。
136.在一些实施例中,还可以通过以下方式实现上述的控制第二数量的虚拟子弹随机分布在第二落弹区域中第二数量的落弹点:将第二落弹区域平均划分成第二数量的候选区域;在每个候选区域中随机生成一个落弹点,得到第二数量的落弹点;将第二数量的落弹点分别分配给第二数量的虚拟子弹;根据为第二数量的虚拟子弹分别分配的落弹点,控制第二数量的虚拟子弹分别击中第二落弹区域中对应分配的落弹点。
137.下面以第二落弹区域为矩形区域为例进行说明。
138.示例的,参见图5a,图5a是本技术实施例提供的运动状态下虚拟子弹发射形态示意图,如图5a所示,假设虚拟射击道具在每次射击时能够同时发射4颗虚拟子弹,则首先将矩形区域501平均划分成4个候选区域,包括第一候选区域502、第二候选区域503、第三候选区域504和第四候选区域505,接着在每个候选区域中随机生成一个落弹点,例如在第一候选区域502中随机生成落弹点506,在第二候选区域503中随机生成落弹点507,在第三候选区域504中随机生成落弹点508、以及在第四候选区域505中随机生成落弹点509,随后将落弹点506至落弹点509分别分配给4颗虚拟子弹,并根据为4颗虚拟子弹分别分配的落弹点,控制4颗虚拟子弹分别击中矩形区域501中对应分配的落弹点,也就是说,虚拟射击道具在某次射击时发射出的4颗虚拟子弹分别击中落弹点506至落弹点509,如此,由于4颗虚拟子弹的落弹点在矩形区域501中是平均分布的,提高了射击控制的精度,从而能够在很大概率上击中目标。
139.下面以第二落弹区域为圆形区域为例进行说明。
140.示例的,参见图5b,图5b是本技术实施例提供的运动状态下虚拟子弹发射形态示意图,如图5b所示,假设虚拟射击道具在每次射击时能够同时发射6颗虚拟子弹,则首先将圆形区域510平均划分成6个候选区域,包括第一候选区域511、第二候选区域512、第三候选区域513、第四候选区域514、第五候选区域515以及第六候选区域516,接着在每个候选区域中随机生成一个落弹点,例如在第一候选区域511中随机生成落弹点517、在第二候选区域512中随机生成落弹点518、在第三候选区域513中随机生成落弹点519、在第四候选区域514中随机生成落弹点520、在第五候选区域515中随机生成落弹点521、以及在第六候选区域516中随机生成落弹点522,随后将落弹点517至落弹点522分别分配给6颗虚拟子弹,并根据为6颗虚拟子弹分别分配的落弹点,控制6颗虚拟子弹分别击中圆形区域510中对应分配的落弹点,也就是说,虚拟射击道具在某次射击时发射的6颗虚拟子弹分别击中圆形区域510中的落弹点517至落弹点522,如此,由于6颗虚拟子弹的落弹点在圆形区域510中是平均分布的,提高了射击控制的精度,从而能够在很大概率上击中目标。
141.在一些实施例中,在控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹,并控制第二数量的虚拟子弹随机分布在第二落弹区域中第二数量的落弹点之后,还可以执行以下处理:在每个落弹点显示与第二虚拟障碍物的材质适配的虚拟弹孔(即虚拟子弹击中不同材质的虚拟障碍物时,对应的虚拟弹孔的特效是不同的),并在虚拟弹孔的显示时长大于时长阈值(例如2秒)时,停止显示虚拟弹孔。
142.在另一些实施例中,还可以通过以下方式实现上述的控制第二数量的虚拟子弹随机分布在第二落弹区域中第二数量的落弹点:将第二落弹区域划分成第一子区域和第二子区域,其中,第一子区域和第二子区域的中心重合、且第一子区域小于第二子区域;在第一子区域中随机生成第三数量的落弹点,并将第三数量的落弹点分别分配给第三数量的虚拟子弹,其中,第三数量小于第二数量;根据为第三数量的虚拟子弹分别分配的落弹点,控制第三数量的虚拟子弹分别击中第二落弹区域中对应分配的落弹点;将第二子区域平均划分成第四数量的候选区域,其中,第四数量为第二数量与第三数量的差值;在每个候选区域中随机生成一个落弹点,得到第四数量的落弹点;将第四数量的落弹点分别分配给第四数量的虚拟子弹;根据为第四数量的虚拟子弹分别分配的落弹点,控制第四数量的虚拟子弹分别击中第二落弹区域中对应分配的落弹点。
143.示例的,以第二落弹区域为半径为r的圆形区域为例,可以首先将第二落弹区域划分成半径为p的第一子区域、以及内环半径为s,外环半径为r的第二子区域,其中,p小于或等于s、且s小于r,接着,在半径为p的第一子区域中随机生成第三数量的落弹点,例如当第三数量为2时,则在半径为p的第一子区域中随机生成2个落弹点,以作为8颗虚拟子弹中的2颗虚拟子弹对应的落弹点;随后,将内环半径为s、外环半径为r的第二子区域平均划分成第四数量的候选区域,其中,每个候选区域对应的角度范围为360
°
/第四数量,例如当第二数量为8、且第三数量为2时,则第四数量为6,即将内环半径为s、外环半径为r的第二子区域平均划分成6个候选区域,每个候选区域对应的角度范围为60
°
;最后针对每个候选区域执行以下处理:从候选区域对应的角度范围内随机生成一个角度、以及随机生成一个在s和r之间的半径;将候选区域中与角度以及半径对应的点,作为候选区域对应的落弹点,从而得到6个落弹点,并将这6个落弹点分别分配给8颗虚拟子弹中剩余的6颗虚拟子弹,即剩余的6颗虚拟子弹将分别击中这6个落弹点,如此,通过将第二落弹区域划分成内圈(即第一子区域)和外圈(即第二子区域),并控制外圈的落弹点均匀分布的方式,提高了射击控制的精度和效率,进而能够进一步提高命中目标的概率,从而提高用户的游戏体验。
144.本技术实施例提供的虚拟角色的射击控制方法,当虚拟角色处于静止状态时接收到针对虚拟射击道具的射击触发操作,则控制虚拟射击道具向范围较大的第一落弹区域发射虚拟子弹;当虚拟角色处于运动状态时接收到针对虚拟射击道具的射击触发操作,则控制虚拟射击道具向范围较小的第二落弹区域发射虚拟子弹,如此,能够适用虚拟角色在虚拟场景中多样化的状态,并在控制虚拟射击道具进行射击时对应实现虚拟子弹多样化的发射形态,提高了射击控制的精度和效率,从而满足了不同技术水平的用户的需求。
145.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
146.目前,在移动端射击游戏应用中,用户可以选择使用多种不同类型的虚拟射击道具进行射击操作,例如用户可以选择使用霰弹枪来射击,或者选择使用步枪来射击。其中,霰弹枪与其他枪械最大的区别就在于子弹的数量上(普通枪械在每次射击时只能发射一颗子弹,而霰弹枪在每次射击时能够同时发射多颗子弹),霰弹枪每一次射出的多颗子弹为散射形态,如果散射的多颗子弹全部或者大部分命中目标,就会对目标造成极为恐怖的伤害。但霰弹枪的子弹射程较短,并且距离越远子弹的散射面积越大,因而朝向远距离目标射击时即使子弹能够命中目标,其数量也不会太多,伤害难以体现。所以相对而言,霰弹枪在中远程距离基本作用不大,但在近距离时,能够娴熟地运用霰弹枪甚至可以一枪击倒装备三级甲的对手。此外,霰弹枪与大部分手枪一样属于单发式武器,射击过程中如果需要兼顾移动,就很难保证精准度,尤其对于双指操作的玩家来说,难度颇高。
147.因为不同操作模式下霰弹枪命中目标的难度不一样,对于高水平用户来说,他们拥有高超的技术水平能够进行各种各样的操作,然而,相关技术提供的方案中,在不同操作模式下霰弹枪子弹发射的形态都是一样的,这样对于高水平用户来说失去了优势。为此,本技术实施例提供一种虚拟角色的射击控制方法,在操作难度越高的时候,霰弹枪子弹发射的形态将变得越有利于命中目标的形式,也就是说,在不同的操作模式下,霰弹枪会有不同的子弹发射形态。
148.示例的,参见图6,图6是相关技术提供的霰弹枪子弹发射形态示意图,如图6所示,相关技术提供的方案中,霰弹枪子弹落弹点的计算是在一个圆圈601内进行随机获取的,例
如圆圈601的中心点即为枪口的位置,以枪口的位置为圆心,在半径为r的圆圈601内进行随机取点(图6中的多个黑点即为多颗子弹分别对应的落弹点602,即虚拟子弹在圆圈601中击中的位置),这样霰弹枪所发射的子弹就会随机分布在圆圈内各处,然而,这种纯随机弹道的方式不可控性很高,着弹数难以控制,有可能所有的子弹全都打中目标(即一枪中8发),也有可能所有的子弹全都打不中目标(即一枪中0发),例如如图7所示,多颗虚拟子弹分别对应的多个落弹点701均没有与目标702重合,即霰弹枪在一次射击时发射的所有子弹都没有打中目标。
149.下面对本技术实施例提供的虚拟角色的射击控制方法进行具体说明。
150.本技术实施例中操作模式包括普通操作状态(对应于上述的静止状态)、跳跃射击和滑铲射击(对应于上述的运动状态),其中,普通操作状态主要包括:站立射击、蹲下射击、趴下射击等,这些操作相对来说比较简单,不需要一个连续的操作过程,只要事先预先进行操作,再操作射击即可,因而这些状态下的操作都可视为普通的操作状态,那么霰弹枪子弹的发射形态为随机散发,随机散发下有可能不命中目标,也有可能全部命中目标,属于一个随机性事件,只是用户无法掌握。
151.示例的,参见图8a,图8a是本技术实施例提供的虚拟角色的射击控制方法的应用场景示意图,如图8a所示,以第一人称视角显示游戏场景,且在游戏场景中显示有虚拟角色801(例如受控于用户a的虚拟角色)和虚拟角色801通过手部握持的霰弹枪802,此外,在游戏场景中还显示有目标803(例如受控于用户b且与用户a处于敌对阵营的虚拟角色、或者人工智能控制的且与用户a处于敌对阵营的虚拟角色),当用户a控制霰弹枪802的射击口瞄准目标803、且接收到用户a针对游戏场景中显示的射击控件804的点击操作时,控制霰弹枪802向目标803发射多颗子弹,由于霰弹枪802子弹的发射形态为随机散发,可能仅有部分子弹命中目标803,导致目标803的生命值仅减少了3/5,即并未击杀目标803。
152.示例的,参见图8b,图8b是本技术实施例提供的虚拟角色的射击控制方法的应用场景示意图,如图8b所示,以第一人称视角显示游戏场景,且在游戏场景中显示有虚拟角色805(例如用户c控制的虚拟角色)和虚拟角色805通过手部握持的霰弹枪806,此外,在游戏场景中还显示有目标807,当用户c控制霰弹枪806的射击口瞄准目标807、且接收到用户c针对游戏场景中显示的射击控件808的点击操作时,控制霰弹枪806向目标807发射多颗子弹,由于霰弹枪806子弹的发射形态为随机散发,可能全部子弹都命中目标807,导致目标807被一枪击杀,但是上述情况发生的概率比较低。
153.下面继续对跳跃射击时霰弹枪子弹的发射形态进行说明。
154.由于在跳跃状态下,用户控制的虚拟角色的水平高度一直在变化,不像在平地瞄准,此时瞄准射击需要预判射击,即需要考虑到下落的速度以及子弹发出的时间,因而在这种状态下发射的子弹会比普通操作状态下更加的密集,形态上还是以普通操作状态的形态发射出去,也是随机的,但是子弹与子弹之间的间隙会变小,例如在普通操作状态下(例如站立射击)是在一个半径为r的范围内随机发射子弹,而在跳跃射击时会以一个新的半径为p的范围内随机发射子弹,其中,p<r。
155.示例的,参见图9,图9是本技术实施例提供的虚拟角色的射击控制方法的应用场景示意图,如图9所示,当虚拟角色处于站立状态时控制霰弹枪对墙进行射击,在墙上留下的弹孔痕迹在半径为r的圆圈901内随机分布。
156.示例的,参见图10,图10是本技术实施例提供的虚拟角色的射击控制方法的应用场景示意图,如图10所示,当虚拟角色处于跳跃状态时控制霰弹枪对枪进行射击,在墙上留下的弹孔痕迹在半径为p的圆圈1001内随机分布。
157.结合图9和图10可以看出,在跳跃射击时霰弹枪子弹的发射形态依然保留着随机的特性,但是子弹散发的半径范围变小(图10中示出的圆圈1001的半径p小于图9中示出的圆圈901的半径r),也即子弹与子弹之间的间隙变小,从而使得在跳跃射击时能够更加容易击中目标。
158.下面对滑铲射击时霰弹枪子弹的发射形态进行说明。
159.滑铲射击是一种更加难的瞄准操作方式,滑铲是要在虚拟角色奔跑的时候按下蹲触发滑铲行为,该行为将控制虚拟角色的身子下移,并快速的滑过一小段距离,由于速度快,并且视角变低,此时用户更加难以瞄准目标,因此在该操作模式下如果使用霰弹枪,那么霰弹枪子弹的发射形态将会变化成一种更加有利于击中目标的形态,该形态将会在上述跳跃射击上面进行优化,即在缩短子弹与子弹之间的间隙的同时,还减少了随机性的影响,但依然会保留随机性。
160.示例的,参见图11,图11是本技术实施例提供的对落弹区域进行划分的原理示意图,如图11所示,首先将圆平均划分成六等分,其中的六颗子弹会在这六等分中的每一份内随机,例如以划分得到的外围子弹生成区域1101为例,在对圆进行划分后,根据子弹随机生成的角度范围1102确定外围子弹生成区域1101,接着在外围子弹生成区域1101内进行随机取点,将所选取的点作为对应的一颗子弹在外围子弹生成区域1101内的落点,这样就可以保证子弹无论如何随机,都会均匀地分配在圆的所有地方,剩下的两颗子弹将会命中圆的中心部分。
161.示例的,参见图12,图12是本技术实施例提供的滑铲射击时霰弹枪子弹的发射形态示意图,如图12所示,图12中示出的8个黑点即为霰弹枪在某次射击时发射的8颗子弹分别对应的8个落弹点1203,其中,2个落弹点1203随机分布在内圈1201中,而剩余的6个落弹点1203则均匀地分布在外圈1202中,也就是说,在滑铲射击时子弹会在落弹区域内进行均匀分布,如此,只要目标在瞄准框内,那么目标一定会被大概率击中。
162.下面将结合图13对上述不同操作模式下分别对应的霰弹枪子弹的发射形态进行具体说明。
163.示例的,参见图13,图13是本技术实施例提供的虚拟角色的射击控制方法的流程示意图,如图13所示,本技术实施例提供的算法设计只针对霰弹枪,对其他类型的武器无效,因而虚拟角色首先需要装备霰弹枪。接着,检测用户是否按下射击控件(例如开火键),若否则返回重新检测用户是否按下开火键;若是则控制霰弹枪发射子弹,其中,霰弹枪与其他武器的不同点在于,其他武器是每一次射击仅发射一颗子弹,而霰弹枪在每一次射击时能够同时发射n颗子弹(其中,n为大于1的正整数,例如n可以为8,即每次射击能够同时发射8颗子弹),以滑铲射击为例,每颗子弹的散发值(对应于上述每颗子弹的落弹点)可以按照下面的方式来获得:
164.以落弹区域为半径为r的圆形区域为例,首先以落弹区域的中心为圆心,将落弹区域划分为内圈(例如内圈可以是半径为p的小圆形区域)和外圈(例如外圈可以是内环半径为s,外环半径为r的圆环,其中,p小于s,s小于r),接着判断当前的子弹是否在内圈,如果是
在内圈,则直接在内圈内随机生成一个位置,算法如下:
165.random.insideunitcircle*m_shotspreadsize
166.其中,random.insideunitcircle是在一个半径为1米的圆内随机生成值(例如0.5米),然后再乘以半径m_shotspreadsize(即内圈的半径p),就可以获得一个内圈中的随机值,该值即为子弹的偏移系数,进而可以根据该偏移系数确定出子弹在内圈中的落弹点所处的位置。
167.霰弹枪发射的多颗子弹中的前几颗子弹都是在内圈的,至于是多少颗子弹命中内圈,可以是预先设定的,也可以是在处理过程中随机设定的(例如如图12所示,策划人员可以预先配置2颗子弹命中内圈,剩余的6颗子弹命中外圈),而剩余的子弹都是在外圈计算,例如首先从最小半径(m_minshotspreadsize)到最大半径(m_maxshotspreadsize)中随机一个值,该值即为随机出来的一个半径r,算法如下:
168.random.range(m_minshotspreadsize,m_maxshotspreadsize)
169.其中,random.range是从最小半径到最大半径中随机出的半径r,m_minshotspreadsize表示最小半径,m_maxshotspreadsize表示最大半径。
170.然后就是确定角度,算法如下:
171.startangle=random.range(0,360)
172.其中,startangle表示确定出的起始角度,random.range(0,360)表示确定出的起始角度的角度范围在0度到360度之间,即从0度到360度之间随机确定出一个起始角度。
173.接着确定子弹对应的最终角度,算法如下:
174.angle=random.range(0,m_angleuncertainty)+startangle
175.其中,m_angleuncertainty表示配置的范围,例如来说,假设startangle随机出来的角度为70度,然后m_angleuncertainty配置的范围是20度,那么随机的区间即为(70,90),即最后的角度值就是大于70度,小于90度,如此,根据随机出的角度和半径即可确定外圈第一颗子弹的偏移系数,进而根据偏移系数确定出第一颗子弹在外圈中的落弹点所在的位置。
176.外圈的第二颗子弹同样从上述区间内进行随机取值,并叠加等分区间,例如假设将圆平均划分成六等分,每一个等分就是60度,假设第二次随机出来的值是78度,那么区间角度就是78+60=138度,以此类推,外圈的第三颗子弹的角度就是随机值+120(随机值每次都是从上述区间中获取的)。
177.在得到半径r以及角度之后,就可以得到最终的偏移系数,计算公式如下:
178.rad=angle*(mathf.pi*2/360);//转弧度
179.x=r*mathf.cos(rad);//计算x
180.y=r*mathf.sin(rad);//计算y
181.m_shotspread=newvector2(x,y)
182.其中,pi表示圆周率,mathf.pi*2/360表示将最终确定出的角度转换成弧度,cos表示余弦函数,mathf.cos(rad)表示计算转换得到的弧度的余弦值,sin表示正弦函数,mathf.sin(rad)表示计算转换得到的弧度的正弦值,vector2表示二维坐标,包括横坐标x和纵坐标y,m_shotspread就是最后要使用的偏移系数,用枪口的位置叠加这个偏移系数就是子弹最终的发射方向,进而可以根据子弹最终的发射方向确定落弹点的位置。
183.示例的,参见图14,图14是本技术实施例提供的确定子弹发射方向的原理示意图,如图14所示,假设没有散发,那么每一颗子弹都是从实线1401发出,此为枪口的方向,而虚线1402则是叠加了偏移系数后的发射方向。
184.示例的,参见图15,图15是本技术实施例提供的确定弹孔特效的原理示意图,如图15所示,当确定了子弹方向后就会以枪口位置为起点,发射一条射线1501进行检测,射线1501的方向即为上述子弹的发射方向,当检测到其他材质的物理碰撞盒子后就会触发产生子弹孔1502的逻辑,根据障碍物材质的不同,会生成不同的弹孔特效,例如图15中障碍物的材质为石头(physicalstone)1503。
185.示例的,参见图16,图16是本技术实施例提供的材质候选界面示意图,如图16所示,在材质候选界面中提供有多种不同类型的材质,包括石头(physicalstone)、雪地(physicalsnow)、木箱(physicalwoodbox)等,即不同的障碍物上面挂有不同的材质碰撞盒子,根据不同的材质会生成不同的弹孔特效,例如相较于木箱,在石头上留下的弹孔痕迹会更小。
186.在另一些实施例中,弹孔在障碍物上出现一段时间后会自动消失,此外,当用户松开开火键后,霰弹枪就会停止射击。
187.本技术实施例提供的虚拟角色的射击控制方法,在操作难度越高的时候,霰弹枪子弹的发射形态将变得越有利于命中目标的形式,也就是说,在不同的操作模式下,虚拟射击道具的射击控制方式不同,从而能够适应虚拟角色在虚拟场景中多样化的状态,提高了射击控制的精度和效率。
188.下面继续说明本技术实施例提供的虚拟角色的射击控制装置465的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器460的虚拟角色的射击控制装置465中的软件模块可以包括:显示模块4651和控制模块4652。
189.显示模块4651,用于在虚拟场景中显示虚拟角色以及虚拟角色握持的虚拟射击道具,其中,虚拟射击道具在每次射击时能够同时发射多颗虚拟子弹;控制模块4652,用于响应于当虚拟角色处于静止状态时针对虚拟射击道具的第一射击触发操作,控制虚拟射击道具向第一落弹区域发射第一数量的虚拟子弹;控制模块4652,还用于响应于当虚拟角色处于运动状态时针对虚拟射击道具的第二射击触发操作,控制虚拟射击道具向第二落弹区域发射第二数量的虚拟子弹,其中,第二落弹区域小于第一落弹区域。
190.在一些实施例中,虚拟角色的射击控制装置465还包括确定模块4653,用于基于第一射击碰撞位置以及第一散射距离确定第一落弹区域,其中,第一散射距离为虚拟角色处于静止状态时对应的散射距离;控制模块4652,还用于控制虚拟射击道具向第一落弹区域进行至少一次第一射击以发射第一数量的虚拟子弹,并控制第一数量的虚拟子弹随机分布在第一落弹区域中第一数量的落弹点。
191.在一些实施例中,虚拟角色的射击控制装置465还包括生成模块4654,用于以虚拟射击道具的发射口为起点,生成沿至少一次第一射击的射击方向延伸的第一检测射线;确定模块4653,还用于以第一检测射线与虚拟场景中的第一虚拟障碍物之间的第一射击碰撞位置为参考点,并基于第一散射距离确定第一落弹区域。
192.在一些实施例中,控制模块4652,还用于针对每颗虚拟子弹执行以下处理:在第一落弹区域中随机生成一个落弹点,以作为虚拟子弹对应的落弹点,并控制虚拟子弹击中落
弹点。
193.在一些实施例中,确定模块4653,还用于基于第二射击碰撞位置以及第二散射距离确定第二落弹区域,其中,第二散射距离小于虚拟角色处于静止状态时对应的第一散射距离;控制模块4652,还用于控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹,并控制第二数量的虚拟子弹随机分布在第二落弹区域中第二数量的落弹点。
194.在一些实施例中,虚拟角色的射击控制装置465还包括检测模块4655,用于检测运动状态包括的动作;确定模块4653,还用于当运动状态包括一个类型的单一动作,或者包括先后接续的多个不同类型的单一动作时,确定将转入执行控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹的操作。
195.在一些实施例中,生成模块4654,还用于以虚拟射击道具的发射口为起点,生成沿至少一次第二射击的射击方向延伸的第二检测射线;确定模块4653,还用于以第二检测射线与虚拟场景中的第二虚拟障碍物之间的第二射击碰撞位置为参考点,并基于第二散射距离确定第二落弹区域。
196.在一些实施例中,确定模块4653,还用于通过以下任意一种方式确定第二散射距离:将第一散射距离减去固定的调整幅度得到第二散射距离;将第一散射距离除以固定的调整倍数得到第二散射距离,其中,调整倍数大于1。
197.在一些实施例中,确定模块4653,还用于通过以下方式确定第二散射距离:检测运动状态包括的动作的动作参数;确定与动作参数负相关的调整系数,并根据调整系数与固定的调整幅度或固定的调整倍数的乘积,对应得到动态的调整幅度或动态的调整倍数;根据动态的调整幅度或动态的调整倍数对第一散射距离进行调整,得到第二散射距离。
198.在一些实施例中,当虚拟射击道具处于连发模式时,确定模块4653,还用于针对连发模式中的每个射击阶段执行以下处理:对上一射击阶段对应的第二散射距离或相邻落弹点之间的平均距离进行更新;将更新后的第二散射距离作为当前射击阶段对应的第二散射距离,或将更新后的相邻落弹点之间的平均距离作为当前射击阶段对应的相邻落弹点之间的平均距离;其中,每个射击阶段包括至少一次第二射击。
199.在一些实施例中,控制模块4652,还用于控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹;控制第二数量的虚拟子弹随机分布在第二落弹区域中第二数量的落弹点,且第二落弹区域中相邻落弹点之间的平均距离小于第一落弹区域中相邻落弹点之间的平均距离。
200.在一些实施例中,检测模块4655,还用于检测运动状态包括的动作;确定模块4653,还用于当运动状态包括同时发生的多个不同类型的单一动作时,确定将转入执行控制虚拟射击道具向第二落弹区域进行至少一次第二射击以发射第二数量的虚拟子弹的操作。
201.在一些实施例中,虚拟角色的射击控制装置465还包括划分模块4656,用于将第二落弹区域平均划分成第二数量的候选区域;生成模块4654,还用于在每个候选区域中随机生成一个落弹点,得到第二数量的落弹点;控制模块4652,还用于将第二数量的落弹点分别分配给第二数量的虚拟子弹;根据为第二数量的虚拟子弹分别分配的落弹点,控制第二数量的虚拟子弹分别击中第二落弹区域中对应分配的落弹点。
202.在一些实施例中,划分模块4656,还用于将第二落弹区域划分为第一子区域和第二子区域,其中,第一子区域和第二子区域的中心重合、且第一子区域小于第二子区域;生成模块4654,还用于在第一子区域中随机生成第三数量的落弹点,并将第三数量的落弹点分别分配给第三数量的虚拟子弹,其中,第三数量小于第二数量;控制模块4652,还用于根据为第三数量的虚拟子弹分别分配的落弹点,控制第三数量的虚拟子弹分别击中第二落弹区域中对应分配的落弹点;划分模块,还用于将第二子区域平均划分成第四数量的候选区域,其中,第四数量为第二数量与第三数量的差值;生成模块4654,还用于在每个候选区域中随机生成一个落弹点,得到第四数量的落弹点;控制模块4652,还用于将第四数量的落弹点分别分配给第四数量的虚拟子弹;根据为第四数量的虚拟子弹分别分配的落弹点,控制第四数量的虚拟子弹分别击中第二落弹区域中对应分配的落弹点。
203.在一些实施例中,当第二落弹区域为半径为r的圆形区域时,划分模块4656,还用于以第二落弹区域的中心为圆心,将第二落弹区域划分成半径为p的第一子区域、以及内环半径为s,外环半径为r的第二子区域,其中,p小于或等于s、且s小于r。
204.在一些实施例中,划分模块4656,还用于将内环半径为s,外环半径为r的第二子区域平均划分成第四数量的候选区域,其中,每个候选区域对应的角度范围为360
°
/第四数量;生成模块4654,还用于针对每个候选区域执行以下处理:从候选区域对应的角度范围内随机生成一个角度、以及随机生成一个在s和r之间的半径;将候选区域中与角度以及半径对应的点,作为候选区域对应的落弹点。
205.需要说明的是,本技术实施例中关于装置的描述,与上文中虚拟角色的射击控制方法的实现是类似的,并具有相似的有益效果,因此不做赘述。对于本技术实施例提供的虚拟角色的射击控制装置中未尽的技术细节,可以根据图3、图4a、图4b、或图13任一附图的说明而理解。
206.本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的虚拟角色的射击控制方法。
207.本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的直播处理方法,例如,如图3、图4a、图4b、或图13示出的虚拟角色的射击控制方法。
208.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd

rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
209.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
210.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件
中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
211.作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
212.综上所述,本技术实施例在当虚拟角色处于静止状态时接收到针对虚拟射击道具的射击触发操作,则控制虚拟射击道具向范围较大的第一落弹区域发射虚拟子弹;当虚拟角色处于运动状态时接收到针对虚拟射击道具的射击触发操作,则控制虚拟射击道具向范围较小的第二落弹区域发射虚拟子弹,如此,能够在控制虚拟射击道具进行射击时实现虚拟子弹多样化的发射形态,适应了虚拟角色在虚拟场景中多样化的状态,提高了射击控制的精度和效率。
213.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1