一种游戏剧情状态管理的实现方法及其系统技术方案

技术编号:31805610 阅读:11 留言:0更新日期:2022-01-08 11:07
本发明专利技术提供了一种游戏剧情状态管理的实现方法,该方法为:1、输入游戏剧情数据,解析游戏剧情数据生成堵塞时间轴;2、还原游戏剧情数据中的剧情状态数据,并更新堵塞时间轴的进度值;3、等待用户交互开启剧情播放,按堵塞时间轴分发堵塞时间轴对应的剧情状态数据;判断堵塞时间轴对应的剧情状态数据是否分发结束;是,停止结束流程;否,进行步骤4;4、执行剧情状态数据中的剧情指令,继续按堵塞时间轴分发堵塞时间轴对应的剧情状态数据,等待剧情指令执行结束;5、记录剧情状态数据,等待用户交互,根据交互事件更新剧情状态数据与堵塞时间轴的进度值。本发明专利技术能快速接入并使用游戏剧情,支持状态管理,开发维护简单高效。开发维护简单高效。开发维护简单高效。

【技术实现步骤摘要】
一种游戏剧情状态管理的实现方法及其系统


[0001]本专利技术涉及游戏制作
,特别是一种游戏剧情状态管理的实现方法及其系统。

技术介绍

[0002]对游戏玩家而言在游戏界面上看到的“元素”千差万别、变化多端但对游戏开发者而言游戏界面上的元素在底层都是一些数据不同的数据所绘制的图片有所不同。因此建立游戏的状态数据模型是实现游戏逻辑的重要步骤。现有生成游戏剧情的技术包括基于配置动态生成游戏剧情、基于Json生成游戏剧情等;现有技术对生成的局限性高,通常只针对特点的游戏剧情进行状态管理,且不支持以堵塞时间轴的方式进行交互控制,不支持剧情还原、不支持跳转到指定剧情节点,拓展困难,无法广泛使用。

技术实现思路

