CN108037952B - 对象操作的处理方法、对象操作数据的生成方法及装置 - Google Patents
对象操作的处理方法、对象操作数据的生成方法及装置 Download PDFInfo
- Publication number
- CN108037952B CN108037952B CN201711244803.1A CN201711244803A CN108037952B CN 108037952 B CN108037952 B CN 108037952B CN 201711244803 A CN201711244803 A CN 201711244803A CN 108037952 B CN108037952 B CN 108037952B
- Authority
- CN
- China
- Prior art keywords
- object operation
- event
- events
- action
- operation action
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5526—Game data structure
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
Abstract
本发明涉及一种对象操作的处理方法、对象操作数据的生成方法及装置。对象操作的处理方法包括:获取第一对象操作指令;获取与产生第一对象操作指令的第一操作位标识对应的对象操作动作标识;查找与对象操作动作标识对应的对象操作动作配置文件,对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间;根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件。每个对象操作动作标识都有对应的对象操作动作配置文件,而对象操作动作配置文件内又包含多个对象操作事件和对应的时间轴,因此在调试时,只要对对象操作对应的对象操作事件进行调试即可,这种方式不仅节省了开发成本,也能提高开发效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种对象操作的处理方法、对象操作数据的生成方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的迅速发展,计算机技术给人们的生活带来了诸多便利,大大的提升了人们的生活品质。人们在享受便利生活的同时,也需要一些娱乐项目。于是,各种游戏产品应用而生。通常,在游戏过程中,被控虚拟角色会在游戏场景中进行各种对象操作的使用,被控虚拟角色的对象操作也会根据玩家的需求进行不断的优化更新或修改。
然而,在传统的游戏产品中,虚拟角色的对象操作使用都是通过向服务器发送请求再根据服务器返回的命令来进行对应操作的,如果需要增加和修改虚拟角色的对象操作,则需要多名开发工程师进行开发和反复联调,由于对象操作系统分别在服务器和客户端实现,故调试较复杂,难度较大,导致开发效率较低,耗费周期也较长。
发明内容
基于此,有必要针对上述技术问题,提供一种能节省开发成本,提高开发效率的对象操作的处理方法、对象操作数据的生成方法、装置、计算机设备和存储介质。
一种对象操作的处理方法,所述方法包括:
获取第一对象操作指令;
获取与产生所述第一对象操作指令的第一操作位标识对应的对象操作动作标识;
查找与所述对象操作动作标识对应的对象操作动作配置文件,所述对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件。
一种对象操作数据的生成方法,所述方法包括:
显示对象操作动作配置界面;
通过所述对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
根据所述多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将所述对象操作动作配置文件和与对象操作关联的操作位标识对应存储。
一种对象操作的处理装置,包括:
交互指令获取模块,用于获取第一对象操作指令;
获取模块,获取与产生所述第一对象操作指令的第一操作位标识对应的对象操作动作标识;
查找模块,查找与所述对象操作动作标识对应的对象操作动作配置文件,所述对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
执行模块,根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件。
一种对象操作数据的生成装置,包括:
显示模块,用于显示对象操作动作配置界面;
对象操作事件配置模块,通过所述对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
对象操作动作配置文件生成模块,根据所述多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将所述对象操作动作配置文件和与对象操作关联的操作位标识对应存储。
一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取第一对象操作指令;
获取产生所述第一对象操作指令的第一操作位标识对应的对象操作动作标识;
查找与所述对象操作动作标识对应的对象操作动作配置文件,所述对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件。
一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
显示对象操作动作配置界面;
通过所述对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
根据所述多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将所述对象操作动作配置文件和与对象操作关联的操作位标识对应存储。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取第一对象操作指令;
获取产生所述第一对象操作指令的第一操作位标识对应的对象操作动作标识;
查找与所述对象操作动作标识对应的对象操作动作配置文件,所述对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
显示对象操作动作配置界面;
通过所述对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
根据所述多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将所述对象操作动作配置文件和与对象操作关联的操作位标识对应存储。
上述对象操作的处理方法、对象操作数据的生成方法、装置、计算机设备和存储介质,通过获取第一对象操作指令,再获取产生第一对象操作指令的第一操作位标识对应的对象操作动作标识,查找与对象操作动作标识对应的对象操作动作配置文件,对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件。每个对象操作动作标识都有对应的对象操作动作配置文件,而对象操作动作配置文件内又包含多个对象操作事件和对应的时间轴,因此在调试时,只要对对象操作对应的对象操作事件进行调试即可,这种方式不仅节省了开发成本,也能提高开发效率。
附图说明
图1为一个实施例中对象操作的处理方法的应用环境图;
图2为一个实施例中计算机设备的内部结构示意图;
图3为一个实施例中对象操作的处理方法的流程图;
图4为另一个实施例中对象操作的处理方法的流程图;
图5为一个实施例中对象操作对象、对象操作动作以及对象操作事件之间的关系结构框图;
图6为一个实施例中一个对象操作动作配置文件的6个对象操作事件配置界面;
图7为一个实施例中检测碰撞事件的部分事件参数配置界面;
图8为一个实施例中特效展示事件的部分事件参数界面;
图9为一个实施例中实现对象操作动作切换的流程图;
图10为一个实施例中对象操作动作切换事件的部分事件参数配置界面;
图11为一个实施例中对象操作切换过程的示意图;
图12为一个实施例中实现对象操作打断的方法的流程图;
图13为一个实施例中禁止被打断事件的部分事件参数配置界面;
图14为一个实施例中客户端与服务器进行交互的示意图;
图15为一个实施例中以Moba游戏作为应用场景的界面示意图;
图16为一个实施例中对象操作数据的生成方法的流程图;
图17为一个实施例中对象操作的处理装置的结构框图;
图18为一个实施例中对象操作数据的生成装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了一个实施例中对象操作的处理方法的应用环境图。参照图1,该对象操作的处理方法可应用于对象操作的实现系统中,该系统包括终端110和服务器120,终端110通过网络与服务器120连接。终端110可以是但不限于各种能运行特定应用的个人计算机、笔记本电脑、个人数字助理、智能手机、平板电脑等。服务器120可以是实现单一功能的服务器,也可以是实现多种功能的服务器,具体可以是独立的物理服务器,也可以是物理服务器集群。终端110上可通过特定的应用显示对象操作施放的操作界面,获取到第一对象操作指令后,获取与产生第一对象操作指令的第一操作位标识对应的对象操作动作标识,再查找与对象操作动作标识对应的对象操作动作配置文件。其中对象操作动作配置文件预先可通过下载特定应用或下载相关数据包获取得到,并存储在终端110本地。具体的,对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间。根据时间轴按照对象操作事件的执行先后顺序执行该对象操作动作配置文件中的对象操作事件。具体的,在终端110获取到对象操作动作配置文件之前,终端110运行特定应用,通过特定应用选择虚拟角色,并将选择的虚拟角色通知到服务器120,服务器120可返回选择的虚拟角色的对象操作动作配置文件的命令,将该命令发送到终端110,终端110根据该命令获取该虚拟角色对应的对象操作动作配置文件。
图2为一个实施例中计算机设备的内部结构示意图。该计算机设备具体可以是如图1中的终端110。如图2所示,计算机设备包括通过系统总线连接的处理器、存储介质、内存储器、网络接口、显示屏和输入装置。其中,该处理器用于提供计算和控制能力,支撑整个终端的运行。计算机设备的存储介质存储有操作系统以及计算机程序,该计算机程序被处理器执行时,使得处理器实现一种对象操作的处理方法。计算机设备中的内存储器也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种对象操作的处理方法。计算机设备的网络接口用于与服务器120通信。计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是外接的键盘、触控板或鼠标等,输入装置可获取用户使用手指对显示屏显示的操作界面产生的指令,例如获取通过点击第一操作位产生的第一对象操作指令。显示屏可用于显示特定应用界面,比如游戏应用画面。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图3所示,在一个实施例中,提供了一种对象操作的处理方法,该方法以应用于如图1和图2中所示的终端中进行举例说明。包括:
步骤302,获取第一对象操作指令。
具体地,终端运行特定应用,特定应用可以是游戏应用。在游戏应用中显示游戏场景和游戏操作界面,游戏操作界面中包括多个操作位,通过触发操作位可产生对象操作指令。本实施例中,通过触发第一操作位产生第一对象操作指令。
步骤304,获取与产生第一对象操作指令的第一操作位标识对应的对象操作动作标识。
在游戏场景的操作界面上,会有预先设定的多个操作位。操作位,也称为技能槽位,是对象操作的承载对象,也就是技能的承载对象。例如,在Moba游戏中,英雄角色的每个技能槽位对应了一种主动技能,其中包括但不限于常规技能、普通攻击技能、召唤师技能、装备主动技能等。主动技能,Moba游戏战斗中玩家通过UI的点击来主动施放的角色技能,Moba即Multiplayer Online Battle Arena,指一种多人在线战术竞技游戏。每个槽位都会有各自唯一的槽位标识。根据槽位标识预先配置了对应的技能,而每个技能也会有各自的技能动作。技能动作是指某个技能槽位之上的一次连贯的技能释放行为,每个对象操作中可包含若干个对象操作事件,即每个技能中可包含若干个技能事件。对应地,每个技能动作都有各自唯一的技能动作标识。当触发第一槽位时会产生对应的技能指令,即第一技能交互指令,根据第一技能交互指令获取到技能动作,即可根据此技能动作获取到对应的技能动作标识。一般情况下,一个槽位配置一个技能,一个技能会配置有多个技能动作,进而一个技能标识会与多个技能动作标识对应。
步骤306,查找与对象操作动作标识对应的对象操作动作配置文件,对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间。
每个对象操作动作都预先配置有对象操作动作配置文件,查找对象操作动作配置文件时根据每个对象操作动作的唯一的对象操作动作标识进行查找。在对象操作动作配置文件中包含了预先配置的多个对象操作事件和对应的时间轴。对象操作事件是指实现对象操作的某一特定细分功能的功能点,每个对象操作事件都有对应的时间轴,时间轴定义了对象操作事件执行的时间,使得对象操作事件在对象操作释放中某个时间段或者某个时间点有效,即对象操作事件在执行的时候,在什么时间点执行以及执行的时间长度都是取决于对应时间轴的配置。
步骤308,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件。
对象操作事件,即为技能事件。在时间轴上,每个技能事件都有各自的执行时间点,技能事件的执行顺序是根据技能事件在时间轴上定义的执行时间点来执行的。实际上,每个技能事件对应的程序实现是一个表示瞬时事件(TickEvent)或持续事件(DurationEvent)的类,通过调用对应的类对象实现对应的功能。根据技能事件在时间轴上的配置,即技能事件的执行时间长度,可将技能事件分为瞬时事件和持续事件。瞬时事件指的是技能事件只会在某一个时间点执行,持续事件指的是技能事件会在某一个时间段内一直执行。根据技能事件在时间轴上的配置,有的技能事件是在瞬时完成,有的则是持续完成。本实施例中,当获取到第一技能交互指令时,根据产生第一技能交互指令的第一槽位获取到对应的技能动作标识,再根据技能动作标识获取到对应的技能动作配置文件,而技能动作配置文件中包括预先配置的多个技能事件和对应的时间轴,再根据时间轴的配置依次执行技能事件。也就是说,在获取到技能交互指令的时候,是根据技能交互指令执行与技能动作对应的技能动作配置文件中的技能事件,则在调试过程中,只要对技能动作对应的技能事件进行调试即可,这种处理方式调试过程简单,节省了开发成本也提高了开发效率。
在一个实施例中,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件,包括:获取预先配置的对象操作事件的至少一个事件参数;根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件时,根据事件参数呈现对象操作事件的对象操作效果。
具体地,一个操作位对应一个对象操作,一个对象操作对应多个对象操作动作,一个对象操作动作对应一个对象操作动作配置文件,一个对象操作动作配置文件中包括多个对象操作事件,一个对象操作事件中包括至少一个事件参数。也可以理解为,一个技能槽位对应一个技能,一个技能对应多个技能动作,一个技能动作对应一个技能动作配置文件,一个技能动作配置文件中包括多个技能事件,一个技能事件中包括至少一个事件参数。
事件参数是指对对象操作事件的具体配置参数,事件参数定义了对象操作事件在执行时具体要显示的执行效果。在配置对象操作事件的时候,也对应配置了该对象操作事件在时间轴上的执行时间点和执行的时间长度,当对象操作事件执行的时候是根据在时间轴上的配置顺序依次执行的,而该对象操作事件在执行的时候具体产生怎样的效果则取决于该事件配置的事件参数。进一步地,对象操作事件的执行顺序和在执行时显示的效果则决定了与此对象操作事件所在的对象操作动作配置文件对应的对象操作动作具体显示怎样的对象操作效果。
对象操作即为技能,因此实际可以理解为,技能包括技能动作,技能动作对应的技能动作配置文件包括技能事件,技能事件包括事件参数,对功能逐步切割,层层分化,将一个大的功能分成了多个细化的功能点。这种处理方法在开发过程中实际运用时,当遇到与技能实现相关的功能出现bug(程序中隐藏着的一些未被发现的缺陷或问题)时,可直接对有bug技能下的技能动作配置文件、技能事件以及事件参数等进行调试,大幅度的降低了开发调试的难度,也节约了开发成本。此外,通过将技能动作逐步细分,这种原子化处理方式使得每个技能动作的实现更为简单,通过配置技能事先的事件参数即可配置出多种技能动作,从而实现多种技能效果,使得开发出来的技能能够更加多样化。
图4示出了另一个实施例中对象操作的处理方法的流程图,该方法以应用于如图1和图2中所示的终端中进行举例说明。包括:
步骤402,获取第一对象操作指令。
步骤404,获取与产生第一对象操作指令的第一操作位标识对应的对象操作动作标识。
对象操作指令交互的虚拟对象可以有,也可以没有,有些对象操作指令可以直接释放,但有的对象操作指令必须释放在某一个虚拟对象上。如上所述,在游戏场景的操作界面上通过触发第一操作位产生的第一对象操作指令。根据第一对象操作指令获取对应对象操作动作的对象操作动作标识。每个操作位配置一个对象操作,每个对象操作配置有多个对象操作动作,进而每个对象操作标识对应有多个对象操作动作标识。在获取到第一对象操作指令的时候,获取到的对象操作动作是预先配置的默认对象操作动作,因此获取到的对象操作动作配置文件也是预先默认选择的,即首次使用该对象操作的时候,执行的对象操作动作是预先在配置的多个对象操作动作中默认选定的一个对象操作动作。例如,在Moba游戏中,当获取到的第一对象操作指令为释放主动对象操作中的Q对象操作,而配置与Q对象操作对应的对象操作动作分别有Q1、Q2、Q3,那么在获取到第一对象操作指令时,就会执行默认选定的Q3对象操作动作。
步骤406,查找与所对象操作动作标识对应的对象操作动作配置文件,对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间。
每一个对象操作动作标识对应一个对象操作动作配置文件,即每一个对象操作动作有一个对象操作动作配置文件,对象操作动作根据对应的对象操作动作配置文件实现。对象操作动作中又包含多个对象操作事件,对象操作事件的执行时间点和执行的时间长度已经在时间轴上配置好,在执行对象操作事件的时候根据时间轴上的配置依次执行。
图5示出了一个实施例中对象操作对象、对象操作动作以及对象操作事件的关系结构框图。如图5可知,主动对象操作对应主动对象操作的对象操作动作,对象操作动作对应多个对象操作事件。被动对象操作与子弹对象操作,buff对象操作等也是如此,将功能层层细化,分成更小的功能点。
图6示出了一个实施例中一个对象操作动作配置文件的6个对象操作事件配置图,图中包含了6个对象操作事件,从上而下分别是编号为1的人物初始化事件(SetBehaviourMode,用于设置人物的一些初始状态,如是否停止移动、是否打断当前对象操作、设置人物朝向等)、编号为2的动画播放事件(PlayAnimation,用于表现相关的动画播放等)、编号为3的特效展示事件(TriggerParticle,用于展示相关的特效等)、编号为4的释放子弹事件(SpawnBullet,用于产生子弹)、编号为5的对象操作冷却计时事件(SkillCDTrigger,用于对象操作cd计时)、编号为6的检测碰撞事件(HitTrigger,用于根据碰撞结果对自身或目标产生某些对象操作效果,比如buff)。
以上6个对象操作事件的执行时间点和执行时间长度都在上方的时间轴上有定义,图中上方的时间轴,每一格代表一帧,当一个事件配置了多格,代表此事件在执行的时候执行的时间较长,则将此事件称为持续事件。同理,执行的时间较短的称为瞬时事件。因此,根据事件在时间轴上的配置可将事件分为瞬时事件和持续事件。
根据图6可知,SetBehaviourMode是一个瞬时事件,在最开始的时候执行,同时SkillCDTrigger和HitTrigger这两个事件也是瞬时事件,执行的时间点和执行的时间长度与SetBehaviourMode一致,这种情况下,这三个事件的执行顺序取决于纵向的对象操作事件的编号,那么这三个事件的执行顺序为,先执行编号为1的SetBehaviourMode,再执行编号为5的SkillCDTrigger,最后执行编号为6的HitTrigger。
PlayAnimation为持续事件,可以从图6中看出,PlayAnimation在整个对象操作动作配置文件的执行过程中都处于执行状态,而TriggerParticle和SpawnBullet这两个事件均为瞬时事件,跟上述分析一致,这两个事件的执行顺序为先执行编号为3的TriggerParticle,再执行编号为4的SpawnBullet。综合以上分析可知,按照图6中的对象操作事件配置情况,以上6个对象操作事件的执行顺序为,编号为1的SetBehaviourMode,编号为5的SkillCDTrigger,编号为6的HitTrigger,编号为3的TriggerParticle,编号为4的SpawnBullet,其中编号为2的PlayAnimation是一直在执行。
步骤408,获取预先配置的对象操作事件的至少一个事件参数。
对象操作动作配置文件中包含多个对象操作事件,而每一个对象操作事件中都包含了预先配置的至少一个事件参数。一般情况下,为了有更好的对象操作效果,会根据不同的对象操作事件分别配置不同的事件参数。通过配置不同的事件参数可以实现不同对象操作事件,从而实现多种对象操作动作。
举例说明,图7所示为一个实施例中检测碰撞事件的部分参数配置界面。HitTrigger的事件参数包括时间、指定目标、触发对象、最后受击、是否选择一个攻击者对象操作效果、攻击者对象操作效果组合ID1等,此处只是给出了其中一部分的事件参数,每个对象操作事件都有可供配置的一些参数,用来配置对象操作事件具体的行为和表现,但每个对象操作事件的事件参数都会随着对象操作事件本身发生变化,因此每个对象操作事件的事件参数都是有区别的。
再举例说明,释放子弹事件SpawnBullet会根据其中的参数产生一个子弹对象,同时会引起另一个对象操作动作配置文件完善这个子弹对象。在这个对象操作动作配置文件中,包括有产生子弹对象事件(SpawnObject)、为子弹对象添加碰撞体对象事件(SetCollision)、特效展示事件(TriggerParticle)、移动子弹事件(MoveBullet)、检测碰撞事件(HitTrigger)以及多个结束事件(StopTrack)。其中,SpawnObject用于产生实际的一个子弹对象,并设置它的参考位置、朝向、父对象和其他一些基本信息。SetCollision用于给这个子弹对象添加碰撞体,使之可以参与到场景碰撞检查中,以便判断子弹是否命中。TriggerParticle则是展示相关特效。MoveBullet是用于按其参数设置的规则来移动子弹。HitTrigger和StopTrack则依赖于MoveBullet中的子弹命中情况,若子弹命中,则给命中目标种上一个buff并提前结束相关的轨道事件。对于对象操作事件中的释放子弹事件SpawnBullet而言,在配置释放子弹事件SpawnBullet时,只要考虑“产生一个对象操作的子弹”这件事,至于具体是怎样创建游戏中的子弹对象的,子弹的位置、朝向、碰撞形状大小等具体如何,子弹有怎样的视觉效果,子弹如何移动,子弹命中会产生哪些逻辑效果以及视觉效果等等,则取决于子弹事件SpawnBullet引起的另一个对象操作动作配置文件中的具体对象操作事件配置。此释放子弹事件SpawnBullet与上述实施例中检测碰撞事件HitTrigger略有不同,因为SpawnBullet引起了另外一个对象操作动作配置文件,这种配置是基于开发者的考虑而定,对于不同的对象操作事件会有不同的配置方式,但总体来说,都是将产品的功能点细化,让开发者和设计者只需要在一个同一个设计层次或者说同一时刻可以只考虑“做什么”,而不必考虑“怎么做”。
步骤410,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件时,根据事件参数呈现对象操作事件的对象操作效果。
对象操作事件是按照对象操作事件在时间轴上预先配置好的执行时间点和执行时间长度执行的。而对象操作事件在执行时具体产生怎样的对象操作效果是根据对象操作事件的事件参数来进行呈现。
举例说明,图8为一个实施例中特效展示事件的部分事件参数界面,具体地,TriggerParticle的事件参数包括有时间、父对象、虚拟父对象、位置参考虚拟对象、存活时长、相对平移量、使用作用位置、使用作用朝向、使用子弹移动方向以及使用距离朝向等,这些事件参数决定了TriggerParticle在被执行的时候实际上产生的具体视觉效果。而在对对象操作动作配置文件进行配置的时候,只要配置了TriggerParticle即可,TriggerParticle也只需要考虑特效展示这件事,而不需要考虑具体特效要如何展示,具体展示成怎样的效果,具体的实现和实现的效果取决于TriggerParticle这个事件内包括的事件参数的具体配置情况。
每一个对象操作事件中都会包括至少一个事件参数,一般情况下,事件参数都会配置多个,当多个对象操作事件依次执行时,对象操作事件具体产生的效果则取决于该对象操作事件中配置的事件参数。当根据产品战略或用户需求需要对虚拟角色的对象操作进行调整时,不论是需要对已开发完的对象操作动作进行修改还是新增对象操作动作,都可以使用已开发完毕的对象操作动作的配置文件。当虚拟角色的对象操作动作存在有共同的特性时,则可以使用该共同部分的配置文件在较短的时间内对对象操作动作进行改进与修改,同时由于每个对象操作事件都有各自的事件参数,在调整的过程中,对参数的调整也更为简单快捷,从而降低了开发时间,节约了开发成本。
在一个实施例中,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件,包括:当多个对象操作事件中包括对象操作动作切换事件时,获取预先配置的对象操作切换动作事件的事件参数,事件参数中包括预先配置的下一对象操作动作标识;将下一对象操作动作标识赋予第一操作位标识的下一对象操作对象。
对象操作动作切换,也称为对象操作切换,是指将同一个对象操作操作位的当前对象操作对象替换为下一目标对象操作对象,在游戏运行过程中,通过配置对象操作动作切换事件来实现对象操作动作切换效果。具体地,对象操作事件中如果包含有对象操作动作切换事件,那么当根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件时,对象操作动作切换事件也会在执行的序列当中。当执行到对象操作动作切换事件时,获取到对象操作动作切换事件的事件参数,根据配置的事件参数呈现对象操作动作切换事件的执行效果。对象操作动作切换事件的事件参数中包括预先配置的下一对象操作动作标识,下一对象操作动作标识与下一个对象操作动作对应,下一个对象操作动作指,执行完当前正在执行的对象操作动作后,下一个要执行的对象操作动作。
进一步的,再将下一个对象操作动作标识赋予第一操作位标识的下一对象操作对象,第一操作位标识的下一对象操作对象指再次触发第一操作位时会执行的对象操作。将下一个对象操作动作标识赋予第一操作位标识的下一对象操作对象,即再次触发第一操作位时,执行的对象操作动作为当前正在执行的对象操作动作对应的对象操作动作配置文件中包括的对象操作动作切换事件中预先配置的与下一个对象操作动作标识对应的对象操作动作。即,如果触发了同一个操作位,那么触发此操作位后要执行的对象操作动作是预先已经在当前正在执行的对象操作动作的相关配置文件中配置好的。
在本实施例中,在执行当前对象操作动作时,就已经将如果再次获取到同一个操作位时要执行的对象操作动作准备好了,只要触发即可使用。预先在客户端的配置文件中提前配置好对象操作动作,并且将同一操作位再次被触发时会执行的对象操作动作在当前正在执行的对象操作动作对应的文件中预先配置好,当再次触发操作位时即可立即执行,节省了传统技术中需要先向服务器发送请求再接收服务器请求的等待时间,也避免了每一次触发操作都需要向服务器发送请求带来的流量耗费。
在一个实施例中,在上述将下一对象操作动作标识赋予第一操作位标识的下一对象操作对象之后,包括:再次获取触发第一操作位标识对应的第一操作位所产生的第一对象操作指令;获取第一操作位标识的下一对象操作对象所指向的下一对象操作动作标识;查找下一对象操作动作标识对应的对象操作动作配置文件;执行下一对象操作动作标识对应的对象操作动作配置文件中配置的对象操作事件。
再次获取触发第一操作位标识对应的第一操作位所产生的第一对象操作指令,即再次触发第一操作位时产生的对象操作动作指令,根据对象操作指令执行对应的对象操作动作。获取第一操作位标识的下一对象操作对象所指向的下一对象操作动作标识,再根据此下一对象操作动作标识对应的下一对象操作动作查找到下一对象操作动作的对象操作动作配置文件。同理,下一对象操作动作的对象操作动作配置文件中也配置有多个对象操作事件,根据对象操作指令执行下一对象操作动作时,即执行下一对象操作动作的对象操作动作配置文件中配置的对象操作事件。
在游戏场景中,一般也将对象操作称为技能,操作位称为槽位。为了增加游戏的趣味性,游戏产品往往会给技能配置多种玩法,比如同一个对象操作的连续施放,即同一个技能的连续施放。而同一个技能的连续施放在界面上的显示也会有不同的视觉效果,在产品的丰富性上,一般会对不同的虚拟角色的技能有不同的配置,虽然都是同一个技能的连续施放,但可以通过具体技能的变化分为变化技能招式和技能连招。变化技能招式是指连续触发同一个槽位时技能动作的变化。而技能连招,也可以解释为同一个技能连续触发会有不同的技能动作,但技能连招一般会伴随着虚拟角色的位移有产生变化。但变化技能招式和技能连招两者的实现机制是一样的,只是丰富了虚拟角色技能动作的多样性而已。一般情况下,同一个技能的连续施放会预先设置一个时间阈值,只有在这个时间内连续触发同一个技能才会有变化技能招式和技能连招的效果,对于游戏产品来说,具体设置的时间阈值为多少,或是否要设置,可根据系统开发者或者基于用户习惯的考虑去采取对应的处理方式。
对于同一技能的连续施放往往都是瞬间操作,在技能施放后如果不能立即得到服务器的响应就会造成延迟,与其他虚拟角色的交互也不能得到及时的反馈。而在本实施例中,由于再次触发同一个槽位会执行的技能动作已经在当前执行的技能动作对应的技能动作配置文件中包括的技能动作切换事件中预先配置完毕,那么在触发同一个槽位时,便可立即响应触发的槽位产生的技能交互指令,即立即执行对应的技能动作,不需要像传统技术一样,需要先向服务器发起执行对应技能的请求,再等待服务器返回的对应操作命令,然后根据对应操作命令再执行对应的技能动作。而在本实施例中,触发则立即响应,避免了客户端的延迟,也提升了游戏运行的流畅度。
图9示出了一个实施例中实现对象操作动作切换的方法的流程图,该方法以应用于如图1和图2中所示的终端中进行举例说明。包括:
步骤902,当多个对象操作事件中包括对象操作动作切换事件时,则执行步骤904。
在执行对象操作动作的时候,即执行对象操作动作对应的对象操作动作配置文件中配置的对象操作事件。基于产品趣味性的考虑,在配置虚拟角色的对象操作动作时,会对不同的对象操作动作有不同的考量,因此并不是每一个对象操作动作的对象操作动作配置文件中都配置有对象操作动作切换事件。在执行对象操作事件时,若有对象操作动作切换事件则执行。
步骤904,获取预先配置的对象操作切换动作事件的事件参数,事件参数中包括预先配置的下一对象操作动作标识。
当多个对象操作事件中包括对象操作动作切换事件时,对象操作动作切换事件也会根据在时间轴上配置的执行时间点和执行的时间长度被执行,当执行到对象操作动作切换事件时,会获取到对象操作动作切换事件的事件参数,事件参数包括预先配置的下一对象操作动作标识。下一对象操作动作标识对应下一对象操作动作,此对象操作动作是在对象操作动作切换事件中提前配置的。
进一步地,在一个实施例中,上述对象操作动作切换事件ChangeSkillEvent的事件参数中预先配置的下一对象操作动作标识取决于预先配置的可切换到的对象操作ID以及与对象操作ID对应的概率。其中,可切换到的对象操作ID即可切换到的对象操作动作标识,与可切换到的对象操作对应,对象操作ID对应的概率是指从本对象操作切换至与该可切换到的对象操作动作标识对应对象操作的概率。当在ChangeSkillEvent的事件参数中配置了多个可切换到的对象操作ID以及与对象操作ID对应的概率时,切换至哪个可切换到的对象操作ID对应的对象操作取决于该对象操作ID对应的概率,一般来说,概率越大切换至该对象操作ID的可能性也越大。
图10示出了一个实施例中对象操作动作切换事件的部分事件参数配置界面。ChangeSkillEvent用于对象操作切换,图10中对象操作动作切换事件ChangeSkillEvent的事件参数包括:改变对象操作ID1、改变对象操作ID2、改变对象操作ID3、改变对象操作ID4、改变对象操作概率ID1、改变对象操作概率ID2、改变对象操作概率ID3以及改变对象操作概率ID4。其中,改变对象操作指上述的下一对象操作动作。在本实施例中,对象操作动作切换事件ChangeSkillEvent的事件参数配置了4个改变对象操作ID以及4个对应的改变对象操作概率,每个改变对象操作ID对应一个概率,而这四个改变对象操作ID中哪一个改变对象操作ID对应的对象操作能成为下一个对象操作动作则取决于与该改变对象操作ID对应的改变对象操作概率。
具体地,如图10所示,改变对象操作ID1设置为11001,改变对象操作ID2设置为11000,改变对象操作ID3和改变对象操作ID4均设置为0,与改变对象操作ID1对应的概率,即改变对象操作概率ID1设置为50,与改变对象操作ID2对应的改变对象操作概率ID2设置为150,而改变对象操作概率ID3以及改变对象操作概率ID4设置为0,那么只有两个有效的改变对象操作ID,即改变对象操作ID1与改变对象操作ID2,而根据设置的概率可得知,改变对象操作ID1对应的对象操作成为下一个对象操作的概率为50/(50+150)=25%,同样的,改变对象操作ID2对应的对象操作成为下一个对象操作的概率为150/(50+150)=75%。也就是,改变对象操作ID1对应的ID为11001的对象操作有25%的几率成为下一个对象操作,而改变对象操作ID2对应的ID为11000的对象操作有75%的几率成为下一个对象操作。
步骤906,将下一对象操作动作标识赋予第一操作位标识的下一对象操作对象。
操作位指的是对象操作操作位,对象操作操作位对应对象操作,对象操作对应多个对象操作。因此触发操作位时会执行预先配置的对象操作。对于每一个操作位SkillSlot都会配置当前对象操作对象(CurrentSkillObj)和下一个对象操作对象(NextSkillObj),CurrentSkillObj对应当前执行的对象操作,NextSkillObj则对应再次触发当前操作位时要执行的对象操作,即下一个对象操作。在执行当前对象操作对象CurrentSkillObj时,如果此对象操作对象对应的对象操作动作配置文件中包括对象操作动作切换事件ChangeSkillEvent,那么就获取当前对象操作对象CurrentSkillObj中包含的对象操作动作切换事件ChangeSkillEvent的事件参数,事件参数中包括有下一对象操作动作标识。然后将获取到的下一对象操作动作标识赋予当前对象操作对象CurrentSkillObj所在操作位SkillSlot的下一个对象操作对象NextSkillObj。即再次触发此操作位SkillSlot产生对象操作指令时,执行的对象操作就是下一个对象操作对象NextSkillObj的对象操作。
步骤908,再次获取触发第一操作位标识对应的第一操作位所产生的第一对象操作指令。
如上所述,当前正在执行的对象操作是根据触发第一操作位从而产生与第一对象操作指令对应对象操作的一个对象操作,再次获取触发第一操作位标识对应的第一操作位所产生的第一对象操作指令,即再次触发同一操作位进而产生同一个对象操作指令。例如,用户使用手指通过触摸屏再次点击游戏操作界面上的同一操作位,产生对象操作指令。
步骤910,获取第一操作位标识的下一对象操作对象所指向的下一对象操作动作标识。
下一对象操作动作标识是在对象操作动作切换事件中预先配置的,当执行对象操作动作切换事件时,会获取事件参数中配置的下一个对象操作动作标识。获取完以后会将下一对象操作动作赋予第一操作位标识的下一对象操作对象,而对于第一对象操作操作位而言,下一对象操作对象指再次触发第一操作位时将执行的对象操作动作。但如果下一对象操作动作并没有在对象操作动作切换事件ChangeSkillEvent中配置,那就不会有下一对象操作动作赋予第一操作位标识的下一对象操作对象。这种情况下,对于第一对象操作操作位而言,下一对象操作对象仍然是当前正在执行的对象操作动作。
举例说明,图11示出了对象操作切换过程的示意图。图中的SkillSlot表示对象操作操作位,即技能槽位,其中包含SkillSlot一个当前对象操作对象(CurrentSkillObj)和一个下一对象操作对象(NextSkillObj)。若在执行当前对象操作对象CurrentSkillObj时,即在执行当前对象操作动作时,当前对象操作动作对应的对象操作动作配置文件中包括有对象操作动作切换事件(ChangeSkillEvent),则根据ChangeSkillEvent的事件参数中配置的规则选出将要切换的对象操作对象赋值给NextSkillObj,配置的规则比如根据配置的概率等。当第二次使用对象操作时判断NextSkillObj是否为空,如果NextSkillObj不为空,则执行NextSkillObj中包括的对象操作对象对应对象操作的对象操作动作;如果NextSkillObj为空则仍然执行当前对象操作(CurrentSkill)。
步骤912,查找下一对象操作动作标识对应的对象操作动作配置文件。
每个对象操作动作标识都会有唯一对应的对象操作动作,故下一对象操作动作标识对应的下一对象操作动作也是唯一的,而每个对象操作动作都会有对应的对象操作动作配置文件。
步骤914,执行下一对象操作动作标识对应的对象操作动作配置文件中配置的对象操作事件。
获取到下一对象操作动作对应的对象操作动作配置文件后,再获取到对象操作动作配置文件中包含的多个对象操作事件,执行对象操作动作也就是执行对象操作动作配置文件中配置的对象操作事件。
一般情况下,当对象操作动作配置文件中配置了对象操作动作切换事件时,则说明为此对象操作动作对应的对象操作配置了同一个对象操作的连续施放的操作,当连续触发操作位时,会连续执行多个对象操作动作。而对象操作动作的相关配置文件在客户端上早预先配置完毕,只需要在游戏运行开始时获取操控的虚拟角色对应的对象操作动作即可,而在游戏过程中,虚拟角色施放对象操作时并不需要时刻给服务器发送请求再等待服务器返回的执行命令,而是将某一个时间段内虚拟角色的操作记录以帧同步命令的方式发送至服务器即可。再次触发同一个操作位时要执行的对象操作动作由于已在客户端上配置完毕,因此触发同一操作位产生对应的对象操作指令时即可响应,立即执行对应的对象操作动作,在客户端上运行的时候并不会有延迟。
在一个实施例中,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件,包括:在根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件的过程中,当多个对象操作事件中包括禁止被打断事件时,获取预先配置的禁止被打断事件的事件参数,禁止被打断事件的事件参数中包括预先配置的可打断当前对象操作动作的对象操作;若获取到通过触发第二操作位产生的第二对象操作指令,则检测第二对象操作指令对应的对象操作是否为可打断当前对象操作动作的对象操作,若否,则根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行第二对象操作指令产生的对象操作动作。
禁止被打断指在执行当前对象操作动作时,如果获取到其他对象操作操作位产生的对象操作动作指令,不会立即执行该对象操作指令对应对象操作的对象操作动作。但在游戏产品的设计中,并不是获取到所有对象操作操作位产生的对象操作动作指令时都不能立即执行对应对象操作的对象操作动作,而是会根据对象操作动作配置文件中的禁止被打断事件的事件参数配置来对应执行。在根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件的过程中,当多个对象操作事件中包括禁止被打断事件时,则会执行禁止被打断事件。在执行禁止被打断事件时会获取到禁止被打断事件的事件参数,禁止被打断事件的事件参数中包括有预先配置的可打断当前对象操作动作的对象操作。
再次获取操作指令,如果获取到的是通过触发第二操作位产生的第二对象操作指令,即与当前正在执行的对象操作动作所在的第一操作位不是同一个操作位时,检测第二对象操作指令对应的对象操作动作是否为可打断当前对象操作动作的对象操作,即检测第二对象操作指令对应的对象操作动作是否与禁止被打断事件的事件参数中配置的可打断当前对象操作动作的对象操作匹配。如果匹配了,则说明第二对象操作指令对应的对象操作能够打断当前对象操作动作,反之,不匹配则说明第二对象操作指令对应的对象操作不能够打断当前对象操作动作,那么第二对象操作指令对应的对象操作动作并不会立即执行,而是要根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行第二对象操作指令产生的对象操作动作。
通过对当前正在执行的对象操作动作对应的对象操作动作配置文件中的禁止被打断事件进行相关配置,在获取到新产生的对象操作动作时,可立即对获取到的对象操作指令进行对应的响应。由于配置文件在客户端上早已经配置完毕,在游戏运行过程中,只要获取相关的配置文件对应执行即可,在响应上不会有延迟效果,游戏运行也能够更流畅。
在一个实施例中,根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行第二对象操作指令产生的对象操作动作,包括:执行第一操作位标识对应的对象操作动作标识对应的对象操作动作配置文件中包括的执行对象操作缓存事件,执行上述执行对象操作缓存事件时检测对象操作事件中包括的对象操作缓存事件是否存储有缓存命令;当对象操作缓存事件中有缓存命令时,根据禁止被打断事件在时间轴上预先配置的时间执行完第一对象操作指令产生的对象操作动作后,再执行缓存命令中包括的第二对象操作指令产生的对象操作动作对应的第二对象操作动作配置文件中的对象操作事件。
当第一操作位标识对应的对象操作动作标识对应的对象操作动作配置文件中包括有执行对象操作缓存事件(SkillUseCache)时,会依次执行SkillUseCache,而执行SkillUseCache时,实际上执行的是对象操作缓存事件(SkillInputCache)中存储的缓存命令,该存储的缓存命令中包括有对象操作指令,也就是对象操作缓存。对象操作缓存是指若要使用目标对象操作对象且当前使用的对象操作对象动作不能被打断,可以将该目标对象操作对象缓存起来,等待当前使用对象操作对象动作结束或可以被打断时,再执行目标对象操作对象的动作。因此当SkillInputCache中存储有缓存命令时,SkillUseCache会直接执行SkillInputCache中存储的缓存命令;如果SkillInputCache中未存储有缓存命令,那么SkillUseCache则没有缓存的命令需要执行。而在SkillInputCache存储的缓存命令中包括有第二对象操作指令,对应地,执行第二对象操作指令即为执行第二对象操作指令产生的对象操作动作对应的第二对象操作动作配置文件中的对象操作事件。
对象操作动作配置文件在客户端上已经配置完毕,在游戏开始之前已经获取到相关的配置文件,因此在游戏过程中只要根据配置文件来执行对应的对象操作动作即可。当获取到新的对象操作指令时,也可以立即响应。而配置禁止被打断事件能够保证施放对象操作的确定性以及能够达到预定的作用效果,对象操作缓存事件以及执行对象操作缓存事件则能够实现多个对象操作间的连贯流畅施放,提高了对象操作动作的执行效果和游戏产品的丰富性。
图12示出了一个实施例中实现对象操作打断的方法的流程图,该方法以应用于如图1和图2中所示的终端中进行举例说明。包括:
步骤1202,当多个对象操作事件中包括禁止被打断事件时,则执行步骤1204。
对象操作打断是指某个特定的对象操作操作位产生的对象操作动作被其他对象操作操作位产生的对象操作动作打断。禁止被打断事件ForbidAbility用于设置当前对象操作在一段事件内与其他对象操作的交互关系,如是否可以被打断、是否免疫负面或控制效果、是否屏蔽碰撞检测等。因此,并不是每一个对象操作对应的对象操作动作配置文件中都会包括有ForbidAbility。当配置了ForbidAbility时,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件时,ForbidAbility同样会在被执行的对象操作事件序列中。
步骤1204,获取预先配置的禁止被打断事件的事件参数,禁止被打断事件的事件参数中包括预先配置的可打断当前对象操作动作的对象操作。
禁止被打断事件ForbidAbility的事件参数中可以配置本对象操作“不能被打断”参数,即预先配置的可打断当前对象操作动作的对象操作及不可打断当前对象操作动作的对象操作。当配置了“不能被打断”参数时,也就是配置了对象操作前摇不能被打断。对象操作前摇指对象操作施放过程再产生子弹之前的时间。对象操作前摇指对象操作释放过程在产生子弹之前的时间。
具体地,图13示出了一个实施例中禁止被打断事件的部分事件参数配置界面。如图13所示,此禁止被打断事件ForbidAbility中包括有:是否开启不能打断对象操作、是否屏蔽普攻、是否屏蔽对象操作1、是否屏蔽对象操作2、是否屏蔽对象操作3。当不能打断对象操作参数勾选了ON,则说明此对象操作动作设置被不可被打断,至于具体不可被哪些对象操作打断则取决于图中勾选的屏蔽对象操作。如果勾选了不能打断对象操作,同时勾选了屏蔽对象操作1,指此对象操作动作设置为不可打断,但不包括对象操作1,也就是指对象操作1是可以打断当前对象操作动作的。而是否屏蔽普攻,默认设置为不屏蔽普攻,即普攻是不可打断当前对象操作动作的。但默认设置为屏蔽普攻还是不屏蔽普攻,可根据系统开发者或者基于用户习惯的考虑去采取对应的处理方式。普攻,普通攻击,是游戏中被控制虚拟角色对象操作中的一种,一般指不需要其他装备而能够一直使用的攻击对象操作。但在本发明中,也将普攻处理为主动对象操作中的一种。
综上分析,结合图13说明,当前对象操作设置为不可被打断的对象操作动作,其中普攻不可打断当前对象操作动作,而对象操作1、对象操作2以及对象操作3因为均被设置为屏蔽,则说明这三个对象操作都是可以打断当前对象操作动作的。那么在执行当前对象操作动作时,如果触发了对象操作1、对象操作2或对象操作3中的任意一个对象操作,都是可以立即切换至对应的对象操作动作的。
步骤1206,当获取到通过触发第二操作位产生的第二对象操作指令时,则执行步骤1208。
判断获取到的对象操作指令是第一操作位产生的还是第二操作位产生的,或者是否有触发对象操作操作位产生了对象操作指令。如果对象操作指令是第一操作位产生的,则说明产生对象操作指令的操作位与当前正在执行的对象操作对应的同一个操作位,那么则是同一个对象操作的连续施放,而不会涉及对象操作被打断。如果对象操作指令是第二操作位产生的,则说明产生对象操作指令的操作位与当前正在执行的对象操作动作对应的不是一个操作位,那么获取到的对象操作指令对应的对象操作则是另一个对象操作,由当前正在执行的对象操作对应的对象操作动作切换至另一个对象操作对应的对象操作动作,则需要考虑当前对象操作动作是否能够立即切换至其他对象操作对应的对象操作动作。
步骤1208,检测第二对象操作指令对应的对象操作是否为可打断当前对象操作动作的对象操作,若否,则执行步骤1210;若是,则执行步骤1216。
当获取到的是第二对象操作指令时,则说明产生对象操作指令的操作位与当前正在执行的对象操作动作对应的不是一个操作位,这个时候需要考虑当前对象操作动作是否能够立即切换至第二对象操作指令对应对象操作的对象操作动作。而是否能够从当前执行的对象操作动作切换至第二对象操作指令对应对象操作的对象操作动作取决于当前执行的对象操作动作对应的对象操作动作配置文件中的配置,如果当前执行的对象操作动作对应的对象操作动作配置文件中ForbidAbility中的不能打断对象操作参数设置为ON,且第二对象操作指令对应对象操作未被设置为屏蔽对象操作,那么则说明第二对象操作指令对应对象操作的对象操作动作均不可打断当前正在执行的对象操作动作。
反之,如果当前执行的对象操作动作对应的对象操作动作配置文件中ForbidAbility中的不能打断对象操作参数设置为ON,且第二对象操作指令对应对象操作被设置为屏蔽对象操作,那么则说明第二对象操作指令对应对象操作的对象操作动作均可打断当前正在执行的对象操作动作。
步骤1210,执行第一操作位标识对应的对象操作动作标识对应的对象操作动作配置文件中包括的执行对象操作缓存事件。
执行对象操作缓存事件SkillUseCache,作用是执行对象操作动作配置文件中包括的对象操作缓存事件SkillInputCache中存储的缓存命令。对象操作缓存事件SkillInputCache用于配置在预设时间内,如果人物移动或使用了其他对象操作,是否将这些移动或对象操作施放缓存下来,也可以理解为对象操作缓存。一般情况下,如果对象操作动作对应的对象操作动作配置文件中配置了ForbidAbility,那么也会配置有SkillUseCache和SkillInputCache,虽然这三个事件都是相互独立的,但是这三个事件如果同时配置则可以产生更好的执行效果。
步骤1212,当对象操作事件中包括的对象操作缓存事件中存储有缓存命令时,则执行步骤1214。
对象操作缓存事件SkillInputCache虽然是用于缓存命令,但有可能在需要用到SkillInputCache中的存储的缓存命令时,SkillInputCache中还没有存储有缓存命令,因此在执行SkillUseCache时,需要对SkillUseCache中是否有缓存内容进行检测。当对象操作事件中包括的对象操作缓存事件SkillInputCache中没有存储有缓存命令时,那么在执行SkillUseCache时,SkillUseCache会获取SkillInputCache中存储的缓存命令并执行,如果SkillInputCache中存储的内容为空,则相当于SkillUseCache并没有需要执行的缓存命令。
步骤1214,根据禁止被打断事件在时间轴上预先配置的时间执行第一对象操作指令产生的对象操作动作后,再执行缓存命令中包括的第二对象操作指令产生的对象操作动作对应的第二对象操作动作配置文件中的对象操作事件。
这里预先配置的时间指的是禁止被打断事件ForbidAbility在时间轴上配置的时间,由于ForbidAbility是一个持续事件,那么ForbidAbility会在设置的这个时间段内都处于执行阶段。因此,如果ForbidAbility的事件参数中如果设置了对象操作A为不可打断当前对象操作动作的对象操作,那么在ForbidAbility执行的时间段内,如果收到当前被控制的虚拟角色施放对象操作A,那么并不会立即切换至对象操作A,即不会立即执行对象操作A对应的对象操作动作。而是通过SkillInputCache将虚拟角色施放对象操作A的命令缓存下来。具体地,SkillInputCache缓存命令是通过使用设置对象操作缓存(SetSkillCache)函数接口将虚拟角色施放对象操作的命令以及其他比如位移等状态命令缓存下来。
一般情况下,对象操作前摇阶段会被禁止被打断事件ForbidAbility完全覆盖,因此当ForbidAbility执行完毕,相当于根据禁止被打断事件在时间轴上预先配置的时间执行第一对象操作指令产生的对象操作动作。而对象操作缓存事件SkillUseCache为瞬时事件,且在时间轴上设置的执行时间点一般在位于其他事件之后,即对象操作后摇阶段,因此在执行完其他事件后执行SkillUseCache时,才开始检测SkillInputCache中是否存储有缓存命令。对象操作后摇指对象操作释放过程在产生子弹之后的时间。
当SkillInputCache中存储有缓存命令时,SkillUseCache在执行时则可以直接获取到SkillInputCache中存储的缓存命令。由于第二对象操作指令对应对象操作的对象操作动作为不可打断当前正在执行的对象操作动作,那么获取到第二对象操作指令后,并不会立即执行对应对象操作的对象操作动作,而是会先将当前正在执行的第一对象操作指令产生的对象操作动作执行预先配置的时间后,再去执行第二对象操作指令对应对象操作的对象操作动作。
步骤1216,直接执行第二对象操作指令产生的对象操作动作。
当检测第二对象操作指令对应的对象操作是为可打断当前对象操作动作的对象操作时,则说明在ForbidAbility的事件参数中不能打断对象操作参数设置为ON,且第二对象操作指令对应的对象操作被设置为屏蔽对象操作。因此,第二对象操作指令对应的对象操作是能够打断当前对象操作动作的,故当获取到第二对象操作指令时会立即直接执行第二对象操作指令产生的对象操作动作,执行第二对象操作指令产生的对象操作动作即获取该对象操作动作对应的对象操作动作配置文件中配置的多个对象操作事件和对应的时间轴,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件。
在本实施例中,通过对对象操作事件的配置,实现了对象操作打断和对象操作缓存的功能,丰富了对象操作的多样性及使用上的流畅性。由于配置文件已经预先存储在客户端,因此在对对象操作动作的执行和相关逻辑判断上并不需要服务器的及时响应和计算检查,使得在游戏过程中对虚拟角色的对象操作操作都能够立即响应,也减少了每一次操作请求都要发送至服务器产生的流量耗损。
在一个实施例中,获取产生第一对象操作指令的操作位对应的对象操作动作配置文件之前,包括:当第一操作位的状态为可用时,获取对象操作释放的虚拟目标对象,并将对象操作释放在预设时间内产生的记录通过帧同步命令发送至服务器;接收服务器中转的帧同步命令,对记录进行合法性验证,验证通过则进入获取产生第一对象操作指令的操作位对应的第一对象操作动作配置文件。
当第一对象操作操作位的状态为可用状态时,说明第一个对象操作操作位可被触发产生第一对象操作指令,则控制虚拟角色获取对象操作释放的虚拟目标对象,获取到虚拟目标对象后就将对象操作释放在预设时间内产生的记录通过帧同步命令发送至服务器。简单来说,帧同步是一种前后端数据同步的方式,一般应用于对实时性要求很高的网络游戏。
当服务器接收到客户端发送的帧同步命令后,会将命令进行简单的中转,并不会做逻辑性判断,然后就直接将命令返回至客户端。客户端接收到服务器中转的帧同步命令,对记录进行合法性验证。这里的合法性验证是指验证帧同步命令中包括的操作命令,如果操作命令正常,则证明验证通过。验证通过后才能获取产生第一对象操作指令的操作位对应的第一对象操作动作配置文件,进而执行第一对象操作动作配置文件中包括的多个对象操作事件。
与传统技术不同的是,传统技术是逻辑在服务器和客户端分别各有一份,并且逻辑在服务器进行校验;而本实施例中逻辑全部都在客户端,服务器仅仅转发操作命令,逻辑校验也在客户端。因此对于对象操作操作命令响应快,对网络要求也较低。
图14示出了一个实施例中客户端与服务器进行交互的示意图,包括:
步骤1402,客户端检测第一操作位的状态是否可用,若是,则执行步骤704;若否,则执行步骤712。
这里的客户端是指游戏客户端,特别是可运行Moba游戏的游戏客户端。对象操作操作位的状态是否可用,一般在视觉上显示为UI(用户界面)层是否显示为可交互状态。客户端UI层会根据魔法量、对象操作是否达到施放条件、对象操作储备次数等规则进行先行检查,把不符合条件的对象操作施放直接在UI层挡掉。如果第一操作位的状态为可用状态,则第一操作位的对应UI层则会显示为可交互状态。
步骤1404,获取对象操作释放的虚拟目标对象,并将对象操作释放在预设时间内产生的记录通过帧同步命令发送至服务器。
被控制的虚拟角色在对象操作释放时会产生相关的操作记录,也可以成为特征值,在一定的时间内,客户端会将本客户端的特征值进行hash之后通过帧同步命令同步至服务器。特征值包括被控虚拟角色ID、位置、行为、当前血量、对象操作目标ID、总血量、金币以及经验数据等等。
步骤1406,接收服务器中转的帧同步命令,对记录进行合法性验证。
服务器接收到客户端上传的帧同步命令后,会将此帧同步命令再中转回客户端。但服务器中转的帧同步命令不仅包括本客户端在一段时间内的操作命令,也会包括在这段时间内其他客户端上传的帧同步命令。即每个客户端接收到的服务器中转的帧同步命令实际上是同一时间段内上传了帧同步命令至服务器的所有客户端的操作记录。
而客户端在收到服务器中转的帧同步命令后,会对该对象操作进行对象操作一致性检查。一致性检查是指所有客户端都对完全一致的内容和过程进行检查。具体地,比如有10个客户端,那么这10个客户端所做的检查都是完全一样的,而这10个客户端会检查各自接收到的服务器中转的帧同步命令中包含的操作记录,比如操作记录中虚拟角色1在未操作的情况下自己飞起来了,那么这种操作就是不合法的。服务器只是中转各个客户端上传的包含操作记录的帧同步命令,并不会该对象操作是否能够使用进行计算、检查以及相关逻辑性的判断。
步骤1408,判断是否通过合法性验证,若是,则执行步骤1410;若否,则执行步骤1414。
当客户端对接收到的服务器中转的帧同步命令中包含的操作记录进行合法性验证时,如果通过了验证,则说明客户端的操作记录都是正常的,可正常执行该对象操作操作位对应的对象操作;如果没有通过验证,则说明操作是不合法的,那么客户端就不会执行对应的操作。
步骤1410,进入获取产生第一对象操作指令的操作位对应的第一对象操作动作配置文件。
当通过了合法性验证时,则可以正常执行该对象操作操作位对应的对象操作,进而获取到对应对象操作动作的对象操作动作配置文件。
步骤1412,不可交互。
第一操作位的状态为不可用状态时,则第一操作位为不可交互状态,也不能通过触发第一操作位产生第一对象操作指令。
步骤1414,不作处理。
当未通过验证时,则不会根据接收到的服务器中转的帧同步命令执行对应的操作。
与其他游戏不同的是,在本实施例中将普攻也划归于主动对象操作的一种,在设计和实现时普攻的处理与其他对象操作都保持一致,在计算机可读指令中普攻与其他常规对象操作也由同一个类型的对象操作对象来表示。因此本实施例中对象操作的处理也包括普攻。
为了更高的对象操作开发效率和更流畅的战斗打击手感,本实施例中使用帧同步作为网络同步方案。当控制虚拟角色使用对象操作时,如果对象操作为可用状态,就会将本次操作的信息以帧同步命令的形式发送到服务器。由于只是发送自己的操作,所以帧同步命令的字段值很少,信息包非常小。服务器则按照“定时不等待”的原则按照固定的时间间隔中转收到的客户端的所有操作指令到所有客户端。
每个客户端收到服务器中转的第N帧的命令后,在自己的第N个逻辑帧时根据命令的内容各自执行完全相同的逻辑动作,此时对某个客户端来说,此时已经没有“我”的概念,完全不用关心这个帧命令的操作对象是不是自己,只要执行帧命令中指明的“玩家X做了某件事情”即可。
由于服务器只是简单地中转各个客户端上报的操作命令,并不对该对象操作是否确实能够使用进行计算和检查,即在服务器端并没有对对象操作进行逻辑检查与判断这个步骤。所以这项工作需要每个客户端自己进行,防止收到的中转帧同步命令是由它的来源客户端作弊修改过后的。比如10个客户端中有一个客户端作弊,那么服务器会发现9个客户端上报的特征值是一样的,仅这一个客户端上报的特征值不同,就可以直接认定该客户端作弊,因此这种逻辑判断放在客户端的处理方式可以有效的防止作弊,相较于MMO游戏中广泛使用的传统的CS状态同步,使用帧同步也能够使得开发速度更快、对象操作打击感更好,且能够节约流量,游戏录像回放功能也更容易实现。MMO,即Massive Multiplayer Online,是指大型多人在线。CS状态同步则指的是Client-Server状态同步,即客户端与服务器之间的状态同步。
本发明实施例所提供的游戏对象操作的处理方法适用于Moba游戏中。以Moba游戏作为应用场景进行举例说明。如图15所示,玩家在终端110下载特定的游戏应用,该游戏应用里包含了多个虚拟角色的对象操作动作配置文件。当用户使用账号成功登录后,用户在终端110上选择一个虚拟角色,当用户选择了虚拟角色1502后,会将选择的请求发送至服务器120,服务器120接收到客户端110发送的选择请求会返回选择成功的信息至客户端110,客户端110接收到携带虚拟角色标识的选择成功的信息后,会根据此虚拟角色标识在客户端110存储的全部对象操作动作配置文件中获取到选择的虚拟角色1502的多个对象操作动作配置文件。
在游戏中,一般将控制的虚拟角色称为英雄,控制虚拟角色的玩家称为召唤师。玩家控制英雄1502对虚拟目标小兵1504或其他玩家控制的英雄1506发起攻击时,可以使用对象操作操作位1508、对象操作操作位1510、对象操作操作位1512以及对象操作操作位1514对应的对象操作进行攻击。一般地,将对象操作操作位1508称为普攻,但在本发明中,也将普攻当做主动对象操作中的一种。当英雄1502触发对象操作操作位1510试图对英雄1506发起攻击时,本客户端会根据英雄1502的特征值对对象操作槽1510是否可用进行检测,当对象操作操作位1510为可用状态时,才可正常触发对象操作1510产生对象操作指令,客户端再根据指令施放对应对象操作的对象操作动作。
假设对象操作操作位1510对应对象操作的对象操作动作配置了多个,分别为A1、A2和A3。当对对象操作操作位1510进行多次的连续施放可实现变化对象操作招式或对象操作连招的效果时,第一次触发对象操作操作位1510会执行默认设定的对象操作动作A1,而在对象操作动作A1对应对象操作动作配置文件中的对象操作动作切换事件中,配置的下一对象操作动作标识分别对应对象操作动作A2和对象操作动作A3,且配置了对象操作动作A2的切换概率为50,对象操作动作A3的切换概率为150,那么再次触发对象操作操作位1510时,就会有25%的几率切换至对象操作动作A2,而有75%的几率切换至对象操作动作A3。
当正在执行的是对象操作操作位1512对应对象操作B的对象操作动作B1时,如果触发了对象操作操作位1514,能否立即执行对象操作操作位1514对应对象操作的对象操作动作,则取决于对象操作动作B1对应对象操作动作配置文件中的禁止被打断事件事件参数的配置。如果禁止被打断事件事件参数配置为不可打断,且对象操作操作位1514对应对象操作C未设置为屏蔽对象操作,则说明对象操作操作位1514对应对象操作C不能打断当前正在执行于B对象操作对应的对象操作动作B1。那么触发了对象操作操作位1514产生的对象操作动作指令就会被存储至与对象操作动作B1对应对象操作动作配置文件中的对象操作缓存事件中。在执行完对象操作动作B1对应对象操作动作配置文件中的禁止被打断事件设置的时间2s后,执行上述的执行对象操作缓存事件,即执行对象操作缓存事件中存储的由对象操作操作位1514产生的对象操作动作指令,也就是执行对象操作操作位1514对应对象操作C的对象操作动作。
图16示出了在一个实施例中对象操作数据的生成方法的流程图,如图16所示,在一个实施例中,提供了一种对象操作数据的生成方法,该方法以应用于开发者终端进行举例说明,该方法包括:
步骤1602,显示对象操作动作配置界面;
步骤1604,通过对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间;
开发人员通过开发者终端对对象操作动作进行相关配置时,是通过对象操作动作配置界面实现的。通过对象操作动作配置界面能够获取到预先配置的多个对象操作事件和对应的时间轴,而多个对象操作事件在执行时的执行顺序取决于对象操作事件在时间轴上配置的执行时间点和执行的时间长度。
步骤1606,根据多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将对象操作动作配置文件和与对象操作动作关联的操作位标识对应存储。
多个对象操作事件组成了对象操作动作配置文件,换言之,对象操作动作配置文件中包含多个对象操作事件和对应的时间轴。而对于不同的对象操作动作会配置各自对应的对象操作动作配置文件,对象操作操作位与对象操作一一对应,而每个对象操作又包括多个对象操作动作,故对象操作动作实际上也与对象操作操作位关联。因此,生成的对象操作动作配置文件对应的对象操作动作在存储的时候是与对象操作动作关联的操作位标识对应存储的。
将对象操作动作对应的对象操作动作配置文件分割成多个对象操作事件,在配置时只要根据开发者的想法对对象操作事件进行不同的配置即可。在开发过程中,如果对象操作相关的功能出现BUG,也只需要对对象操作动作对应对象操作动作配置文件中的对象操作事件进行相关调试即可,节省了开发成本,也提升了开发效率。
在一个实施例中,每个对象操作事件中包含预先配置的事件参数,事件参数用于在执行对象操作事件时呈现相应的对象操作效果。
对对象操作事件进行预先配置,实际上是对对象操作事件包含的事件参数进行不同的配置。当对象操作事件在被执行时,呈现的效果实际上是取决于各个对象操作事件配置的事件参数。
对功能的再次细化,如上述可知,将对象操作动作对应的对象操作动作配置文件分割成多个对象操作事件,而在本实施例中,将对象操作事件也分割成了多个事件参数,因此多个事件参数构成对象操作事件,多个对象操作事件构成对象操作动作配置文件,对象操作配置再与特定的对象操作动作对应。这种对功能的细化方法,使得在开发过程中,能够节省开发人员的调试时间,从而节省开发成本提升开发效率。
在一个实施例中,对象操作事件中包含对象操作动作切换事件,对象操作动作切换事件对应的事件参数中包括下一对象操作动作标识;和/或对象操作事件中包含禁止被打断对象操作事件,禁止被打断对象操作事件对应的事件参数中包括可打断当前对象操作动作的对象操作。
在配置不同对象操作动作对应的对象操作动作配置文件时,会针对不同的对象操作动作要显示的对象操作效果对对象操作动作配置文件中的对象操作事件进行不同的配置,因此有的对象操作动作配置文件中会包含有对象操作动作切换事件ChangeSkillEvent,说明与此对象操作动作配置文件对应的对象操作动作所在的对象操作操作位可实现连续触发对象操作操作位实现不同对象操作动作的功能;有的对象操作动作配置文件中会包含有禁止被打断事件ForbidAbility,说明与此对象操作动作配置文件对应的对象操作动作配置了不能被打断对象操作的相关参数,如果触发另一个对象操作操作位导致切换至另一个对象操作对应的对象操作动作时,则需要根据ForbidAbility中配置的参数来对应执行另一个对象操作操作位对应对象操作的对象操作动作。因此,通过对不同的对象操作动作进行不同的对象操作事件配置,可以使不同的对象操作动作之间产生多种对象操作效果,使得产品更加复杂,但由于这种配置方法又能够使得产品在对象操作动作的改进和调整上更简单快捷。
如图17所示,在一个实施例中,还提供了一种对象操作的处理装置,该装置包括:
交互指令获取模块1702,用于获取第一对象操作指令;
获取模块1704,用于获取与产生第一对象操作指令的第一操作位标识对应的对象操作动作标识;
查找模块1706,用于查找与对象操作动作标识对应的对象操作动作配置文件,对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间;
执行模块1708,用于根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件。
在一个实施例中,交互指令获取模块1702还用于当第一操作位的状态为可用时,获取对象操作释放的虚拟目标对象,并将对象操作释放在预设时间内产生的记录通过帧同步命令发送至服务器;接收服务器中转的帧同步命令,对记录进行合法性验证,验证通过则进入获取产生第一对象操作指令的操作位对应的第一对象操作动作配置文件。
在一个实施例中,执行模块1708还用于获取预先配置的所述对象操作事件的至少一个事件参数;根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件时,根据事件参数呈现对象操作事件的对象操作效果。
在另一个实施例中,执行模块1708还用于当多个对象操作事件中包括对象操作动作切换事件时,获取预先配置的对象操作切换动作事件的事件参数,事件参数中包括预先配置的下一对象操作动作标识;将下一对象操作动作标识赋予第一操作位标识的下一对象操作对象。
在一个实施例中,将下一对象操作动作标识赋予第一操作位标识的下一对象操作对象之后,包括:再次获取触发第一操作位标识对应的第一操作位所产生的第一对象操作指令;获取第一操作位标识的下一对象操作对象所指向的下一对象操作动作标识;查找下一对象操作动作标识对应的对象操作动作配置文件;执行下一对象操作动作标识对应的对象操作动作配置文件中配置的对象操作事件。
在一个实施例中,执行模块1708还用于在根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件的过程中,当多个对象操作事件中包括禁止被打断事件时,获取预先配置的禁止被打断事件的事件参数,禁止被打断事件的事件参数中包括预先配置的可打断当前对象操作动作的对象操作;若获取到通过触发第二操作位产生的第二对象操作指令,则检测第二对象操作指令对应的对象操作是否为上述可打断当前对象操作动作的对象操作,若否,则根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行第二对象操作指令产生的对象操作动作。
在一个实施例中,根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行第二对象操作指令产生的对象操作动作,包括:执行第一操作位标识对应的对象操作动作标识对应的对象操作动作配置文件中包括的执行对象操作缓存事件,执行上述执行对象操作缓存事件时检测对象操作事件中包括的对象操作缓存事件是否存储有缓存命令;当对象操作缓存事件中有缓存命令时,根据禁止被打断事件在时间轴上预先配置的时间执行完第一对象操作指令产生的对象操作动作后,再执行缓存命令中包括的第二对象操作指令产生的对象操作动作对应的第二对象操作动作配置文件中的对象操作事件。
如图18所示,在一个实施例中,还提供了一种对象操作数据的生成装置,该装置包括:
显示模块1802,用于显示对象操作动作配置界面;
对象操作事件配置模块1804,用于通过对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间;
对象操作动作配置文件生成模块1806,根据多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将对象操作动作配置文件和与对象操作关联的操作位标识对应存储。
在一个实施例中,对象操作事件配置模块1804还用于为每个对象操作事件预先配置事件参数,事件参数用于在执行对象操作事件时呈现相应的对象操作效果。
在另一个实施例中,对象操作事件配置模块1804还用于为对象操作事件配置对象操作动作切换事件,对象操作动作切换事件对应的事件参数中包括下一对象操作动作标识;和/或为对象操作事件配置禁止被打断对象操作事件,禁止被打断对象操作事件对应的事件参数中包括可打断当前对象操作动作的对象操作。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取第一对象操作指令;获取与产生第一对象操作指令的第一操作位标识对应的对象操作动作标识;查找与对象操作动作标识对应的对象操作动作配置文件,对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间;根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件。
在一个实施例中,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件,包括:获取预先配置的所述对象操作事件的至少一个事件参数;根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件时,根据事件参数呈现对象操作事件的对象操作效果。
在另一个实施例中,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件,包括:当多个对象操作事件中包括对象操作动作切换事件时,获取预先配置的对象操作切换动作事件的事件参数,事件参数中包括预先配置的下一对象操作动作标识;将下一对象操作动作标识赋予第一操作位标识的下一对象操作对象。
在一个实施例中,将下一对象操作动作标识赋予第一操作位标识的下一对象操作对象之后,包括:再次获取触发第一操作位标识对应的第一操作位所产生的第一对象操作指令;获取第一操作位标识的下一对象操作对象所指向的下一对象操作动作标识;查找下一对象操作动作标识对应的对象操作动作配置文件;执行下一对象操作动作标识对应的对象操作动作配置文件中配置的对象操作事件。
在一个实施例中,根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件,包括:在根据时间轴按照对象操作事件的执行先后顺序执行对象操作事件的过程中,当多个对象操作事件中包括禁止被打断事件时,获取预先配置的禁止被打断事件的事件参数,禁止被打断事件的事件参数中包括预先配置的可打断当前对象操作动作的对象操作;若获取到通过触发第二操作位产生的第二对象操作指令,则检测第二对象操作指令对应的对象操作是否为上述可打断当前对象操作动作的对象操作,若否,则根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行第二对象操作指令产生的对象操作动作。
在一个实施例中,根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行第二对象操作指令产生的对象操作动作,包括:执行第一操作位标识对应的对象操作动作标识对应的对象操作动作配置文件中包括的执行对象操作缓存事件,执行上述执行对象操作缓存事件时检测对象操作事件中包括的对象操作缓存事件是否存储有缓存命令;当对象操作缓存事件中有缓存命令时,根据禁止被打断事件在时间轴上预先配置的时间执行完第一对象操作指令产生的对象操作动作后,再执行缓存命令中包括的第二对象操作指令产生的对象操作动作对应的第二对象操作动作配置文件中的对象操作事件。
在一个实施例中,获取产生第一对象操作指令的操作位对应的对象操作动作配置文件之前,包括:当第一操作位的状态为可用时,获取对象操作释放的虚拟目标对象,并将对象操作释放在预设时间内产生的记录通过帧同步命令发送至服务器;接收服务器中转的帧同步命令,对记录进行合法性验证,验证通过则进入获取产生第一对象操作指令的操作位对应的第一对象操作动作配置文件。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:显示对象操作动作配置界面;通过对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,时间轴中定义了对象操作事件执行的时间;根据多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将对象操作动作配置文件和与对象操作关联的操作位标识对应存储。
在一个实施例中,每个对象操作事件中包含预先配置的事件参数,事件参数用于在执行对象操作事件时呈现相应的对象操作效果。
在一个实施例中,对象操作事件中包含对象操作动作切换事件,对象操作动作切换事件对应的事件参数中包括下一对象操作动作标识;和/或对象操作事件中包含禁止被打断对象操作事件,禁止被打断对象操作事件对应的事件参数中包括可打断当前对象操作动作的对象操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的非易失性存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种对象操作的处理方法,其特征在于,所述方法包括:
获取第一对象操作指令;
获取与产生所述第一对象操作指令的第一操作位标识对应的对象操作动作标识;
查找与所述对象操作动作标识对应的对象操作动作配置文件,所述对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件,在根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件的过程中,当所述多个对象操作事件中包括禁止被打断事件时,获取预先配置的所述禁止被打断事件的事件参数,所述禁止被打断事件的事件参数中包括预先配置的可打断当前对象操作动作的对象操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件,包括:
获取预先配置的所述对象操作事件的至少一个事件参数;
根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件时,根据所述事件参数呈现所述对象操作事件的对象操作效果。
3.根据权利要求1所述的方法,其特征在于,所述根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件,包括:
当所述多个对象操作事件中包括对象操作动作切换事件时,获取预先配置的所述对象操作切换动作事件的事件参数,所述事件参数中包括预先配置的下一对象操作动作标识;
将所述下一对象操作动作标识赋予所述第一操作位标识的下一对象操作对象。
4.根据权利要求3所述的方法,其特征在于,所述将下一对象操作动作标识赋予所述第一操作位标识的下一对象操作对象之后,包括:
再次获取触发所述第一操作位标识对应的第一操作位所产生的所述第一对象操作指令;
获取所述第一操作位标识的下一对象操作对象所指向的所述下一对象操作动作标识;
查找所述下一对象操作动作标识对应的对象操作动作配置文件;
执行所述下一对象操作动作标识对应的对象操作动作配置文件中配置的对象操作事件。
5.根据权利要求1所述的方法,其特征在于,所述根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件,包括:
若获取到通过触发第二操作位产生的第二对象操作指令,则
检测所述第二对象操作指令对应的对象操作是否为所述可打断当前对象操作动作的对象操作,若否,则根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行所述第二对象操作指令产生的对象操作动作。
6.根据权利要求5所述的方法,其特征在于,所述根据对象操作事件中包括的对象操作缓存事件中存储的缓存命令执行所述第二对象操作指令产生的对象操作动作,包括:
执行所述第一操作位标识对应的对象操作动作标识对应的对象操作动作配置文件中包括的执行对象操作缓存事件,执行所述执行对象操作缓存事件时检测所述对象操作事件中包括的对象操作缓存事件是否存储有缓存命令;
当所述对象操作缓存事件中有缓存命令时,根据所述禁止被打断事件在时间轴上预先配置的时间执行完所述第一对象操作指令产生的对象操作动作后,再执行所述缓存命令中包括的所述第二对象操作指令产生的对象操作动作对应的第二对象操作动作配置文件中的对象操作事件。
7.根据权利要求1所述的方法,其特征在于,所述获取产生所述第一对象操作指令的操作位对应的对象操作动作配置文件之前,包括:
当所述第一操作位的状态为可用时,获取对象操作释放的虚拟目标对象,并将对象操作释放在预设时间内产生的记录通过帧同步命令发送至服务器;
接收服务器中转的所述帧同步命令,对所述记录进行合法性验证,验证通过则进入所述获取产生所述第一对象操作指令的操作位对应的第一对象操作动作配置文件。
8.一种对象操作数据的生成方法,其特征在于,所述方法包括:
显示对象操作动作配置界面;
通过所述对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
根据所述多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将所述对象操作动作配置文件和与对象操作动作关联的操作位标识对应存储,所述对象操作动作配置文件作为与所述操作位标识对应的预先配置的文件,所述对象操作事件中包含禁止被打断对象操作事件,所述禁止被打断对象操作事件对应的事件参数中包括可打断当前对象操作动作的对象操作。
9.根据权利要求8所述的方法,其特征在于,每个所述对象操作事件中包含预先配置的事件参数,所述事件参数用于在执行所述对象操作事件时呈现相应的对象操作效果。
10.根据权利要求9所述的方法,其特征在于,所述对象操作事件中包含对象操作动作切换事件,所述对象操作动作切换事件对应的事件参数中包括下一对象操作动作标识。
11.一种对象操作的处理装置,其特征在于,包括:
交互指令获取模块,用于获取第一对象操作指令;
获取模块,用于获取与产生所述第一对象操作指令的第一操作位标识对应的对象操作动作标识;
查找模块,用于查找与所述对象操作动作标识对应的对象操作动作配置文件,所述对象操作动作配置文件中包括预先配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
执行模块,用于根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件,在根据所述时间轴按照所述对象操作事件的执行先后顺序执行所述对象操作事件的过程中,当所述多个对象操作事件中包括禁止被打断事件时,获取预先配置的所述禁止被打断事件的事件参数,所述禁止被打断事件的事件参数中包括预先配置的可打断当前对象操作动作的对象操作。
12.一种对象操作数据的生成装置,其特征在于,包括:
显示模块,用于显示对象操作动作配置界面;
对象操作事件配置模块,用于通过所述对象操作动作配置界面获取配置的多个对象操作事件和对应的时间轴,所述时间轴中定义了所述对象操作事件执行的时间;
对象操作动作配置文件生成模块,用于根据所述多个对象操作事件和对应的时间轴生成对象操作动作配置文件,将所述对象操作动作配置文件和与对象操作关联的操作位标识对应存储,所述对象操作动作配置文件作为与所述操作位标识对应的预先配置的文件,所述对象操作事件中包含禁止被打断对象操作事件,所述禁止被打断对象操作事件对应的事件参数中包括可打断当前对象操作动作的对象操作。
13.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至10任意一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任意一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244803.1A CN108037952B (zh) | 2017-11-30 | 2017-11-30 | 对象操作的处理方法、对象操作数据的生成方法及装置 |
PCT/CN2018/118026 WO2019105395A1 (zh) | 2017-11-30 | 2018-11-28 | 对象操作的处理、对象操作数据的生成方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244803.1A CN108037952B (zh) | 2017-11-30 | 2017-11-30 | 对象操作的处理方法、对象操作数据的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108037952A CN108037952A (zh) | 2018-05-15 |
CN108037952B true CN108037952B (zh) | 2020-09-08 |
Family
ID=62094832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711244803.1A Active CN108037952B (zh) | 2017-11-30 | 2017-11-30 | 对象操作的处理方法、对象操作数据的生成方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108037952B (zh) |
WO (1) | WO2019105395A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108037952B (zh) * | 2017-11-30 | 2020-09-08 | 腾讯科技(成都)有限公司 | 对象操作的处理方法、对象操作数据的生成方法及装置 |
CN109331485B (zh) * | 2018-09-11 | 2021-06-01 | 陕西华清宫文化旅游有限公司 | 舞台轨道装置控制方法、电子设备及存储介质 |
CN109464802A (zh) * | 2018-11-23 | 2019-03-15 | 杭州电魂网络科技股份有限公司 | 游戏角色的控制方法、装置及存储介质 |
CN109999495B (zh) * | 2019-03-28 | 2023-02-28 | 网易(杭州)网络有限公司 | 人工智能ai单元状态信息的处理方法及系统 |
CN111068326B (zh) * | 2019-12-23 | 2023-06-23 | 上海米哈游天命科技有限公司 | 一种游戏技能配置方法、装置、服务器及存储介质 |
CN111589135B (zh) * | 2020-04-28 | 2022-03-04 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、终端及存储介质 |
CN113730916B (zh) * | 2020-05-27 | 2024-01-26 | 腾讯科技(深圳)有限公司 | 基于虚拟环境中的资源加载方法、装置、设备及介质 |
CN111773678A (zh) * | 2020-07-27 | 2020-10-16 | 网易(杭州)网络有限公司 | 一种游戏的数据处理方法和装置 |
CN112597134B (zh) * | 2020-12-29 | 2024-02-09 | 中国工商银行股份有限公司 | 分布式配置中心的配置方法、装置、电子设备和介质 |
CN113010012A (zh) * | 2021-03-09 | 2021-06-22 | 湖北亿咖通科技有限公司 | 车载娱乐系统中虚拟角色的配置方法和计算机存储介质 |
CN113713390B (zh) * | 2021-09-14 | 2023-03-21 | 北京字跳网络技术有限公司 | 一种交互方法、装置以及计算机存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5149342B2 (ja) * | 2010-07-23 | 2013-02-20 | 株式会社バンダイナムコゲームス | ゲーム提供システム、プログラム、及び情報記憶媒体 |
CN102779028A (zh) * | 2011-05-09 | 2012-11-14 | 腾讯科技(深圳)有限公司 | 一种客户端特效合成引擎的实现方法及装置 |
CN103997673B (zh) * | 2014-05-15 | 2018-11-20 | Tcl集团股份有限公司 | 一种事件处理方法和装置 |
CN106357596A (zh) * | 2015-07-23 | 2017-01-25 | 中兴通讯股份有限公司 | 事件中动作的处理方法及装置 |
CN105912474B (zh) * | 2016-04-26 | 2019-09-24 | 网易(杭州)网络有限公司 | 一种游戏在线调试方法、系统及编辑服务端 |
CN107133030B (zh) * | 2017-03-30 | 2021-01-05 | 腾讯科技(深圳)有限公司 | 动态事件执行方法及装置 |
CN108037952B (zh) * | 2017-11-30 | 2020-09-08 | 腾讯科技(成都)有限公司 | 对象操作的处理方法、对象操作数据的生成方法及装置 |
-
2017
- 2017-11-30 CN CN201711244803.1A patent/CN108037952B/zh active Active
-
2018
- 2018-11-28 WO PCT/CN2018/118026 patent/WO2019105395A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN108037952A (zh) | 2018-05-15 |
WO2019105395A1 (zh) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108037952B (zh) | 对象操作的处理方法、对象操作数据的生成方法及装置 | |
US20220152496A1 (en) | Virtual object control method and apparatus, terminal, and storage medium | |
US20230044770A1 (en) | Method and apparatus for using virtual item, device, and storage medium | |
US20240082729A1 (en) | Virtual object control method and apparatus, terminal, and storage medium | |
CN111672117B (zh) | 虚拟对象的选择方法、装置、设备及存储介质 | |
JP7137718B2 (ja) | 仮想オブジェクトの選択方法、装置、機器及びコンピュータプログラム | |
JP2023552772A (ja) | 仮想アイテムの切り替え方法、装置、端末及びコンピュータプログラム | |
CN112156457B (zh) | 一种游戏副本展示方法以及装置 | |
WO2022037529A1 (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
WO2021213073A1 (zh) | 虚拟形象使用数据的处理方法、装置、设备及存储介质 | |
US20230075245A1 (en) | Method and apparatus for controlling virtual character, terminal, storage medium, and program product | |
US20220266141A1 (en) | Method and apparatus for selecting virtual object interaction mode, device, medium, and product | |
CN111589135B (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
CN113350779A (zh) | 游戏虚拟角色动作控制方法及装置、存储介质及电子设备 | |
WO2023066003A1 (zh) | 虚拟对象的控制方法、装置、终端、存储介质及程序产品 | |
WO2023024078A1 (zh) | 一种虚拟对象的控制方法、装置、电子设备及存储介质 | |
CN111481930B (zh) | 虚拟对象控制方法、装置、计算机设备和存储介质 | |
CN111445560A (zh) | 动画播放方法和装置、存储介质及电子装置 | |
CN112057859B (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
US20220054944A1 (en) | Virtual object control method and apparatus, terminal, and storage medium | |
WO2023231557A1 (zh) | 虚拟对象的互动方法、装置、设备、存储介质及程序产品 | |
WO2024060924A1 (zh) | 虚拟场景的互动处理方法、装置、电子设备及存储介质 | |
US20220274020A1 (en) | Method and apparatus for switching game character, and electronic device | |
WO2023245644A1 (zh) | 游戏控制方法、电子设备和计算机可读存储介质 | |
CN117861210A (zh) | 游戏中的信息处理方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |