振动处理方法、装置、设备及存储介质转让专利

申请号 : CN202311318529.3

文献号 : CN117065321B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐士立

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请公开一种振动处理方法、装置、设备及存储介质,方法包括:在终端中显示游戏场景,所述游戏场景中包括主人态游戏角色;当所述主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取所述环境对象相对于所述主人态游戏角色的位置信息;采用位置维度下的振动编码格式,对所述位置信息进行振动编码,得到振动编码结果;根据所述振动编码结果,控制所述终端中的振动组件进行振动,使得用户可根据终端基于该振动编码结果所产生的振动效果,快速准确地获取环境对象所处位置等游戏对局信息,提升游戏体验。

权利要求 :

1.一种振动处理方法,其特征在于,包括:

在终端中显示游戏场景,所述游戏场景中包括主人态游戏角色;

当所述主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取所述环境对象相对于所述主人态游戏角色的位置信息;

采用位置维度下的振动编码格式,对所述位置信息进行振动编码,得到振动编码结果;

根据所述振动编码结果,控制所述终端中的振动组件进行振动;其中,基于所述振动编码结果所产生的振动效果用于提示所述环境对象的位置信息;

当需移动所述主人态游戏角色时,确定所述主人态游戏角色的移动路径,并根据所述移动路径确定所述主人态游戏角色需执行的移动动作;

对所述移动动作进行振动编码,得到目标振动信号,并根据所述目标振动信号控制所述终端中的振动组件进行振动;其中,所述终端基于所述目标振动信号产生的振动效果,引导游戏用户控制所述主人态游戏角色执行相应的移动操作。

2.如权利要求1所述的方法,其特征在于,所述位置信息包括当前方位,所述位置维度下的振动编码格式包括:方位维度下的第一振动编码格式;所述振动编码结果包括:采用所述第一振动编码格式对所述当前方位进行振动编码所得到的第一振动信号;

所述第一振动编码格式包括多个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,所述第一振动编码格式中的每个振动片段内的振动强度字段为空;

所述主人态游戏角色所处位置设置有多个正方位和多个侧方位,所述正方位是指:与所述主人态游戏角色的朝向平行或垂直的方位;所述侧方位是指:位于两个正方位之间的方位;

当所述当前方位为所述多个正方位中的任一正方位时,所述第一振动编码格式中的各个振动片段内的振动强度字段的取值需相同;当所述当前方位为所述多个侧方位中的任一侧方位时,所述第一振动编码格式中的各个振动片段内的振动强度字段的取值需逐渐变化。

3.如权利要求2所述的方法,所述多个侧方位包括:第一侧方位、第二侧方位、第三侧方位和第四侧方位;

当所述当前方位为所述多个侧方位中的第一侧方位或者第二侧方位时,所述第一振动编码格式中的各个振动片段内的振动强度字段的取值需呈逐渐增大趋势;

当所述当前方位为所述多个侧方位中的第三侧方位或者第四侧方位时,所述第一振动编码格式中的各个振动片段内的振动强度字段的取值需呈逐渐减小趋势。

4.如权利要求3所述的方法,其特征在于,与所述主人态游戏角色的朝向相垂直的线被称为水平线;所述第一侧方位和所述第四侧方位关于所述水平线对称,且所述第二侧方位和所述第三侧方位关于所述水平线对称;

当所述当前方位为第一侧方位或者第二侧方位时,相邻两个振动片段内的振动强度的取值相差m,m为正整数;

且若所述当前方位为第一侧方位,则所述第一振动编码格式中的首个振动片段内的振动强度字段的取值为n;若所述当前方位为第二侧方位,则所述第一振动编码格式中的首个振动片段内的振动强度的取值为n+k,n和k均为正整数;

当所述当前方位为第三侧方位或者第四侧方位时,所述第一振动编码格式中的第r个振动片段内的振动强度字段的取值为S‑x;其中,r为正整数且小于等于所述第一振动编码格式中的振动片段的数量;S为振动强度阈值,x为假设所述环境对象位于与所述当前方位关于所述水平线对称的侧方位时,所述第r个振动片段内的振动强度字段的取值。

5.如权利要求2所述的方法,其特征在于,所述第一振动编码格式中的每个振动片段内的振动频率字段为空;所述多个正方位中存在一个正方位被定义为基准正方位;

所述第一振动编码格式中的各个振动片段内的振动频率字段的取值,需与所述环境对象当前所处位置和所述基准正方位之间的方位偏离程度成负相关。

6.如权利要求1所述的方法,其特征在于,所述位置信息包括当前距离值,所述位置维度下的振动编码格式包括:距离维度下的第二振动编码格式;所述振动编码结果包括:采用所述第二振动编码格式对所述当前距离值进行振动编码所得到的第二振动信号;

所述第二振动编码格式包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,所述第二振动编码格式中的各个振动片段内的振动强度字段为空,且振动强度字段的取值需与所述当前距离值成负相关。

7.如权利要求6所述的方法,其特征在于,采用所述第二振动编码格式对所述当前距离值进行振动编码,得到第二振动信号的方式包括:确定振动强度字段的取值范围,以及距离的取值范围;

根据所述距离的取值范围,将所述当前距离值映射到所述振动强度字段的取值范围内,得到映射结果;

将所述第二振动编码格式中的各个振动片段内的振动强度字段的取值设置为所述映射结果,得到所述第二振动信号。

8.如权利要求1所述的方法,其特征在于,在根据所述振动编码结果,控制所述终端中的振动组件进行振动之前,所述方法还包括:获取所述环境对象的危险性信息作为目标危险性信息,所述环境对象的危险性信息用于指示:所述环境对象是否对所述主人态游戏角色造成危险;

根据危险性信息和振动信号之间的对应关系,获取所述目标危险性信息所对应的振动信号;

根据所述目标危险性信息所对应的振动信号,控制所述终端中的振动组件进行振动。

9.如权利要求1所述的方法,其特征在于,所述环境对象具有K个属性,K为正整数;在根据振动编码结果,控制所述终端中的振动组件进行振动之后,所述方法还包括:获取所述环境对象在各个属性下的目标属性信息;

分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号;

依次根据所述每个目标属性信息对应的振动信号,控制所述终端中的振动组件进行振动。

10.如权利要求9所述的方法,其特征在于,所述环境对象为游戏物资;所述 K个属性包括类型属性,所述环境对象在所述类型属性下的目标属性信息为目标物资类型,任一物资类型包括多个物资类别,一个物资类别对应一个振动信号;

任一物资类别对应的振动信号包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;

其中,任一物资类别对应的振动信号中的各个振动片段内的振动频率字段的取值,用于指示相应物资类别所属的物资类型,且任一物资类别对应的振动信号中的各个振动片段内的振动强度字段的取值用于指示相应物资类别;

所述分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号,包括:从所述环境对象在所述类型属性下的目标物资类型包括的多个物资类别中,确定出所述环境对象所属的物资类别;

根据物资类别和振动信号之间的对应关系,将所述环境对象所属的物资类别对应的振动信号,作为所述环境对象的目标物资类型对应的振动信号。

11.如权利要求9所述的方法,其特征在于,所述环境对象为游戏物资;所述方法还包括:检测所述环境对象的可捡拾性,所述可捡拾性是指:支持所述主人态游戏角色对应的游戏用户执行捡拾操作的特性;

若检测到所述可捡拾性,则触发执行所述获取所述环境对象在各个属性下的目标属性信息的步骤;

若未检测到所述可捡拾性,则获取用于指示所述环境对象未支持捡拾操作的振动信号,并根据获取到的振动信号控制所述终端中的振动组件进行振动。

12.如权利要求9所述的方法,其特征在于,所述环境对象为游戏物资;在依次根据所述每个目标属性信息对应的振动信号,控制所述终端中的振动组件进行振动之后,所述方法还包括:等待所述主人态游戏角色对应的游戏用户对所述环境对象执行捡拾操作;

在检测到针对所述环境对象的捡拾操作后,将所述捡拾操作的操作结果作为第一操作结果;

根据捡拾场景下的操作结果和振动信号之间的对应关系,确定所述第一操作结果对应的振动信号;

根据所述第一操作结果的振动信号,控制所述终端中的振动组件进行振动。

13.如权利要求9所述的方法,其特征在于,所述环境对象为可移动的游戏角色;所述 K个属性包括生命属性,所述环境对象在所述生命属性下的目标属性信息为所述环境对象的剩余生命值;

所述分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号,包括:确定所述环境对象的生命属性所对应的第三振动编码格式,所述第三振动编码格式中包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,所述第三振动编码格式中的每个振动片段内的振动强度字段为空;

根据所述环境对象的剩余生命值,设置所述第三振动编码格式中的各个振动片段内的振动强度字段的取值,得到所述环境对象的剩余生命值对应的振动信号;

其中,所述第三振动编码格式中的各个振动片段内的振动强度字段的取值,需与所述环境对象的剩余生命值成正相关。

14.如权利要求9所述的方法,其特征在于,所述环境对象为可移动的游戏角色;所述K个属性包括运动方向属性,所述环境对象在所述运动方向属性下的目标属性信息为目标运动方向,所述目标运动方向为第一运动方向或者第二运动方向;所述第一运动方向是指远离所述主人态游戏角色的方向,所述第二运动方向是指靠近所述主人态游戏角色的方向;

不同运动方向对应不同的振动编码格式,任一运动方向对应的振动编码格式中包括多个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,振动强度字段为空;

所述分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号,包括:获取所述环境对象的目标运动方向对应的振动编码格式,作为目标振动编码格式;

根据所述环境对象相对于所述主人态游戏角色的方向信息,设置所述目标振动编码格式中的各个振动片段内的振动强度字段的取值,得到所述环境对象的目标运动方向对应的振动信号;

其中,当所述环境对象位于所述主人态游戏角色的第一方向时,所述目标振动编码格式中的各个振动片段内的振动强度字段的取值呈先大后小的趋势;当所述环境对象位于所述主人态游戏角色的第二方向时,所述目标振动编码格式中的各个振动片段内的振动强度字段的取值需呈先大后小的趋势。

15.如权利要求9所述的方法,其特征在于,所述环境对象为可移动的游戏角色;所述K个属性包括运动速度属性,所述环境对象在所述运动速度属性下的目标属性值为目标运动速度值;

所述分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号,包括:获取所述运动速度属性对应的第四振动编码格式,所述第四振动编码格式中包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,振动强度字段为空;

根据所述环境对象的目标运动速度值,设置所述第四振动编码格式中的各个振动片段中的振动强度字段的取值,得到所述环境对象的目标运动速度值对应的振动信号;其中,所述第四振动编码格式中的各个振动片段中的振动强度字段的取值需与所述目标运动速度值成正相关。

16.如权利要求9所述的方法,其特征在于,所述环境对象为可移动的游戏角色;所述方法还包括:检测针对所述环境对象的攻击需求;

若未检测到所述攻击需求,则触发执行所述获取所述环境对象在各个属性下的目标属性信息的步骤;

若检测到所述攻击需求,则获取瞄准指引振动信号,所述瞄准指引振动信号是指用于指示瞄准所述环境对象的振动信号;并根据所述瞄准指引振动信号控制所述终端中的振动组件进行振动。

17.如权利要求16所述的方法,其特征在于,在根据所述瞄准指引振动信号控制所述终端中的振动组件进行振动之后,所述方法还包括:在所述环境对象被瞄准后,根据用于指示已瞄准的振动信号,控制所述终端中的振动组件进行振动;

等待所述主人态游戏角色对应的游戏用户对所述环境对象执行射击操作;

在检测到针对所述环境对象的射击操作后,将所述射击操作的操作结果作为第二操作结果;

根据射击场景下的操作结果和振动信号之间的对应关系,确定所述第二操作结果对应的振动信号;

根据所述第二操作结果的振动信号,控制所述终端中的振动组件进行振动。

18.如权利要求17所述的方法,其特征在于,所述方法还包括:

若检测到所述主人态游戏角色所携带的工具匣中的射击工具的数量小于数量阈值,则获取状态反馈振动信号,所述状态反馈振动信号是指用于提示更换所述工具匣的振动信号;

根据所述状态反馈信号控制所述终端中的振动组件进行振动。

19.一种计算机设备,包括输入接口和输出接口,其特征在于,还包括:处理器以及计算机存储介质;

其中,所述处理器适于实现一条或多条指令,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1‑18任一项所述的振动处理方法。

20.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1‑18任一项所述的振动处理方法。

说明书 :

振动处理方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及互联网技术领域,具体涉及游戏技术领域,尤其涉及一种振动处理方法、装置、设备及存储介质。

背景技术

[0002] 随着计算机技术和游戏技术的不断发展,使用游戏应用的用户群体中,视障用户的数量在不断增加;所谓的视障用户是指视觉功能受到一定程度的损害的用户,这类用户因为视觉敏锐度低或视野受损而导致无法达到正常视力,从而影响到日常生活。
[0003] 在视障用户玩游戏的过程中,由于其无法看清终端屏幕,因此终端通常是基于语音读屏的方式,来帮助用户获取游戏场景中的环境对象所处位置等游戏对局信息的。这样的处理方式,需要用户完整听完语音才可了解环境对象所处位置,费时费力,容易影响用户的游戏操作;同时,在特定的一些嘈杂的环境中,用户很容易听不清语音,使得用户无法获知环境对象所处位置,从而使得用户无法执行后续游戏操作,影响游戏体验。

发明内容

