基于编排描述文件的互动内容编译生成方法及系统与流程

摘要: 本技术涉及互动内容编译生成,具体涉及一种基于编排描述文件的互动内容编译生成方法及系统。背景技术:1、互动内容是指能够根据用户的实时操作或选择动态调整内容呈现顺序...
基于编排描述文件的互动内容编译生成方法及系统与流程

本技术涉及互动内容编译生成,具体涉及一种基于编排描述文件的互动内容编译生成方法及系统。

背景技术:

1、互动内容是指能够根据用户的实时操作或选择动态调整内容呈现顺序和剧情走向的内容形态,广泛应用于互动视频、互动游戏、互动广告、在线教育、数字营销等多个领域。随着移动互联网和短视频生态的快速发展,互动内容因其高参与度和强沉浸感而受到广泛关注。

2、以互动影游(interactive film/games,也称互动短剧、互动叙事类游戏)为例,它是近年来随着短视频平台和小程序生态发展而兴起的一种具体互动内容形态,将线性视频观看与分支叙事游戏机制相结合,观众在观看视频的过程中可以在关键节点做出选择,从而影响剧情走向,获得差异化的观看体验。目前,互动影游主要通过微信小程序、抖音小程序等平台分发。

3、在互动内容的制作实践中,现有技术通常采用以下流程:首先使用视频编辑软件完成视频素材的剪辑;然后在web端互动编辑工具中人工标记互动节点、配置分支选项和跳转目标,生成描述节点关系的配置文件;随后开发人员拿到配置文件后,手动编写代码实现配置中定义的交互逻辑,并针对不同平台分别进行代码适配;最后,用户行为数据的采集代码由开发人员在开发过程中手工添加,埋点位置和上报逻辑分散在各处。

4、上述流程存在以下缺陷:其一,配置文件仅作为“参考文档”而非“编译源文件”,各环节之间缺乏统一的、可直接驱动代码生成的中间表示,导致配置文件的任何变更都需人工同步修改多端代码,开发流程割裂、协作成本高;其二,多平台发布时,相同的业务逻辑需为每个平台分别实现和维护,功能迭代时需同步修改多套代码库,人力成本随平台数量线性增长;其三,用户行为数据的埋点代码由开发人员手动添加,分散在各个节点和回调中,需求变更时容易遗漏新增节点的埋点,导致数据采集不完整,且不同平台的埋点接口差异也需要分别维护。

技术实现思路

1、鉴于上述问题,本技术提供了一种基于编排描述文件的互动内容编译生成的技术方案,用以解决现有技术在互动内容开发流程中,配置文件与代码开发割裂、多平台需重复适配、用户行为数据采集依赖人工埋点导致开发效率低且数据采集不完整的技术问题。

2、为实现上述目的,在第一方面,本技术提供了一种基于编排描述文件的互动内容编译生成方法,所述方法包括:

3、s1:接收编排意图描述文件,所述编排意图描述文件包含分集配置信息和节点定义信息,所述分集配置信息包含至少一个分集,所述节点定义信息包含属于所述分集的多个节点,所述多个节点包括视频节点和事件节点,所述多个节点之间通过跳转关系形成节点跳转树,所述节点跳转树包括一级节点和二级节点,所述视频节点作为二级节点,所述事件节点作为一级节点,所述一级节点挂载于所述节点跳转树的根节点下,所述二级节点挂载于所述一级节点下,所述事件节点通过事件类型字段定义控制流事件,所述控制流事件用于控制所述视频节点之间的跳转逻辑;

4、s2:解析所述编排意图描述文件,构建节点标识与节点之间的查找表,为所述多个节点中的每个节点附加处理元数据,所述处理元数据用于在编译生成原生代码包时确定对应节点的代码生成逻辑,其中,所述视频节点的处理元数据用于确定视频播放组件调用代码的生成逻辑,所述事件节点的处理元数据用于确定控制流代码的生成逻辑,生成中间表示;

5、s3:根据所述中间表示,遍历所述中间表示中的节点,基于所述视频节点的处理元数据,将所述视频节点编译为视频播放组件调用代码,基于所述事件节点的处理元数据,将所述事件节点编译为对应所述事件类型的控制流代码,并在编译生成所述原生代码包的过程中,根据所述事件节点的处理元数据,在所述控制流代码的生成位置自动注入用户交互行为数据采集代码,所述用户交互行为数据采集代码用于监听所述事件节点对应的控制流事件,并在所述控制流事件被触发时获取用户交互行为数据,以编译生成目标平台的原生代码包,所述原生代码包用于在所述目标平台上运行以执行互动内容,所述互动内容的剧情流转响应于所述事件节点对应的控制流事件,在所述视频节点之间进行切换。

