一种用多线程动态加载特性构建的第三人称交互动画系统的制作方法

未命名 08-22 阅读:176 评论:0


1.本发明属于虚拟交互技术领域,尤其涉及一种用多线程动态加载特性构建的第三人称交互动画系统。


背景技术:

2.在本领域中,现阶段存在的动画交互系统,以第三人称为例,通常固定于一种移动模式,且动画配置不够灵活,资源冗余。另一方面逻辑执行模块与动画资源加载模块构建杂糅,在单一运行线程上做逻辑运算增加硬件运行负荷。同时,传统方法在逻辑模块的运算是非动态的,在动画资源的加载方法上也是非动态的,两个层面上对于硬件的消耗都较大。而且传统方法构建的动画交互系统普遍缺乏融合过渡,也不能和环境或交互操作良好响应。


技术实现要素:

3.为解决上述技术问题,本发明提出了一种用多线程动态加载特性构建的第三人称交互动画系统,以解决上述问题。
4.为实现上述目的,本发明提供了一种用多线程动态加载特性构建的第三人称交互动画系统,所述系统包括:
5.动画蓝图构建模块,用于构建动画蓝图;
6.数据采集模块,用于采集角色控制信息;
7.数据处理模块,与所述数据采集模块连接,用于将所述角色控制信息封装为角色移动属性变量集,并将角色移动属性变量集进行解耦处理,获得解耦数据;
8.嵌入模块,分别与所述动画蓝图构建模块和数据处理模块连接,用于基于前置事件图或非工作线程,通过线程安全数据加载方式将所述解耦数据加载到动画蓝图中;
9.动画表现模块,与所述动画蓝图构建模块连接,用于根据所述动画蓝图嵌入的解耦数据输出实时动画结果。
10.优选地,所述数据处理模块包括封装单元和解耦单元;
11.所述封装单元用于基于移动属性封装角色控制信息,获得角色移动属性变量集;
12.所述解耦单元用于将角色移动属性变量集进行解耦处理,得到解耦数据。
13.优选地,所述角色移动属性变量集包括根据动画模块动态加载或实时串流和卸载的角色位移信息变量组、旋转信息变量组、矢量速度方向信息变量组、加速度信息变量组和角色姿态信息变量组。
14.优选地,动画蓝图构建模块包括框架动画蓝图构建单元、资源动画蓝图构建单元和后处理动画蓝图构建单元;
15.所述框架动画蓝图构建单元用于构建框架动画蓝图;
16.所述资源动画蓝图构建单元用于构建资源动画蓝图;
17.所述后处理动画蓝图构建单元用于构建后处理动画蓝图。
18.优选地,所述框架动画蓝图构建单元包括移动板块构建子单元、状态叠加构建子
单元和整合子单元;
19.所述移动板块构建子单元用于构建框架动画蓝图的移动板块;
20.所述状态叠加构建子单元用于构建框架动画蓝图的状态叠加结构;
21.所述整合子单元用于整合框架动画蓝图的轴向运动和靶向运动模式。
22.优选地,所述资源动画蓝图构建单元包括动画序列创建子单元、投射子单元、动画序列加载子单元、过渡子单元和覆盖子单元;
23.所述动画序列创建子单元用于在资源动画蓝图中创建对应的动画序列播放器或动画分析器,并设置加载状态所需的动画资源的动态变量虚函数;
24.所述投射子单元用于将框架动画蓝图的角色移动属性变量集中相关变量投射到资源动画蓝图;
25.所述动画序列加载子单元用于根据变量指示加载动画序列;
26.所述过渡子单元用于在动画过渡发生时,加载目标动画;
27.所述覆盖子单元用于创建子类动画蓝图,覆写资源动画蓝图中相应动画序列。
28.优选地,所述后处理动画蓝图构建单元包括叠加子单元和适配子单元;
29.所述叠加子单元用于根据旋转信息变量组,创建骨骼控制节点,并将旋转信息变量组中的侧倾角按照比值叠加到角色跟骨骼上;
30.所述适配子单元用于制作角色脚步的地形适配和角色起步停步缩放适配。
31.与现有技术相比,本发明具有如下优点和技术效果:
32.本系统良好解决了传统方案中所存在的性能限制问题,并且能够提供良好的平台,为在其上开发子类动画系统做好基础,具有良好的拓展性。节省美术资源制作人力和搭建周期。同时方便满足系统设计者做迭代开发和追加功能的需求。效果上,系统能实现良好的操控感和沉浸体验感,吸引玩家用户沉浸体验。
附图说明
33.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
34.图1为本发明实施例的第三人称交互动画系统结构图。
具体实施方式
35.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
36.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
37.如图1所示,本发明提出了一种用多线程动态加载特性构建的第三人称交互动画系统,系统包括:
38.动画蓝图构建模块,用于构建动画蓝图;
39.数据采集模块,用于采集角色控制信息;
40.数据处理模块,与数据采集模块连接,用于将角色控制信息封装为角色移动属性
变量集,并将角色移动属性变量集进行解耦处理,获得解耦数据;
41.嵌入模块,分别与动画蓝图构建模块和数据处理模块连接,用于将解耦数据嵌入到动画蓝图中;
42.动画表现模块,与动画蓝图构建模块连接,用于根据动画蓝图嵌入的解耦数据输出实时动画结果。
43.进一步地优化方案,数据处理模块包括封装单元和解耦单元;
44.封装单元用于基于移动属性封装角色控制信息,获得角色移动属性变量集;
45.解耦单元用于将角色移动属性变量集进行解耦处理,得到解耦数据。
46.进一步地优化方案,角色移动属性变量集包括角色位移信息变量组,旋转信息变量组,矢量速度方向信息变量组,加速度信息变量组,角色姿态信息变量组。
47.进一步地优化方案,动画蓝图构建模块包括框架动画蓝图构建单元、资源动画蓝图构建单元和后处理动画蓝图构建单元;
48.框架动画蓝图构建单元用于构建框架动画蓝图;
49.资源动画蓝图构建单元用于构建资源动画蓝图;
50.后处理动画蓝图构建单元用于构建后处理动画蓝图。
51.进一步地优化方案,框架动画蓝图构建单元包括移动板块构建子单元、状态叠加构建子单元和整合子单元;
52.移动板块构建子单元用于构建框架动画蓝图的移动板块;
53.状态叠加构建子单元用于构建框架动画蓝图的状态叠加结构;
54.整合子单元用于整合框架动画蓝图的轴向运动和靶向运动模式。
55.进一步地优化方案,资源动画蓝图构建单元包括动画序列创建子单元、投射子单元、动画序列加载子单元、过渡子单元和覆盖子单元;
56.动画序列创建子单元用于在资源动画蓝图中创建对应的动画序列播放器或动画分析器,并设置加载状态所需的虚函数;
57.投射子单元用于将框架动画蓝图的角色移动属性变量集中相关变量投射到资源动画蓝图;
58.动画序列加载子单元用于根据变量指示加载动画序列;
59.过渡子单元用于在动画过渡发生时,加载目标动画;
60.覆盖子单元用于创建子类动画蓝图,覆写资源动画蓝图中相应动画序列。
61.进一步地优化方案,后处理动画蓝图构建单元包括叠加子单元和适配子单元;
62.叠加子单元用于根据旋转信息变量组,创建骨骼控制节点,并将旋转信息变量组中的侧倾角按照比值叠加到角色跟骨骼上;
63.适配子单元用于制作地形适配和角色起步停步缩放适配。
64.与系统对应的方法如下:
65.获取角色控制信息,基于移动属性封装为角色移动属性变量集。
66.将角色移动属性变量集和运行时的动画表现模块完全解耦,组建模块化流程。
67.角色移动属性变量集定义了包括角色位移信息变量组,旋转信息变量组,矢量速度方向信息变量组,加速度信息变量组,角色姿态信息变量组等的所有虚函数。
68.根据角色的不同运动属性状态,利用引擎的多线程安全更新特性异步加载相应的
虚函数,从而获取当前动画表现模块相关的角色移动属性变量集。
69.动画表现模块拆分为框架动画蓝图,资源动画蓝图和后处理动画蓝图。框架动画蓝图负责设定角色动画的状态关系与组合逻辑,资源动画蓝图编译并串流了角色相应动画资源所需的虚函数。
70.在运行时,本方案将框架动画蓝图和资源动画蓝图建立实时蓝图通信,基于引擎的多线程安全更新特性,通过框架动画蓝图向资源动画蓝图发送当前操作指令相关的角色移动属性变量(集),通过资源动画蓝图向框架动画蓝图发送当前动画表现模块所需的动画序列或动画集,从而实现逻辑与函数的以及动画资源的异步加载,即角色进入与退出不同状态,一个层面对应不同数据逻辑的加载卸载串流,另外一个层面对应不同的动画资源的加载卸载串流,以保证最优的资源利用率和最低的计算资源占用,节省大量工作线程上加载动画或函数逻辑的资源。
71.对于动画表现模块,在动画框架蓝图中,通过搭建分支开关,整合靶向运动系统和轴向运动系统,使整个角色运动系统根据操纵规则合理适配移动方式。通过设置包括起步停步转身等过渡动画结构平滑角色的运动状态切换。
72.资源动画蓝图中,通过模块化区分角色装备属性或不同技能状态,构建下属相应的子类动画蓝图。通过覆写动画变量集加载相应状态的动画。
73.最终,基于框架动画蓝图和资源动画蓝图之上搭建后处理动画蓝图。基于交互需求,构建对于场景或操作指令的肢体骨骼控制,脚部反向动力学系统针对地形的适配,以及角色不同加速度下,对于起步动画和停步动画的缩放适配。本方案整体提升了虚拟角色在场景中的交互动画质量和运行性能。
74.单元一:通过访问移动组件建立角色移动属性变量集的方法包括:
75.步骤一:通过函数建立角色旋转变量集,通过获取控制器z轴旋转角,更新间隔时间,计算角色操控旋转角度和角速度,并通过浮点数乘积设置角色侧倾角。
76.步骤二:通过函数获取控制器速度矢量,计算获取速度信息,和方向朝向向量等
77.步骤三:通过函数获取控制器加速度信息,计算获得加速度方向信息和标量浮点值。
78.步骤四:通过函数访问移动组件,获取角色状态信息,标记站姿,蹲姿,跳跃等状态的布尔变量。通过函数,对于跳跃状态,通过世界坐标z轴方向的矢量加速度判断角色的上升/下落阶段,并计算跳跃落地时机和速度
79.步骤五:通过函数,通过访问移动组件,获取角色站姿/蹲姿或其他姿态状态,并标记相应变量布尔值。
80.步骤六:通过函数,检索所加载动画的标记信息,设置过渡转折动画所需的变量。
81.将上述步骤一到五所述函数嵌入至框架动画蓝图。至此,逻辑层和表现层解耦完成。通过函数线程安全更新,适时适配加载不同的函数变量。同时建立蓝图通信接口,链接框架动画蓝图与资源动画蓝图。根据操作指令,将角色属性变量集中的上述函数等串流发送到资源动画蓝图。
82.单元二:构建框架动画蓝图的方法包括:
83.总体构造特征:为了能够通过异步加载的策略节省动画单次加载量,减少硬件性能符合,本发明采用了动画层链接方法,将动画层通过蓝图通信链接到资源动画蓝图获取
相应动画数据。动画层可以被划分适配移动状态,坐骑状态,车辆状态或任何上层系统规定的规则状态。相比于整体同步加载,异步加载可以节省大量硬件方面逻辑计算或动画加载资源,并且方便规则管理。
84.步骤一:构建框架动画蓝图的移动板块:按照通常规则分为静止,平面移动和跳跃状态。通过加载单元一,步骤二,三,五中所设计的相关变量,根据上层规则将变量跳转条件和动画框架中移动板块的转折条件关联。
85.对于跳跃状态,设置化名状态机,通过访问单元一,步骤四中的变量构建进入跳跃状态的跳转关系。使用化名状态机可以随时根据上层规则规定的某个或某类跳转关系随时进入相应状态,无需对状态机中的每个子状态各自设置链接关系,从而简化构建流程。同时,由于应用了动画层和动画蓝图链接的结构,本方案中跳跃系统框架设置能够继承并兼容上层规则对于角色跳跃表现的多种不同需求,比如二段跳系统,飞行系统等,均可以根据需求动态串流其所链接的动画层中的不同虚函数而获取相应动画,而无需重新为每个上层规则设置的每个状态创建不同的动画状态机,简化了整体结构设置。
86.步骤二:构建框架动画蓝图的状态叠加结构
87.为了减少动画资源开发和加载量,本方案对表现不同情绪状态,不同表演幅度的动画采取叠加处理操作,具体方法为:
88.1.在框架动画蓝图移动模块后串联叠加节点;
89.2.将所叠加的内容以动画层的形式通过蓝图通信链接到资源动画蓝图中。资源动画蓝图根据框架动画蓝图发送的变量或标记信息加载串流包含相应叠加动画序列的虚函数,并发送至框架动画蓝图,在1所设置节点的位置进行叠加组合,从而根据需求实现动画表现的拓展。
90.步骤三:整合框架动画蓝图的轴向运动和靶向运动模式
91.对靶向移动动画以腰部为界限做上下半身拆分处理;
92.在步骤二的模块后串联骨骼分层叠加节点,以腰部而上替换动画
93.将靶向移动的上半身动画以动画层的形式通过蓝图通信链接到资源动画蓝图中。资源动画蓝图根据上层规则所指示的标记,调用相应靶向移动的上半身动画。并发送至框架动画蓝图,在2所设置节点的位置叠加组合制作分支开关,根据上层规则,标记靶向移动布尔变量,利用该变量作为开关条件,选择是否进入靶向移动状态。
94.单元三:构建资源动画蓝图的方法包括:
95.总体构造特征:资源动画蓝图通过构建虚函数,根据框架动画蓝图通过蓝图通信传参获取变量和指令操作信息,根据信息执行逻辑判断以加载该时刻或状态下所需的动画序列资源。从而实现异步加载,减少工作线程下的硬件性能消耗。
96.步骤一:针对单元二,步骤一中创建的动画状态所链接的动画层在资源动画蓝图中创建对应的动画序列播放器或动画分析器,并设置加载状态所需的虚函数。
97.步骤二:建立接口蓝图,将资源动画蓝图和框架动画蓝图建立继承属性的通信关系,以动画层的形式完成通信。通过蓝图链接将框架动画蓝图的角色移动属性变量集中相关变量投射到资源动画蓝图。使其能通过非工作线程获取相应变量和信息。
98.步骤三:在步骤一所指的虚函数中串流单元一,步骤一至五的所需变量。根据变量指示设置分支选择,加载相应动画序列。例如,对于移动系统功能的构建中,获取操控器速
度方向以及加速度数值以选择对应的起步动画。获取速度数值以选择对应的速度循环动画。获取角色停止前的动画标记以选择对应速度和脚步的停步动画。获取操作规则指示的跳跃布尔变量以选择不同的跳跃或飞行动画组合。
99.步骤四:使用惯性化过渡方式卸载和加载动画:根据姿态,利用posesearch算法,根据当前骨骼位置,旋转,加速度最匹配的过渡目标动画,通过惯性化过渡算法取代两个或多个动画融合的标准过渡方法,使在动画过渡发生时,硬件内存只加载目标动画,从而避免旧动画的缓出过程和新动画的缓入过程干扰。并且提升动画过渡运算效率,节省性能。
100.步骤五:创建不同的子类动画蓝图,覆写父类蓝图即资源动画蓝图中相应动画序列,根据角色不同技能,状态,装备加载相关资源。
101.单元四:构建后处理动画蓝图的方法包括:
102.总体构造特征:后处理动画蓝图能够把次要表现逻辑和主体结构分开,在多角色同时加载时,能够根据硬件性能分配量关闭或减少相应后处理功能,提升运行效率。
103.步骤一:获取单元一步骤一的角色侧倾角,创建骨骼控制节点,将侧倾角按照相应比值叠加到角色跟骨骼上。或创建动画混合空间,将角色转身左右侧倾动画按照侧倾角进行混合,通过叠加节点叠加到角色当前状态。
104.步骤二:利用footplacement节点制作脚步反向动力学地形适配,使角色有更好的运动交互响应。
105.步骤三:制作角色起步停步缩放适配,即距离匹配功能。
106.1.通过访问角色移动组件,获取角色当前的速度信息,减速时的地面摩擦力系数,重力信息,计算预判出角色的可能停步位置。
107.2.追踪停步动画中的角色盆骨骨骼,生成平面直线方向的距离曲线。
108.3.根据停步位置和当前角色的距离做比值,根据比值缩放相应停步动画,从而达到精确地匹配停步目的。
109.该方案简化了执行规则,解耦了表现和逻辑,并且优化了表现提升了运行性能。
110.综上可见,本发明与现有技术相比的显著优势概括如下:
111.本发明是一种引擎框架下构建的利用多线程更新特性减少硬件运行性能消耗的实时动画系统。在此系统下,可以充分模块化解耦变量函数和动画表现。系统将包含资源动画序列调用规则的虚函数镶以异步加载的形式嵌到动画层,利用蓝图通信接口,传递给上层做框架和表现的主蓝图,输出实时动画结果。同时,对变量进行分类,利用线程安全特性,将对角色动画行为的变量函数放置于非工作线程更新,从而以模块化的加载方式,为动画调用逻辑提供实时运算与匹配。利用关联的标签和蓝图的父级子集关系,合理处理与分配角色模块状态,从而实现良好的运行效率。
112.基于此底层基础,在表现输出系统的构建中,整合靶向移动系统与轴向移动系统,并通过能实时交互反馈的骨骼反向动力学算法和起步停步缩放等算法为动画交互适配地形,场景,从而获得良好的动画表现结果。
113.以上,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。