[0004] 本申请实施例提供了一种振动处理方法、装置、设备及存储介质,可以使得用户能够快速准确地获取环境对象所处位置等游戏对局信息,提升游戏体验。
[0005] 一方面,本申请实施例提供了一种振动处理方法,所述方法包括:
[0006] 在终端中显示游戏场景,所述游戏场景中包括主人态游戏角色;
[0007] 当所述主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取所述环境对象相对于所述主人态游戏角色的位置信息;
[0008] 采用位置维度下的振动编码格式,对所述位置信息进行振动编码,得到振动编码结果;
[0009] 根据所述振动编码结果,控制所述终端中的振动组件进行振动;其中,基于所述振动编码结果所产生的振动效果用于提示所述环境对象的位置信息。
[0010] 另一方面,本申请实施例提供了一种振动处理装置,所述装置包括:
[0011] 显示单元,用于在终端中显示游戏场景,所述游戏场景中包括主人态游戏角色;
[0012] 处理单元,用于当所述主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取所述环境对象相对于所述主人态游戏角色的位置信息;
[0013] 所述处理单元,还用于采用位置维度下的振动编码格式,对所述位置信息进行振动编码,得到振动编码结果;
[0014] 所述处理单元,还用于根据所述振动编码结果,控制所述终端中的振动组件进行振动;其中,基于所述振动编码结果所产生的振动效果用于提示所述环境对象的位置信息。
[0015] 再一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括输入接口和输出接口,所述计算机设备还包括:
[0016] 处理器以及计算机存储介质;
[0017] 其中,所述处理器适于实现一条或多条指令,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行上述所提及的振动处理方法。
[0018] 再一方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行上述所提及的振动处理方法。
[0019] 再一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括一条或多条指令;所述计算机程序产品中的一条或多条指令被处理器执行时,实现上述所提及的振动处理方法。
[0020] 本申请实施例可在用户玩游戏的过程中,检测到主人态游戏角色所处位置的预设范围内存在环境对象时,采用位置维度下的振动编码格式,对该环境对象相对于主人态游戏角色的位置信息进行振动编码,从而根据振动编码结果控制终端中的振动组件进行振动,以使得用户可以根据终端基于该振动编码结果所产生的振动效果,快速准确地获取环境对象所处位置等游戏对局信息,提升游戏体验。由此可见,通过振动提醒的方式,不仅可以更加直观高效,无需用户通过耗费更多的时间听语音来获知环境对象所处位置,而且也不依赖于周边环境,使得用户在嘈杂环境中也可基于终端基于该振动编码结果所产生的振动效果来准确获知环境对象所处位置,提升游戏体验;除此之外,通过振动提醒的方式,无需播放语音,还可在一定程度上保护用户隐私等信息。

附图说明

[0021] 为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1是本申请实施例提供的一种终端和服务器共同执行振动处理方法的示意图;
[0023] 图2是本申请实施例提供的一种振动处理方法的流程示意图;
[0024] 图3a是本申请实施例提供的一种预设距离范围的示意图;
[0025] 图3b是本申请实施例提供的一种方位关系的示意图;
[0026] 图4是本申请另一实施例提供的一种振动处理方法的流程示意图;
[0027] 图5a是本申请实施例提供的一种主人态游戏角色遇见大树这一环境对象的示意图;
[0028] 图5b是本申请实施例提供的一种主人态游戏角色遇见游戏物资这一环境对象的示意图;
[0029] 图5c是本申请实施例提供的一种主人态游戏角色遇见可移动的游戏角色这一环境对象的示意图;
[0030] 图5d是本申请实施例提供的一种针对游戏物资的振动提示逻辑的示意图;
[0031] 图5e 是本申请实施例提供的一种针对可移动的游戏角色的振动提示逻辑的示意图;
[0032] 图5f是本申请实施例提供的一种游戏界面的示意图;
[0033] 图6是本申请实施例提供的一种振动处理装置的结构示意图;
[0034] 图7是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

