本申请涉及计算机技术领域,特别涉及一种虚拟道具控制方法、装置、设备及存储介质。
背景技术:
随着计算机技术的发展以及终端功能的多样化,在终端上能够进行的游戏种类越来越多。其中,射击类游戏是一种比较盛行的游戏,终端可以在界面中显示虚拟场景,并在虚拟场景中显示虚拟对象,该虚拟对象可以控制虚拟道具与其他虚拟对象进行对战。
目前,虚拟道具控制方法通常是:为了简化用户操作,虚拟道具通常被设置为没有后坐力,且发射出的发射物不会发散,而是沿着一条直线发射。则在检测到发射操作时,通常会控制虚拟道具的发射物沿当前视角直线发射,从而很容易命中敌人。
上述虚拟道具控制方法中,虚拟道具的这种设置,使得不同威力的虚拟道具使用起来效果不同,对于威力明显要强过其他虚拟道具的某种虚拟道具,则会破坏虚拟道具的平衡性,例如,虚拟重型机枪,重型机枪的威力明显要强于其他武器,进而破坏了游戏的公平性,虚拟道具的控制效果差。
技术实现要素:
本申请实施例提供了一种虚拟道具控制方法、装置、设备及存储介质,能够解决相关技术中破坏游戏的公平性、控制效果差的问题。所述技术方案如下:
一方面,提供了一种虚拟道具控制方法,所述方法包括:
获取虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项,所述已连续发射数量为所述虚拟道具已连续发射的发射物的数量;
根据所述已连续发射时长或所述已连续发射数量中至少一项,获取所述发射物的目标打击范围,所述目标打击范围的尺寸与所述已连续发射时长负相关,所述目标打击范围的尺寸与所述已连续发射数量负相关;
控制所述虚拟道具的发射物向所述目标打击范围内发射。
可选地,所述获取虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项,包括下述至少一项:
当接收到射击指令时,控制所述虚拟道具进行射击;
在射击过程中,统计所述虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项。
另一方面,提供了一种虚拟道具控制装置,所述装置包括:
获取模块,用于获取虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项,所述已连续发射数量为所述虚拟道具已连续发射的发射物的数量;
所述获取模块,还用于根据所述已连续发射时长或所述已连续发射数量中至少一项,获取所述发射物的目标打击范围,所述目标打击范围的尺寸与所述已连续发射时长负相关,所述目标打击范围的尺寸与所述已连续发射数量负相关;
控制模块,用于控制所述虚拟道具的发射物向所述目标打击范围内发射。
可选地,所述获取模块用于执行下述至少一项:
当接收到射击指令时,控制所述虚拟道具进行射击;
在射击过程中,统计所述虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项。
可选地,获取模块用于执行下述任一项:
根据所述已连续发射时长,获取发射偏移半径,根据所述发射偏移半径,获取所述发射物的目标打击范围,所述发射偏移半径与所述已连续发射时长负相关;
根据所述已连续发射数量,获取发射偏移半径,根据所述发射偏移半径,获取所述发射物的目标打击范围,所述发射偏移半径与所述已连续发射数量负相关;
根据所述已连续发射时长和所述已连续发射数量,获取发射偏移半径,根据所述发射偏移半径,获取所述发射物的目标打击范围,所述发射偏移半径与所述已连续发射时长负相关,所述发射偏移半径与所述已连续发射数量负相关。
可选地,所述获取模块用于:
获取所述已连续发射时长与第一数值的第一乘积,所述第一数值小于0,获取所述第一乘积与第二数值的和值,将所述和值作为所述发射偏移半径,所述第二数值大于0;
可选地,所述获取模块用于:
获取所述已连续发射数量与第一数值的第一乘积,所述第一数值小于0,获取所述第一乘积与第二数值的和值,将所述和值作为所述发射偏移半径,所述第二数值大于0。
可选地,所述获取模块还用于:
获取当前虚拟对象的状态;
当所述状态为第一状态时,获取第三数值作为所述第一数值,所述第三数值小于0;
当所述状态为第二状态时,获取第三数值与第四数值的第二乘积,将所述第二乘积作为所述第一数值,所述第四数值为不等于1的正数。
可选地,所述获取模块用于:
根据所述已连续发射数量,获取第一数值,所述第一数值小于0,所述第一数值与所述已连续发射数量负相关;
获取所述已连续发射时长与第一数值的第一乘积;
获取所述第一乘积与第二数值的和值,将所述和值作为所述发射偏移半径,所述第二数值大于0。
可选地,所述获取模块用于:
根据所述已连续发射数量,获取第五数值,所述第五数值小于0,所述第五数值与所述已连续发射数量负相关;
获取当前虚拟对象的状态;
当所述状态为第一状态时,将所述第五数值作为所述第一数值;
当所述状态为第二状态时,获取所述第五数值与第四数值的第三乘积,将所述第三乘积作为所述第一数值,所述第四数值为不等于1的正数。
可选地,所述获取模块用于:
获取当前虚拟场景的视角;
将以所述视角为中心、半径为所述发射偏移半径的圆形区域作为所述发射物的目标打击范围。
可选地,所述获取模块用于:
当虚拟对象所控制的虚拟道具为目标虚拟道具时,执行所述获取虚拟道具的发射物的已连续发射数量的步骤。
可选地,所述获取模块还用于当接收到射击指令时,获取虚拟摄像机以虚拟场景的视角为旋转轴的目标旋转方向和目标旋转角度;
所述装置还包括:
生成模块,用于根据所述目标旋转方向和所述目标旋转角度,生成目标晃动动画;
播放模块,用于播放所述目标晃动动画,所述目标晃动动画用于体现虚拟对象的视野随射击动作而晃动的效果。
可选地,所述获取模块用于执行下述任一项:
当所述虚拟摄像机已向第一旋转方向旋转了目标次数时,将第二旋转方向获取为所述目标旋转方向,将第一目标角度获取为所述目标旋转角度;
当所述虚拟摄像机已向第一旋转方向旋转了第二目标角度时,将第二旋转方向获取为所述目标旋转方向,将第一目标角度获取为所述目标旋转角度。
可选地,所述控制模块还用于当检测到射击停止时,控制所述虚拟摄像机返回初始状态。
可选地,所述装置还包括:
发送模块,用于将所述已连续发射时长或所述已连续发射数量中至少一项,以及所述发射物的目标打击范围作为发射数据发送至区块链系统,由所述区块链系统将所述发射数据存储到区块链上。
另一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现上述虚拟道具控制方法所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现上述虚拟道具控制方法所执行的操作。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供了一种虚拟道具控制方法,可以根据虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项,确定该发射物的打击范围,打击范围与上述至少一项数据负相关,从而随着持续射击的时长增大,发射数量增大,该发射物的打击范围逐渐缩小,从而可以保留模拟虚拟道具的后坐力的同时,简化了用户操作,保证了游戏的公平性,虚拟道具的控制效果好。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种虚拟道具控制方法的实施环境的示意图;
图2是本申请实施例提供的一种虚拟道具控制方法的流程图;
图3是本申请实施例提供的一种虚拟道具的发射物的打击范围示意图;
图4是本申请实施例提供的一种动画打点示意图;
图5是本申请实施例提供的一种动画配置示意图;
图6是本申请实施例提供的一种界面示意图;
图7是本申请实施例提供的一种界面示意图;
图8是本申请实施例提供的一种界面示意图;
图9是本申请实施例提供的一种虚拟道具控制方法的流程图;
图10是本申请实施例提供的一种散发偏移与子弹数的关系示意图;
图11是本申请实施例提供的区块链系统的一个可选的结构示意图;
图12是本申请实施例提供的区块结构一个可选的示意图;
图13是本申请实施例提供的一种虚拟道具控制装置的结构示意图;
图14是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个第一位置是指两个或两个以上的第一位置。
以下,对本申请涉及的术语进行解释。
虚拟场景:是应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景和三维虚拟场景中的任意一种,本申请对此不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。
虚拟对象:是指在虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在虚拟环境中显示的人物、动物、植物、油桶、墙壁、石块等。该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。可选地,该虚拟角色可以是通过在客户端上操作进行控制的角色,也可以是通过训练设置在虚拟环境对战中的人工智能(artificialintelligence,ai),还可以是设置在虚拟环境对战中的非玩家角色(non-playercharacter,npc)。可选地,该虚拟角色是在虚拟环境中进行竞技的虚拟人物。可选地,该虚拟环境对战中的虚拟角色的数量可以是预设设置的,也可以是根据加入对战的客户端的数量动态确定的。
以射击类游戏为例,用户可以控制虚拟对象在该虚拟场景的天空中自由下落、滑翔或者打开降落伞进行下落等,在陆地上中跑动、跳动、爬行、弯腰前行等,也可以控制虚拟对象在海洋中游泳、漂浮或者下潜等,当然,用户也可以控制虚拟对象乘坐虚拟载具在该虚拟场景中进行移动,在此仅以上述场景进行举例说明,本申请实施例对此不作具体限定。用户也可以控制虚拟对象通过虚拟道具与其他虚拟对象进行战斗,该虚拟道具可以用于模拟冷兵器,也可以用于模拟热兵器,本申请对此不作具体限定。
虚拟重型机枪:用于模拟现实场景中的重型机枪,重型机枪是一种有多个枪管及大容量弹夹,且可持续进行重火力压制的枪械。该重型机枪的威力一般很惊人,后坐力大,发射出的子弹容易散发。例如,加特林、哨兵机枪等。
以下,对本申请涉及的系统架构进行介绍。
请参考图1,图1是本申请实施例提供的一种虚拟道具控制方法的实施环境的示意图。该实施环境包括:第一终端120、服务器140和第二终端160。
第一终端120安装和运行有支持虚拟场景的应用程序。该应用程序可以是虚拟现实应用程序、三维地图程序、军事仿真程序、第一人称射击游戏(first-personshootinggame,fps)、多人在线战术竞技游戏(multiplayeronlinebattlearenagames,moba)、多人枪战类生存游戏中的任意一种。第一终端120是第一用户使用的终端,第一用户使用第一终端120操作位于虚拟场景中的第一虚拟对象进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。示意性的,第一虚拟对象是第一虚拟人物,比如仿真人物角色或动漫人物角色。
第一终端120通过无线网络或有线网络与服务器140相连。
服务器140包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器140用于为支持虚拟场景的应用程序提供后台服务。可选地,服务器140承担主要计算工作,第一终端120和第二终端160承担次要计算工作;或者,服务器140承担次要计算工作,第一终端120和第二终端160承担主要计算工作;或者,服务器140、第一终端120和第二终端160三者之间采用分布式计算架构进行协同计算。
第二终端160安装和运行有支持虚拟场景的应用程序。该应用程序可以是虚拟现实应用程序、三维地图程序、军事仿真程序、fps、moba、多人枪战类生存游戏中的任意一种。第二终端160是第二用户使用的终端,第二用户使用第二终端160操作位于虚拟场景中的第二虚拟对象进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。示意性的,第二虚拟对象是第二虚拟人物,比如仿真人物角色或动漫人物角色。
第二终端160通过无线网络或有线网络与服务器140相连。
可选地,第一终端120控制的第一虚拟对象和第二终端160控制的第二虚拟对象处于同一虚拟场景中。在一些实施例中,第一虚拟对象以及第二虚拟对象可以为敌对关系,例如,第一虚拟对象与第二虚拟对象可以属于不同的队伍和组织,第一终端120可以控制第一虚拟对象对第二虚拟对象进行攻击。在一个示例性场景中,第一终端120可以在控制第一虚拟对象通过虚拟道具向第二虚拟对象发射它的发射物,从而对第二虚拟对象造成打击,如果第二虚拟对象在该发射物的打击范围内,则第二虚拟对象的虚拟生命值则会降低。被威力大的虚拟道具打击一次,虚拟生命值一次降低得会多一些。在另一些实施例中,第一虚拟对象以及第二虚拟对象可以为队友关系,例如,第一虚拟人物和第二虚拟人物可以属于同一个队伍、同一个组织、具有好友关系或具有临时性的通讯权限。
可选地,第一终端120和第二终端160上安装的应用程序是相同的,或两个终端上安装的应用程序是不同操作系统平台的同一类型应用程序。第一终端120可以泛指多个终端中的一个,第二终端160可以泛指多个终端中的一个,本实施例仅以第一终端120和第二终端160来举例说明。第一终端120和第二终端160的设备类型相同或不同,该设备类型包括:智能手机、平板电脑、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机中的至少一种。例如,第一终端120和第二终端160可以是智能手机,或者其他手持便携式游戏设备。以下实施例,以终端包括智能手机来举例说明。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
以下,对本申请涉及的方法流程进行介绍。
请参考图2,图2是本申请实施例提供的一种虚拟道具控制方法的流程图。本实施例以该方法应用于终端中举例说明,该终端可以是图1所示的第一终端120,该方法包括:
201、当终端接收到创建指令时,终端创建虚拟道具。
创建指令用于指示终端创建虚拟道具。在一些实施例中,创建指令可以通过用户的操作触发。例如,终端可以在该虚拟场景中,显示呼唤控件,当用户要呼唤虚拟道具时,可以对呼唤控件进行触发操作,则终端会接收到对该呼唤控件的触发信号,触发创建指令,创建虚拟道具。其中,该呼唤控件用于呼唤该虚拟道具进入该虚拟场景,呼唤控件的形态可以是在虚拟场景中悬浮显示的一个按钮。
202、终端在虚拟场景中显示虚拟道具。
终端创建得到虚拟道具后,可以在虚拟场景中显示该虚拟道具。具体地,终端可以在该虚拟对象的目标部位上显示该虚拟道具,从而体现该虚拟对象能够控制虚拟道具。
在一种可能实现方式中,该终端还可以在用户图形界面上显示射击控件,该射击控件用于检测用户的射击操作,以控制虚拟对象通过该虚拟道具进行射击。
上述步骤201和步骤202为终端通过呼唤操作显示虚拟道具的过程,该过程仅为一种显示虚拟道具的一种示例性的触发条件,该虚拟道具的显示还可以通过其他触发条件触发。例如,提供另一种触发条件,该虚拟道具可以显示于虚拟场景的地面或虚拟物品上,当接收到对该虚拟道具的拾取指令时,终端可以在虚拟场景中的虚拟对象的目标部位上显示该虚拟道具,从而该虚拟对象装备了该虚拟道具。本申请实施例对该虚拟道具显示的触发条件不作限定。
203、当接收到射击指令时,终端控制该虚拟道具进行射击。
在接收到射击指令时,该终端可以根据该射击指令,控制虚拟道具进行射击,也即是,控制虚拟道具发射该虚拟道具的发射物。
其中,在终端最开始接收到射击指令时,可以根据当前虚拟场景的视角,获取该虚拟道具的初始打击范围,控制该虚拟道具的发射物向初始打击范围内进行发射,其中,该初始打击范围可以为一个预设的打击范围,也可以通过下述步骤进行获取,只是该已连续发射时长为0或已连续发射数量为0,本申请实施例对此不作限定。
在一种可能实现方式中,该虚拟道具可以具有多种射击模式,例如,单发模式和连发模式,其中,单发模式可以是指一次射击操作能够控制虚拟道具射击一次,连发模式可以是指一次射击操作能够控制虚拟道具持续进行射击。在本申请实施例中,终端可以在接收到射击指令时,获取该虚拟道具的射击模式,当该射击模式为连发模式时,可以执行该步骤203和下述步骤204,当该射击模式为单发模式时,可以执行该步骤203,而不再执行下述步骤204。
204、在射击过程中,终端统计该虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项。
其中,该已连续发射数量为该虚拟道具已连续发射的发射物的数量。该已连续发射时长为该虚拟道具已连续发射的时长。
在本申请实施例中,该虚拟道具的发射物的打击范围可以随已连续发射时长或发射物的已连续发射数量的变化而发生变化,终端在该虚拟道具射击的过程中则需要进行上述统计步骤,以获取已连续发射时长或发射物的已连续发射数量中至少一项,将其作为确定目标打击范围的数据依据。
其中,在射击过程中,该终端可以统计该虚拟道具的已连续发射时长,也可以统计发射物的已连续发射数量,还可以统计该虚拟道具的已连续发射时长和发射物的已连续发射数量,本申请实施例对此不作限定。
需要说明的是,该步骤203和步骤204为获取虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项的过程,该虚拟道具的射击过程其实为一个连续过程,该连续过程可以由多个时刻组成,终端进行上述统计步骤,可以根据每个时刻时的统计结果,确定该时刻,或该时刻的下一时刻,或该时刻至下一时刻该虚拟道具的发射物的目标打击范围。
在一种可能实现方式中,对于一些威力较小的虚拟道具,即使将其设置为无后坐力和无子弹散发,该虚拟道具相对于其他虚拟道具也不会有太大优势,因而,这些虚拟道具可以无需采用本申请实施例提供的虚拟道具控制方法,反之,对于威力较大的虚拟道具,则可以采用该方法。因此,本申请实施例中还可以有一种机制:对于目标虚拟道具,终端需要执行本申请实施例提供的虚拟道具控制方法。
在该实现方式中,当虚拟对象所控制的虚拟道具为目标虚拟道具时,终端可以执行该获取虚拟道具的发射物的已连续发射数量的步骤。其中,该目标虚拟道具可以由相关技术人员进行需求进行设置,本申请实施例对此不作限定。例如,该目标虚拟道具可以为虚拟重型机枪。
205、终端根据该已连续发射时长或该已连续发射数量中至少一项,获取该发射物的目标打击范围。
终端获取到该已连续发射时长或该已连续发射数量中至少一项后,则可以进一步确定该发射物的目标打击范围,在本申请实施例中,发射物的目标打击范围的尺寸可以随已连续发射时长或该已连续发射数量的变化而发生变化。
其中,该目标打击范围的尺寸与该已连续发射时长负相关,也即是,该已连续发射时长越大,该目标打击范围的尺寸越小。该目标打击范围的尺寸与该已连续发射数量负相关。也即是,该已连续发射数量越大,该目标打击范围的尺寸越小。这样随已连续发射时长或该已连续发射数量的增大,该发射物的目标打击范围的尺寸在变小,从而能更准确地对敌人进行打击。
终端获取到的信息不同时,获取发射物的目标打击范围的过程则可以不同。具体地,该过程可以通过下述三种可能实现方式中任一种实现:
方式一、终端根据该已连续发射时长,获取发射偏移半径,根据该发射偏移半径,获取该发射物的目标打击范围,该发射偏移半径与该已连续发射时长负相关。
在该方式一中,仅考虑已连续发射时长,该目标打击范围的尺寸可以通过发射偏移半径来确定,该发射偏移半径越大,该目标打击范围的尺寸越大。其中,该已连续发射时长与发射偏移半径之间可以具有对应关系,已连续发射时长越大,该发射偏移半径越小。
在一种可能实现方式中,终端可以获取该已连续发射时长与第一数值的第一乘积,该第一数值小于0,获取该第一乘积与第二数值的和值,将该和值作为该发射偏移半径,该第二数值大于0。
例如,在一个具体示例中,该终端可以通过下述公式一,获取发射偏移半径:
r=at+b
其中,该r为发射偏移半径,t为已连续发射时长,a为第一数值,b为第二数值。
上述仅以该终端通过限定函数确定发射偏移半径为例,可选地,该已连续发射时长与发射偏移半径还可以为非线性关系,本申请对此不作限定。
终端在获取到发射偏移半径后,可以获取当前虚拟场景的视角,将以该视角为中心、半径为该发射偏移半径的圆形区域作为该发射物的目标打击范围。这样,该发射偏移半径越大,该目标打击范围越大。
方式二、终端根据该已连续发射数量,获取发射偏移半径,根据该发射偏移半径,获取该发射物的目标打击范围,该发射偏移半径与该已连续发射数量负相关。
在该方式二中,仅考虑已连续发射数量,同理地,该目标打击范围的尺寸可以通过发射偏移半径来确定,该发射偏移半径越大,该目标打击范围的尺寸越大。其中,该已连续发射数量与发射偏移半径之间可以具有对应关系,已连续发射数量越大,该发射偏移半径越小。
在一种可能实现方式中,终端可以获取该已连续发射数量与第一数值的第一乘积,该第一数值小于0,获取该第一乘积与第二数值的和值,将该和值作为该发射偏移半径,该第二数值大于0。
同理地,上述仅以该终端通过限定函数确定发射偏移半径为例,可选地,该已连续发射物数量与发射偏移半径还可以为非线性关系,本申请对此不作限定。
其中,终端根据该发射偏移半径,获取该发射物的目标打击范围的过程与上述方式一中同理,在此不多做赘述。
在一种可能实现方式中,上述方式一和方式二中,该第一数值和第二数值可以为一个固定数值,也可以基于一些信息实时确定,本申请实施例对此不作限定。
在一个具体的可能实施例中,该第二数值可以为固定数值,第一数值可以基于虚拟对象的状态确定。具体地,终端可以获取当前虚拟对象的状态,当该状态为第一状态时,获取第三数值作为该第一数值,当该状态为第二状态时,获取第三数值与第四数值的第二乘积,将该第二乘积作为该第一数值。
其中,第三数值小于0,该第四数值为不等于1的正数,该第四数值可以小于1,也可以大于1,本申请对不同状态时,第一数值变大还是变小不作限定。
对于该第一状态和第二状态,该虚拟对象的状态可以包括站立状态和跳跃状态,该第一状态可以为站立状态,第二状态可以为跳跃状态,当然,还可以采用其他设置,在此仅以这种设置为例进行说明。例如,第四数值大于1,第三数值小于0,虚拟对象在站立状态时的第一数值大于跳跃状态时的第一数值。
可以理解地,该发射偏移半径与第一数值正相关,该第一数值越小,该发射偏移半径越小。则该虚拟对象的状态不同时,该发射偏移半径则可以不同,从而目标打击范围的尺寸可以不同。
方式三、终端根据该已连续发射时长和该已连续发射数量,获取发射偏移半径,根据该发射偏移半径,获取该发射物的目标打击范围,该发射偏移半径与该已连续发射时长负相关,该发射偏移半径与该已连续发射数量负相关。
在方式三中,既考虑已连续发射时长,又考虑已连续发射数量。终端可以综合考虑二者,来确定发射偏移半径。
在一种可能实现方式中,该已连续发射数量可以用于确定第一数值,进而影响发射偏移半径,已连续发射时长直接影响发射偏移半径,终端可以根据该已连续发射数量,获取第一数值,该第一数值小于0,该第一数值与该已连续发射数量负相关。终端获取该已连续发射时长与第一数值的第一乘积;获取该第一乘积与第二数值的和值,将该和值作为该发射偏移半径,该第二数值大于0。
在一种可能实现方式中,终端获取第一数值时,除了参考上述该已连续发射数量,还可以考虑当前虚拟对象的状态。具体地,终端根据该已连续发射数量,获取第一数值的过程可以为:终端根据该已连续发射数量,获取第五数值,终端获取当前虚拟对象的状态,当该状态为第一状态时,终端将该第五数值作为该第一数值,当该状态为第二状态时,终端获取该第五数值与第四数值的第三乘积,将该第三乘积作为该第一数值。
其中,该第五数值小于0,该第五数值与该已连续发射数量负相关。该终端根据该已连续发射数量,获取第五数值的过程可以与上述方式二中,根据已连续发射数量,获取第一数值的过程同理,只是在此基础上,还可以考虑虚拟对象的状态加成。
终端根据该发射偏移半径,获取该发射物的目标打击范围的过程与上述方式一中同理,在此不多做赘述。
206、终端控制该虚拟道具的发射物向该目标打击范围内发射。
终端获取到目标打击范围后,则可以控制虚拟道具进行射击,该发射物可以随机分布或均匀分布在该目标打击范围内。
通过上述步骤,在虚拟道具持续射击的过程中,终端可以根据该虚拟道具连续发射的时长和发射物数量,调整发射物的打击范围,时长越大或发射物数量越大,该打击范围越小,越容易对敌人进行打击,从而在保留虚拟道具的发射物散发的情况下,简化了用户操作,以在保证电子游戏的公平性的同时,也不增加控制虚拟道具命中敌人的难度。
例如,如图3所示,虚拟道具在持续射击时,该虚拟道具的发射物的打击范围逐渐缩小,散发逐渐降低,该过程为一个连续变化的过程,图中仅示出了初始状态和最终状态。当该虚拟道具停止射击后,再次射击时,则可以重复上述步骤,重新从初始状态开始变化。
在一种可能实现方式中,上述虚拟道具控制方法可以应用于区块链系统中,该步骤205之后,终端可以将该已连续发射时长或该已连续发射数量中至少一项,以及该发射物的目标打击范围作为发射数据发送至区块链系统,由该区块链系统将该发射数据存储到区块链上。
可选地,区块链系统的节点设备在接收到该发射数据后,还可以执行与上述步骤205同理的步骤,对该发射数据进行校验,以确定该终端确定的发射数据是否正确,在该发射数据通过校验时,将该发射数据存储到区块链上。
其中,该节点设备可以基于该发射数据生成区块,将该区块广播给其他节点设备,在该区块通过区块链系统的共识时,将该区块添加至区块链上。
在一种可能实现方式中,在上述虚拟道具进行射击的过程中,还可以控制虚拟摄像机转动,以体现虚拟对象的视野随射击动作而晃动的效果,以模拟虚拟道具具有较大后坐力的情况。具体地,该晃动效果可以通过下述步骤一至步骤三实现:
步骤一、当接收到射击指令时,终端获取虚拟摄像机以虚拟场景的视角为旋转轴的目标旋转方向和目标旋转角度。
在该虚拟道具进行射击时,终端可以确定虚拟摄像机如何旋转,其中,该虚拟摄像机的旋转包括两个要素:目标旋转方向和目标旋转角度。其中,该目标旋转角度可以由相关技术人员根据需求进行设置,也可以基于该虚拟道具的道具类型确定,或者基于上述该已连续发射时长或该已连续发射数量中至少一项确定,本申请实施例对此不作限定。
在一种可能实现方式中,对于该虚拟摄像机的旋转方向或旋转角度,还可以通过下述两种方式中任一种方式进行限制,从而避免虚拟摄像机向同一个方向偏转太大的角度。
方式一、当该虚拟摄像机已向第一旋转方向旋转了目标次数时,终端将第二旋转方向获取为该目标旋转方向,将第一目标角度获取为该目标旋转角度。
方式二、当该虚拟摄像机已向第一旋转方向旋转了第二目标角度时,终端将第二旋转方向获取为该目标旋转方向,将第一目标角度获取为该目标旋转角度。
在上述方式一和方式二中,该虚拟摄像机旋转一次的旋转角度可以为第一目标角度,在该虚拟摄像机进行旋转时,终端可以随机选择一个旋转方向作为该目标旋转方向。该目标次数和第二目标角度可以由相关技术人员根据需求进行设置,本申请实施例对此不作限定。例如,以目标次数为2次,第一目标角度为n度为例,以第一旋转方向为顺时针方向,则第二旋转方向则为逆时针方向为例,如果虚拟摄像机已经顺时针旋转了两次,则本次旋转则只能逆时针旋转。如果第一旋转方向为逆时针方向,则第二旋转方向则为顺时针方向,与上述同理。
步骤二、终端根据该目标旋转方向和该目标旋转角度,生成目标晃动动画。
其中,该目标晃动动画可以由终端根据该目标旋转方向和该目标旋转角度确定,根据设置好的配置信息生成。
在一个具体示例中,美术技术人员制作镜头晃动的动画,如图4所示,美术技术人员可以打好点,添加动画类型并把该晃动动画设置在对应配置上,如图5所示。除了上述目标晃动动画,还可以有很多动画类型,包括移动晃动动画,开火晃动动画。当虚拟道具射击的时候根据设定好的类型获取其对应的动画曲线,改变世界相机的旋转角度,通过这种方式实现屏幕抖动。
步骤三、终端播放该目标晃动动画,该目标晃动动画用于体现虚拟对象的视野随射击动作而晃动的效果。
当检测到射击停止时,终端可以控制该虚拟摄像机返回初始状态。在上述旋转过程中,该虚拟道具并未发生变化。
如图6所示,图6中示出了虚拟摄像机处于初始状态时虚拟场景的显示情况,如图7和图8所示,图7和图8分别示出了虚拟摄像机顺时针旋转和逆时针旋转时虚拟场景的显示情况,而虚拟道具并未发生旋转。
在本申请实施例的一种具体应用场景中,为了保证公平性,可以在电子游戏中的虚拟的重型机枪开火时,模拟高后坐力情况下屏幕剧烈抖动的效果,即武器本身并没有抖动,而是屏幕镜头在做抖动,这样增加了玩家瞄准敌人的难度。但又通过赋予重型机枪在持续开火状态下子弹散发逐渐降低的特性,使得重型机枪在持续开火时拥有更强的命中敌人的能力,从而降低了重型机枪命中敌人的难度,增加了玩家瞄准敌人的难度,一降一升,既没有破坏武器的平衡性,又使得重型武器在玩家与玩家的对战中更好用,因为命中难度是武器天生的无法改变的,而瞄准难度是玩家通过不断练习后可以克服的。而且这种屏幕抖动的效果也和现实中的重型机枪射击时的表现效果接近,在拟真度上并没有损失。
在该具体示例中,如图9所示,虚拟对象正在使用重型机枪,终端可以判断是否开火,如果是,则可以执行下述计算过程,如果否,则可以重新判断。计算过程包括:开始计算子弹散发,该计算过程中可以先计算当前的连发子弹数(已连续发射数量),根据子弹数计算散发偏移(第五数值),终端判断当前是否处于跳跃状态,如果是,则叠加跳跃的加成,也即是,通过第五数值和第四数值计算第一数值,如果否,则叠加站立的加成,也即是,将第五数值作为第一数值,终端综合计算偏移并叠加到子弹发送的方向,该子弹分散的方向可以为该视角方向的垂直平面内的方向,也即是该方向与视角方向垂直,从而终端可以控制虚拟道具发射出具有一定偏移的子弹。其中,根据子弹数计算散发偏移时,可以参考图10,散发偏移与子弹数负相关,且散发偏移(第五数值)小于0。
本申请实施例提供了一种虚拟道具控制方法,可以根据虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项,确定该发射物的打击范围,打击范围与上述至少一项数据负相关,从而随着持续射击的时长增大,发射数量增大,该发射物的打击范围逐渐缩小,从而可以保留模拟虚拟道具的后坐力的同时,简化了用户操作,保证了游戏的公平性,虚拟道具的控制效果好。
对于上述涉及到的区块链系统、该区块链系统中区块生成过程以及共识过程,可以参考下述区块链系统的相关介绍。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
对区块链系统,参见图11,图11是本发明实施例提供的区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(p2p,peertopeer)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图11示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图12,图12是本发明实施例提供的区块结构(blockstructure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
图13是本申请实施例提供的一种虚拟道具控制装置的结构示意图。参见图13,该装置包括:
获取模块1301,用于获取虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项,该已连续发射数量为该虚拟道具已连续发射的发射物的数量;
该获取模块1301,还用于根据该已连续发射时长或该已连续发射数量中至少一项,获取该发射物的目标打击范围,该目标打击范围的尺寸与该已连续发射时长负相关,该目标打击范围的尺寸与该已连续发射数量负相关;
控制模块1302,用于控制该虚拟道具的发射物向该目标打击范围内发射。
可选地,该获取模块1301用于执行下述至少一项:
当接收到射击指令时,控制该虚拟道具进行射击;
在射击过程中,统计该虚拟道具的已连续发射时长或发射物的已连续发射数量中至少一项。
可选地,获取模块1301用于执行下述任一项:
根据该已连续发射时长,获取发射偏移半径,根据该发射偏移半径,获取该发射物的目标打击范围,该发射偏移半径与该已连续发射时长负相关;
根据该已连续发射数量,获取发射偏移半径,根据该发射偏移半径,获取该发射物的目标打击范围,该发射偏移半径与该已连续发射数量负相关;
根据该已连续发射时长和该已连续发射数量,获取发射偏移半径,根据该发射偏移半径,获取该发射物的目标打击范围,该发射偏移半径与该已连续发射时长负相关,该发射偏移半径与该已连续发射数量负相关。
可选地,该获取模块1301用于:
获取该已连续发射时长与第一数值的第一乘积,该第一数值小于0,获取该第一乘积与第二数值的和值,将该和值作为该发射偏移半径,该第二数值大于0;
可选地,该获取模块1301用于:
获取该已连续发射数量与第一数值的第一乘积,该第一数值小于0,获取该第一乘积与第二数值的和值,将该和值作为该发射偏移半径,该第二数值大于0。
可选地,该获取模块1301还用于:
获取当前虚拟对象的状态;
当该状态为第一状态时,获取第三数值作为该第一数值,该第三数值小于0;
当该状态为第二状态时,获取第三数值与第四数值的第二乘积,将该第二乘积作为该第一数值,该第四数值为不等于1的正数。
可选地,该获取模块1301用于:
根据该已连续发射数量,获取第一数值,该第一数值小于0,该第一数值与该已连续发射数量负相关;
获取该已连续发射时长与第一数值的第一乘积;
获取该第一乘积与第二数值的和值,将该和值作为该发射偏移半径,该第二数值大于0。
可选地,该获取模块1301用于:
根据该已连续发射数量,获取第五数值,该第五数值小于0,该第五数值与该已连续发射数量负相关;
获取当前虚拟对象的状态;
当该状态为第一状态时,将该第五数值作为该第一数值;
当该状态为第二状态时,获取该第五数值与第四数值的第三乘积,将该第三乘积作为该第一数值,该第四数值为不等于1的正数。
可选地,该获取模块1301用于:
获取当前虚拟场景的视角;
将以该视角为中心、半径为该发射偏移半径的圆形区域作为该发射物的目标打击范围。
可选地,该获取模块1301用于:
当虚拟对象所控制的虚拟道具为目标虚拟道具时,执行该获取虚拟道具的发射物的已连续发射数量的步骤。
可选地,该获取模块1301还用于当接收到射击指令时,获取虚拟摄像机以虚拟场景的视角为旋转轴的目标旋转方向和目标旋转角度;
该装置还包括:
生成模块,用于根据该目标旋转方向和该目标旋转角度,生成目标晃动动画;
播放模块,用于播放该目标晃动动画,该目标晃动动画用于体现虚拟对象的视野随射击动作而晃动的效果。
可选地,该获取模块1301用于执行下述任一项:
当该虚拟摄像机已向第一旋转方向旋转了目标次数时,将第二旋转方向获取为该目标旋转方向,将第一目标角度获取为该目标旋转角度;
当该虚拟摄像机已向第一旋转方向旋转了第二目标角度时,将第二旋转方向获取为该目标旋转方向,将第一目标角度获取为该目标旋转角度。
可选地,该控制模块1302还用于当检测到射击停止时,控制该虚拟摄像机返回初始状态。
可选地,该装置还包括:
发送模块,用于将该已连续发射时长或该已连续发射数量中至少一项,以及该发射物的目标打击范围作为发射数据发送至区块链系统,由该区块链系统将该发射数据存储到区块链上。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的虚拟道具控制装置在控制虚拟道具时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟道具控制装置与虚拟道具控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图14是本发明实施例提供的一种电子设备的结构示意图,该电子设备1400可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(centralprocessingunits,cpu)1401和一个或多个的存储器1402,其中,该一个或多个存储器1402中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器1401加载并执行以实现上述各个方法实施例提供的虚拟道具控制方法。当然,该电子设备1400还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子设备1400还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的虚拟道具控制方法。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。