技术特征:
1.一种用多线程动态加载特性构建的第三人称交互动画系统,其特征在于,所述系统包括:动画蓝图构建模块,用于构建动画蓝图;数据采集模块,用于采集角色控制信息;数据处理模块,与所述数据采集模块连接,用于将所述角色控制信息封装为角色移动属性变量集,并将角色移动属性变量集进行解耦处理,获得解耦数据;嵌入模块,分别与所述动画蓝图构建模块和数据处理模块连接,用于基于前置事件图或非工作线程,通过线程安全数据加载方式将所述解耦数据加载到动画蓝图中;动画表现模块,与所述动画蓝图构建模块连接,用于根据所述动画蓝图嵌入的解耦数据输出实时动画结果。2.根据权利要求1所述的用多线程动态加载特性构建的第三人称交互动画系统,其特征在于,所述数据处理模块包括封装单元和解耦单元;所述封装单元用于基于移动属性封装角色控制信息,获得角色移动属性变量集;所述解耦单元用于将角色移动属性变量集进行解耦处理,得到解耦数据。3.根据权利要求2所述的用多线程动态加载特性构建的第三人称交互动画系统,其特征在于,所述角色移动属性变量集包括根据动画模块动态加载或实时串流和卸载的角色位移信息变量组、旋转信息变量组、矢量速度方向信息变量组、加速度信息变量组和角色姿态信息变量组。4.根据权利要求1所述的用多线程动态加载特性构建的第三人称交互动画系统,其特征在于,动画蓝图构建模块包括框架动画蓝图构建单元、资源动画蓝图构建单元和后处理动画蓝图构建单元;所述框架动画蓝图构建单元用于构建框架动画蓝图;所述资源动画蓝图构建单元用于构建资源动画蓝图;所述后处理动画蓝图构建单元用于构建后处理动画蓝图。5.根据权利要求4所述的用多线程动态加载特性构建的第三人称交互动画系统,其特征在于,所述框架动画蓝图构建单元包括移动板块构建子单元、状态叠加构建子单元和整合子单元;所述移动板块构建子单元用于构建框架动画蓝图的移动板块;所述状态叠加构建子单元用于构建框架动画蓝图的状态叠加结构;所述整合子单元用于整合框架动画蓝图的轴向运动和靶向运动模式。6.根据权利要求4所述的用多线程动态加载特性构建的第三人称交互动画系统,其特征在于,所述资源动画蓝图构建单元包括动画序列创建子单元、投射子单元、动画序列加载子单元、过渡子单元和覆盖子单元;所述动画序列创建子单元用于在资源动画蓝图中创建对应的动画序列播放器或动画
分析器,并设置加载状态所需的动画资源的动态变量虚函数;所述投射子单元用于将框架动画蓝图的角色移动属性变量集中相关变量投射到资源动画蓝图;所述动画序列加载子单元用于根据变量指示加载动画序列;所述过渡子单元用于在动画过渡发生时,加载目标动画;所述覆盖子单元用于创建子类动画蓝图,覆写资源动画蓝图中相应动画序列。7.根据权利要求4所述的用多线程动态加载特性构建的第三人称交互动画系统,其特征在于,所述后处理动画蓝图构建单元包括叠加子单元和适配子单元;所述叠加子单元用于根据旋转信息变量组,创建骨骼控制节点,并将旋转信息变量组中的侧倾角按照比值叠加到角色跟骨骼上;所述适配子单元用于制作角色脚步的地形适配和角色起步停步缩放适配。

技术总结
本发明公开了一种用多线程动态加载特性构建的第三人称交互动画系统,包括:动画蓝图构建模块,用于构建动画蓝图;数据采集模块,用于采集角色控制信息;数据处理模块,与数据采集模块连接,用于将角色控制信息封装为角色移动属性变量集,并将角色移动属性变量集进行解耦处理,获得解耦数据;嵌入模块,分别与动画蓝图构建模块和数据处理模块连接,用于将解耦数据加载到动画蓝图中;动画表现模块,与动画蓝图构建模块连接,用于根据动画蓝图嵌入的解耦数据输出实时动画结果。本系统同时方便满足系统设计者做迭代开发和追加功能的需求,而且本系统能实现良好的操控感和沉浸体验感,吸引玩家用户沉浸体验。家用户沉浸体验。家用户沉浸体验。


技术研发人员:董锦超
受保护的技术使用者:董锦超
技术研发日:2023.05.23
技术公布日:2023/8/21
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