[0035] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0036] 在本申请实施例中,提出了一种振动处理方法,该振动处理方法可通过定义振动效果,对游戏对局中的关键信息(如环境对象所处位置)进行描述,使得用户在玩游戏的过程中,可以通过终端输出的振动效果就能够快速准确地获取游戏对局信息。并且,该振动处理方法还可将振动效果和语音输出相结合,将简单的关键信息(如环境对象所处位置)通过振动效果进行反馈,以使得此类关键信息的反馈可以更加高效且不依赖于外界环境,将复杂信息(如地图信息、游戏规则)通过语音进行反馈,以降低用户对振动效果的学习成本。
[0037] 其中,本申请实施例可将振动细分为长振动和短振动,振动处理方法所涉及的任一振动可以是短振动或者长振动,对此不作限定。所谓的短振动是指以一定固定的振动频率和振动强度而进行的一段时间的振动,所谓的长振动是指以变化的振动频率和振动强度而进行的一段时间的振动,即长振动所涉及的振动频率和振动强度可随时间产生变化,从而营造出丰富的振动效果。无论是短振动还是长振动,其振动编码格式可以如下:
[0038] {len,[{freq,intensity,duration},{freq,intensity,duration},{freq,intensity,duration},{freq,intensity,duration}]}
[0039] 上述振动编码格式中:Len(片段数量字段)的取值为8字节正整数,其取值可代表后面有多少个振动片段,如果Len的取值是1,则代表基于该振动编码格式所得到的振动信号描述的是一个短振动,如果Len的取值大于1,则代表基于该振动编码格式所得到的振动信号描述的是一个长振动;由此可见,长振动一般用多个连续的振动片段来描述,为减少用户的学习成本,Len的取值可以设置为4,即采用4个振动片段对长振动进行描述。Freq(振动频率字段)的取值为8字节整数,其取值可代表振动频率,一般取值为0‑100的相对值;Intensity(振动强度字段)的取值为8字节整数,其取值可代表振动强度,一般取值为0‑100的相对值;Duration(振动时长指示字段)的取值为8字节整数,其取值可用于指示每个振动片段的振动时长。
[0040] 针对短振动而言,其振动片段中Duration的取值可以为振动时长(即振动持续时长),单位为ms(毫秒)。例如,一个振动频率为80赫兹,振动强度为50,振动时长为200ms的短振动,可以通过上述振动编码格式编码得到如下振动信号进行描述:
[0041] {1,[{80,50,200}]}
[0042] 针对长振动而言,每个振动片段中的Duration的取值可以为相应振动片段的振动时长,也可以为相应振动片段的开始振动时间,单位为ms(毫秒)。例如,以每个振动片段中的Duration的取值为相应振动片段的开始振动时间为例,一个长振动,其起始振动频率为30赫兹,强度为50,即第1个振动片段的开始振动时间为第0ms;经过100ms后,变化为振动频率为50赫兹,强度为60,即第2个振动片段的开始振动时间为第100ms,再经过100ms后,振动频率变化为60赫兹,强度变化为80,即第3个振动片段的开始振动时间为第200ms;再经过
100ms后,振动频率变为80赫兹,强度变化为60,即第4个振动片段的开始振动时间为第
300ms;那么,可以通过上述振动编码格式编码得到如下振动信号进行描述:
[0043] {4,[{30,50,0}{50,60,100}{60,80,200}{80,60,300}]}
[0044] 基于上述描述,本申请实施例提出的振动处理方法的大致原理如下:在用户玩游戏的过程中,可在终端显示该游戏的游戏场景,该游戏场景中可包括主人态游戏角色,所谓的主人态游戏角色是指当前使用该终端的用户所操纵的游戏角色。当主人态游戏角色所处位置的预设距离范围内存在环境对象时,可以获取该环境对象相对于主人态游戏角色的位置信息,并采用相应的振动编码格式对该位置信息进行振动编码(所谓的振动编码可理解成是编码得到振动信号的方式),得到振动编码结果(即包括振动信号的结果),从而根据该振动编码结果控制终端中的振动组件进行振动,以使得用户根据终端基于该振动编码结果所产生的振动效果,快速准确地获取环境对象所处位置等游戏对局信息,提升游戏体验。通过振动提醒用户的操作信息,不仅更加直观,而且也不依赖周边环境,保护用户隐私等信息,让用户的整体体验也能够有更大的提升。
[0045] 在一种实施方式中,上述提及的振动处理方法可由提供用户所玩游戏的游戏应用执行。其中,该游戏应用的应用类型可以是云应用、APP(application,客户端)、轻应用或者网页应用等,本申请实施例对此不作限定。所谓的云应用是指:在云端服务器(如云游戏服务器)中安装并运行的应用程序;所谓的APP是指:在终端中安装并运行的应用程序;所谓的轻应用是指:无需下载、即搜即用的全功能的Quick App(快应用),其通常作为子程序运行于其他客户端中;所谓的网页应用是指:支持在浏览器APP所显示的网页中打开,从而运行的应用程序。
[0046] 另一种实施方式中,上述提及的振动处理方法可由一个计算机设备执行,该计算机设备可以是终端或服务器,即该振动处理方法可由终端或服务器执行。其中,终端是指配置有显示屏幕且内置有一个或多个振动组件的设备,其可以是智能手机、电脑(如平板电脑、笔记本电脑等)、智能穿戴设备(如智能手表、智能眼镜等)、智能语音交互设备等。服务器是指可用于提供游戏服务、数据处理服务、编码服务等一种或多种服务的设备,其可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
[0047] 另一种实施方式中,上述提及的振动处理方法可由终端和服务器共同执行。例如参见图1所示,可由终端负责显示游戏场景,并在游戏场景中的主人态游戏角色11所处位置的预设距离范围12内存在环境对象13时,负责获取该环境对象相对于主人态游戏角色11的位置信息,然后将该位置信息发送给服务器,由服务器负责对该位置信息进行振动编码,并将振动编码结果下发给终端,使得终端根据该振动编码结果控制内部的振动组件进行振动。又如,也可由终端负责显示游戏场景,服务器负责在游戏场景中的主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取相应的位置信息并进行振动编码,从而将振动编码结果下发给终端,由终端负责基于该振动编码结果控制内部的振动组件进行振动。应理解的是,此处只是示例性地列举了终端和服务器共同执行该振动处理方法的两种具体实现,并非穷举。并且,在其他实施例中,上述提及的振动处理方法也可由游戏应用和服务器共同执行。
[0048] 需要说明的是,本申请实施例对终端和服务器之间的通信方式不作限定。例如终端与服务器之间可通过以下任一种方式实现通信:基于第四代移动通信技术(the 4th generation mobile communication technology,4G)、第五代移动通信技术(5th Generation Mobile Communication Technology,5G)、长期演进(Long Term Evolution,LTE)、全球互通微波访问(Worldwide Interoperability for Microwave Access,WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite,TCP/IP)、用户数据报协议(User Datagram Protocol,UDP)协议的计算机网络通信,等等。另外,终端和服务器可位于区块链网络内或区块链网络外,对此不作限定;进一步的,终端和服务器还可将内部所存储的任一数据上传至区块链网络进行存储,以防止内部所存储的数据被篡改,提升数据安全性。
[0049] 还需说明的是,在本申请实施例提出的振动处理方法的具体实现中,用户可预先学习不同振动信号所指示的信息,以便于在游戏过程中,可准确地分辨终端输出的振动信号。本申请实施例对用户学习振动信号的方式,不作限定。例如,终端可提供一个自动学习功能,用户可通过语音指令或其他方打开此自动学习功能,使得终端依次输出各个振动信号,每次输出一个振动信号,就通过语音播报的方式告知用户当前输出的振动信号所指示的信息。
[0050] 基于上述描述,下面以终端执行该振动处理方法为例,结合图2所示的方法流程图,对本申请实施例提出的振动处理方法的具体实施过程进行阐述。请参见图2所示,该振动处理方法可包括以下步骤S201‑S204:
[0051] S201,在终端中显示游戏场景,游戏场景中包括主人态游戏角色(即使用该终端的用户所操纵的游戏角色)。
[0052] 在用户使用游戏应用玩游戏的过程中,终端可在显示屏幕中显示该游戏的游戏场景。由于游戏场景可通过一帧或多帧游戏画面进行呈现,因此显示游戏场景可理解成是:显示游戏场景所涉及的游戏画面。可理解的是,当从主人态游戏角色的视角来显示游戏场景时,终端所显示的画面中可不包括该主人态游戏角色。且游戏场景中除了包括主人态游戏角色以外,还可包括以下至少一项:一个或多个静态环境中的对象,以及一个或多个动态环境中的对象。所谓的静态环境中的对象是指:在用户视野中位置固定不变的对象,如固定物体(即用户视野中位置固定不变的物体,如固定障碍物、固定景物等)、游戏物资(即游戏中可使用的物资,如游戏道具)等;所谓的动态环境中的对象是指:在用户视野中位置可发生变化的对象,如其他游戏角色(即除主人态游戏角色以外的游戏角色),虚拟动物等等。
[0053] 从游戏应用的应用类型这一角度看,由于该游戏应用的应用类型可以是APP、轻应用(即小程序)、网页应用或者云应用等,因此本申请实施例提及的游戏可以是手游、小程序游戏、网游或者云游戏等等。所谓的手游是指运行在移动设备(如手机、平板电脑、智能手表等)内的APP中的游戏,所谓的小程序游戏是指运行在轻应用中的游戏,所谓的网游是指运行在网页应用中的游戏(即以网页为运行载体所运行的游戏),所谓的云游戏是指运行在云应用(运行在云端服务器中的应用)中的游戏。
[0054] 也就是说,云游戏并不在终端中运行,而是在云端服务器内的云应用(即云游戏应用)中运行;云端服务器可将云游戏的游戏场景所涉及的游戏画面、游戏音频压缩编码为媒体流,然后通过网络将媒体流传输给终端进行图像显示和音频播放。当用户在游戏界面中执行各种操作时,终端可将这些操作产生的操作数据上报给云端服务器,由云端服务器在对应的云游戏应用中根据操作数据而刷新云游戏的游戏画面,再将刷新后的游戏画面返回至终端进行显示,以实现云游戏的游玩。可见,云游戏以云计算技术为基础,云计算技术为云游戏提供强大的图形处理能力与数据运算能力;所谓的云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。
[0055] 从游戏提供的游戏内容这一角度来看,本申请实施例提及的游戏可以是竞技类游戏、竞速类游戏、角色扮演类游戏、冒险类游戏等等。所谓的竞技类游戏是指建立在公正、公平、合理的游戏平台上的对战游戏,例如第一人称射击游戏(First‑person shooting game,FPS)、即时战略(Real‑Time Strategy Game,RTS)游戏,或者体育模拟游戏等;所谓的竞速类游戏是指人类玩家用户使用第一人称或第三人称的对象参与速度竞争的游戏,例如赛车、飞行等运动游戏;所谓的角色扮演类游戏是指由玩家用户扮演相应角色以在一个写实或虚拟的世界中进行活动的游戏,例如动作角色扮演游戏,策略角色扮演游戏等;所谓的冒险类游戏是指集中于探索未知、解决谜题等情节化和探索性的游戏。
[0056] S202,当主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取环境对象相对于主人态游戏角色的位置信息。
[0057] 参见图3a所示:预设距离范围可以是以主人态游戏角色所处位置31为中心,将预设距离(例如100米)作为半径所确定出的圆形区域或球形区域32;或者,预设距离范围也可以是以主人态游戏角色所处位置31为中心,根据预设三维尺寸(即预设宽度(如100米)、预设长度(如100米)和预设高度(如150米))所确定出的立方体区域33;或者,预设距离范围还可以是以主人态游戏角色所处位置31为中心,根据预设二维尺寸(即预设宽度(如120米)和预设长度(如100米))所确定出的矩形区域34,对此不作限定。
[0058] 此处提及的环境对象可以是静态环境中的对象,如固定物体或者游戏物资;若游戏场景中还包括其他游戏角色,则该环境对象除了可以是静态环境中的对象以外,也可以是可移动的游戏角色(即动态环境中的对象)。并且,该可移动的游戏角色可以是主人态游戏角色的队友(即与主人态游戏角色处于同一阵营的游戏角色),也可以是主人态游戏角色的敌人(即与主人态游戏角色处于不同阵营的游戏角色),还可以是非玩家控制的游戏角色(Non‑Player Character,NPC)等,对此不作限定。
[0059] 环境对象相对于主人态游戏角色的位置信息可以包括:当前方位和当前距离值中的至少一项。其中,可将在主人态游戏角色所处位置的预设距离范围内存在环境对象的时刻,作为当前时刻;并且,主人态游戏角色所处位置可设置有多个正方位和多个侧方位。那么当前方位和当前距离值的定义如下:①当前方位是指:在当前时刻,环境对象相对于主人态游戏角色所处的方位,其可以是某一个正方位或者侧方位;②当前距离值是指:在当前时刻,环境对象所处位置和主人态游戏角色所处位置之间的距离值。
[0060] 其中,所谓的正方位是指:与主人态游戏角色的朝向平行或垂直的方位;所谓的侧方位是指:位于两个正方位之间的方位。由此可知,正方位的数量可以是4,即多个正方位可包括第一正方位、第二正方位、第三正方位和第四正方位;那么侧方位的数量也为4,即多个侧方位可包括第一侧方位、第二侧方位、第三侧方位和第四侧方位。其中,第一侧方位是指第一正方位和第二正方位之间的方位、第二侧方位是指第二正方位和第三正方位之间的方位、第三侧方位是指第三正方位和第四正方位之间的方位、第四侧方位是指第四正方位和第一正方位之间的方位。
[0061] 示例性的,参见图3b所示:第一正方位可以是正左方(与主人态游戏角色的朝向垂直且位于朝向左侧的方位)、第二正方位可以是正前方(与主人态游戏角色的朝向平行且方向与朝向相同的方位)、第三正方位可以是正右方(与主人态游戏角色的朝向垂直且位于朝向右侧的方位)、第四正方位可以是正后方(与主人态游戏角色的朝向平行且方向与朝向相反的方位)。相应的,第一侧方位可以是左前方(位于正左方和正前方之间的方位)、第二侧方位可以是右前方(位于正前方和正右方之间的方位)、第三侧方位可以是右后方(位于正右方和正后方之间的方位)、第四侧方位可以是左后方(位于正后方和正左方之间的方位)。可见,若与主人态游戏角色的朝向想垂直的线被称为水平线,则图3b所示的方位关系如下:
第一侧方位与第二侧方位相邻且关于主人态游戏角色的朝向对称,第一侧方位和第四侧方位相邻且关于该水平线对称,第二侧方位和第三侧方位相邻且关于该水平线对称,第三侧方位与第四侧方位相邻且关于主人态游戏角色的朝向对称。
[0062] 应理解的是,图3b只示例性表示各个正方位和各个侧方位,并不对此进行限定。例如,可以是第一正方位为正前方、第二正方位为正右方、第三正方位为正后方、第四正方位为正左方,且第一侧方位为右前方、第二侧方位为右后方、第三侧方位为左后方、第四侧方位为左前方。或者,可以是第一正方位为正右方、第二正方位为正后方、第三正方位为正左方、第四正方位为正前方,且第一侧方位为右后方、第二侧方位为左后方、第三侧方位为左前方、第四侧方位为右前方。又或者,可以是第一正方位为正后方、第二正方位为正左方、第三正方位为正前方、第四正方位为正右方,且第一侧方位为左后方、第二侧方位为左前方、第三侧方位为右前方、第四侧方位为右后方。
[0063] 进一步的,从方向角度来看,主人态游戏角色所处位置可涉及4个方向:第一方向、第二方向、第三方向和第四方向。其中,第一方向与第二方向是两个相反的方向,第三方向和第四方向是两个相反的方向;且任意两个非相反的方向中存在一个相同的侧方位。例如,第一方向可以是左方、第二方向可以是右方、第三方向可以是前方、第四方向可以是后方;左方和前方这两个非相反的方向中所存在的相同的侧方位是左前方,左方和后方这两个非相反的方向中所存在的相同的侧方位是左后方,右方和前方这两个非相反的方向中所存在的相同的侧方位是右前方,右方和后方这两个非相反的方向中所存在的相同的侧方位是右后方,以此类推。
[0064] S203,采用位置维度下的振动编码格式,对位置信息进行振动编码,得到振动编码结果。
[0065] 基于前述提及的位置信息可包括当前方位和当前距离值中的至少一项可知,位置维度可包括以下至少一项:方位维度和距离维度。那么位置维度下的振动编码格式可包括以下至少一种:方位维度下的第一振动编码格式,以及距离维度下的第二振动编码格式。相应的,采用位置维度下的振动编码格式对位置信息进行振动编码,所得到的振动编码结果可包括以下至少一项:采用第一振动编码格式对当前方位进行振动编码所得到的第一振动信号,以及采用第二振动编码格式对当前距离值进行振动编码所得到的第二振动信号。
[0066] (1)第一振动编码格式的具体实现如下:
[0067] 在一种具体实现中,第一振动编码格式可包括一个振动片段。在此具体实现下,可从振动强度这一维度来区分不同的方位;此情况下,该第一振动编码格式中的这一个振动片段内的振动强度字段可以为空。具体的,可在振动强度这一维度下,通过不同的振动强度来区分不同的方位;基于此,第一振动编码格式中的这一个振动片段内的振动强度字段的取值,可以根据环境对象所处的当前方位,以及预设的方位和振动强度之间的对应关系来确定。例如,预设的方位和振动强度之间的对应关系为:正前方对应的振动强度为50,正左方对应的振动强度为40,左前方对应的振动强度为70等等;若环境对象所处的当前方位为左前方,则可确定第一振动编码格式中的这一个振动片段内的振动强度字段的取值为70。
[0068] 值得强调的是,在其他实施例中,当第一振动编码格式包括一个振动片段时,也可从振动频率或者振动时长这一维度来区分不同的方位,其具体实施方式与上述提及的从振动强度这一维度来区分不同的方位所采用的具体实施方式类似,在此不作赘述。或者,也可以从频率强度的组合(即由振动频率和振动强度构成的组合)维度来区分不同的方位;此情况下,该第一振动编码格式中的这一个振动片段内的振动时长指示字段的取值可以为预设值,而振动频率字段和振动强度字段可以为空,且该振动频率字段和振动强度字段的取值可以根据环境对象所处的当前方位,以及预设的方位和频率强度组合之间的对应关系来确定。例如,预设的方位和频率强度组合之间的对应关系为:正前方对应的频率强度组合为(50,70),正左方对应的频率强度组合为(60,70),左前方对应的频率强度组合为(70,80)等等;若环境对象所处的当前方位为左前方,则可确定振动频率字段的取值为70,且振动强度字段的取值为80。类似的,也可从频率时长的组合(即由振动频率和振动时长构成的组合)维度来区分不同的方位,或者强度时长的组合(即由振动强度和振动时长构成的组合)维度来区分不同的方位。
[0069] 另一种具体实现中,第一振动编码格式可包括多个振动片段。在此具体实现下,可从振动强度这一维度来区分不同的方位;此情况下,该第一振动编码格式中的每个振动片段内的振动强度字段可以为空。具体的,可在振动强度这一维度下,通过不同的振动强度组合来区分不同的方位;基于此,第一振动编码格式中的各个振动片段内的振动强度字段的取值可以根据环境对象所处的当前方位,以及预设的方位和振动强度组合之间的对应关系来确定。例如,以振动片段的数量为4为例,即以每个振动强度组合包括4个振动强度为例,预设的方位和振动强度组合之间的对应关系为:正前方对应的振动强度组合为(20,30,40,50),正左方对应的振动强度组合为(30,40,50,60),左前方对应的振动强度组合为(20,30,
20,30)等等;若环境对象所处的当前方位为左前方,则可确定第一振动编码格式中的各个振动片段内的振动强度字段的取值依次为20,30,20和30。
[0070] 或者,由前述可知,主人态游戏角色所处位置设置有多个正方位和多个侧方位,那么可在振动强度这一维度下,通过振动强度是否发生变化来区分正方位和侧方位,如用振动强度保持不变来指示正方位,用振动强度逐渐变化来指示侧方位。基于此,当环境对象所处的当前方位为多个正方位中的任一正方位时,第一振动编码格式中的各个振动片段内的振动强度字段的取值需相同;当当前方位为多个侧方位中的任一侧方位时,第一振动编码格式中的各个振动片段内的振动强度字段的取值需逐渐变化。进一步的:
[0071] 当环境对象所处的当前方位为多个正方位中的任一正方位时,第一振动编码格式中的各个振动片段内的振动强度字段的取值,可根据环境对象所处的当前方位,以及预设的正方位和振动强度之间的对应关系来确定。例如承接前述图3b所示的例子,设预设的正方位和振动强度之间的对应关系为:正前方对应的振动强度为50,正左方对应的振动强度为40,正右方对应的振动强度为70,正后方对应的振动强度为60;若环境对象所处的当前方位为正前方,则可确定第一振动编码格式中的各个振动片段内的振动强度字段的取值均为50。
[0072] 当环境对象所处的当前方位为多个侧方位中的第一侧方位或者第二侧方位时,第一振动编码格式中的各个振动片段内的振动强度字段的取值需呈逐渐增大趋势。具体的,第一振动编码格式中的各个振动片段内的振动强度字段的取值可呈非规律性的逐渐增大趋势。或者,第一振动编码格式中的各个振动片段内的振动强度字段的取值可基于一个预设差值m(m为正整数),呈规律性的逐渐增大趋势;此情况下,相邻两个振动片段内的振动强度的取值相差m。且此情况下,为了可以区分第一侧方位和第二侧方位,可针对首个振动片段内的振动强度字段设置不同的取值;如若当前方位为第一侧方位,则第一振动编码格式中的首个振动片段内的振动强度字段的取值为n,若当前方位为第二侧方位,则第一振动编码格式中的首个振动片段内的振动强度的取值为n+k,n和k均为正整数。当然,也可以是若当前方位为第一侧方位,则第一振动编码格式中的首个振动片段内的振动强度字段的取值为n+k,若当前方位为第二侧方位,则第一振动编码格式中的首个振动片段内的振动强度的取值为n,本申请实施例对此不作限定。
[0073] 当环境对象所处的当前方位为多个侧方位中的第三侧方位或者第四侧方位时,第一振动编码格式中的各个振动片段内的振动强度字段的取值需呈逐渐减小趋势。具体的,第一振动编码格式中的各个振动片段内的振动强度字段的取值可呈非规律性的逐渐减小趋势。或者,第一振动编码格式中的各个振动片段内的振动强度字段的取值可基于一个预设差值z(z为正整数),呈规律性的逐渐减小趋势;此情况下,相邻两个振动片段内的振动强度的取值相差z。且此情况下,为了可以区分第三侧方位和第四侧方位,可针对首个振动片段内的振动强度字段设置不同的取值;如若当前方位为第三侧方位,则第一振动编码格式中的首个振动片段内的振动强度字段的取值为p,若当前方位为第四侧方位,则第一振动编码格式中的首个振动片段内的振动强度的取值为p+q或p‑q,p和q均为正整数。
[0074] 又或者,为了简化计算,若第一侧方位和第四侧方位关于水平线(即主人态游戏角色的朝向相垂直的线)对称,且第二侧方位和第三侧方位关于水平线对称,则第一振动编码格式中的第r个振动片段内的振动强度字段的取值可以为S‑x。其中,r为正整数且小于等于第一振动编码格式中的振动片段的数量。S为振动强度阈值,如S=100,则第一振动编码格式中的第r个振动片段内的振动强度字段的取值可以为100‑x。x为假设环境对象位于与当前方位关于水平线对称的侧方位时,第r个振动片段内的振动强度字段的取值。也就是说,若当前方位是第三侧方位,则x便为假设环境对象位于第二侧方位时,第r个振动片段内的振动强度字段的取值,那么基于前述所提及的如何在第二侧方位下确定各个振动强度字段的取值的相关内容可知,若r=1,则x=n+k,若r>1,则x=n+k+m。同理,若当前方位是第四方位,则x便为假设环境对象位于第一侧方位时,第r个振动片段内的振动强度字段的取值,那么基于前述所提及的如何在第一侧方位下确定各个振动强度字段的取值的相关内容可知,若r=1,则x=n,若r>1,则x=n +m。
[0075] 基于上述,举例说明:设第一振动编码格式中包括4个振动片段,即包括4个振动强度字段;且设第一侧方位为左前方、第二侧方位为右前方、第三侧方位为右后方、第四侧方位为左后方。若当前方位为左前方,则第一振动编码格式中的首个振动片段内的振动强度字段的取值为n,若当前方位为右前方,则第一振动编码格式中的首个振动片段内的振动强度字段的取值为n+k,每次增加m。那么,若n的取值为20,k的取值为30,m的取值为10,则当环境对象所处的当前方位为左前方时,第一振动编码格式中的各个振动片段内的振动强度字段的取值依次为:20,30,40,50;当环境对象所处的当前方位右前方时,第一振动编码格式中的各个振动片段内的振动强度字段的取值依次为:50,60,70,80。同理,针对后方(即左后方和右后方),第r个振动强度字段的取值可以为100‑x;那么当环境对象所处的当前方位为左后方时,由于基于水平线与左后方相对称的方位为左前方,因此第一振动编码格式中的各个振动片段内的振动强度字段的取值依次为:80,70,60,50;当环境对象所处的当前方位为右后方时,由于基于水平线与右后方相对称的方位为右前方,因此第一振动编码格式中的各个振动片段内的振动强度字段的取值依次为:50,40,30,20。
[0076] 由此例子可以看出,本申请实施例可以视主人态游戏角色所处位置为原点,正左方为原点0度,正前方为90度,正右方为180度,正后方为270度,从而将主人态游戏角色所处位置周围的方位划分为一个360度的圆。并产生左前方、右前方、左后方和右后方这4个侧方位,且这4个侧方位可用不同的振动强度变化来表示,左前方和右前方均对应振动强度逐渐增强,左后方和右后方均对应振动强度逐渐减弱,这样可使得当环境对象位于这4个侧方位中的任一个侧方位时,通过不同的振动效果向用户传递环境对象所处的方位。
[0077] 值得强调的是,在其他实施例中,当第一振动编码格式包括多个振动片段时,也可从振动频率或者振动时长这一维度来区分不同的方位,其具体实施方式与上述提及的从振动强度这一维度来区分不同的方位所采用的具体实施方式类似,在此不作赘述。或者,也可以从强度时长的组合(即由振动强度和振动时长构成的组合)维度来区分不同的方位,具体的,由前述可知,主人态游戏角色所处位置可涉及4个方向,一个方向包括1个正方位和2个侧方位等3个方位,那么可通过不同的振动强度变化来表示第一方向(如左方,且采用振动强度逐渐减弱来表示左方)和第二方向(如右方,且采用振动强度逐渐增强来表示右方),通过不同的振动时长来表示第三方向(如前方,且采用第一振动时长(如100ms)表示前方)和第四方向(如后方,且采用第二振动时长(如50ms)表示后方),从而根据振动强度变化和振动时长之间的组合,便可确定出相应的方位,确定出的方位为振动强度变化表示的方向(如右方)和振动时长表示的方向(如前方)之间的相同侧方位(如右前方);此情况下,该第一振动编码格式中的各个振动片段内的振动强度字段和振动时长指示字段可以为空,且振动强度字段和振动时长指示字段的取值可以根据环境对象所处的当前方位所属的方向来确定。
[0078] 并且,无论第一振动编码格式包括一个振动片段还是多个振动片段,当从振动强度这一维度来区分不同的方位时,第一振动编码格式中的各个振动片段内的振动频率字段和振动时长指示字段的取值可以均为预设值。或者,可设定主人态游戏角色所处位置涉及的多个正方位中存在一个正方位被定义为基准正方位(如正右方),并通过振动频率来指示环境对象当前所处位置和基准正方位之间的方位偏离程度;那么此情况下,第一振动编码格式中的每个振动片段内的振动频率字段为空,其取值可以根据环境对象当前所处位置和基准正方位之间的方位偏离程度确定,且各个振动片段内的振动频率字段的取值保持相同,而振动时长指示字段的取值可以为预设值。
[0079] 可选的,第一振动编码格式中的各个振动片段内的振动频率字段的取值,需与环境对象当前所处位置和基准正方位之间的方位偏离程度成负相关。此情况下,可将多个正方位中与基准正方位(如正右方)相反的正方位(如正左方)作为参考正方位,将参考正方位(如正左方)的位置角度确定为原点0度,将基准正方位(如正右方)的位置角度确定为180度,则按照顺时针方向,从参考正方位(如正左方)到基准正方位(如正右方)所构成的位置角度范围为0‑180度,从基准正方位(如正右方)到参考正方位(如正左方)所构成的位置角度范围为180‑360度。那么,当环境对象当前所处位置的位置角度属于0‑180度时,可以基于0‑180度这一位置角度范围,采用公式1.1将环境对象当前所处位置的位置角度(采用c表示)线性映射到振动频率的取值范围(如0‑100赫兹),得到第一振动编码格式中的各个振动片段内的振动频率字段(采用f表示)的取值;当环境对象当前所处位置的位置角度属于
180‑360度时,可以基于180‑360度这一位置角度范围,采用公式1.2将环境对象当前所处位置的位置角度(采用c表示)映射到振动频率的取值范围(如0‑100赫兹),得到第一振动编码格式中的各个振动片段内的振动频率字段(采用f表示)的取值。其中,公式1.1和公式1.2可以如下所示:
[0080] 式1.1
[0081] 式1.2
[0082] 需要说明的是,公式1.1‑1.2只是示例性表征第一振动编码格式中的各个振动片段内的振动频率字段的取值的确定方式,并非穷举。例如,也可按照负相关的原则,预先设置方位偏离程度和振动频率之间的对应关系,从而使得可以根据此对应关系,将环境对象当前所处位置和基准正方位之间的方位偏离程度所对应的振动频率,确定为第一振动编码格式中的各个振动片段内的振动频率字段的取值。另外,在其他实施例中,也可以是:第一振动编码格式中的各个振动片段内的振动频率字段的取值,需与环境对象当前所处位置和基准正方位之间的方位偏离程度成正相关;除此之外,在其他实施例中,第一振动编码格式中的各个振动片段内的振动频率字段的取值也可以不相同。
[0083] 基于上述描述,以图3b所表示的各个正方位和各个侧方位,且从振动强度这一维度来区分不同的方位为例,设第一振动编码格式包括4个振动片段,且各个振动片段内的振动频率字段的取值保持相同为例,采用f表示4个振动片段内的振动频率字段,采用i1‑i4依次表示4个振动片段内的振动强度字段,且设4个振动片段内的振动时长指示字段的取值均为预设的振动时长(100毫秒),则该第一振动编码格式可以示例性地参见下述表1所示:
[0084] 表1
[0085]
[0086] 基于上述表1,示例性地:如果环境对象在主人态游戏角色的正前方,则通过第一振动编码格式所得到的振动信号可以是一个振动强度和振动频率均为中等值的短振动,如第一振动编码格式中的各个f的取值均为50,i1‑i4的取值均为50。另外需说明的是,在其他实施例中,表1也可设置为:在左方,振动强度逐渐减小(即i1‑i4的取值逐渐减小);在右方,振动强度逐渐增大(i1‑i4的取值逐渐增大)。同时方向偏离越大,振动频率越低。
[0087] (2)第二振动编码格式的具体实现如下:
[0088] 第二振动编码格式可包括至少一个振动片段,且可从振动强度这一维度来区分不同的距离值;此情况下,该第二振动编码格式中的各个振动片段内的振动强度字段可以为空,其取值可以根据环境对象的当前距离值确定,且各个振动片段内的振动强度字段的取值可保持相同,而第二振动编码格式中的各个振动片段内的振动频率字段和振动时长指示字段的取值均可以为预设值。
[0089] 可选的,第二振动编码格式中的各个振动片段内的振动强度字段的取值,需与环境对象的当前距离值成负相关。此情况下,可对环境对象的当前距离值做归一化处理,将其变为目标范围(如0‑100)的整数,且振动强度字段的取值也采用目标范围内(如0‑100)的整数值,使得距离值和振动强度字段的取值可以一一映射,从而可以根据当前距离值确定出第二振动编码格式中的各个振动片段内的振动强度字段的取值,从而生成第二振动信号。基于此,采用第二振动编码格式对当前距离值进行振动编码,得到第二振动信号的方式包括:确定振动强度字段的取值范围,以及距离的取值范围;根据距离的取值范围,将当前距离值映射到振动强度字段的取值范围内,得到映射结果;将第二振动编码格式中的各个振动片段内的振动强度字段的取值设置为映射结果,得到第二振动信号。比如,振动强度字段的取值范围是0‑100,而在某FPS游戏中,用户最大可视距离为2km(千米),即距离的取值范围为2km,则可把2km定义为振动强度字段的取值范围涉及的最大值100,从而实现对当前距离值L的映射,其映射结果为L/2000 100。
[0090] 需要说明的是,上述只是示例性表征第二编码格式中的各个振动片段内的振动强度字段的取值的确定方式,并非穷举。例如,也可按照负相关的原则,预先设置距离值和振动强度之间的对应关系,从而使得可以根据此对应关系,将环境对象的当前距离值所对应的振动强度,确定为第二编码格式中的各个振动片段内的振动强度字段的取值。另外,在其他实施例中,也可以是:第二振动编码格式中的各个振动片段内的振动强度字段的取值,需与环境对象的当前距离值成正相关;除此之外,在其他实施例中,第二振动编码格式中的各个振动片段内的振动强度字段的取值也可以不相同。并且,在其他实施例中,也可从振动频率或者振动时长这一维度来区分不同的距离值,其具体实施方式与上述提及的从振动强度这一维度来区分不同的距离值所采用的具体实施方式类似,在此不作赘述。
[0091] 基于上述描述,以从振动强度这一维度来区分不同的距离值为例,设第二振动编码格式包括4个振动片段,且各个振动片段内的振动强度字段的取值保持相同为例,采用i表示4个振动片段内的振动强度字段,且设4个振动片段内的振动频率字段的取值依次为20,40,30,20,4个振动片段内的振动时长指示字段的取值均为预设的振动时长(100毫秒),则该第二振动编码格式可以示例性地参见下述表2所示:
[0092] 表2
[0093]
[0094] S204,根据振动编码结果,控制终端中的振动组件进行振动。
[0095] 其中,终端中的振动组件是指具有振动能力的任一组件,如马达、弹片、电机,等等。由前述可知,振动编码结果可包括以下至少一项:采用第一振动编码格式对当前方位进行振动编码所得到的第一振动信号,以及采用第二振动编码格式对当前距离值进行振动编码所得到的第二振动信号。基于振动编码结果所产生的振动效果用于提示环境对象的位置信息,该位置信息包括环境对象的当前方位和当前距离值中的至少一项。具体的:
[0096] 当振动编码结果包括第一振动信号或者第二振动信号时,可控制终端中的振动组件根据第一振动信号或者第二振动信号中的各个振动片段内的各字段的取值进行振动。此情况下,基于振动编码结果所产生的振动效果所提示的位置信息包括:环境对象所处的当前方位或者当前距离值。
[0097] 当振动编码结果同时包括第一振动信号和第二振动信号时,可根据当前方位和当前距离值之间的优先级顺序,控制终端中的振动组件依次根据相应振动信号中的各个振动片段内的各字段的取值进行振动。例如当前方位的优先级高于当前距离值的优先级,则可先控制终端中的振动组件依次根据第一振动信号中的各个振动片段内的各字段的取值进行振动,再控制终端中的振动组件依次根据第二振动信号中的各个振动片段内的各字段的取值进行振动。此情况下,基于振动编码结果所产生的振动效果所提示的位置信息包括:环境对象所处的当前方位以及当前距离值。
[0098] 本申请实施例可在用户玩游戏的过程中,检测到主人态游戏角色所处位置的预设范围内存在环境对象时,采用位置维度下的振动编码格式,对该环境对象相对于主人态游戏角色的位置信息进行振动编码,从而根据振动编码结果控制终端中的振动组件进行振动,以使得用户可以根据终端基于该振动编码结果所产生的振动效果,快速准确地获取环境对象所处位置等游戏对局信息,提升游戏体验。由此可见,通过振动提醒的方式,不仅可以更加直观高效,无需用户通过耗费更多的时间听语音来获知环境对象所处位置,而且也不依赖于周边环境,使得用户在嘈杂环境中也可基于终端基于该振动编码结果所产生的振动效果来准确获知环境对象所处位置,提升游戏体验;除此之外,通过振动提醒的方式,无需播放语音,还可在一定程度上保护用户隐私等信息。
[0099] 基于上述图2所示的方法实施例,本申请实施例还提出了一种更为具体的振动处理方法;在本申请实施例中,仍以终端执行该振动处理方法为例进行阐述。请参见图4所示,该振动处理方法可包括以下步骤S401‑S407:
[0100] S401,在终端中显示游戏场景,该游戏场景中包括主人态游戏角色。
[0101] S402,当主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取环境对象相对于主人态游戏角色的位置信息。
[0102] 其中,环境对象可具有K个属性,K为正整数。可理解的是,由前述可知,环境对象可能是静态环境中的对象(如固定物体或者游戏物资),也可能是动态环境中的对象(如可移动的游戏角色);那么,随着环境对象的不同情况,其具有的K个属性也可随之不同。例如,当环境对象是固定物体(如障碍物、景物等)时,K个属性可包括但不限于:通过性属性(该属性下的属性信息可以是不可通过、可跳跃通过、可通过等)、隐蔽性属性(该属性下的属性信息可以是可隐蔽、部分隐蔽、不可隐蔽等)、类别属性(该属性下的属性信息可以是建筑物、树木、岩石、草丛、其他物体等)、相对位置属性(该属性下的属性信息可以是远离、接近、平行等)。又如,当环境对象是游戏物资时,K个属性可包括但不限于:通过性属性、隐蔽性属性、相对位置属性、类型属性(该属性下的属性信息可以是具体的物资类型,任一物资类型还可包括多个物资类别)。再如,当环境对象是可移动的游戏角色时,K个属性可包括但不限于:通过性属性、隐蔽性属性、生命属性(即血量属性,该属性下的属性信息为剩余生命值(即剩余血量值))、运动方向属性(该属性下的属性信息可以是具体的运动方向,如远离、靠近等)、运动速度属性(该属性下的属性信息可以是具体的运动速度值)、角色类型属性(该属性下的属性信息可以是具体的角色类型,如系统NPC、队友、敌人等)。
[0103] 在具体实现中,当主人态游戏角色所处位置的预设距离范围内存在环境对象时,终端可直接获取环境对象相对于主人态游戏角色的位置信息,从而执行后续步骤S403‑S404,以提示用户该环境对象的位置信息。可选的,在终端通过步骤S404提示环境对象的位置信息之前,终端还可通过不同的振动效果来提示环境对象是否对主人态游戏角色造成危险。基于此,当主人态游戏角色所处位置的预设距离范围内存在环境对象时,终端可获取环境对象的危险性信息作为目标危险性信息,该环境对象的危险性信息用于指示:环境对象是否对主人态游戏角色造成危险;然后,根据危险性信息和振动信号之间的对应关系,获取目标危险性信息所对应的振动信号,并根据该目标危险性信息所对应的振动信号,控制终端中的振动组件进行振动,以通过终端基于该目标危险性信息对应的振动信号所产生的振动效果,来提示用户该环境对象是否对主人态游戏角色造成危险。
[0104] 其中,本申请实施例可涉及如下几个危险性信息:有危险、有主动攻击性、无危险等;基于此,危险性信息和振动信号之间的对应关系可以参见下述表3所示:
[0105] 表3
[0106]
[0107] 可理解的是,上述表3只是示例性地列出了3个危险性信息,并非穷举;且上述表3也只是示例性地列出了每个危险性信息对应的振动信号,并不对此进行限定,在实际应用中,每个危险性信息对应的振动信号可根据实际需求进行设定。
[0108] 还值得强调的是,上述只是示例性的阐述了对目标危险性信息进行振动编码的一种实施方式,并非穷举。例如,在其他实施例中,也可通过设置危险性维度下的振动编码格式,从而采用该振动编码格式对目标危险性信息进行振动编码,得到相应的振动信号。其中,危险性维度下的振动编码格式的具体实现可以与参见前述提及的第一振动编码格式或者第二振动编码格式的具体实现类似,满足采用不同振动编码格式所得到的振动信号不同这一条件即可,因此本申请实施例在此不作赘述。
[0109] S403,采用位置维度下的振动编码格式,对位置信息进行振动编码,得到振动编码结果。
[0110] S404,根据振动编码结果,控制终端中的振动组件进行振动;其中,基于振动编码结果所产生的振动效果用于提示环境对象的位置信息。
[0111] 其中,步骤S403‑S404的具体实现方式,可以参见前述图2所示的方法实施例中的步骤S203‑S204的相关描述,在此不作赘述。另外,终端除了可通过振动来提示环境对象的位置信息以外,还可通过振动来提示环境对象在各个属性下的目标属性信息。并且,终端可以是先通过步骤S404来实现位置信息的提示,再通过步骤S405‑S407来实现环境对象的各个目标属性信息的提示;也可以是先通过步骤S405‑S407来实现环境对象的各个目标属性信息的提示,再通过步骤S404来实现位置信息的提示,对此不作限定。
[0112] S405,获取环境对象在各个属性下的目标属性信息。
[0113] S406,分别对环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号。
[0114] (1)当环境为固定物体时,环境对象的K个属性可包括但不限于:通过性属性、隐蔽性属性、类别属性和相对位置属性,等等。
[0115] 针对这K个属性中的任一种属性,该任一种属性下的不同属性信息可预设不同的振动信号。示例性的,通过性属性、隐蔽性属性和类别属性下所配置的各个属性信息以及每个属性信息对应的振动信号可参见下述表4所示:
[0116] 表4
[0117]
[0118] 又示例性的,相对位置属性下所配置的各个属性信息以及每个属性信息对应的振动信号可参见下述表5所示:
[0119] 表5
[0120]
[0121] 可理解的是,上述表4和表5只是示例性地列出了每个属性所涉及的多个属性信息,并非穷举;且上述表4和表5也只是示例性地列出了每个属性信息对应的振动信号,并不对此进行限定,在实际应用中,每个属性信息对应的振动信号可根据实际需求进行设定。
[0122] 基于此,在执行步骤S406的过程中,终端针对K个属性中的任一属性,可以直接根据该任一属性下的各个属性信息和振动信号之间的对应关系,获取环境对象在该任一属性下的目标属性信息所对应的振动信号。其中,环境对象在通过性属性下的目标属性信息为不可通过、可跳跃通过和可通过中的一种,环境对象在隐蔽性属性下的目标属性信息为可隐蔽、部分隐蔽和不可隐蔽中的一种,环境对象在类别属性下的目标属性信息为目标类别(如建筑物、树木、岩石、草丛或其他物体),环境对象在相对位置属性下的目标属性信息为远离、接近和平行中的一种。
[0123] 举例说明:参见图5a所示,主人态游戏角色的正前方有一棵大树51(即环境对象,类别属性下的目标属性信息为树木),足够隐身(即隐蔽性属性下的目标属性信息为可隐蔽),无法通过(即通过性属性下的目标属性信息为不可通过),那么结合前述提及的危险性提示的相关内容,以及位置信息提示的相关内容,可得到如下振动信号:
[0124] {1,[{20,30,100}]}//无危险
[0125] {4,[{50,50,100}{50,50,100}{50,50,100}{50,50,100}]}//当前方位为正前方[0126] {4,[{20,80,100}{40,80,100}{30,90,100}{20,90,100}]}//当前距离值极近[0127] {4,{20,40,50}{30,50,50}{70,70,50}{90,90,50}]}//类别为树木[0128] {4,[{30,40,50}{50,50,50}{60,60,50}{80,90,50}]}//不可通过[0129] {4,[{20,40,50}{50,50,50}{60,60,50}{80,70,50}]}//可隐蔽[0130] 基于上述第(1)点的相关内容可知,游戏中可能遇到一些固定物体,该固定物体可以是用户视野中位置固定不变的一些障碍物,如树木、建筑、岩石等,这类障碍物不会自己移动,只会随着主人态游戏角色自身的移动而发生相对位置的变化。且这类障碍物一般会有多个属性的属性信息对游戏产生影响,比如障碍物的类别属性、通过性属性、隐蔽性属性、是否可以躲避危险的属性等,本申请实施例可以设计对应的振动效果来对这些属性的属性信息进行描述,使得当主人态游戏角色接近这类障碍物时,用户可直接通过振动获取这些属性信息,从而感知到相应障碍物,实现对地图(游戏场景)中的固定物体进行感知。
[0131] (2)当环境对象为游戏物资时,环境对象的K个属性可包括但不限于:通过性属性、隐蔽性属性、相对位置属性以及类型属性,等等。
[0132] ①针对K个属性中的通过性属性、隐蔽性属性和相对位置属性而言,终端对环境对象在这些属性下的目标属性信息进行振动编码,得到相应振动信号的实施方式,与前述提及的环境对象为固定物体时所涉及的振动编码方式相同,在此不作赘述。
[0133] ②针对K个属性中的类型属性,环境对象在类型属性下的目标属性信息为目标物资类型,任一物资类型可包括多个物资类别,且一个物资类别对应一个振动信号。其中,任一物资类别对应的振动信号可包括至少一个振动片段,且任一物资类别对应的振动信号中的各个振动片段内的振动频率字段的取值,可用于指示相应物资类别所属的物资类型,任一物资类别对应的振动信号中的各个振动片段内的振动强度字段的取值用于指示相应物资类别。
[0134] 例如,假设类型属性下具有交通工具、子弹和头盔等三个物资类型,那么这三个物资类型所包括的物资类别以及每个物资类别对应的振动信号可参见下述表6所示:
[0135] 表6
[0136]
[0137] 又如,假设类型属性下具有防弹衣这一个物资类型,那么这一个物资类型包括的物资类别以及每个物资类别对应的振动信号可参见下述表7所示:
[0138] 表7
[0139]
[0140] 又如,假设类型属性下具有背包、医疗物资和瞄准镜等三个物资类型,那么这三个物资类型中的每个物资类别对应的振动信号可参见下述表8所示:
[0141] 表8
[0142]
[0143] 可理解的是,上述表6、表7和表8只是示例性地列出了多个物资类型以及每个物资类型所包括的多个物资类别,并非穷举;且上述表6、表7和表8也只是示例性地列出了每个物资类别对应的振动信号,并不对此进行限定,在实际应用中,每个物资类别对应的振动信号可根据实际需求进行设定。
[0144] 基于此,在执行步骤S406的过程中,终端针对K个属性中的类型属性,可以从环境对象在该类型属性下的目标物资类型包括的多个物资类别中,确定出环境对象所属的物资类别;从而可以根据物资类别和振动信号之间的对应关系,将环境对象所属的物资类别对应的振动信号,作为环境对象的目标物资类型对应的振动信号。例如基于上述表6,目标物资类型为交通工具,环境对象所属的物资类别为汽车,则终端可确定环境对象的目标物资类型对应的振动信号为{4,[{30,50,50}{40,50,50}{20,50,50}{50,50,50}]};又如基于上述表6,目标物资类型为瞄准镜,环境对象所属的物资类别为八倍镜,则终端可确定环境对象的目标物资类型对应的振动信号为{4,[{60,40,50}{70,60,50}{80,80,50}{90,90,50}]}。
[0145] 可理解的是,在实际应用中,环境对象的数量可以是多个,即主人态游戏角色可同时遇到多个游戏物资;此情况下,终端可分别对每个环境对象(即游戏物资)在类型属性下的目标物资类型进行振动编码,得到每个环境对象的目标物资类型对应的振动信号,从而依次根据各个振动信号控制终端内的振动组件进行振动。举例说明:参见图5b所示,主人态游戏角色遇到了三组游戏物资,分别是普通瞄准镜52以及中口径子弹53,则依次触发的对应振动信号如下:
[0146] {4,[{60,30,50}{70,50,50}{80,70,50}{90,80,50}]}//普通瞄准镜[0147] {1,[{50,40,200}]}//中口径子弹
[0148] 基于上述第(2)点的相关内容可知,游戏中可能遇到一些游戏物资,如子弹、防弹衣、交通工具、医疗物资等;针对这些游戏物资,本申请实施例除了可按照前述内容通过振动来描述方位、距离等位置信息,以及通过振动描述游戏物资在通过性属性、隐蔽性属性和相对位置属性等属性下的属性信息之外,还可设计相对应的振动效果来描述游戏物资的物资类型和物资类别,使得当主人态游戏角色接近这些游戏物资时,能够直接通过振动效果获取这些游戏物资的物资类型和物资类别,实现对游戏中的固定游戏物资的感知,以便于用户可以快速做出是否需要捡起游戏物资或忽略游戏物资的决策。
[0149] (3)当环境对象为可移动的游戏角色时,环境对象的K个属性可包括但不限于:类别属性、生命属性(即血量属性)、运动方向属性以及运动速度属性,等等。
[0150] ①针对K个属性中的类别属性,该类别属性可具体如下属性信息:系统NPC、敌人和队友;那么相应的,环境对象在类别属性下的目标属性信息可以是:系统NPC、队友或者敌人。进一步的,该类别属性下的不同属性信息可预设不同的振动信号,例如参见下述表9所示:
[0151] 表9
[0152]
[0153] 基于此,在执行步骤S406的过程中,终端针对K个属性中的类别属性,可以直接根据该类别属性下的各个属性信息和振动信号之间的对应关系,获取环境对象在该类别属性下的目标属性信息所对应的振动信号。
[0154] ②针对K个属性中的生命属性(即血量属性),环境对象在该生命属性下的目标属性信息为环境对象的剩余生命值(即剩余血量)。生命属性可配置有一个相应的第三振动编码格式,该第三振动编码格式中包括至少一个振动片段。其中,本申请实施例可从振动强度这一维度来区分不同的剩余生命值;此情况下,该第三振动编码格式中的每个振动片段内的振动强度字段可以为空,且每个振动片段内的振动强度字段的取值保持一致,且每个振动片段内的振动强度字段的取值根据环境对象的剩余生命值确定。基于此,以第三振动编码格式包括4个振动片段为例,第三振动编码格式可以示例性地参见下述表10所示:
[0155] 表10
[0156]
[0157] 需要说明的是,上述表10只是示例性地列举了生命属性下的几种属性信息,并非穷举;且上述表10也只是示例性地表示了第三振动编码格式,并不对此进行限定,在实际应用中,第三振动编码格式中的振动片段的数量以及每个振动片段内的振动频率字段的取值和振动时长指示字段的取值,均可根据实际的业务需求进行设定。
[0158] 基于此,在执行步骤S406的过程中,终端针对K个属性中的生命属性,可确定环境对象的生命属性所对应的第三振动编码格式,并根据环境对象的剩余生命值,设置第三振动编码格式中的各个振动片段内的振动强度字段的取值,得到环境对象的剩余生命值对应的振动信号。其中,第三振动编码格式中的各个振动片段内的振动强度字段的取值,需与环境对象的剩余生命值成正相关。
[0159] 此情况下,终端在根据环境对象的剩余生命值设置第三振动编码格式中的各个振动片段内的振动强度字段的取值时,可以确定生命值的取值范围,以及振动强度字段的取值范围,从而可以根据生命值的取值范围,将环境对象的剩余生命值映射到振动强度字段的取值范围内,得到映射值,进而可以将第三振动编码格式中的各个振动片段内的振动强度字段的取值设置为该映射值。例如,设采用a表示映射值,采用b表示环境对象的剩余生命值,采用d表示生命值的取值范围的最大取值,且振动强度字段的取值范围的最大值为100,则a=b/d 100。
[0160] 可理解的是,当生命值(即血量)表示为0‑100的整数值时,若振动强度字段的取值范围也是0‑100,则可以直接将环境对象的剩余生命值映射到振动强度字段的取值上。其中,振动强度字段的取值为100时,表示满血量(即剩余生命值为全部生命值),振动强度字段的取值为0时,表示无血量(即剩余生命值为0)。
[0161] 或者,本申请实施例也可按照正相关的原则,预先设置剩余生命值和振动强度之间的对应关系,从而使得终端在根据环境对象的剩余生命值设置第三振动编码格式中的各个振动片段内的振动强度字段的取值时,可以根据剩余生命值和振动强度之间的对应关系,确定与环境对象的剩余生命值对应的振动强度,从而将第三振动编码格式中的各个振动片段内的振动强度字段的取值,设置为确定出的振动强度。
[0162] 基于上述描述,需说明的是,在其他实施例中,也可以是:第三振动编码格式中的各个振动片段内的振动强度字段的取值,需与环境对象的剩余生命值成负相关;除此之外,在其他实施例中,第三振动编码格式中的各个振动片段内的振动强度字段的取值也可以不相同。并且,在其他实施例中,还可从振动频率或者振动时长这一维度来区分不同的剩余生命值,其具体实现方式与从振动强度这一维度区分不同的剩余生命值类似,在此不作赘述。
[0163] ③针对K个属性中的运动方向属性,该运动方向属性可具体如下属性信息:第一运动方向和第二运动方向;该第一运动方向是指远离主人态游戏角色的方向,而第二运动方向是指靠近主人态游戏角色的方向。那么相应的,环境对象在该运动方向属性下的目标属性信息为目标运动方向,且该目标运动方向为第一运动方向或者第二运动方向。
[0164] 进一步的,该运动方向属性下的不同运动方向可对应不同的振动编码格式;且本申请实施例可从振动强度这一维度来区分环境对象所处的方向,具体可通过不同的振动强度变化来指示环境对象所处的方向。那么,任一运动方向对应的振动编码格式中包括多个振动片段,且该多个振动片段中的每个振动片段内的振动强度字段可以为空,且每个振动片段内的振动强度字段的取值根据环境对象相较于主人态游戏角色的方向信息确定。基于此,以任一运动方向对应的振动编码格式包括4个振动片段为例,不同运动方向对应的振动编码格式可以示例性地参见下述表11所示:
[0165] 表11
[0166]
[0167] 需要说明的是,上述表11只是示例性地列举了运动方向属性下的各个属性信息对应的振动编码格式,并不对此进行限定,在实际应用中,运动方向属性下的各个属性信息对应的振动编码格式中的振动片段的数量以及每个振动片段内的振动频率字段的取值和振动时长指示字段的取值,均可根据实际需求设定。
[0168] 基于此,在执行步骤S406的过程中,终端针对K个属性中的运动方向属性,可获取环境对象的目标运动方向对应的振动编码格式,作为目标振动编码格式;并根据环境对象相对于主人态游戏角色的方向信息,设置目标振动编码格式中的各个振动片段内的振动强度字段的取值,得到环境对象的目标运动方向对应的振动信号。其中,当环境对象位于主人态游戏角色的第一方向时,目标振动编码格式中的各个振动片段内的振动强度字段的取值呈先大后小的趋势;当环境对象位于主人态游戏角色的第二方向时,目标振动编码格式中的各个振动片段内的振动强度字段的取值需呈先大后小的趋势。
[0169] 基于上述描述,需说明的是,在其他实施例中,也可以是:在第二方向下,目标振动编码格式中的各个振动片段内的振动强度字段的取值呈先大后小的趋势;在第一方向下,目标振动编码格式中的各个振动片段内的振动强度字段的取值需呈先大后小的趋势。或者,在第一方向下,目标振动编码格式中的各个振动片段内的振动强度字段的取值呈逐渐减小的趋势;在第二方向下,目标振动编码格式中的各个振动片段内的振动强度字段的取值呈逐渐增大的趋势等。除此之外,在其他实施例中,还可从振动频率或者振动时长这一维度来区分环境对象所处的方向,其具体实现方式与从振动强度这一维度区分环境对象所处的方向的方式类似,在此不作赘述。
[0170] ④针对K个属性中的运动速度属性,环境对象在该运动速度属性下的目标属性信息为环境对象的目标运动速度值。运动速度属性可配置有一个相应的第四振动编码格式,该第四振动编码格式中包括至少一个振动片段。其中,本申请实施例可从振动强度这一维度来区分不同的运动速度值;此情况下,该第四振动编码格式中的每个振动片段内的振动强度字段可以为空,且每个振动片段内的振动强度字段的取值根据环境对象的目标运动速度值确定。基于此,以第四振动编码格式包括4个振动片段为例,第三振动编码格式可以示例性地参见下述表12所示:
[0171] 表12
[0172]
[0173] 需要说明的是,上述表12只是示例性地表示了第四振动编码格式,并不对此进行限定,在实际应用中,第四振动编码格式中的振动片段的数量以及每个振动片段内的振动频率字段的取值和振动时长指示字段的取值,均可根据实际的业务需求进行设定。
[0174] 基于此,在执行步骤S406的过程中,终端针对K个属性中的运动速度属性,可获取运动速度属性对应的第四振动编码格式,并根据环境对象的目标运动速度值,设置第四振动编码格式中的各个振动片段中的振动强度字段的取值,得到环境对象的目标运动速度值对应的振动信号。其中,第四振动编码格式中的各个振动片段中的振动强度字段的取值需与目标运动速度值成正相关;本申请实施例对如何根据目标运动速度值设置第四振动编码格式中的各个振动片段内的振动强度字段的取值,不作限定,例如其具体方式可以参见前述如何设置第三振动编码格式中的振动强度字段的取值的相关描述。
[0175] 基于上述描述,需说明的是,在其他实施例中,也可以是:第四振动编码格式中的各个振动片段内的振动强度字段的取值,需与环境对象的目标运动速度值成负相关;除此之外,在其他实施例中,第四振动编码格式中的各个振动片段内的振动强度字段的取值也可以不相同。并且,在其他实施例中,还可从振动频率或者振动时长这一维度来区分不同的运动速度值,其具体实现方式与从振动强度这一维度区分不同的运动速度值类似,在此不作赘述。
[0176] 举例说明:参见图5c所示,主人态游戏角色的右前方有一个敌人54(即环境对象,类别属性下的目标属性信息为敌人),其正在快速朝自己(即主人态游戏角色)前进,那么结合前述提及的危险性提示的相关内容,以及位置信息提示的相关内容,可得到如下振动信号:
[0177] [{40,90,30}{60,50,50}{70,60,80}{80,90,90}]}//有主动攻击性[0178] {4,[{90,20,100}{90,40,100}{90,60,100}{90,80,100}]}//振动频率90代表方向偏离程度较小,振动强度逐渐增强代表在右方,振动间隔100ms代表在前方,因此整个振动代表主人态角色的右前方有一个游戏对象
[0179] {4,[{20,50,100}{40,50,100}{30,50,100}{20,50,100}]}//代表距离为中等距离
[0180] {4,[60,50,100}{50,50,100}{40,50,100}{30,50,100}]}//运动方向:径直靠近自己
[0181] {4,[{15,80,100}{25,80,100}{35,80,100}{45,80,100}]}//运动速度:快速[0182] 基于上述第(3)点的相关内容可知,游戏中可能遇到一些其他可移动的游戏角色;针对这些游戏角色,本申请实施例除了可按照前述内容通过振动来描述方位、距离等位置信息,以及通过振动描述游戏角色的危险性信息之外,还可设计相对应的振动效果来描述游戏角色本身的运动速度(移动速度)和运动方向,使得当主人态游戏角色接近这些游戏角色时,能够直接通过振动效果获取这些游戏角色的运动速度和运动方向等信息,实现对游戏中的可移动对象的感知,以便于用户快速做出判断。
[0183] S407,依次根据每个目标属性信息对应的振动信号,控制终端中的振动组件进行振动。
[0184] 在具体实现中,终端可获取预设的K个属性之间的提示顺序,作为环境对象在K个属性下的各个目标属性信息之间的提示顺序,从而按照该提示顺序依次根据每个目标属性信息对应的振动信号,控制终端中的振动组件进行振动,以通过终端基于任一目标属性信息对应的振动信号所产生的振动效果,提示环境对象的相应目标属性信息。
[0185] 在一种可选的实施方式中,若环境对象为游戏物资,则终端在执行步骤S407后,还可等待主人态游戏角色对应的游戏用户对环境对象执行捡拾操作;在检测到针对环境对象的捡拾操作后,将捡拾操作的操作结果(捡拾成功的结果或捡拾失败的结果)作为第一操作结果;并根据捡拾场景下的操作结果和振动信号之间的对应关系,确定第一操作结果对应的振动信号,从而根据第一操作结果的振动信号,控制终端中的振动组件进行振动,以通过终端基于该第一操作结果的振动信号所产生的振动效果,提示游戏用户该游戏物资是否被成功捡拾。
[0186] 进一步可选的,考虑到可能存在因操作环境发生变化而导致游戏物资不可被执行捡拾操作的情况,那么为了避免游戏用户执行无用的捡拾操作,终端可先检测环境对象的可捡拾性,所谓的可捡拾性是指:支持主人态游戏角色对应的游戏用户执行捡拾操作的特性;若检测到可捡拾性,则触发执行步骤S405,以通过步骤S405‑S407告知游戏用户该环境对象(即游戏物资)的目标属性信息,以便于游戏用户决策是否捡拾该环境对象;若未检测到可捡拾性,则可获取用于指示环境对象未支持捡拾操作的振动信号,并根据获取到的振动信号控制终端中的振动组件进行振动,以通过终端基于该获取到的振动信号所产生的振动效果,提示用户该环境对象为不可捡拾的游戏物资。
[0187] 需要说明的是,上述提及的捡拾场景下的各个操作结果对应的振动信号,以及用于指示环境对象未支持捡拾操作的振动信号,均可根据实际的业务需求进行设定。示例性地,这些振动信号可以参见下述表13所示:
[0188] 表13
[0189]
[0190] 综上可知,本申请实施例可支持:当游戏用户遇到游戏物资需要进行捡拾操作时,可以通过振动反馈告知游戏用户操作结果,如成功、失败(背包满)、不可操作等等。示例性的,参见图5d所示,针对游戏物资的振动提示逻辑大致包括以下几个步骤:
[0191] 1、游戏用户遇到游戏中的游戏物资时,振动该游戏物资的当前方位和当前距离值等位置信息;
[0192] 2、自动判断游戏物资是否可操作,即是否支持游戏用户执行捡拾操作;
[0193] 3、若可操作,则确定游戏物资在K个属性下所具有的目标属性信息,并振动相关的目标属性信息,即针对游戏用户可以操作的游戏物资,通过前述振动编码规则,告知游戏用户该游戏物资的相关属性信息,如是交通工具或子弹等;
[0194] 4、等待游戏用户操作,即告知游戏用户其遇见的游戏物资的相关属性信息后,等待游戏用户的捡拾操作;
[0195] 5、反馈操作结果,即在游戏用户完成捡拾操作后,可通过振动反馈游戏用户其执行的捡拾操作的操作结果,如捡拾成功、捡拾失败等;
[0196] 6、若不可操作,即针对游戏用户不可操作的游戏物资,则直接振动编码告知游戏用户其遇见的游戏物资不可操作。
[0197] 另一种可选的实施方式中,若环境对象为可移动的游戏角色,则考虑到主人态游戏角色可能需要攻击该环境对象,那么为了保证攻击的及时性,终端可先检测针对环境对象的攻击需求;若未检测到该攻击需求,则触发执行步骤S405,以通过步骤S405‑S407告知游戏用户该环境对象(即可移动的游戏角色)的目标属性信息,以便于游戏用户获知该环境对象的目标属性信息;若检测到攻击需求,则可通过振动反馈引导游戏用户执行相应的攻击操作。以FPS游戏为例,终端可获取瞄准指引振动信号,该瞄准指引振动信号是指用于指示瞄准环境对象的振动信号;并根据瞄准指引振动信号控制终端中的振动组件进行振动,以通过终端基于该瞄准指引振动信号所产生的振动效果引导用户瞄准环境对象。
[0198] 进一步的,在环境对象被瞄准后,终端可根据用于指示已瞄准的振动信号,控制终端中的振动组件进行振动,以通过终端基于该用于指示已瞄准的振动信号所产生的振动效果来提示游戏用户该环境对象已被瞄准,使得游戏用户执行下一步射击操作。相应的,终端可等待主人态游戏角色对应的游戏用户对环境对象执行射击操作;并在检测到针对环境对象的射击操作后,将射击操作的操作结果(射击成功(即正常开火)或射击失败(即开火失败))作为第二操作结果;从而根据射击场景下的操作结果和振动信号之间的对应关系,确定第二操作结果对应的振动信号,进而根据第二操作结果的振动信号,控制终端中的振动组件进行振动,以通过终端基于该第二操作结果的振动信号所产生的振动效果,提示游戏用户是否成功执行射击操作。
[0199] 可选的,本申请实施例还可设计相应振动效果来对游戏用户所射击的环境对象(即可移动的游戏角色)的角色状态进行状态反馈,该环境对象的角色状态可以是以下任一种角色状态:击中状态、击倒状态和未击中状态;不同角色状态可预设有不同的振动信号,那么终端在检测到针对环境对象的射击操作后,可获取环境对象的角色状态所对应的振动信号,并根据该振动信号控制终端中的振动组件进行振动,以通过终端基于该振动信号所产生的振动效果,提示游戏用户该环境对象是否被击中或击倒。
[0200] 可选的,本申请实施例还可设计相应振动效果来对主人态游戏角色的工具状态进行状态反馈。例如针对FPS游戏,若检测到主人态游戏角色所携带的工具匣(如弹匣)中的射击工具(如子弹)的数量小于数量阈值,则可获取状态反馈振动信号,该状态反馈振动信号是指用于提示更换工具匣的振动信号,并根据该状态反馈信号控制终端中的振动组件进行振动,以通过终端基于该状态反馈振动信号提示游戏用户更换工具匣。
[0201] 可选的,本申请实施例还可设计相应振动效果来对主人态游戏角色的角色状态进行状态反馈。例如针对FPS游戏,若主人态游戏角色被击中,则可确定该主人态游戏角色的被击状态(一种角色状态);其中,主人态游戏角色的被击状态包括:被击倒状态或被击中状态。然后,可获取主人态游戏角色的被击状态所对应的振动信号,从而根据获取到的振动信号控制终端中的振动组件进行振动。
[0202] 需要说明的是,上述提及的攻击场景下的各个振动信号,如各个操作结果对应的振动信号,瞄准指引振动信号(即用于指示瞄准环境对象的振动信号),用于指示已瞄准的振动信号,状态反馈振动信号以及不同被击状态对应的振动信号等,均可根据实际的业务需求进行设定。示例性地,这些振动信号可以参见下述表14所示:
[0203] 表14
[0204]
[0205] 综上可知,本申请实施例可支持:当游戏用户遇到其他可移动的游戏角色时,可以通过振动反馈来引导用户瞄准、开火,然后把开火结果反馈用户等。示例性的,参见图5e所示,针对可移动的游戏角色的振动提示逻辑大致包括以下几个步骤:
[0206] 1、游戏用户遇到游戏中的其他可移动的游戏角色,振动对方(即可移动的游戏角色)的当前方位和当前距离值等位置信息;
[0207] 2、自动判断是否需要攻击对方,然后引导游戏用户走不同的操作流程;
[0208] 3、若需攻击,则引导游戏用户进行瞄准;即通过上述的振动编码,引导游戏用户的瞄准镜上、下、左、右移动从而准确瞄准对方;
[0209] 4、等待游戏用户射击,即当游戏用户完成瞄准后,通过振动告知用户已瞄准,并等待用户开火;
[0210] 5、用户射击,反馈射击结果,即通过前述振动编码告知用户开火后的状态,如开为成功、失败、是否击中、击倒用户等;
[0211] 6、若无需攻击,则通过前述振动编码告知游戏用户该可移动的游戏角色的相关属性信息。
[0212] 例如参见前述图5c所示:主人态游戏角色和敌人遭遇,这时可引导游戏用户的瞄准镜右移以瞄准敌人,此时触发的振动信号为:{1,[{20,90,50}]}(即右移对应的振动信号)。在游戏用户瞄准并射击后,反馈射击效果;具体的,若假设敌人没有躲开,且被击中和击倒,同时自己也被敌人击中,则触发的振动信号依次为:{1,[{60,90,200}]}(即用于指示对方被击倒的振动信号),以及{1,[{40,80,200}]}(即用于指示自己对敌人击中的振动信号)。
[0213] 另一种可选的实施方式中,考虑到在游戏中,到达固定地点,与队友汇合等,都涉及到主人态游戏角色移动的导航,具体操作涉及到左转、右转、调头、直行、绕开障碍物等移动动作。基于此,本申请实施例还可针对不同的移动动作设置不同的振动信号,来对主人态游戏角色进行导航的操作反馈。基于此,当需移动主人态游戏角色时,确定主人态游戏角色的移动路径,并根据移动路径确定主人态游戏角色需执行的移动动作;然后对主人态游戏角色的移动动作进行振动编码,得到目标振动信号,从而根据该目标振动信号控制终端中的振动组件进行振动,以通过终端基于该目标振动信号所产生的振动效果,引导游戏用户控制主人态角色执行相应的移动操作。
[0214] 其中,对主人态游戏角色的移动动作进行振动编码,得到目标振动信号的方式可以是:根据移动动作和振动信号之间的对应关系,获取与主人态游戏角色的移动动作所对应的振动信号,作为目标振动信号。其中,每个移动动作所对应的振动信号可根据实际的业务需求进行设定,对此不作限定;示例性地,不同移动动作对应的振动信号可参见下述表15所示:
[0215] 表15
[0216]
[0217] 例如参见图5f所示:当主人态游戏角色要进入安全区时,需要根据小地图(如图5f中55标记得到圆圈)指引游戏用户控制主人态游戏角色进行前进,此时主人态游戏角色的前进方向与实际方向有偏差,则游戏用户需要控制主人态游戏角色向右小角度转向,则相应的振动信号为{1,[{20,90,50}]}(即右转对应的振动信号)。当主人态游戏角色调整方向后来到正常的方向时,可通过振动提醒游戏用户控制主人态游戏角色前行,此时的振动信号为{1,[{50,30,50}]}(即直行对应的振动信号)。
[0218] 本申请实施例可以使得用户玩游戏过程中,不受外界环境的影响,通过振动直观地获取游戏内环境信息,辅助游戏操作及反馈,实现无障碍游戏体验。并且,针对FPS游戏,可通过对用户在FPS游戏中的基本场景和常用操作反馈设计一套完整的振动解决方案,提升用户的游戏体验;其中,该振动解决方案的详细功能设计如下:①环境感知,静态环境如各类障碍物、游戏中的各类景物等;动态环境如移动中的队友、敌人、各类NPC等。②操作指引,用户可操控的各类游戏对象,如物资、交通工具、子弹等;引导用户完成瞄准或者导航到特定地点,如某个交通工具、或者和队友约定的集合地点等。③操作反馈,射击后的效果反馈、自己被击中的反馈等。可见,本申请实施例可通过触觉反馈技术为用户在FPS类游戏的操作及周边环境变化提供有效的反馈信息,如障碍物感知(即通过振动编码,让用户能够准确识别障碍物)、环境感知(即接近队友、交通工具、补给、敌人时,通过振动效果反馈方向、距离)、操作辅助(即在瞄准敌人、行走时,通过振动指引用户准确地对应相关的方向)。
[0219] 可以理解的是,在上述图2和图4所示的振动处理方法实施例的具体实施方式中,涉及到用户信息等相关的数据(如用户执行的任一操作),当以上方法实施例运用到具体产品或技术中时,这些相关数据是在获得用户许可或者同意的情况下收集的,且相关数据的收集、使用和处理遵守相关地区的相关法律法规和标准。
[0220] 基于上述振动处理方法实施例的描述,本申请实施例还公开了一种振动处理装置;所述振动处理装置可以是运行于计算机设备中的一个计算机程序(包括一条或多条指令),且该振动处理装置可以执行图2或图4所示的方法流程中的各个步骤。请参见图6,所述振动处理装置可以运行如下单元:
[0221] 显示单元601,用于在终端中显示游戏场景,所述游戏场景中包括主人态游戏角色;
[0222] 处理单元602,用于当所述主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取所述环境对象相对于所述主人态游戏角色的位置信息;
[0223] 所述处理单元602,还用于采用位置维度下的振动编码格式,对所述位置信息进行振动编码,得到振动编码结果;
[0224] 所述处理单元602,还用于根据所述振动编码结果,控制所述终端中的振动组件进行振动;其中,基于所述振动编码结果所产生的振动效果用于提示所述环境对象的位置信息。
[0225] 在一种实施方式中,在根据所述振动编码结果,控制所述终端中的振动组件进行振动之前,所述处理单元602还可用于:
[0226] 获取所述环境对象的危险性信息作为目标危险性信息,所述环境对象的危险性信息用于指示:所述环境对象是否对所述主人态游戏角色造成危险;
[0227] 根据危险性信息和振动信号之间的对应关系,获取所述目标危险性信息所对应的振动信号;
[0228] 根据所述目标危险性信息所对应的振动信号,控制所述终端中的振动组件进行振动。
[0229] 另一种实施方式中,所述环境对象具有K个属性,K为正整数;在根据振动编码结果,控制所述终端中的振动组件进行振动之后,所述处理单元602还可用于:
[0230] 获取所述环境对象在各个属性下的目标属性信息;
[0231] 分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号;
[0232] 依次根据所述每个目标属性信息对应的振动信号,控制所述终端中的振动组件进行振动。
[0233] 另一种实施方式中,所述环境对象为游戏物资;所述 K个属性包括类型属性,所述环境对象在所述类型属性下的目标属性信息为目标物资类型,任一物资类型包括多个物资类别,一个物资类别对应一个振动信号;
[0234] 任一物资类别对应的振动信号包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;
[0235] 其中,任一物资类别对应的振动信号中的各个振动片段内的振动频率字段的取值,用于指示相应物资类别所属的物资类型,且任一物资类别对应的振动信号中的各个振动片段内的振动强度字段的取值用于指示相应物资类别;
[0236] 相应的,处理单元602在用于分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号时,可具体用于:
[0237] 从所述环境对象在所述类型属性下的目标物资类型包括的多个物资类别中,确定出所述环境对象所属的物资类别;
[0238] 根据物资类别和振动信号之间的对应关系,将所述环境对象所属的物资类别对应的振动信号,作为所述环境对象的目标物资类型对应的振动信号。
[0239] 另一种实施方式中,所述环境对象为游戏物资;相应的,处理单元602还可用于:
[0240] 检测所述环境对象的可捡拾性,所述可捡拾性是指:支持所述主人态游戏角色对应的游戏用户执行捡拾操作的特性;
[0241] 若检测到所述可捡拾性,则触发执行所述获取所述环境对象在各个属性下的目标属性信息的步骤;
[0242] 若未检测到所述可捡拾性,则获取用于指示所述环境对象未支持捡拾操作的振动信号,并根据获取到的振动信号控制所述终端中的振动组件进行振动。
[0243] 另一种实施方式中,所述环境对象为游戏物资;相应的,在依次根据所述每个目标属性信息对应的振动信号,控制所述终端中的振动组件进行振动之后,处理单元602还可用于:
[0244] 等待所述主人态游戏角色对应的游戏用户对所述环境对象执行捡拾操作;
[0245] 在检测到针对所述环境对象的捡拾操作后,将所述捡拾操作的操作结果作为第一操作结果;
[0246] 根据捡拾场景下的操作结果和振动信号之间的对应关系,确定所述第一操作结果对应的振动信号;
[0247] 根据所述第一操作结果的振动信号,控制所述终端中的振动组件进行振动。
[0248] 另一种实施方式中,所述环境对象为可移动的游戏角色;所述 K个属性包括生命属性,所述环境对象在所述生命属性下的目标属性信息为所述环境对象的剩余生命值;
[0249] 相应的,处理单元602在用于分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号时,可具体用于:
[0250] 确定所述环境对象的生命属性所对应的第三振动编码格式,所述第三振动编码格式中包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,所述第三振动编码格式中的每个振动片段内的振动强度字段为空;
[0251] 根据所述环境对象的剩余生命值,设置所述第三振动编码格式中的各个振动片段内的振动强度字段的取值,得到所述环境对象的剩余生命值对应的振动信号;
[0252] 其中,所述第三振动编码格式中的各个振动片段内的振动强度字段的取值,需与所述环境对象的剩余生命值成正相关。
[0253] 另一种实施方式中,所述环境对象为可移动的游戏角色;所述K个属性包括运动方向属性,所述环境对象在所述运动方向属性下的目标属性信息为目标运动方向,所述目标运动方向为第一运动方向或者第二运动方向;所述第一运动方向是指远离所述主人态游戏角色的方向,所述第二运动方向是指靠近所述主人态游戏角色的方向;
[0254] 不同运动方向对应不同的振动编码格式,任一运动方向对应的振动编码格式中包括多个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,振动强度字段为空;
[0255] 相应的,处理单元602在用于分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号时,可具体用于:
[0256] 获取所述环境对象的目标运动方向对应的振动编码格式,作为目标振动编码格式;
[0257] 根据所述环境对象相对于所述主人态游戏角色的方向信息,设置所述目标振动编码格式中的各个振动片段内的振动强度字段的取值,得到所述环境对象的目标运动方向对应的振动信号;
[0258] 其中,当所述环境对象位于所述主人态游戏角色的第一方向时,所述目标振动编码格式中的各个振动片段内的振动强度字段的取值呈先大后小的趋势;当所述环境对象位于所述主人态游戏角色的第二方向时,所述目标振动编码格式中的各个振动片段内的振动强度字段的取值需呈先大后小的趋势。
[0259] 另一种实施方式中,所述环境对象为可移动的游戏角色;所述K个属性包括运动速度属性,所述环境对象在所述运动速度属性下的目标属性值为目标运动速度值;
[0260] 相应的,处理单元602在用于分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号时,可具体用于:
[0261] 获取所述运动速度属性对应的第四振动编码格式,所述第四振动编码格式中包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,振动强度字段为空;
[0262] 根据所述环境对象的目标运动速度值,设置所述第四振动编码格式中的各个振动片段中的振动强度字段的取值,得到所述环境对象的目标运动速度值对应的振动信号;其中,所述第四振动编码格式中的各个振动片段中的振动强度字段的取值需与所述目标运动速度值成正相关。
[0263] 另一种实施方式中,所述环境对象为可移动的游戏角色;相应的,处理单元602还可用于:
[0264] 检测针对所述环境对象的攻击需求;
[0265] 若未检测到所述攻击需求,则触发执行所述获取所述环境对象在各个属性下的目标属性信息的步骤;
[0266] 若检测到所述攻击需求,则获取瞄准指引振动信号,所述瞄准指引振动信号是指用于指示瞄准所述环境对象的振动信号;并根据所述瞄准指引振动信号控制所述终端中的振动组件进行振动。
[0267] 另一种实施方式中,在根据所述瞄准指引振动信号控制所述终端中的振动组件进行振动之后,处理单元602还可用于:
[0268] 在所述环境对象被瞄准后,根据用于指示已瞄准的振动信号,控制所述终端中的振动组件进行振动;
[0269] 等待所述主人态游戏角色对应的游戏用户对所述环境对象执行射击操作;
[0270] 在检测到针对所述环境对象的射击操作后,将所述射击操作的操作结果作为第二操作结果;
[0271] 根据射击场景下的操作结果和振动信号之间的对应关系,确定所述第二操作结果对应的振动信号;
[0272] 根据所述第二操作结果的振动信号,控制所述终端中的振动组件进行振动。
[0273] 另一种实施方式中,处理单元602还可用于:
[0274] 若检测到所述主人态游戏角色所携带的工具匣中的射击工具的数量小于数量阈值,则获取状态反馈振动信号,所述状态反馈振动信号是指用于提示更换所述工具匣的振动信号;
[0275] 根据所述状态反馈信号控制所述终端中的振动组件进行振动。
[0276] 另一种实施方式中,处理单元602还可用于:
[0277] 若所述主人态游戏角色被击中,则确定所述主人态游戏角色的被击状态,所述主人态游戏角色的被击状态包括:被击倒状态或被击中状态;
[0278] 获取所述主人态游戏角色的被击状态所对应的振动信号,并根据获取到的振动信号控制所述终端中的振动组件进行振动。
[0279] 另一种实施方式中,处理单元602还可用于:
[0280] 当需移动所述主人态游戏角色时,确定所述主人态游戏角色的移动路径,并根据所述移动路径确定所述主人态游戏角色需执行的移动动作;
[0281] 对所述主人态游戏角色需执行的移动动作进行振动编码,得到目标振动信号;以及,根据所述目标振动信号控制所述终端中的振动组件进行振动。
[0282] 根据本申请的另一个实施例,图6所示的振动处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于振动处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0283] 根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图4中所示的相应方法所涉及的各步骤的计算机程序(包括一条或多条指令),来构造如图6中所示的振动处理装置设备,以及来实现本申请实施例的振动处理方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
[0284] 本申请实施例可在用户玩游戏的过程中,检测到主人态游戏角色所处位置的预设范围内存在环境对象时,采用位置维度下的振动编码格式,对该环境对象相对于主人态游戏角色的位置信息进行振动编码,从而根据振动编码结果控制终端中的振动组件进行振动,以使得用户可以根据终端基于该振动编码结果所产生的振动效果,快速准确地获取环境对象所处位置等游戏对局信息,提升游戏体验。由此可见,通过振动提醒的方式,不仅可以更加直观高效,无需用户通过耗费更多的时间听语音来获知环境对象所处位置,而且也不依赖于周边环境,使得用户在嘈杂环境中也可基于终端基于该振动编码结果所产生的振动效果来准确获知环境对象所处位置,提升游戏体验;除此之外,通过振动提醒的方式,无需播放语音,还可在一定程度上保护用户隐私等信息。
[0285] 基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种计算机设备。请参见图7,该计算机设备至少包括处理器701、输入接口702、输出接口703以及计算机存储介质704。其中,计算机设备内的处理器701、输入接口702、输出接口703以及计算机存储介质704可通过总线或其他方式连接。计算机存储介质704可以存储在计算机设备的存储器中,所述计算机存储介质704用于存储计算机程序,所述计算机程序包括一条或多条指令,所述处理器701用于执行所述计算机存储介质704存储的计算机程序中的一条或多条指令。处理器701(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
[0286] 在一个实施例中,本申请实施例所述的处理器701可以用于进行一系列的振动处理,具体包括:在终端中显示游戏场景,所述游戏场景中包括主人态游戏角色;当所述主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取所述环境对象相对于所述主人态游戏角色的位置信息;采用位置维度下的振动编码格式,对所述位置信息进行振动编码,得到振动编码结果;根据所述振动编码结果,控制所述终端中的振动组件进行振动;其中,基于所述振动编码结果所产生的振动效果用于提示所述环境对象的位置信息,等等。
[0287] 本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是计算机设备中的记忆设备,用于存放计算机程序和数据。可以理解的是,此处的计算机存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了计算机程序,该计算机程序包括适于被处理器701加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的程序代码。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机存储介质。
[0288] 在一个实施例中,可由处理器加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关图2或图4所示的方法实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多条指令可由处理器加载并执行如下步骤:
[0289] 在终端中显示游戏场景,所述游戏场景中包括主人态游戏角色;
[0290] 当所述主人态游戏角色所处位置的预设距离范围内存在环境对象时,获取所述环境对象相对于所述主人态游戏角色的位置信息;
[0291] 采用位置维度下的振动编码格式,对所述位置信息进行振动编码,得到振动编码结果;
[0292] 根据所述振动编码结果,控制所述终端中的振动组件进行振动;其中,基于所述振动编码结果所产生的振动效果用于提示所述环境对象的位置信息。
[0293] 在一种实施方式中,在根据所述振动编码结果,控制所述终端中的振动组件进行振动之前,所述一条或多条指令可由处理器加载并具体执行:
[0294] 获取所述环境对象的危险性信息作为目标危险性信息,所述环境对象的危险性信息用于指示:所述环境对象是否对所述主人态游戏角色造成危险;
[0295] 根据危险性信息和振动信号之间的对应关系,获取所述目标危险性信息所对应的振动信号;
[0296] 根据所述目标危险性信息所对应的振动信号,控制所述终端中的振动组件进行振动。
[0297] 另一种实施方式中,所述环境对象具有K个属性,K为正整数;在根据振动编码结果,控制所述终端中的振动组件进行振动之后,所述一条或多条指令可由处理器加载并具体执行:
[0298] 获取所述环境对象在各个属性下的目标属性信息;
[0299] 分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号;
[0300] 依次根据所述每个目标属性信息对应的振动信号,控制所述终端中的振动组件进行振动。
[0301] 另一种实施方式中,所述环境对象为游戏物资;所述 K个属性包括类型属性,所述环境对象在所述类型属性下的目标属性信息为目标物资类型,任一物资类型包括多个物资类别,一个物资类别对应一个振动信号;
[0302] 任一物资类别对应的振动信号包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;
[0303] 其中,任一物资类别对应的振动信号中的各个振动片段内的振动频率字段的取值,用于指示相应物资类别所属的物资类型,且任一物资类别对应的振动信号中的各个振动片段内的振动强度字段的取值用于指示相应物资类别;
[0304] 相应的,在分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号时,所述一条或多条指令可由处理器加载并具体执行:
[0305] 从所述环境对象在所述类型属性下的目标物资类型包括的多个物资类别中,确定出所述环境对象所属的物资类别;
[0306] 根据物资类别和振动信号之间的对应关系,将所述环境对象所属的物资类别对应的振动信号,作为所述环境对象的目标物资类型对应的振动信号。
[0307] 另一种实施方式中,所述环境对象为游戏物资;相应的,所述一条或多条指令可由处理器加载并具体执行:
[0308] 检测所述环境对象的可捡拾性,所述可捡拾性是指:支持所述主人态游戏角色对应的游戏用户执行捡拾操作的特性;
[0309] 若检测到所述可捡拾性,则触发执行所述获取所述环境对象在各个属性下的目标属性信息的步骤;
[0310] 若未检测到所述可捡拾性,则获取用于指示所述环境对象未支持捡拾操作的振动信号,并根据获取到的振动信号控制所述终端中的振动组件进行振动。
[0311] 另一种实施方式中,所述环境对象为游戏物资;相应的,在依次根据所述每个目标属性信息对应的振动信号,控制所述终端中的振动组件进行振动之后,所述一条或多条指令可由处理器加载并具体执行:
[0312] 等待所述主人态游戏角色对应的游戏用户对所述环境对象执行捡拾操作;
[0313] 在检测到针对所述环境对象的捡拾操作后,将所述捡拾操作的操作结果作为第一操作结果;
[0314] 根据捡拾场景下的操作结果和振动信号之间的对应关系,确定所述第一操作结果对应的振动信号;
[0315] 根据所述第一操作结果的振动信号,控制所述终端中的振动组件进行振动。
[0316] 另一种实施方式中,所述环境对象为可移动的游戏角色;所述 K个属性包括生命属性,所述环境对象在所述生命属性下的目标属性信息为所述环境对象的剩余生命值;
[0317] 相应的,在分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号时,所述一条或多条指令可由处理器加载并具体执行:
[0318] 确定所述环境对象的生命属性所对应的第三振动编码格式,所述第三振动编码格式中包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,所述第三振动编码格式中的每个振动片段内的振动强度字段为空;
[0319] 根据所述环境对象的剩余生命值,设置所述第三振动编码格式中的各个振动片段内的振动强度字段的取值,得到所述环境对象的剩余生命值对应的振动信号;
[0320] 其中,所述第三振动编码格式中的各个振动片段内的振动强度字段的取值,需与所述环境对象的剩余生命值成正相关。
[0321] 另一种实施方式中,所述环境对象为可移动的游戏角色;所述K个属性包括运动方向属性,所述环境对象在所述运动方向属性下的目标属性信息为目标运动方向,所述目标运动方向为第一运动方向或者第二运动方向;所述第一运动方向是指远离所述主人态游戏角色的方向,所述第二运动方向是指靠近所述主人态游戏角色的方向;
[0322] 不同运动方向对应不同的振动编码格式,任一运动方向对应的振动编码格式中包括多个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,振动强度字段为空;
[0323] 相应的,在分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号时,所述一条或多条指令可由处理器加载并具体执行:
[0324] 获取所述环境对象的目标运动方向对应的振动编码格式,作为目标振动编码格式;
[0325] 根据所述环境对象相对于所述主人态游戏角色的方向信息,设置所述目标振动编码格式中的各个振动片段内的振动强度字段的取值,得到所述环境对象的目标运动方向对应的振动信号;
[0326] 其中,当所述环境对象位于所述主人态游戏角色的第一方向时,所述目标振动编码格式中的各个振动片段内的振动强度字段的取值呈先大后小的趋势;当所述环境对象位于所述主人态游戏角色的第二方向时,所述目标振动编码格式中的各个振动片段内的振动强度字段的取值需呈先大后小的趋势。
[0327] 另一种实施方式中,所述环境对象为可移动的游戏角色;所述K个属性包括运动速度属性,所述环境对象在所述运动速度属性下的目标属性值为目标运动速度值;
[0328] 相应的,在分别对所述环境对象在每个属性下的目标属性信息进行振动编码,得到每个目标属性信息对应的振动信号时,所述一条或多条指令可由处理器加载并具体执行:
[0329] 获取所述运动速度属性对应的第四振动编码格式,所述第四振动编码格式中包括至少一个振动片段,每个振动片段包括如下字段:振动频率字段、振动强度字段和振动时长指示字段;其中,振动强度字段为空;
[0330] 根据所述环境对象的目标运动速度值,设置所述第四振动编码格式中的各个振动片段中的振动强度字段的取值,得到所述环境对象的目标运动速度值对应的振动信号;其中,所述第四振动编码格式中的各个振动片段中的振动强度字段的取值需与所述目标运动速度值成正相关。
[0331] 另一种实施方式中,所述环境对象为可移动的游戏角色;相应的,所述一条或多条指令可由处理器加载并具体执行:
[0332] 检测针对所述环境对象的攻击需求;
[0333] 若未检测到所述攻击需求,则触发执行所述获取所述环境对象在各个属性下的目标属性信息的步骤;
[0334] 若检测到所述攻击需求,则获取瞄准指引振动信号,所述瞄准指引振动信号是指用于指示瞄准所述环境对象的振动信号;并根据所述瞄准指引振动信号控制所述终端中的振动组件进行振动。
[0335] 另一种实施方式中,在根据所述瞄准指引振动信号控制所述终端中的振动组件进行振动之后,所述一条或多条指令可由处理器加载并具体执行:
[0336] 在所述环境对象被瞄准后,根据用于指示已瞄准的振动信号,控制所述终端中的振动组件进行振动;
[0337] 等待所述主人态游戏角色对应的游戏用户对所述环境对象执行射击操作;
[0338] 在检测到针对所述环境对象的射击操作后,将所述射击操作的操作结果作为第二操作结果;
[0339] 根据射击场景下的操作结果和振动信号之间的对应关系,确定所述第二操作结果对应的振动信号;
[0340] 根据所述第二操作结果的振动信号,控制所述终端中的振动组件进行振动。
[0341] 另一种实施方式中,所述一条或多条指令可由处理器加载并具体执行:
[0342] 若检测到所述主人态游戏角色所携带的工具匣中的射击工具的数量小于数量阈值,则获取状态反馈振动信号,所述状态反馈振动信号是指用于提示更换所述工具匣的振动信号;
[0343] 根据所述状态反馈信号控制所述终端中的振动组件进行振动。
[0344] 另一种实施方式中,所述一条或多条指令可由处理器加载并具体执行:
[0345] 若所述主人态游戏角色被击中,则确定所述主人态游戏角色的被击状态,所述主人态游戏角色的被击状态包括:被击倒状态或被击中状态;
[0346] 获取所述主人态游戏角色的被击状态所对应的振动信号,并根据获取到的振动信号控制所述终端中的振动组件进行振动。
[0347] 另一种实施方式中,所述一条或多条指令可由处理器加载并具体执行:
[0348] 当需移动所述主人态游戏角色时,确定所述主人态游戏角色的移动路径,并根据所述移动路径确定所述主人态游戏角色需执行的移动动作;
[0349] 对所述主人态游戏角色需执行的移动动作进行振动编码,得到目标振动信号;以及,根据所述目标振动信号控制所述终端中的振动组件进行振动。
[0350] 本申请实施例可在用户玩游戏的过程中,检测到主人态游戏角色所处位置的预设范围内存在环境对象时,采用位置维度下的振动编码格式,对该环境对象相对于主人态游戏角色的位置信息进行振动编码,从而根据振动编码结果控制终端中的振动组件进行振动,以使得用户可以根据终端基于该振动编码结果所产生的振动效果,快速准确地获取环境对象所处位置等游戏对局信息,提升游戏体验。由此可见,通过振动提醒的方式,不仅可以更加直观高效,无需用户通过耗费更多的时间听语音来获知环境对象所处位置,而且也不依赖于周边环境,使得用户在嘈杂环境中也可基于终端基于该振动编码结果所产生的振动效果来准确获知环境对象所处位置,提升游戏体验;除此之外,通过振动提醒的方式,无需播放语音,还可在一定程度上保护用户隐私等信息。
[0351] 需要说明的是,根据本申请的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括一条或多条指令,该一条或多条指令存储在计算机存储介质中。计算机设备的处理器从计算机存储介质读取一条或多条指令,处理器执行该一条或多条指令,使得该计算机设备执行上述图2或图4所示的方法实施例方面的各种可选方式中提供的方法。应理解的是,以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。