6、进一步的,所述处理元数据包括跨集状态继承配置,所述跨集状态继承配置用于定义所述分集之间的条件变量传递关系;

7、在步骤s2中,解析所述编排意图描述文件,构建节点标识与节点之间的查找表,并为所述多个节点中的每个节点附加处理元数据,包括:

8、s21:检测所述节点定义信息中引用的条件变量,所述条件变量用于记录用户在所述事件节点处的决策结果;

9、s22:根据所述条件变量的引用关系,构建跨集状态继承图,所述跨集状态继承图用于指示所述条件变量在所述分集之间的传递路径;

10、s23:将所述跨集状态继承图作为所述处理元数据的一部分,关联至所述中间表示。

11、进一步的,所述编译生成目标平台的原生代码包包括:

12、根据所述跨集状态继承图,生成状态继承代码,所述状态继承代码用于在所述原生代码包运行时,将所述条件变量的值在所述分集之间传递,以使得后续分集的剧情分支根据所述条件变量的值调整所述视频节点之间的跳转目标。

13、进一步的,所述根据所述跨集状态继承图,生成状态继承代码,包括:

14、根据所述跨集状态继承图,确定所述条件变量在所述分集之间的传递路径;

15、根据所述传递路径,生成平台原生的本地存储读写代码,所述本地存储读写代码用于在所述分集切换时,将所述条件变量的值写入所述目标平台的本地存储,并在所述后续分集启动时从所述本地存储读取所述条件变量的值;

16、其中,所述本地存储读写代码为适配所述目标平台的存储接口的原生代码。

17、进一步的,所述处理元数据包括视频内容指纹信息,所述视频内容指纹信息用于标识所述视频节点对应的视频内容的时间轴特征;

18、解析所述编排意图描述文件,构建节点标识与节点之间的查找表,并为所述多个节点中的每个节点附加处理元数据,包括:对所述视频节点对应的视频内容进行内容指纹提取,得到所述视频内容的时间轴标签,所述视频内容的时间轴标签用于标识所述视频内容中的场景切换点、音频能量峰值区间和画面运动矢量强度峰值区间;将所述时间轴标签作为所述视频内容指纹信息,关联至所述视频节点的处理元数据。

19、进一步的,所述根据所述事件节点的处理元数据,在所述控制流代码的生成位置自动注入用户交互行为数据采集代码包括:

20、根据所述视频内容指纹信息,在所述视频节点对应的视频播放组件调用代码中,注入时间轴级别的埋点代码,所述时间轴级别的埋点代码用于在所述视频内容播放至所述时间轴标签对应的位置时,获取用户交互行为数据。

21、进一步的,所述对所述视频节点对应的视频内容进行内容指纹提取,得到所述视频内容的时间轴标签,包括:

22、对所述视频内容进行场景切分,识别所述视频内容中的场景切换点;

23、对所述视频内容进行音频特征分析,识别所述视频内容中的音频能量峰值区间;

24、对所述视频内容进行视觉特征分析,识别所述视频内容中的画面运动矢量强度峰值区间;

25、根据所述场景切换点、所述音频能量峰值区间和所述画面运动矢量强度峰值区间,生成所述时间轴标签。

26、进一步的,所述中间表示为脚本化对象,所述脚本化对象保留所述分集配置信息和所述节点定义信息的原始结构,并为每个节点附加所述处理元数据;

27、所述遍历所述中间表示中的节点包括:

28、通过节点状态机总调度,加载所述中间表示;

29、对所述视频节点,执行以下处理:对所述视频节点的视频内容进行色彩空间转换,将原始色彩空间转换为目标色彩空间,并生成色彩过渡动画参数;

30、为所述视频节点分配双缓冲播放资源,所述双缓冲播放资源包括前台缓冲区和后台缓冲区,所述前台缓冲区用于当前帧的显示,所述后台缓冲区用于下一帧的预解码和渲染;根据所述视频节点的跳转关系,预加载所述跳转关系对应的分支视频片段至内存缓存;

31、针对所述事件节点,根据所述事件类型字段,将所述事件节点分派至对应的事件处理逻辑,所述事件处理逻辑包括点击事件处理逻辑、滑动事件处理逻辑或定时事件处理逻辑。

32、进一步的,所述编排意图描述文件还包括分支方案分流配置信息,所述分支方案分流配置信息用于为所述事件节点配置多个分支方案,并为每个所述分支方案设置流量分配比例;

