虚拟道具的控制方法、装置、终端及存储介质与流程
本申请涉及计算机应用技术领域,特别涉及一种虚拟道具的控制方法、装置、终端及存储介质。
背景技术:
在游戏应用程序中,用户可以控制虚拟道具执行相应的操作。
在一些射击游戏中,为使虚拟枪械的射击效果更加逼真,往往在执行射击操作之后对枪口施加后坐力,使枪口向某个方向偏移。为提升用户的操作便捷度,在执行射击操作之后自动对枪口施加回复力,将枪口由偏移位置拽回原点。用户在虚拟枪械射击之后,为了将枪口由偏移位置拽回原点继续射击目标,也会自行调整视角完成压枪操作。
上述相关技术中,用户在压枪操作的同时,回复力仍作用于枪口,使得子弹落点与用户操作不匹配,使得操作不精确、效率低。
技术实现要素:
本申请实施例提供了一种虚拟道具的控制方法、装置、设备及存储介质,能够在提升用户操作的效率与精确度,可以适应多种用户操作习惯,准确识别用户意图。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种虚拟道具的控制方法,所述方法包括:
接收针对虚拟射击道具的射击指令;
控制所述虚拟射击道具执行射击操作;
在执行所述射击操作之后,若接收到针对所述虚拟射击道具的准心手动控制操作,则取消对所述虚拟射击道具施加自动回复力,并根据所述准心手动控制操作,控制所述虚拟射击道具的准心位置;
其中,所述自动回复力是用于在执行所述射击操作之后,自动调整所述虚拟射击道具的准心位置的力。
根据本申请实施例的一个方面,提供了一种虚拟道具的控制方法,所述方法包括:
在虚拟环境中显示虚拟射击道具的准心;
响应于针对所述虚拟射击道具的射击指令,控制所述虚拟射击道具执行射击操作;
在执行所述射击操作之后,接收针对所述虚拟射击道具的准心手动控制操作;
基于所述准心手动控制操作,调整所述准心的显示位置;
其中,在接收到所述准心手动控制操作的情况下,取消对所述虚拟射击道具施加自动回复力,所述自动回复力是用于在执行所述射击操作之后,自动调整所述虚拟射击道具的准心位置的力。
根据本申请实施例的一个方面,提供了一种虚拟道具的控制装置,所述装置包括:
指令接收模块,用于接收针对虚拟射击道具的射击指令;
射击控制模块,用于控制所述虚拟射击道具执行射击操作;
准心控制模块,用于在执行所述射击操作之后,若接收到针对所述虚拟射击道具的准心手动控制操作,则取消对所述虚拟射击道具施加自动回复力,并根据所述准心手动控制操作,控制所述虚拟射击道具的准心位置;
其中,所述自动回复力是用于在执行所述射击操作之后,自动调整所述虚拟射击道具的准心位置的力。
根据本申请实施例的一个方面,提供了一种虚拟道具的控制装置,所述装置包括:
准心显示模块,用于在虚拟环境中显示虚拟射击道具的准心;
射击控制模块,用于响应于针对所述虚拟射击道具的射击指令,控制所述虚拟射击道具执行射击操作;
操作接收模块,用于在执行所述射击操作之后,接收针对所述虚拟射击道具的准心手动控制操作;
准心调整模块,用于基于所述准心手动控制操作,调整所述准心的显示位置;
其中,在接收到所述准心手动控制操作的情况下,取消对所述虚拟射击道具施加自动回复力,所述自动回复力是用于在执行所述射击操作之后,自动调整所述虚拟射击道具的准心位置的力。
根据本申请实施例的一个方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述虚拟道具的控制方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述虚拟道具的控制方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述虚拟道具的控制方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过设置一个自动回复力的中断机制,在射击操作后检测到用户手动控制准心位置的操作后,便停止通过自动回复力调整准心位置,改为通过用户手动控制准心位置,提升用户操作的效率与精确度,可以适应多种用户操作习惯,准确识别用户意图。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的应用程序运行环境示意图;
图2是本申请一个实施例提供的虚拟道具的控制方法的流程图;
图3示例性示出了一种击中位置分布的示意图;
图4示例性示出了另一种击中位置分布的示意图;
图5是本申请另一个实施例提供的虚拟道具的控制方法的流程图;
图6示例性示出了一种生成操作输入向量的示意图;
图7示例性示出了一种开关自动回复力过程的示意图;
图8示例性示出了一种准心调整过程的示意图;
图9是本申请一个实施例提供的虚拟道具的控制方法的流程图;
图10是本申请一个实施例提供的虚拟道具的控制装置的框图;
图11是本申请另一个实施例提供的虚拟道具的控制装置的框图;
图12是本申请一个实施例提供的终端的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法的例子。
在对本申请实施例进行介绍说明之前,首先对本申请中涉及的相关名词进行解释说明。
1、虚拟对象
虚拟对象是指用户帐号在应用程序中控制的虚拟角色。以应用程序为游戏应用程序为例,虚拟对象是指用户帐号在游戏应用程序中控制的游戏角色。虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。虚拟对象可以三维形式展示,也可以二维形式展示,本申请实施例对此不作限定。
在不同的游戏应用程序中,用户帐号控制虚拟对象所能执行的操作也可能有所不同。例如,在射击类游戏应用程序中,用户帐号可以控制虚拟对象执行射击、奔跑、跳跃、拾取枪械、更换枪械、给枪械添加子弹等操作。
当然,除了游戏应用程序之外,其它类型的应用程序中也可以向用户展示虚拟对象,并给虚拟对象提供相应的功能。例如,ar(augmentedreality,增强现实)类应用程序、社交类应用程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。
2、虚拟环境
虚拟环境是应用程序(如游戏应用程序)的客户端在终端上运行时显示(或提供)的场景,该虚拟环境是指营造出的供虚拟对象进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图等。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境,也可以是2.5维虚拟环境,或者是三维虚拟环境,本申请实施例对此不作限定。
3、虚拟道具
虚拟道具是指应用程序(如游戏应用程序)提供给用户使用的道具,如虚拟武器、虚拟回复物品、虚拟载具,等等。
4、虚拟枪械
虚拟枪械是指射击类游戏应用所提供的一种虚拟武器,能够模拟真实枪械进行射击的虚拟物品。虚拟枪械可以是真实枪械的三维模型,虚拟对象能够携带虚拟枪械,并控制虚拟枪械朝着某一目标进行射击。
虚拟枪械可以包括多种不同的枪械类别,如步枪、冲锋枪、机枪、散弹枪、手枪等。枪械类别可以结合实际需求进行划分,例如步枪还可以细分为突击步枪和狙击步枪等不同类别,机枪还可以细分为轻机枪和重机枪等不同类别。
5、后坐力
后坐力指上述虚拟枪械的枪弹、炮弹射出时的反冲力。在连续发射子弹的状态下,因为枪的威力,产生了一定的反作用力,这种作用力称之为后坐力,会使持枪不稳,准心偏移。
虚拟枪械的后坐力是决定射击游戏中的操作是否便捷准确的关键因素之一,在后坐力的作用下,枪口会发生偏移,导致开火时子弹会有朝上方的不规则偏移,使子弹无法准确的命中目标。
6、压枪
射击游戏中的一种核心操作技巧,指玩家通过转动视角去抵消武器后坐力,达成弹道“无后坐力”般的效果,准确的命中目标附近。使子弹准确无误的命中目标成为射击游戏最为核心的技巧能力,称这种技巧为“压枪”技巧。
压枪是射击游戏中最为基础也是最核心的技巧,指玩家通过指令输入转动视角去抵消武器的后坐力造成的视角和弹道偏移,使子弹如同“无后坐力”般的命中既定的目标区域。
7、回复力
引入的一种弹道机制,是后坐力的反作用力,用于将枪口回复至偏移前位置。
请参考图1,其示出了本申请一个实施例提供的应用程序运行环境的示意图。该应用程序运行环境可以包括:终端10和服务器20。
终端10可以是诸如手机、平板电脑、游戏主机、多媒体播放设备、可穿戴设备、pc(personalcomputer,个人计算机)、手持便携式游戏设备等电子设备。终端10中可以安装应用程序的客户端。
在本申请实施例中,上述应用程序可以是任何能够提供虚拟环境,以供用户代入和操作的虚拟对象在该虚拟环境中进行活动的应用程序。典型地,该应用程序为游戏应用程序,如第三人称射击游戏(third-personalshootinggame,tps)、第一人称射击游戏(first-personshootinggame,fps)、多人在线战术竞技(multiplayeronlinebattlearena,moba)游戏、大逃杀生存(battleroyale,br)游戏和多人枪战类生存游戏,等等。当然,除了游戏应用程序之外,其它类型的应用程序中也可以向用户展示虚拟对象,并给虚拟对象提供相应的功能。例如,虚拟现实(virtualreality,vr)类应用程序、增强现实(augmentedreality,ar)类应用程序、三维地图程序、军事仿真程序、社交类应用程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。可选地,终端10中运行有上述应用程序的客户端。在一些实施例中,上述应用程序是基于三维的虚拟环境引擎开发的应用程序,比如该虚拟环境引擎是unity引擎,该虚拟环境引擎能够构建三维的虚拟环境、虚拟对象和虚拟道具等,给用户带来更加沉浸式的游戏体验。
服务器20用于为终端10中的应用程序的客户端提供后台服务。例如,服务器20可以是上述应用程序的后台服务器。服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,服务器20同时为多个终端10中的应用程序提供后台服务。
可选地,终端10和服务器20之间可通过网络30进行互相通信。
请参考图2,其示出了本申请一个实施例提供的虚拟道具的控制方法的流程图。该方法可应用于终端中,如各步骤的执行主体可以是图1所示的应用程序运行环境中的终端10(以下简称为“客户端”)。该方法可以包括以下几个步骤(210~230):
步骤210,接收针对虚拟射击道具的射击指令。
用户通过对射击控件进行点击、长按等触控操作产生针对虚拟射击道具的射击指令。响应于针对射击控件的触控操作,产生针对虚拟射击道具的射击指令。射击指令用于指示虚拟道具执行射击操作。
上述虚拟射击道具包括上述虚拟枪械。可选地,上述虚拟射击道具是虚拟对象正在使用的虚拟射击道具。
接收针对虚拟射击道具的射击指令之后,还包括:
获取用户输入状态。用户输入状态包括触摸位置。可选地,触摸位置是当前时刻的操作输入位置,也可以是上一时刻的操作输入位置。
获取虚拟对象状态。虚拟对象的物理状态、虚拟对象的操作状态。虚拟对象的物理状态包括奔跑、跳跃、下蹲等物理状态,虚拟对象的操作状态包括举镜、开火、瞄准等操作状态。其中,虚拟对象的物理状态与操作状态都是用户通过触控操作来控制的状态,例如触发某些按键。对于描述虚拟对象的物理状态与操作状态的数据指标,在应用进行过程中会记录保存并且在需要使用时非常容易获取,例如,准心位置、射击时间、击中位置。
步骤220,控制虚拟射击道具执行射击操作。
上述射击操作是指对既定的目标进行发射的操作。记录此次射击操作的准心位置、射击时间以及击中位置。
执行射击操作时,产生后坐力,使准心位置偏移,在无压枪操作的情况下,使击中位置分布散乱。上述后坐力产生的偏移可分解在纵向与横向两个方向上,相应地,后坐力包括横向后坐力与纵向后坐力。可选地,纵向后坐力的数值是横向后坐力的数值的5倍以上。可选地,用recoilup来表示每次开火产生的纵向后坐力的数值,用recoillateral来表示每次开火产生的横向后坐力的数值。可选地,通过后坐偏移向量表征后坐力产生的偏移效果。
在一个示例中,如图3所示,其示例性示出了一种击中位置分布的示意图。图3是用户不进行压枪操作,在纯后坐力的情况下进行射击得到的击中位置分布示意图。子弹击中位置可通过弹孔31表示。弹孔31在背景墙32上的分布如图3中所示,可以看到弹孔31的分布非常散乱,尤其是在垂直方向上,弹孔31分布的均方差非常大。
在另一个示例中,如图4所示,其示例性示出了另一种击中位置分布的示意图。图4是用户通过下拉镜头的操作来控制后坐力进行射击,得到的击中位置分布示意图。弹孔31的分布较为集中。
步骤230,在执行射击操作之后,若接收到针对虚拟射击道具的准心手动控制操作,则取消对虚拟射击道具施加自动回复力,并根据准心手动控制操作,控制虚拟射击道具的准心位置。
准心手动控制操作是指用户手动控制准心位置以消除由于后坐力产生的偏移的操作,容易理解为压枪操作。可选地,准心手动控制操作包括调整视角。可选地,准心手动控制操作可通过在屏幕上进行触控操作实现,也可通过控制设备移动实现,例如鼠标、遥控、手柄等设备。
自动回复力是用于在执行射击操作之后,自动调整虚拟射击道具的准心位置的力。可选地,自动回复力作用于枪口,将虚拟射击道具的准心位置拽回射击时的准心位置。自动回复力可分解为纵向的自动回复力以及横向的自动回复力。
纵向的自动回复力用于在纵向上调整虚拟射击道具的准心位置。横向的自动回复力用于在横向上调整虚拟射击道具的准心位置。
取消对虚拟射击道具施加自动回复力,即表示在接收到针对虚拟射击道具的准心手动控制操作情况下,自动回复力不再作用于虚拟射击道具并不再调整虚拟射击道具的准心位置。
上述取消对虚拟射击道具施加自动回复力包括:取消对虚拟射击道具施加纵向的自动回复力、取消对虚拟射击道具施加横向的自动回复力。
可选地,基于射击前准心位置、后坐力以及准心手动控制操作,控制虚拟射击道具的准心位置。
可选地,基于射击前准心位置、后坐力以及准心手动控制操作,控制虚拟射击道具的击中位置。
在示例性实施例中,上述虚拟道具的控制方法还包括:
步骤240,在执行射击操作之后,若未接收到准心手动控制操作,则对虚拟射击道具施加自动回复力,并根据自动回复力控制虚拟射击道具的准心位置。
在未接收到针对虚拟射击道具的准心手动控制操作情况下,通过向虚拟射击道具施加自动回复力,通过自动回复力作用于虚拟射击道具进而调整虚拟射击道具的准心位置。可选地,基于射击前准心位置、后坐力以及自动回复力,控制虚拟射击道具的准心位置。
可选地,基于射击前准心位置、后坐力以及自动回复力,控制虚拟射击道具的击中位置。
自动回复力迫使武器回复平衡位置,用于把受后坐力影响发生偏移的枪口拉回原平衡位置,即武器在开火时枪口会朝某一个方向偏移,回复力则是将其拉回零偏移的平衡位置。
纵向的自动回复力可表示为punchanglexdecreasespeed,纵向的自动回复力可表示为punchangleydecreasespeed,他们的单位为度/秒,指每秒恢复的偏移角度,分别作用于纵向或者横向方向的位移。可选地,通过回复力向量表征自动回复力产生的位置偏移回复效果。可选地,回复力向量的大小由策划预先配置的punchanglexdecreasespeed与punchangleydecreasespeed决定。可选地,不同虚拟射击道具配置不同的纵向的自动回复力与横向的自动回复力的数值。可选地,在自动回复力作用于虚拟射击道具的情况下(即正处于回复状态),响应于用户的射击操作或大范围滑动操作,停止将自动回复力作用于虚拟射击道具。
综上所述,本申请实施例提供的技术方案,通过设置一个自动回复力的中断机制,在射击操作后检测到用户手动控制准心位置的操作后,便停止通过自动回复力调整准心位置,改为通过用户手动控制准心位置,提升用户操作的效率与精确度,可以适应多种用户操作习惯,准确识别用户意图。
请参考图5,其示出了本申请另一个实施例提供的虚拟道具的控制方法的流程图。该方法可应用于终端中,如各步骤的执行主体可以是图1所示的应用程序运行环境中的终端10(以下简称为“客户端”)。该方法可以包括以下几个步骤(501~508):
步骤501,接收针对虚拟射击道具的射击指令。
步骤502,控制虚拟射击道具执行射击操作。
步骤503,在执行射击操作之后,若接收到滑动触摸操作,则获取滑动触摸操作在第一时刻的触摸位置和在第二时刻的触摸位置。
上述滑动触摸操作可体现为用户朝某个方向调整视角。例如,用户在屏幕上执行横向滑动操作,以实现在横向方向(或者说水平方向)调整视角,进而控制虚拟射击道具的准心位置横向移动。
可选地,滑动触摸操作包括横向滑动、纵向滑动以及斜向滑动。上述斜向滑动包括向左上滑动、左下滑动、右上滑动以及右下滑动。
可选地,斜向滑动可以分解为横向滑动或者斜向滑动。
上述第一时刻与第二时刻是不同的时刻,反映两者在时间的先后顺序。可选地,第一时刻为当前时刻,第二时刻为历史时刻。可选地,第一时刻为当前游戏动画帧(以下简称当前帧)对应的时刻,第二时刻为当前帧在时序上的前一帧对应的时刻。
触摸位置指用户在屏幕上的触摸位置。
步骤504,根据第一时刻的触摸位置和第二时刻的触摸位置,确定滑动触摸操作在第一时刻与第二时刻之间产生的位移矢量。
第一时刻的触摸位置的坐标为(x0,y0),第二时刻的触摸位置的坐标为(x1,y1)。可选地,上述第一时刻的触摸位置的坐标与第二时刻的触摸位置的坐标是同一坐标系下的坐标,以游戏场景为例,该坐标系可以是以屏幕左下角为原点构建的坐标系。
此时,在第一时刻与第二时刻之间产生的位移矢量为[(x0,y0)-(x1,y1)]。
上述位移矢量是基于第一时刻的触摸位置和第二时刻的触摸位置之间的位置偏移量确定的表示位移的矢量。可选地,相邻的两个游戏动画帧之间的位移矢量可称为帧间位移矢量。
步骤505,基于位移矢量确定位移信息。
位移信息包括位移距离和/或位移速度。位移信息包括纵向位移距离和/或纵向位移速度。位移信息包括横向位移距离和/或横向位移速度。
在示例性实施例中,上述步骤505包括如下子步骤(505a-505b):
505a,对位移矢量进行变换处理,得到变换后的位移矢量。
变换处理用于建立滑动触摸操作的位移与准心位置的位移之间的映射关系。可选地,变换处理为将位移矢量与常量系数相乘的处理,其中常量系数与游戏灵敏度有关。可选地,常量系数不是一个定值,可根据实际情况选择适用的或者对应的值。可选地,游戏灵敏度包括但不限于鼠标灵敏度,虚拟道具的控制灵敏度等灵敏度。
变换后的位移矢量,也可称作操作输入向量。在第一时刻的触摸位置的坐标为(x0,y0),第二时刻的触摸位置的坐标为(x1,y1)的场景下,变换后的位移矢量pulldownvector=k*[(x0,y0)-(x1,y1)],其中k为常量系数。可选地,变换后的位移矢量包括变换后的帧间位移矢量,变换后的帧间位移矢量是基于帧间位移矢量进行变换处理得到的矢量。
在一个示例中,如图6所示,其示例性示出了一种生成操作输入向量的示意图。其中包括:
步骤1,获取当前帧的触摸位置(x0,y0)。
步骤2,获取上一帧的触摸位置(x1,y1)。
步骤3,确定滑动触摸操作在当前帧与上一帧之间的位移矢量。
步骤4,对位移矢量进行变换处理,得到操作输入向量pulldownvector。
步骤5,更新触摸位置。
505b,根据变换后的位移矢量,确定位移信息。
可选地,将变换后的位移矢量在纵向方向上的分量作为纵向位移距离。可选地,纵向位移距离可以表示为pulldownvector.y。
可选地,将变换后的位移矢量在纵向方向上的分量作为纵向位移距离与位移时间相除得到纵向位移速度。
可选地,将变换后的位移矢量在横向方向上的分量作为横向位移距离。可选地,横向位移距离可以表示为pulldownvector.x。
可选地,将变换后的位移矢量在横向方向上的分量作为横向位移距离与位移时间相除得到横向位移速度。
可选地,位移信息包括帧间纵向位移距离、帧间纵向位移速度、帧间横向位移距离、帧间横向位移速度。
步骤506,在位移信息满足条件的情况下,确定滑动触摸操作为准心手动控制操作。
上述条件是用于识别用户的滑动触摸操作是否为准心手动控制操作的判断条件,准心手动控制操作容易理解为压枪操作。
在判断用户在当前帧是否处于执行压枪操作时,可以通过两个方面进行判断,一方面可通过判断用户在当前帧形成的操作输入向量确定的位移距离是否满足压枪操作的实际情况,另一方面可通过判断用户在当前帧的滑动操作确定的位移速度是否满足压枪操作的实际情况。其中,位移速度是通过用户在当前帧形成的操作输入向量确定的位移距离与帧间间隔时间相除得到的,便于策划理解。可选地,在实施过程中可仅使用用户在当前帧形成的操作输入向量确定的位移距离来作为判断依据。
在示例性实施例中,上述位移信息满足条件的情况如下:
情况一:在纵向位移距离属于第一距离区间和/或纵向位移速度属于第一速度区间的情况下,确定滑动触摸操作为纵向的准心手动控制操作。
上述第一距离区间用于量化表示压枪操作产生的纵向位移距离的合理范围。其中,第一距离区间的左区间端点值为最小第一距离,容易理解为最小纵向位移距离;第一距离区间的右区间端点值为最大第一距离,容易理解为最大纵向位移距离。在纵向位移距离属于第一距离区间的情况下,可以认定滑动触摸操作为纵向的准心手动控制操作,即在纵向方向上存在压枪操作。
上述第一速度区间用于量化表示压枪操作产生的纵向位移速度的合理范围。其中,第一速度区间的左区间端点值为最小第一速度,容易理解为最小纵向位移速度;第一速度区间的右区间端点值为最大第一速度,容易理解为最大纵向位移速度。在纵向位移速度属于第一速度区间的情况下,可以认定滑动触摸操作为纵向的准心手动控制操作,即在纵向方向上存在压枪操作。
可选地,通过设置阈值系数与后坐力的数值相乘,来确定区间端点值,上述阈值系数包括最小阈值系数和最大阈值系数。可选地,阈值系数可以根据实际情况制定,例如根据位移时间因素制定。可选地,最小第一距离是最小阈值系数k1与纵向后坐力的数值recoilup的乘积。可选地,最大第一距离是最大阈值系数k2与纵向后坐力的数值recoilup的乘积。
相应地,在纵向位移距离属于第一距离区间和/或纵向位移速度属于第一速度区间的情况下,取消对虚拟射击道具施加纵向的自动回复力,通过准心手动控制操作在纵向方向上调整准心位置。可选地,自动回复力包括帧间自动回复力,帧间自动回复力是指两帧之间产生的自动回复力。可选地,帧间自动回复力包括横向的帧间自动回复力与纵向的帧间自动回复力。可选地,情况一中的纵向位移距离可以是帧间纵向位移距离,那么此时对于当前帧来说,应取消对虚拟射击道具施加纵向的帧间自动回复力。可选地,情况一中的纵向位移速度可以是帧间纵向位移速度,那么此时对于当前帧来说,应取消对虚拟射击道具施加纵向的帧间自动回复力。
情况二:在横向位移距离属于第二距离区间和/或横向位移速度属于第二速度区间的情况下,确定滑动触摸操作为横向的准心手动控制操作。
上述第二距离区间用于量化表示压枪操作产生的横向位移距离的合理范围。其中,第二距离区间的左区间端点值为最小第二距离,容易理解为最小横向位移距离;第二距离区间的右区间端点值为最大第二距离,容易理解为最大横向位移距离。在横向位移距离属于第二距离区间的情况下,可以认定滑动触摸操作为横向的准心手动控制操作,即在横向方向上存在压枪操作。
上述第二速度区间用于量化表示压枪操作产生的横向位移速度的合理范围。其中,第二速度区间的左区间端点值为最小第二速度,容易理解为最小横向位移速度;第二速度区间的右区间端点值为最大第二速度,容易理解为最大横向位移速度。在横向位移速度属于第二速度区间的情况下,可以认定滑动触摸操作为横向的准心手动控制操作,即在横向方向上存在压枪操作。
可选地,最小第二距离是最小阈值系数k1与纵向后坐力的数值recoillateral的乘积。可选地,最大第二距离是最大阈值系数k2与纵向后坐力的数值recoillateral的乘积。
相应地,在横向位移距离属于第二距离区间和/或横向位移速度属于第二速度区间的情况下,取消对虚拟射击道具施加横向的自动回复力,通过准心手动控制操作在横向方向上调整准心位置。可选地,情况二中的横向位移距离可以是帧间横向位移距离,那么此时对于当前帧来说,应取消对虚拟射击道具施加横向的帧间自动回复力。可选地,情况二中的横向位移速度可以是帧间横向位移速度,那么此时对于当前帧来说,应取消对虚拟射击道具施加横向的帧间自动回复力。
在一个示例中,如图7所示,其示例性示出了一种开关自动回复力过程的示意图。其中包括如下步骤:
步骤a,判断横向位移距离是否大于最小横向位移距离且小于最大横向位移距离。若是则执行步骤b,若否则执行步骤c。
步骤b,取消横向自动回复力。
步骤c,施加横向自动回复力。
步骤d,判断纵向位移距离是否大于最小纵向位移距离且小于最大纵向位移距离。若是则执行步骤e,若否则执行步骤f。
步骤e,取消纵向自动回复力。
步骤f,施加纵向自动回复力。
步骤507,在执行射击操作之后,若接收到针对虚拟射击道具的准心手动控制操作,则取消对虚拟射击道具施加自动回复力,并根据准心手动控制操作,控制虚拟射击道具的准心位置。
步骤508,在执行射击操作之后,若未接收到准心手动控制操作,则对虚拟射击道具施加自动回复力,并根据自动回复力控制虚拟射击道具的准心位置。
下面结合相关技术提供的方案,对本申请实施例提供的技术方案带来的有益效果作进一步阐述。以射击游戏应用为例,在通常的回复力实现方案中,执行射击操作的时候,瞄准位置或击中位置是由后坐偏移向量、压枪输入向量以及回复力向量共同决定的。其中,回复力向量的方向与后坐偏移向量的方向相反。请参考图8,其示例性示出了一种准心调整过程的示意图。其中,由于回复量的存在,回复结束准心位置会与玩家通过压枪操作所需要瞄准的射击起点发生一定的偏移,导致射击操作无法精准实现。但是,回复量的存在同时限制了用户在没有进行压枪操作的时候,回复结束准心位置相对于射击起点的偏移,此时,回复量的存在对于玩家而言,是存在正向收益的。
因此,本申请实施例提供的技术方案,通过设置开启与停止自动回复力的条件,进而实现适用于多种射击操作场景,提升射击操作的效率与准确度。首先获取用户的滑动触摸操作在两时刻之间的位移,进而识别用户当前的操作行为是否为压枪操作,在识别出用户进行压枪操作的时候,能够以帧为单位取消帧间存在自动回复力,在识别出用户未进行压枪操作的时候,能够以帧为单位施加帧间存在自动回复力,最终可以从更加细致的角度辅助用户的射击操作。
请参考图9,其示出了本申请一个实施例提供的虚拟道具的控制方法的流程图。该方法可应用于终端中,如各步骤的执行主体可以是图1所示的应用程序运行环境中的终端10(以下简称为“客户端”)。该方法可以包括以下几个步骤(910-940):
步骤910,在虚拟环境中显示虚拟射击道具的准心。
步骤920,响应于针对虚拟射击道具的射击指令,控制虚拟射击道具执行射击操作。
步骤930,在执行射击操作之后,接收针对虚拟射击道具的准心手动控制操作。
在示例性实施例中,上述步骤930包括如下子步骤(931-934):
931在执行射击操作之后,若接收到滑动触摸操作,则获取滑动触摸操作在第一时刻的触摸位置和在第二时刻的触摸位置;
932根据第一时刻的触摸位置和第二时刻的触摸位置,确定滑动触摸操作在第一时刻与第二时刻之间产生的位移矢量;
933基于位移矢量确定位移信息。
位移信息包括位移距离和/或位移速度;位移信息包括纵向位移距离和/或纵向位移速度;位移信息包括横向位移距离和/或横向位移速度。
934在位移信息满足条件的情况下,确定滑动触摸操作为准心手动控制操作。
情况一:
在纵向位移距离属于第一距离区间和/或纵向位移速度属于第一速度区间的情况下,确定滑动触摸操作为纵向的准心手动控制操作;
其中,在接收到纵向的准心手动控制操作的情况下,取消对虚拟射击道具施加纵向的自动回复力。
情况二:
在横向位移距离属于第二距离区间和/或横向位移速度属于第二速度区间的情况下,确定滑动触摸操作为横向的准心手动控制操作;
其中,在接收到横向的准心手动控制操作的情况下,取消对虚拟射击道具施加横向的自动回复力。
步骤940,基于准心手动控制操作,调整准心的显示位置;
其中,在接收到准心手动控制操作的情况下,取消对虚拟射击道具施加自动回复力,自动回复力是用于在执行射击操作之后,自动调整虚拟射击道具的准心位置的力。
在示例性实施例中,上述虚拟道具的控制方法还包括:
在执行射击操作之后,若未接收到准心手动控制操作,则对虚拟射击道具施加自动回复力,并根据自动回复力调整准心的显示位置。
需要说明的是,本实施例是从产品表现的角度,对本申请技术方案进行了介绍说明,有关本实施例中的解释说明,可以参考上文实施例内容。
综上所述,本申请实施例提供的技术方案,通过设置一个自动回复力的中断机制,在射击操作后检测到用户手动控制准心位置的操作后,便停止通过自动回复力调整准心位置,改为通过用户手动控制准心位置,提升用户操作的效率与精确度,可以适应多种用户操作习惯,准确识别用户意图。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的虚拟对象的控制装置的框图。该装置具有实现上述虚拟对象的控制方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是终端,也可以设置在终端中。该装置1000可以包括:指令接收模块1010、射击控制模块1020以及准心控制模块1030。
指令接收模块1010,用于接收针对虚拟射击道具的射击指令;
射击控制模块1020,用于控制所述虚拟射击道具执行射击操作;
准心控制模块1030,用于在执行所述射击操作之后,若接收到针对所述虚拟射击道具的准心手动控制操作,则取消对所述虚拟射击道具施加自动回复力,并根据所述准心手动控制操作,控制所述虚拟射击道具的准心位置;
其中,所述自动回复力是用于在执行所述射击操作之后,自动调整所述虚拟射击道具的准心位置的力。
在示例性实施例中,所述装置还包括:
位置获取模块,用于在执行所述射击操作之后,若接收到滑动触摸操作,则获取所述滑动触摸操作在第一时刻的触摸位置和在第二时刻的触摸位置;
矢量确定模块,用于根据所述第一时刻的触摸位置和所述第二时刻的触摸位置,确定所述滑动触摸操作在所述第一时刻与所述第二时刻之间产生的位移矢量;
信息确定模块,用于基于所述位移矢量确定位移信息,所述位移信息包括位移距离和/或位移速度;
操作确定模块,用于在所述位移信息满足条件的情况下,确定所述滑动触摸操作为所述准心手动控制操作。
在示例性实施例中,所述位移信息包括纵向位移距离和/或纵向位移速度;
所述操作确定模块用于:
在所述纵向位移距离属于第一距离区间和/或所述纵向位移速度属于第一速度区间的情况下,确定所述滑动触摸操作为纵向的准心手动控制操作;
所述准心控制模块1030,用于:
取消对所述虚拟射击道具施加纵向的自动回复力。
在示例性实施例中,所述位移信息包括横向位移距离和/或横向位移速度;
所述操作确定模块用于:
在所述横向位移距离属于第二距离区间和/或所述横向位移速度属于第二速度区间的情况下,确定所述滑动触摸操作为横向的准心手动控制操作;
所述准心控制模块1030,用于:
取消对所述虚拟射击道具施加横向的自动回复力。
在示例性实施例中,所述信息确定模块,用于:
对所述位移矢量进行变换处理,得到变换后的位移矢量,所述变换处理用于建立所述滑动触摸操作的位移与所述准心位置的位移之间的映射关系;
根据所述变换后的位移矢量,确定所述位移信息。
在示例性实施例中,所述准心控制模块1030还用于:
在执行所述射击操作之后,若未接收到所述准心手动控制操作,则对所述虚拟射击道具施加所述自动回复力,并根据所述自动回复力控制所述虚拟射击道具的准心位置。
综上所述,本申请实施例提供的技术方案,通过设置一个自动回复力的中断机制,在射击操作后检测到用户手动控制准心位置的操作后,便停止通过自动回复力调整准心位置,改为通过用户手动控制准心位置,提升用户操作的效率与精确度,可以适应多种用户操作习惯,准确识别用户意图。
请参考图11,其示出了本申请另一个实施例提供的虚拟道具的控制装置的框图。该装置具有实现上述虚拟道具的控制方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是终端,也可以设置在终端中。该装置1100包括:准心显示模块1110、射击控制模块1120、操作接收模块1130以及准心调整模块1140。
准心显示模块1110,用于在虚拟环境中显示虚拟射击道具的准心。
射击控制模块1120,用于响应于针对所述虚拟射击道具的射击指令,控制所述虚拟射击道具执行射击操作。
操作接收模块1130,用于在执行所述射击操作之后,接收针对所述虚拟射击道具的准心手动控制操作。
准心调整模块1140,用于基于所述准心手动控制操作,调整所述准心的显示位置。
其中,在接收到所述准心手动控制操作的情况下,取消对所述虚拟射击道具施加自动回复力,所述自动回复力是用于在执行所述射击操作之后,自动调整所述虚拟射击道具的准心位置的力。
在示例性实施例中,所述操作接收模块1130,用于:
在执行所述射击操作之后,若接收到滑动触摸操作,则获取所述滑动触摸操作在第一时刻的触摸位置和在第二时刻的触摸位置;
根据所述第一时刻的触摸位置和所述第二时刻的触摸位置,确定所述滑动触摸操作在所述第一时刻与所述第二时刻之间产生的位移矢量;
基于所述位移矢量确定位移信息,所述位移信息包括位移距离和/或位移速度;
在所述位移信息满足条件的情况下,确定所述滑动触摸操作为所述准心手动控制操作。
在示例性实施例中,所述位移信息包括纵向位移距离和/或纵向位移速度;
所述装置还包括:操作确定模块,用于:
在所述纵向位移距离属于第一距离区间和/或所述纵向位移速度属于第一速度区间的情况下,确定所述滑动触摸操作为纵向的准心手动控制操作;
其中,在接收到所述纵向的准心手动控制操作的情况下,取消对所述虚拟射击道具施加纵向的自动回复力。
在示例性实施例中,所述位移信息包括横向位移距离和/或横向位移速度;
所述装置还包括:操作确定模块,用于:
在所述横向位移距离属于第二距离区间和/或所述横向位移速度属于第二速度区间的情况下,确定所述滑动触摸操作为横向的准心手动控制操作;
其中,在接收到所述横向的准心手动控制操作的情况下,取消对所述虚拟射击道具施加横向的自动回复力。
在示例性实施例中,所述准心调整模块1140还用于:
在执行所述射击操作之后,若未接收到所述准心手动控制操作,则对所述虚拟射击道具施加所述自动回复力,并根据所述自动回复力调整所述准心的显示位置。
综上所述,本申请实施例提供的技术方案,通过设置一个自动回复力的中断机制,在射击操作后检测到用户手动控制准心位置的操作后,便停止通过自动回复力调整准心位置,改为通过用户手动控制准心位置,提升用户操作的效率与精确度,可以适应多种用户操作习惯,准确识别用户意图。
请参考图12,其示出了本申请一个实施例提供的终端1200的结构框图。该终端1200可以是诸如手机、平板电脑、游戏主机、多媒体播放设备、可穿戴设备、pc等电子设备。该终端用于实施上述实施例中提供的虚拟道具的控制方法。该终端可以是图1所示运行环境中的终端10。具体来讲:
通常,终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(fieldprogrammablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集,且经配置以由一个或者一个以上处理器执行,以实现上述客户端侧的虚拟道具的控制方法。
在一些实施例中,终端1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、显示屏1205、摄像头组件1206、音频电路1207、定位组件1208和电源1209中的至少一种。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被终端的处理器执行时以实现上述虚拟道具的控制方法。
可选地,该计算机可读存储介质可以包括:rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取记忆体)、ssd(solidstatedrives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括reram(resistancerandomaccessmemory,电阻式随机存取记忆体)和dram(dynamicrandomaccessmemory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述虚拟道具的控制方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除