[0003]为克服上述问题,本专利技术的目的是提供一种游戏剧情状态管理的实现方法,能对戏剧情进行状态管理,且支持以堵塞时间轴的方式进行交互控制,使得游戏剧情支持跳转到指定剧情节点。
[0004]本专利技术采用以下方案实现:一种游戏剧情状态管理的实现方法,所述方法包括如下步骤:
[0005]步骤S1、输入游戏剧情数据,解析游戏剧情数据生成堵塞时间轴;该堵塞时间轴为支持堵塞条件的时间轴,其中,堵塞时间轴剧情节点数据未设置堵塞条件节点时,时间轴将按照时间顺序正常运行;当设置了堵塞条件时,播放时间更新到堵塞条件节点时播放时间停止更新,等待堵塞条件满足后播放时间移动至下一个节点的开始位置继续播放;
[0006]步骤S2、还原游戏剧情数据中的剧情状态数据,并更新堵塞时间轴的进度值;/>[0007]步骤S3、等待用户交互开启剧情播放,按堵塞时间轴分发堵塞时间轴对应的剧情状态数据;判断堵塞时间轴对应的剧情状态数据是否分发结束;是,停止结束流程;否,进行步骤S4;
[0008]步骤S4、执行剧情状态数据中的剧情指令,继续按堵塞时间轴分发堵塞时间轴对应的剧情状态数据,等待剧情指令执行结束;
[0009]步骤S5、记录剧情状态数据,等待用户交互,根据交互事件更新剧情状态数据与堵塞时间轴的进度值。
[0010]进一步的,所述解析游戏剧情数据生成堵塞时间轴进一步具体为:
[0011]步骤S11、输入游戏剧情数据;该游戏剧情数据中包含多个子剧情数据,游戏剧情数据中记录的数据包括剧情指令及其执行方式、剧情节点时间长度、是否堵塞节点、堵塞条件、是否支持跳过;
[0012]步骤S12、创建一个堵塞时间轴;
[0013]步骤S13、读取游戏剧情数据中的所有剧情节点数据;将所有剧情节点数据加入一
个剧情节点数据队列中;
[0014]步骤S14、判断剧情节点数据队列是否为空,是,返回堵塞时间轴,并结束流程;否,进入步骤S15;
[0015]步骤S15、从剧情节点数据队列中读取一个剧情节点数据,将剧情节点数据加入堵塞时间轴的当前节点位置;堵塞时间轴的当前时间值向后移动到剧情节点数据中接入的时间值;
[0016]步骤S16、判断剧情节点数据中是否记录了堵塞值,该堵塞值为堵塞条件对应的数据值;否,进入步骤S17;是,堵塞时间轴中添加堵塞条件节点,设置堵塞值调整为剧情节点数据中记录的堵塞条件;堵塞时间轴当前时间轴向后移动一个堵塞节点单位时间值,进入步骤S17;
[0017]步骤S17、判断剧情数据节点队列中是否还有其它剧情数据节点,是,执行步骤S15;否,返回堵塞时间轴,并结束流程。
[0018]进一步的,所述步骤S2进一步具体为:步骤S21、输入剧情数据,从堵塞时间轴中读取堵塞时间轴的进度值,从存储文件中读取剧情状态数据,判断剧情状态数据是否为空,否,进入步骤S22,是,创建一个新的剧情状态数据;并进入步骤S22;
[0019]步骤S22、判断堵塞时间轴的进度值是否小于当前剧情进度值,是,进入步骤S24;否,进入步骤S23;
[0020]步骤S23、更新剧情状态数据中的当前剧情进度值为堵塞时间轴的进度值,并将剧情状态数据保存至存储文件中,状态同步完成,并结束流程;
[0021]步骤S24、从剧情状态数据的剧情指令集合中读取堵塞时间轴的进度值对应的剧情指令数据,读取剧情指令数据中的剧情指令;
[0022]步骤S25、判断剧情指令是否有注册了对应的执行方式,是,执行对应的执行方式传入剧情指令数据并传入跳过执行过程参数,等待执行方式执行完成,进入步骤S26;否,直接进入步骤S26;
[0023]步骤S26、剧情指令执行完成,更新堵塞时间轴的进度值为堵塞时间轴的下一时间节点,继续执行步骤S22。
[0024]进一步的,所述步骤S3进一步具体包括:
[0025]步骤S31、输入堵塞时间轴对应的剧情状态数据;
[0026]步骤S32、读取堵塞时间轴的进度值;
[0027]步骤S33、判断堵塞时间轴是否执行完成,是,堵塞时间轴对应的剧情状态数据分发结束并结束流程,否,读取当前进度值的剧情状态数据;
[0028]步骤S34、读取剧情状态数据中的剧情指令数据集合,将剧情指令数据集合中的数据加入一个剧情指令数据队列;
[0029]步骤S35、判断剧情指令数据队列是否为空,是,更新堵塞时间轴进度值到下一节点,并执行步骤S33,否,执行步骤S36;
[0030]步骤S36、从剧情指令数据队列中读取一个剧情指令数据,执行剧情指令数据;
[0031]步骤S37、判断剧情指令数据队列中是否还有其它剧情指令数据,是,执行步骤S36;否,更新堵塞时间轴进度值到下一节点,并执行步骤S33。
[0032]进一步的,所述根据交互事件更新剧情状态数据与堵塞时间轴的进度值进一步具
体包括:步骤S51、输入用户交互数据,
[0033]步骤S52、读取用户交互数据中的剧情进度值记录为目标进度值,从剧情状态数据中读取当前剧情进度值;
[0034]步骤S53、从剧情状态数据中读取剧情指令集合中剧情指令数据对应的最大剧情进度值与最小剧情进度值;
[0035]步骤S54、判断目标进度值是否大于最大剧情进度值,是,更新目标进度值为最大剧情进度值,进入步骤S55;否,进入步骤S55;
[0036]步骤S55、判断目标进度值是否小于最小剧情进度值,是,更新目标进度值为最小剧情进度值,进入步骤S56;否,进入步骤S56;
[0037]步骤S56、判断目标进度值是否大于当前剧情进度值,是,更新堵塞时间轴的进度值为当前剧情进度值,进入步骤S57,否,更新堵塞时间轴的进度值为最小剧情进度值,进入步骤S57;
[0038]步骤S57、更新剧情状态数据中的当前剧情进度值为剧情测试进度;
[0039]步骤S58、判断堵塞时间轴的进度值是否小于当前剧情进度值,否,更新剧情状态数据中的当前剧情进度值为堵塞时间轴的进度值,将剧情状态数据保存至存储文件中,交互事件执行完成,并结束流程;是,从剧情状态数据的剧情指令集合中读取堵塞时间轴的进度值对应的剧情指令数据,读取剧情指令数本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种游戏剧情状态管理的实现方法,其特征在于:所述方法包括如下步骤:步骤S1、输入游戏剧情数据,解析游戏剧情数据生成堵塞时间轴;该堵塞时间轴为支持堵塞条件的时间轴,其中,堵塞时间轴剧情节点数据未设置堵塞条件节点时,时间轴将按照时间顺序正常运行;当设置了堵塞条件时,播放时间更新到堵塞条件节点时播放时间停止更新,等待堵塞条件满足后播放时间移动至下一个节点的开始位置继续播放;步骤S2、还原游戏剧情数据中的剧情状态数据,并更新堵塞时间轴的进度值;步骤S3、等待用户交互开启剧情播放,按堵塞时间轴分发堵塞时间轴对应的剧情状态数据;判断堵塞时间轴对应的剧情状态数据是否分发结束;是,停止结束流程;否,进行步骤S4;步骤S4、执行剧情状态数据中的剧情指令,继续按堵塞时间轴分发堵塞时间轴对应的剧情状态数据,等待剧情指令执行结束;步骤S5、记录剧情状态数据,等待用户交互,根据交互事件更新剧情状态数据与堵塞时间轴的进度值。2.根据权利要求1所述的一种游戏剧情状态管理的实现方法,其特征在于:所述解析游戏剧情数据生成堵塞时间轴进一步具体为:步骤S11、输入游戏剧情数据;该游戏剧情数据中包含多个子剧情数据,游戏剧情数据中记录的数据包括剧情指令及其执行方式、剧情节点时间长度、是否堵塞节点、堵塞条件、是否支持跳过;步骤S12、创建一个堵塞时间轴;步骤S13、读取游戏剧情数据中的所有剧情节点数据;将所有剧情节点数据加入一个剧情节点数据队列中;步骤S14、判断剧情节点数据队列是否为空,是,返回堵塞时间轴,并结束流程;否,进入步骤S15;步骤S15、从剧情节点数据队列中读取一个剧情节点数据,将剧情节点数据加入堵塞时间轴的当前节点位置;堵塞时间轴的当前时间值向后移动到剧情节点数据中接入的时间值;步骤S16、判断剧情节点数据中是否记录了堵塞值,该堵塞值为堵塞条件对应的数据值;否,进入步骤S17;是,堵塞时间轴中添加堵塞条件节点,设置堵塞值调整为剧情节点数据中记录的堵塞条件;堵塞时间轴当前时间轴向后移动一个堵塞节点单位时间值,进入步骤S17;步骤S17、判断剧情数据节点队列中是否还有其它剧情数据节点,是,执行步骤S15;否,返回堵塞时间轴,并结束流程。3.根据权利要求2所述的一种游戏剧情状态管理的实现方法,其特征在于:所述堵塞时间轴包括:堵塞时间轴的进度值和时间节点集合,所述时间节点集合由多个时间节点组成,每个时间节点包括时间长度、进度值、以及堵塞条件;所述剧情状态数据包括:当前剧情进度值和剧情指令集合,剧情指令集合由多个的剧情指令数据组成。4.根据权利要求3所述的一种游戏剧情状态管理的实现方法,其特征在于:所述步骤S2进一步具体为:步骤S21、输入剧情数据,从堵塞时间轴中读取堵塞时间轴的进度值,从存储文件中读取剧情状态数据,判断剧情状态数据是否为空,否,进入步骤S22,是,创建一个新
的剧情状态数据;并进入步骤S22;步骤S22、判断堵塞时间轴的进度值是否小于当前剧情进度值,是,进入步骤S24;否,进入步骤S23;步骤S23、更新剧情状态数据中的当前剧情进度值为堵塞时间轴的进度值,并将剧情状态数据保存至存储文件中,状态同步完成,并结束流程;步骤S24、从剧情状态数据的剧情指令集合中读取堵塞时间轴的进度值对应的剧情指令数据,读取剧情指令数据中的剧情指令;步骤S25、判断剧情指令是否有注册了对应的执行方式,是,执行对应的执行方式传入剧情指令数据并传入跳过执行过程参数,等待执行方式执行完成,进入步骤S26;否,直接进入步骤S26;步骤S26、剧情指令执行完成,更新堵塞时间轴的进度值为堵塞时间轴的下一时间节点,继续执行步骤S22。5.根据权利要求4所述的一种游戏剧情状态管理的实现方法,其特征在于:所述步骤S3进一步具体包括:步骤S31、输入堵塞时间轴对应的剧情状态数据;步骤S32、读取堵塞时间轴的进度值;步骤S33、判断堵塞时间轴是否执行完成,是,堵塞时间轴对应的剧情状态数据分发结束并结束流程,否,读取当前进度值的剧情状态数据;步骤S34、读取剧情状态数据中的剧情指令数据集合,将剧情指令数据集合中的数据加入一个剧情指令数据队列;步骤S35、判断剧情指令数据队列是否为空,是,更新堵塞时间轴进度值到下一节点,并执行步骤S33,否,执行步骤S36;步骤S36、从剧情指令数据队列中读取一个剧情指令数据,执行剧情指令数据;步骤S37、判断剧情指令数据队列中是否还有其它剧情指令数据,是,执行步骤S36;否,更新堵塞时间轴进度值到下一节点,并执行步骤S33。6.根据权利要求4所述的一种游戏剧情状态管理的实现方法,其特征在于:步骤S4进一步具体包括:步骤S41、输入剧情指令数据,读取剧情指令数据中的剧情指令;步骤S42、判断剧情指令是否有注册了对应的执行方式,否,剧情指令执行完成并结束流程,是,进入步骤S43,步骤S43、执行对应的执行方式传入剧情指令数据;步骤S44、判断是否同步执行执行方式;否,等待异步执行方式执行完成,返回执行成功事件;剧情指令执行完成;是,返回执行成功事件,剧情指令执行完成。7.根据权利要求4所述的一种游戏剧情状态管理的实现方法,其特征在于:所述步骤S5中记录剧情状态数据进一步具体包括:输入剧情指令数据,读取剧情指令数据中的剧情指令,判断剧情指令是否有注册了对应的执行方式,否,则记录完成,结束流程;是,则将此条剧情指令数据加入剧情状态数据的剧情指令集合中,更新剧情状态数据中的当前剧情进度值,将剧情状态数据保存至存储文件中,记录完成,结束流程。8.根据权利要求4所述的一种游戏剧情状态管理的实现方法,其特征在于:所述根据交互事件更新剧情状态数据与堵塞时间轴的进度值进一步具体包括:步骤S51、输入用户交互
数据;步骤S52、读取用户交互数据中的剧情进度值记录为目标进度值,从剧情状态数据中读取当前剧情进度值;步骤S53、从剧情状态数据中读取剧情指令集合中剧情指令数据对应的最大剧情进度值与最小剧情进度值;步骤S54、判断目标进度值是否大于最大剧情进度值,是,更新目标进度值为最大剧情进度值,进入步骤S55;否,进入步骤S55;步骤S55、判断目标进度值是否小于最小剧情进度值,是,更新目标进度值为最小剧情进度值,进入步骤S56;否,进入步骤S56;步骤S56、判断目标进度值是否大于当前剧情进度值,是,更新堵塞时间轴的进度值为当前剧情进度值,进入步骤S57,否,更新堵塞时间轴的进度值为最小剧情进度值,进入步骤S57;步骤S57、更新剧情状态数据中的当前剧情进度值为剧情测试进度;步骤S58、判断堵塞时间轴的进度值是否小于当前剧情进度值,否,更新剧情状态数据中的当前剧情进度值为堵塞时间轴的进度值,将剧情状态数据保存至存储文件中,交互事件执行完成,并结束流程;是,从剧情状态数据的剧情指令集合中读取堵塞时间轴的进度值对应的剧情指令数据,读取剧情指令数据中的剧情指令,进入步骤S59;步骤S59、判断剧情指令是否有注册了对应的执行方式,是,执行对应的执行方式传入剧情指令数据并传入跳过执行过程参数,等待执行方式执行完成,进入步骤S60;否,直接进入步骤S60;步骤S60、剧情指令执行完成,更新堵塞时间轴的进度值为堵塞时间轴上的下一时间节点。9.一种游戏剧情状态管理的实现系统,其特征在于:所述系统包括数据解析模块、还原数据模块、剧情分发模块、剧情数据执行模块、以及记录数据模块;所述...

【专利技术属性】
技术研发人员:刘德建温荣泉陈宏展
申请(专利权)人:福建天晴数码有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1