33、在步骤s2中,解析所述编排意图描述文件,构建节点标识与节点之间的查找表,并为所述多个节点中的每个节点附加处理元数据,还包括:

34、解析所述分支方案分流配置信息,为配置有所述分支方案分流配置信息的所述事件节点生成分流控制元数据,所述分流控制元数据包括所述分支方案、所述流量分配比例和方案标识字段,所述方案标识字段用于标识所述用户交互行为数据所属的所述分支方案;

35、将所述分流控制元数据作为所述处理元数据的一部分,关联至所述事件节点;

36、在步骤s3中,根据所述事件节点的处理元数据,将所述事件节点编译为对应所述事件类型的控制流代码,包括:

37、根据所述分流控制元数据,生成分流控制代码,所述分流控制代码用于在所述控制流事件被触发时,根据所述目标平台的用户标识和所述流量分配比例,确定所述用户所属的目标分支方案;

38、根据所述目标分支方案,确定所述视频节点之间的跳转目标;

39、其中,所述分流控制代码为适配所述目标平台的用户标识接口的原生代码。

40、在第二方面,本技术提供了一种基于编排描述文件的互动内容编译生成系统,所述系统包括:

41、文件接收模块,用于接收编排意图描述文件,所述编排意图描述文件包含分集配置信息和节点定义信息,所述分集配置信息包含至少一个分集,所述节点定义信息包含属于所述分集的多个节点,所述多个节点包括视频节点和事件节点,所述多个节点之间通过跳转关系形成节点跳转树,所述节点跳转树包括一级节点和二级节点,所述视频节点作为二级节点,所述事件节点作为一级节点,所述一级节点挂载于所述节点跳转树的根节点下,所述二级节点挂载于所述一级节点下,所述事件节点通过事件类型字段定义控制流事件,所述控制流事件用于控制所述视频节点之间的跳转逻辑;

42、查找表构建模块,用于解析所述编排意图描述文件,构建节点标识与节点之间的查找表;

43、元数据附加模块,用于为所述多个节点中的每个节点附加处理元数据,所述处理元数据用于在编译生成原生代码包时确定对应节点的代码生成逻辑,其中,所述视频节点的处理元数据用于确定视频播放组件调用代码的生成逻辑,所述事件节点的处理元数据用于确定控制流代码的生成逻辑;

44、中间表示生成模块,用于根据附加了所述处理元数据的所述多个节点,生成中间表示;

45、节点遍历模块,用于根据所述中间表示,遍历所述中间表示中的节点;

46、视频节点编译模块,用于基于所述视频节点的处理元数据,将所述视频节点编译为视频播放组件调用代码;

47、事件节点编译模块,用于基于所述事件节点的处理元数据,将所述事件节点编译为对应所述事件类型的控制流代码;

48、数据采集代码注入模块,用于在编译生成所述原生代码包的过程中,根据所述事件节点的处理元数据,在所述控制流代码的生成位置自动注入用户交互行为数据采集代码,所述用户交互行为数据采集代码用于监听所述事件节点对应的控制流事件,并在所述控制流事件被触发时获取用户交互行为数据;

49、原生代码包生成模块,用于编译生成目标平台的原生代码包,所述原生代码包用于在所述目标平台上运行以执行互动内容,所述互动内容的剧情流转响应于所述事件节点对应的控制流事件,在所述视频节点之间进行切换。

50、区别于现有技术,上述技术方案涉及的一种基于编排描述文件的互动内容编译生成方法及系统,属于互动内容编译生成技术领域。该方法包括:接收包含分集配置信息和节点定义信息的编排意图描述文件,节点定义信息中的多个节点通过跳转关系形成节点跳转树,事件节点作为一级节点,视频节点作为二级节点;解析该描述文件,构建节点标识与节点之间的查找表,为每个节点附加处理元数据,生成中间表示;遍历中间表示中的节点,基于视频节点的处理元数据编译生成视频播放组件调用代码,基于事件节点的处理元数据编译生成对应事件类型的控制流代码,并在编译过程中根据事件节点的处理元数据在控制流代码的生成位置自动注入用户交互行为数据采集代码,最终编译生成目标平台的原生代码包。本技术实现了从编排描述到原生代码的自动化编译生成,无需人工编写平台特定代码和手动埋点,大幅降低开发成本。

51、上述 技术实现要素: 相关记载仅是本技术技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本技术的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本技术的上述目的及其它目的、特征和优点能够更易于理解,以下结合本技术的具体实施方式及附图进行说明。