CN114299200B 布料动画处理方法及装置、电子设备、存储介质(网易(杭州)网络有限公司)_第1页
CN114299200B 布料动画处理方法及装置、电子设备、存储介质(网易(杭州)网络有限公司)_第2页
CN114299200B 布料动画处理方法及装置、电子设备、存储介质(网易(杭州)网络有限公司)_第3页
CN114299200B 布料动画处理方法及装置、电子设备、存储介质(网易(杭州)网络有限公司)_第4页
CN114299200B 布料动画处理方法及装置、电子设备、存储介质(网易(杭州)网络有限公司)_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(19)国家知识产权局(12)发明专利(10)授权公告号CN114299200B(65)同一申请的已公布的文献号(73)专利权人网易(杭州)网络有限公司道网商路599号4幢7层(74)专利代理机构北京市京大律师事务所专利代理师谢文强布料动画处理方法及装置、电子设备、存储介质(57)摘要本申请提供了一种布料动画处理方法及装料网格模型和骨骼链,骨骼链包含配置动态骨骼算法的动态骨骼,骨骼链中层级大于预设层级的骨骼配置骨骼动画;根据骨骼动画和动态骨骼的动画确定布料网格模型的第一级动画;获取布料网格模型中与动态骨骼对应的动态顶点和布料约束;根据布料约束对动态顶点进行物理模拟计算,得到布料网格模型的第二级动画;融合第一级动画和第二级动画,得到布料网格模型的布料动画;本申请第二级动画采用的是与动态骨骼对模拟运算量小,消耗的性能少,且易于控制物理获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型的顶点关联,所述骨骼链由多个骨骼连接形成,多个所述骨骼的层级按照从所述骨骼链的链首至链尾的方向依次递减;所述骨骼链包含配置动态骨骼算法的动态骨骼,所述骨骼链中层级大于预设层级的骨骼配置骨骼动画;所述动态骨骼包含层级小于所述预设层级的骨骼中的至少部分骨骼;根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画融合所述第一级动画和所述第二级动画,得到所述布料网格模型的布料动画2获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型的顶点关联,所述骨骼链由多个骨骼连接形成,多个所述骨骼的层级按照从所述骨骼链的链首至链尾的方向依次递减;所述骨骼链包含配置动态骨骼算法的动态骨骼,所述骨骼链中层级大于预设层级的骨骼配置骨骼动画;所述动态骨骼包含层级小于所述预设层级的骨骼中的至少部分骨骼;根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画;所述第一级动画通过融合所述布料网格模型的初始动画和动态动画得到,所述初始动画根据所述骨骼动画确定,所述动态动画根据所述动态骨骼的动画确定;获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束;根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画;所述布料约束为所述动态顶点间的约束关系;融合所述第一级动画和所述第二级动画,得到所述布料网格模型的布料动画,包括:获取各个动态顶点对应的第二级动画的融合权重参数;根据所述融合权重参数,将所述第二级动画与所述第一级动画进行融合处理,得到所述布料网格模型的布料动画。2.根据权利要求1所述的方法,其特征在于,所述获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束,包括:获取当前运行设备的性能参数;当所述性能参数在大于第一性能指标时,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。3.根据权利要求2所述的方法,其特征在获取所述当前运行设备的设备型号;从第一配置表中确定所述设备型号对应的性能参数,作为所述当前运行设备的性能参数;所述第一配置表中记录有多个设备型号和各个设备型号对应的性能参数。4.根据权利要求2所述的方法,其特征在获取当前运行设备对应的已使用资源信息;根据所述已使用资源信息确定所述当前运行设备对应的剩余资源信息;根据所述剩余资源信息确定所述当前运行设备的性能参数。5.根据权利要求1所述的方法,其特征在于,所述获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束,包括:响应于针对所述布料网格模型从远景到近景的第一切换操作,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。6.根据权利要求1所述的方法,其特征在于,所述根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画,包括:根据所述骨骼动画确定所述动态骨骼的动画参数;获取所述动态骨骼的动态配置参数;所述动态配置参数包括阻尼、弹性系数、重力和角度约束;根据所述阻尼、弹性系数、重力和角度约束处理所述动态骨骼的动画参数,生成所述动态骨骼的动画,以确定所述布料网格模型的第一级动画。37.根据权利要求6所述的方法,其特征在于,所述根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画,还包括:当所述动态骨骼位于对应的碰撞体内部时,将所述动态骨骼调整到所述碰撞体外;根据调整后的所述动态骨骼的动画确定所述布料网格模型的第一级动画。8.根据权利要求1所述的方法,所述对所述根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级获取所述布料网格模型与所述动态骨骼的最大偏移距离;根据所述最大偏移距离和所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画,使得所述布料网格模型在第二动画中与所述动态骨骼的偏移距离小于所述最大偏移距离。第一获取模块,用于获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型的顶点关联,所述骨骼链由多个骨骼连接形成,多个所述骨骼的层级按照从所述骨骼链的链首至链尾的方向依次递减;所述骨骼链包含配置动态骨骼算法的动态骨骼,所述骨骼链中层级大于预设层级的骨骼配置骨骼动画;所述动态骨骼包含层级小于所述预设层级的骨骼中的至少部分骨骼;第一动画确定模块,用于根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画;所述第一级动画通过融合所述布料网格模型的初始动画和动态动画得到,所述初始动画根据所述骨骼动画确定,所述动态动画根据所述动态骨骼的动画确定;第二获取模块,用于获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料第二动画确定模块,用于根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画;所述布料约束为所述动态顶点间的约束关系;布料动画生成模块,用于融合所述第一级动画和所述第二级动画,得到所述布料网格模型的布料动画;融合权重参数获取模块,用于获取各个动态顶点对应的第二级动画的融合权重参数;基于融合权重参数生成动画模块,用于根据所述融合权重参数,将所述第二级动画与所述第一级动画进行融合处理,得到所述布料网格模型的布料动画。10.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的布料动画处理方法的步骤。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的布料动画处理方法的步骤。4技术领域[0001]本申请涉及计算机技术领域,特别是涉及布料动画处理方法及装置、电子设备、存储介质。背景技术[0002]随着计算机技术的发展,布料动画模拟技术被广泛应用于动画电影、游戏等领域中,通过布料动画模拟技术得到虚拟角色身上的衣物的形变和飘动等效果,以表现丰富的[0003]相关技术中,布料模拟是基于网格模型的顶点来对其进行的物理模拟,通过在顶点之间构建多种弹簧和阻尼约束网络来模拟布料柔软的动态,该布料模拟基于离散点的模拟运算量较大,难以实现大规模使用;同时完全基于约束关系的布料模拟因参与模拟的点及参数非常之多,动画制作者很难将布料调整到自己需要的造型动态,只能任由模拟结果控制,给动画表现带来了很大的困难。发明内容[0004]鉴于上述问题,提出了本申请以便提供克服上述问题或者至少部分地解决上述问[0006]获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型的顶点关联,所述骨骼链由多个骨骼连接形成,多个所述骨骼的层级按照从所述骨骼链的链首至链尾的方向依次递减;所述骨骼链包含配置动态骨骼算法的动态骨骼,所述骨骼链中层级大于预设层级的骨骼配置骨骼动画;所述动态骨骼包含层级小于所述预设层级的骨骼中的至少部分骨[0007]根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画;[0008]获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束;[0009]根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画;[0010]融合所述第一级动画和所述第二级动画,得到所述布料网格模型的布料动画。[0011]可选地,所述获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约[0012]获取当前运行设备的性能参数;[0013]当所述性能参数在大于第一性能指标时,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。[0015]获取所述当前运行设备的设备型号;[0016]从第一配置表中确定所述设备型号对应的性能参数,作为所述当前运行设备的性5能参数;所述第一配置表中记录有多个设备型号和各个设备型号对应的性能参数。[0018]获取当前运行设备对应的已使用资源信息;[0019]根据所述已使用资源信息确定所述当前运行设备对应的剩余资源信息;[0020]根据所述剩余资源信息确定所述当前运行设备的性能参数。[0021]可选地,所述获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约[0022]响应于针对所述布料模型从远景到近景的第一切换操作,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。[0023]可选地,所述融合所述第一级动画和所述第二级动画,得到所述布料网格模型的[0024]获取各个动态顶点对应的第二级动画的融合权重参数;[0025]根据所述融合权重系数,将所述第二级动画与所述第一级动画进行融合处理,得到所述布料网格模型的布料动画。[0026]可选地,所述根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的[0027]根据所述骨骼动画确定所述动态骨骼的动画参数;[0028]获取所述动态骨骼的动态配置参数;所述动态配置参数包括阻尼、弹性系数、和角度约束;[0029]根据所述阻尼、弹性系数、重力和角度约束处理所述动态骨骼的动画参数,生成所述动态骨骼的动画,以确定所述布料网格模型的第一级动画。[0030]可选地,所述根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的[0031]当所述动态骨骼位于对应的碰撞体内部时,将所述动态骨骼调整到所述碰撞体[0032]根据调整后的所述动态骨骼的动画确定所述布料网格模型的第一级动画。[0033]可选地,所述对所述根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画,包括:[0034]获取所述布料网格模型与所述动态骨骼的最大偏移距离;[0035]根据所述最大偏移距离和所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画,使得所述布料网格模型在第三动画中与所述动态骨骼的偏移距离小于所述最大偏移距离。[0037]第一获取模块,用于获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型的顶点关联,所述骨骼链由多个骨骼连接形成,多个所述骨骼的层级按照从所述骨骼链的链首至链尾的方向依次递减;所述骨骼链包含配置动态骨骼算法的动态骨骼,所述骨骼链中层级大于预设层级的骨骼配置骨骼动画;所述动态骨骼包含层级小于所述预设层级的骨骼中的至少部分骨骼;[0038]第一动画确定模块,用于根据所述骨骼动画和所述动态骨骼的动画确定所述布料6网格模型的第一级动画;[0039]第二获取模块,用于获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束;[0040]第二动画确定模块,用于根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画;[0041]布料动画生成模块,用于融合所述第一级动画和所述第二级动画,得到所述布料网格模型的布料动画。[0043]性能参数获取模块,用于获取当前运行设备的性能参数;[0044]第二动画参数获取模块,用于当所述性能参数在大于第一性能指标时,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。[0046]设备型号获取模块,用于获取所述当前运行设备的设备型号;[0047]基于设备型号获取性能参数模块,用于从第一配置表中确定所述设备型号对应的性能参数,作为所述当前运行设备的性能参数;所述第一配置表中记录有多个设备型号和各个设备型号对应的性能参数。[0049]已使用资源信息获取模块,用于获取当前运行设备对应的已使用资源信息;[0050]剩余资源信息确定模块,用于根据所述已使用资源信息确定所述当前运行设备对应的剩余资源信息;[0051]基于剩余资源信息确定性能参数模块,用于根据所述剩余资源信息确定所述当前运行设备的性能参数。[0053]基于切换操作获取模块,用于响应于针对所述布料模型从远景到近景的第一切换操作,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。[0055]融合权重参数获取模块,用于获取各个动态顶点对应的第二级动画的融合权重参[0056]基于融合权重参数生成动画模块,用于根据所述融合权重系数,将所述第二级动画与所述第一级动画进行融合处理,得到所述布料网格模型的布料动画。[0058]动画参数确定模块,用于根据所述骨骼动画确定所述动态骨骼的动画参数;[0059]动态配置参数确定模块,用于获取所述动态骨骼的动态配置参数;所述动态配置[0060]第一动画生成模块,用于根据所述阻尼、弹性系数、重力和角度约束处理所述动态骨骼的动画参数,生成所述动态骨骼的动画,以确定所述布料网格模型的第一级动画。[0062]碰撞检测模块,用于当所述动态骨骼位于对应的碰撞体内部时,将所述动态骨骼调整到所述碰撞体外;7[0063]基于碰撞检测生成第一动画模块,用于根据调整后的所述动态骨骼的动画确定所述布料网格模型的第一级动画。[0065]最大偏移距离确定模块,用于获取所述布料网格模型与所述动态骨骼的最大偏移[0066]基于最大偏移距离生成第二动画模块,用于根据所述最大偏移距离和所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画,使得所述布料网格模型在第三动画中与所述动态骨骼的偏移距离小于所述最大偏移距离。[0067]一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的布料动画处理方法的步骤。[0068]一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的布料动画处理方法的步骤。[0070]在本申请的实施例中,通过获取布料网格模型和与布料网格模型的顶点关联的骨骼链,其中,骨骼链由多个骨骼连接形成,多个骨骼的层级按照从骨骼链的链首至链尾的方向依次递减;骨骼链包含配置动态骨骼算法的动态骨骼,骨骼链中层级大于预设层级的骨骼配置骨骼动画;动态骨骼包含层级小于预设层级的骨骼中的至少部分骨骼;根据骨骼动画和动态骨骼的动画确定布料网格模型的第一级动画;然后,获取布料网格模型中与动态骨骼对应的动态顶点和布料约束;根据布料约束对动态顶点进行物理模拟计算,得到布料网格模型的第二级动画;最后,融合第一级动画和第二级动画,得到布料网格模型的布料动画;本申请实施例在进行顶点物理模拟计算得到第二级动画的过程中,采用的是与动态骨由于进行物理模拟计算的模拟顶点是动态骨骼对应的顶点,且布料动画融合了第一级动画和第二级动画,使得更易于控制物理模拟计算的造型动态;此外,在生成第一级动画时只需要对骨骼链中大于预设层级的骨骼制作骨骼动画,还可以减少动画制作的工作量,提高动画制作的效率。附图说明[0071]为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附[0072]图1为本申请实施例的一种布料动画处理方法的步骤流程图;[0073]图2为本申请实施例的一个虚拟对象的示意图;[0074]图3为本申请实施例的一个虚拟对象的初始动画展示的示意图;[0075]图4为本申请实施例的一个虚拟对象的第一级动画展示的示意图;[0076]图5为本申请实施例的一个虚拟对象的布料动画展示的示意图;[0077]图6为本申请实施例的最大偏移距离的示意图;8[0078]图7为本申请实施例的一种布料动画处理装置的结构框图。具体实施方式[0079]为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。[0080]本申请实施例提供的一种布料动画处理方法可以运行于本地终端设备或者是服务器。当布料动画处理方法运行于服务器时,该布料动画处理方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。[0081]在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,布料动画处理法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,第一终端设备、电视机、计算机、掌上电脑等;但是进行布料动画处理方法的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。[0082]在一可选的实施方式中,以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。[0083]参照图1,示出了本申请一实施例提供的一种布料动画处理方法的步骤流程图,在本申请实施例中,布料动画可以指动画电影或电子游戏场景中的柔性物体的动画表现,包括但不限于人物角色类的虚拟对象的服饰衣物、头发、或动物角色类的虚拟对象的毛发等;该方法可以包括如下步骤:[0084]步骤101,获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型的顶点关联,所述骨骼链由多个骨骼连接形成,多个所述骨骼的层级按照从所述骨骼链的链首至链尾的方向依次递减;所述骨骼链包含配置动态骨骼算法的动态骨骼,所述骨骼链中层级大于预设层级的骨骼配置骨骼动画;所述动态骨骼包含层级小于所述预设层级的骨骼中的至少部分骨骼;[0085]步骤102,根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画;[0086]步骤103,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束;[0087]步骤104,根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网9格模型的第二级动画;[0088]步骤105,融合所述第一级动画和所述第二级动画,得到所述布料网格模型的布料动画。[0089]本申请实施例通过获取布料网格模型和与布料网格模型的顶点关联的骨骼链,其中,骨骼链由多个骨骼连接形成,多个骨骼的层级按照从骨骼链的链首至链尾的方向依次递减;骨骼链包含配置动态骨骼算法的动态骨骼,骨骼链中层级大于预设层级的骨骼配置骨骼动画;动态骨骼包含层级小于预设层级的骨骼中的至少部分骨骼;根据骨骼动画和动态骨骼的动画确定布料网格模型的第一级动画;然后,获取布料网格模型中与动态骨骼对应的动态顶点和布料约束;根据布料约束对动态顶点进行物理模拟计算,得到布料网格模型的第二级动画;最后,融合第一级动画和第二级动画,得到布料网格模型的布料动画;本申请实施例在进行顶点物理模拟计算得到第二级动画的过程中,采用的是与动态骨骼对应行物理模拟计算的模拟顶点是动态骨骼对应的顶点,且布料动画融合了第一级动画和第二级动画,使得更易于控制物理模拟计算的造型动态;此外,在生成第一级动画时只需要对骨骼链中大于预设层级的骨骼制作骨骼动画,还可以减少动画制作的工作量,提高动画制作的效率。[0090]下面,将对本示例性实施例中布料动画处理方法作进一步地说明。[0091]在步骤101中,获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型的顶点关联,所述骨骼链由多个骨骼连接形成,多个所述骨骼的层级按照从所述骨骼链的链首至链尾的方向依次递减;所述骨骼链包含配置动态骨骼算法的动态骨骼,所述骨骼链中层级大于预设层级的骨骼配置骨骼动画;所述动态骨骼包含层级小于所述预设层级的骨骼中的至少部分骨骼。[0092]动画电影或游戏场景中的布料模型包括布料网格模型和骨骼链;布料网格模型是由三角面片网格组成的,三角面片网格包括顶点和三角面片,表征了物体模型的外观信息,负责虚拟角色对应模型的渲染。其中,布料模型可以指柔性体对应的模型,包括但不限于头发、衣服等对应的模型。骨骼链由多个骨骼连接形成,包含了布料模型的结构信息,负责模型变形的控制。骨骼链中每个骨骼与布料网格模型的顶点关联,可以理解,根据骨骼链对布料网格模型进行了蒙皮操作。组成骨骼链的多个骨骼的层级按照从骨骼链的链首至链尾的方向依次递减,即越靠近链首的骨骼的层级越高,链首的骨骼可以理解为根骨骼。如图2所示为本申请实施例中一个虚拟对象的示意图;该虚拟对象是一个身着长裙服装的虚拟人物,长裙服装又可以分为上衣和裙摆,以裙摆为例,裙摆对应的的模型即为布料模型。结合图2可知,布料模型包含的骨骼链可以有多条,骨骼的层级从上往下依次递减,即越靠近虚拟人物的腰部,裙摆的骨骼的层级越高。[0093]上述预设层级可以根据实际需求进行设置,本实施例中的大于预设层级包含预设层级本身,示例性地,预设层级可以是骨骼链中的最高层级,此时大于预设层级的骨骼即为骨骼链中最高层级的骨骼;预设层级也可以根据骨骼链包含的骨骼数量来确定,还可以根据骨骼链的长度来确定。[0094]示例性地,当根据骨骼链包含的骨骼数量来确定大于预设层级的骨骼时,大于预设层级的骨骼可以是从链首开始,按照骨骼包含的骨骼数量预设百分比确定预设层级的骨骼,该预设百分比可以是20%、30%、40%等,根据实际需求进行设置。例如,当骨骼链由4根骨骼连接形成时,按照从链首至链尾的方向依次为各骨骼设定层级,假设层级从高到底分别为第一层级、第二层级、第三层级、第四层级,若以骨骼链包含的骨骼数量的30%确定大于预设层级的骨骼,由于计算得到骨骼数量的30%为1.2,向上取整即为2,因此,大于预设层级的骨骼是从链首开始向链尾方向选择两根骨骼作为大于预设层级的骨骼,即预设层级是第二层级,大于预设层级的骨骼即为第一层级的骨骼和第二层级的骨骼。[0095]示例性地,当根据骨骼链的长度来确定大于预设层级的骨骼时,大于预设层级的骨骼可以是从链首开始,按照骨骼链的长度预设百分比确定预设层级的骨骼,该预设百分比可以是20%、30%、40%等,根据实际需求进行设置。例如,当骨骼链的长度是20(单位不限,与单根骨骼的长度单位保持一致即可),由长度分别是4、6、5、5的4根骨骼依次连接形成,链首是长度为4的骨骼,按照从链首至链尾的方向依次为各骨骼设定层级,假设层级从高到底分别为第一层级、第二层级、第三层级、第四层级,若以骨骼链长度的30%确定大于预设层级的骨骼,由于计算得到骨骼链长度的30%为6,而第一层级的骨骼长度为4,第二层级的骨骼长度为6,可以确定骨骼链长度的30%位置对应在第二层级的骨骼上,因此大于预设层级的骨骼是从链首开始向链尾方向选择两根骨骼作为大于预设层级的骨骼,即预设层级是第二层级,大于预设层级的骨骼即为第一层级的骨骼和第二层级的骨骼。[0096]本实施例骨骼链中包含配置动态骨骼算法的动态骨骼,即,将骨骼链中受动态骨骼算法驱动的骨骼命名为动态骨骼,其中,动态骨骼算法是一个简单的基于模拟弹簧振子的算法实现树状柔体的物理模拟。一般地,可以将骨骼链中所有的骨骼都作为动态骨骼,即骨骼链中的所有骨骼都受动态骨骼算法驱动;也可以将骨骼链中没有配置骨骼动画的骨骼作为动态骨骼,即骨骼链中层级小于预设层级的骨骼配置动态骨骼算法;还可以将骨骼链中没有配置骨骼动画的部分骨骼作为动态骨骼,即骨骼链中层级小于预设层级的部分骨骼配置动态骨骼算法。[0097]在步骤102中,根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画。[0098]本实施例可以根据骨骼动画和动态骨骼的动画确定布料网格模型的第一级动画,由于该第一级动画中采用了动态骨骼的动画,因此,布料网格模型的第一级动画可以展示出柔体的动画效果。[0099]示例性地,上述根据骨骼动画和动态骨骼的动画确定布料网格模型的第一级动画的过程可以包括:[0100]根据骨骼动画确定布料网格模型的初始动画;[0101]根据动态骨骼的动画确定布料网格模型的动态动画;[0102]融合初始动画和动态动画以得到布料网格模型的第一级动画。[0103]在确定配置骨骼动画的骨骼后,通过对这部分骨骼进行动画烘焙,可以得到布料模型的初始动画,也即布料网格模型的初始动画。如图3所示,为初始合图2可知,图3中大于预设层级的骨骼是骨骼链中的部分骨骼,因此,动画制作人员只需要为大于预设层级的骨骼制定骨骼动画,而不需要为骨骼链中的所有骨骼制定骨骼动画,可以减轻动画制作人员的工作量,提高动画制作的效率。[0104]通过动态骨骼算法驱动动态骨骼得到的动画即为动态骨骼的动画,根据动态骨骼11的动画可以确定布料网格模型中与动态骨骼对应区域的动画,即为布料网格模型的动态动[0105]示例性地,上述根据所述动态骨骼的动画确定所述布料网格模型的动态动画,包[0106]根据所述大于预设层级的骨骼的骨骼动画确定所述动态骨骼的动画参数;[0107]获取所述动态骨骼的动态配置参数;所述动态配置参数包括阻尼、弹性系数、重力和角度约束;[0108]根据所述阻尼、弹性系数、重力和角度约束处理所述动态骨骼的动画参数,生成所述动态骨骼的动画,以确定所述布料网格模型的第二级动画。[0109]在本示例中,动态骨骼算法驱动动态骨骼的过程中需要确定动态骨骼的动画参动态骨骼的运动速度和运动加速度,而动态骨骼的运动速度和运动加速度可以从骨骼动画中获取,即根据大于预设层级的骨骼的骨骼动画确定动态骨骼的动画参数。示例性地,当动态骨骼同时配置有骨骼动画时,则以其配置的骨骼动画对应的运动速度和运动加速度作为动态骨骼的运动参数;当动态骨骼没有配置骨骼动画时,由于动态骨骼和配置骨骼动画的骨骼是处于同一个骨骼链中,因此,在确定骨骼链中部分骨骼的骨骼动画的基础上,可以确定动态骨骼在骨骼动画影响下产生的运动速度和运动加速度,示例性地,可以通过正向动力学算法计算出动态骨骼的动画参数。[0110]动态骨骼的动态配置参数可以由设计人员根据实际需求进行设置。需要说明的是,在本实施例中,动态骨骼的角度约束不仅仅是对模拟时骨骼主轴外的两轴旋转角度的限制,能够形成一个圆锥型的活动范围,还可以包括单轴旋转约束和单轴单朝向旋转约束,在一些情况下,通过单轴旋转约束和单轴单朝向旋转约束可以避免出现穿插现象。比如,当布料模型为裙摆时,可以将裙摆根部的旋转设置为单轴单朝向向外,就能完全避免骨骼链传入碰撞体的情况。[0111]进一步地,在本申请一可选实施例中,上述动态骨骼的角度约束还可以根据布料模型所在的环境风场进行自适应调整;具体地,可以获取环境风场参数,当环境风场参数大于预设风场阈值时,则增大角度约束。其中,预设风场阈值和角度约束增加的量可以根据实际需求进行设置。可以理解,当环境风场参数大于预设风场阈值时,布料模型的动画更明显,使得布料模型的动画效果更加真实。[0112]进一步地,在本申请一可选实施例中,上述根据动态骨骼的动画确定布料网格模[0113]当所述动态骨骼位于对应的碰撞体内部时,将所述动态骨骼调整到所述碰撞体[0114]根据调整后的所述动态骨骼的动画确定所述布料网格模型的动态动画。[0115]本实施例在生成动态骨骼的动画的过程中,需要对动态骨骼进行碰撞检测,即当动态骨骼位于对应的碰撞体内部时,将动态骨骼的位置调整到碰撞体外,然后再基于调整后的动态骨骼的动画确定布料网格模型的动态动画,从而可以避免发生穿插现象。平面碰撞体,使得在不破坏造型的情况下尽可能地增加碰撞检测面积,提高布料动画的真[0117]示例性地,当布料模型为裙摆时,动态骨骼对应的碰撞体可以是虚拟人物的腿设置的碰撞体,当碰撞体是球型碰撞体时,若球型碰撞体较大,则会使得裙摆受到碰撞被撑碰撞体,通过检测动态骨骼在动画过程中是否从平面碰撞体的一侧(或称第一侧)穿过进入到平面碰撞体的另一侧(或称第二侧),若是,则将位于平面碰撞体的第二侧的动态骨骼调整到平面碰撞体第一侧的相对位置,使得动态骨骼的动画过程中,不会穿插平面碰撞体,对应地,根据动态骨骼的动画得到的布料网格模型的动态动画也不会发生穿插现象。[0118]可选地,在进行碰撞检测的过程中,还可以指定不同动态骨骼之间的碰撞关系,得到多个碰撞组,不在同一碰撞组内的动态骨骼不参与碰撞计算,从而减少碰撞检测的性能[0119]可选地,在生成动态骨骼的动画的过程中,还可以在单帧逻辑时间内计算多个动态骨骼模拟子帧,以解决单帧骨骼动画快速切换引起的骨骼模拟抖动问题。单帧逻辑时间又称帧率,动态骨骼模拟子帧是指形成动态骨骼动画的单帧画面,也就是说,本实施例中,还可以根据计算出的动态骨骼的动画,自适应地根据帧率确定动态骨骼动画的单帧画面,以使得动态骨骼动画更加平滑,可以解决单帧快速切换引起的抖动问题。[0120]当确定布料网格模型的初始动画和动态动画之后,可以融合初始动画和动态动画以得到布料网格模型的第一级动画。[0121]示例性地,可以在初始动画的基础上叠加动态动画,生成布料网格模型的第一级[0122]具体地,对于同时配置了骨骼动画和动态骨骼算法的第一类骨骼,该第一类骨骼对应的布料网格模型区域的第一级动画的生成过程,是通过该第一类骨骼的骨骼动画确定关键帧,通过动态骨骼算法确定关键帧之间的过渡帧得到。对于只配置了骨骼动画的第二类骨骼,则其对应的布料模型区域的第一级动画的生成过程,是通过该第二类骨骼的骨骼动画确定关键帧,通过在关键帧之间插入平滑过渡的过渡帧得到。对于只受动态骨骼算法驱动的第三类骨骼,该第三类骨骼对应的布料网格模型区域的第一级动画的生成过程,是通过动态骨骼算法得到。对于既没有配置骨骼动画,又没有配置动态骨骼算法的第四类骨骼,则可以基于第四类骨骼与配置了骨骼动画的骨骼之间的父子关系,通过正向动力学算法得到该第四类骨骼对应的骨骼动画,进而得到该第四类骨骼对应的布料网格模型区域的第一级动画。[0123]如图4所示,裙摆的上半部分采用骨骼动画生成布料网格模型的初始动画,裙摆的下半部分采用动态骨骼生成布料网格模型的动态动画,初始动画和动态动画叠加得到的即为布料网格模型的第一级动画。[0124]在步骤103中,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料[0125]其中,布料网格模型中与动态骨骼对应的动态顶点是指布料网格模型中与动态骨骼关联的顶点。布料约束是指布料网格模型中各个顶点之间的约束关系,具体地,布料约束施例中的布料约束即为动态顶点之间的约束关系,布料约束的具体数值由相关人员根据实际需求进行设置。[0126]在步骤104中,根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画。[0127]在确定用于物理模拟计算的动态顶点后,根据动态顶点间的约束关系进行物理模拟计算,可以得到布料网格模型的第二级动画,可以模拟出真实布料纤维之间拉扯的效果,使得布料模型的细节表现更加丰富。由于本实施例中的第二级动画是通过对动态顶点进行物理模拟计算得到的,因此,与相关技术中,对布料网格模型中的所有网格顶点进行物理模拟计算相比,本实施例中,得到布料网格模型的第二级动画的计算量更小,消耗的性能更[0128]在步骤105中,融合所述第一级动画和所述第二级动画,得到所述布料网格模型的布料动画。[0129]本实施例在通过骨骼动画和动态骨骼得到布料模型的第一级动画后,还可以将第一级动画与第二级动画融合,得到布料网格模型的布料动画,使得布料动画在第一级动画基础上可以呈现更加真实的细节模拟效果。如图5所示,裙摆的动画是通过融合第一级动画和第二级动画得到的,相比于图4所示仅包含第一级动画的效果而言,图5所示的裙摆动画效果更贴近实际布料效果。[0130]示例性地,上述融合所述第一级动画和所述第二级动画,得到所述布料网格模型[0131]获取各个动态顶点对应的第二级动画的融合权重参数;[0132]根据所述融合权重系数,将所述第二级动画与所述第一级动画进行融合处理,得到所述布料网格模型的布料动画。[0133]本实施例中,在进行第一级动画和第二级动画融合的过程中,可以设置布第二级动画的融合权重参数,根据融合权重参数来进行动画融合。其中,融合权重参数用于确定,通过融合第一级动画和第二级动画得到的布料动画,所使用到的第一级动画和第二级动画的使用比例。[0134]示例性地,当第二级动画的融合权重参数为0.5时,则表示第二级动画和第一级动画对布料动画的影响各占一半。当第二级动画的融合权重参数为0.3时,则表示第二级动画对布料动画的影响占0.3,而第一级动画对布料动画的影响占0.7。[0135]需要说明的是,不同动态顶点对应的融合权重参数可以不同,也就是说,可以根据实际需求设置各个动态顶点对应的融合权重系数。示例性地,动态顶点的融合权重参数可以根据与骨骼链链首距离的增大而增大。如图5所示的裙摆示意图中的融合权重参数可以按照从上到下方向依次渐变递增。[0136]进一步地,在本申请一可选实施例中,上述根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画,可以包括:[0137]获取所述布料网格模型与所述动态骨骼的最大偏移距离;[0138]根据所述最大偏移距离和所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画,使得所述布料网格模型在第二动画中与所述动态骨骼的偏移距离小于所述最大偏移距离。[0139]其中,最大偏移距离会影响布料网格模型的拉伸变形以及运动幅度,如图6所示,布料网格模型对应的动画与动态骨骼之间的距离在最大偏移距离内。在本实施例中,根据最大偏移距离和布料约束对动态顶点进行物理模拟计算,可以使得布料网格模型仅在设定的最大偏移距离范围内产生动画,方便控制动画效果。其中最大偏移距离可以根据实际需求进行设置。当最大偏移距离为0时,表示基于动态顶点的物理模[0140]进一步地,考虑到第一级动画可以提现布料的柔性效果,并且,第一级动画是基于骨骼动画和动态骨骼算法实现的,具有运算量小的特点,适于在大部分设备上运行。而基于动态顶点进行物理模拟计算得到的第二级动画虽然可以更好地体现布料细节特点,包括牵拉等效果,但是相比于生成第一级动画的过程需要占用更多的设备性能,因此,在本申请一可选实施例中,上述获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束[0141]获取当前运行设备的性能参数;[0142]当所述性能参数在大于第一性能指标时,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。[0143]其中,当前运行设备是指用于运行游戏程序的设备,当当前运行设备为本地终端设备时,当前运行设备对应的显示屏可以为本地终端设备的显示屏;当当前运行设备为服务器设备时,当前运行设备对应的显示屏可以为客户端设备的显示屏。设备的性能参数用[0144]可以理解,在本申请实施例中,只有当当前运行设备的性能满足第一性能指标要求时(即性能参数大于第一性能指标时),才会在当前运行设备上执行生成第二级动画的相关步骤,以便在对应的显示屏中显示融合第一级动画和第二级动画的布料动画。当当前运行设备的性能不满足第一性能指标要求时(即性能参数小于第一性能指标时),则只执行生成第一级动画的相关步骤,以便在对应的显示屏中显示第一级动画。其中,当大于第一性能指标包含第一性能指标本身时,则小于第一性能指标不包含第一性能指标本身;相应地,当大于第一性能指标不包含第一性能指标本身时,则小于第一性能指标包含第一性能指标本[0145]在一示例中,上述获取当前运行设备的性能参数,可以通过获取当前运行设备的设备型号,根据预先设置的第一配置表来确定当前运行设备的性能参数,其中,第一配置表中记录有多个设备型号与其对应的性能参数,在确定设备型号后,可以查询配置表,以获取对应的性能参数。[0146]在另一示例中,上述获取当前运行设备的性能参数,可以通过实时获取当前运行设备的已使用资源信息,然后根据已使用资源信息确定当前运行设备对应的剩余资源信息,根据资源剩余信息来确定当前运行设备的性能参数,其中,资源信息可以包括CPU占用[0147]在获取到性能参数后,可以将性能参数与第一性能指标进行比较,以确定性能参数与第一性能指标的大小关系,即确定性能参数所属的性能指标范围。[0148]可选地,在其他示例中,还可以通过获取当前运行设备的设备型号,根据第二配置表来确定当前运行设备的性能参数对应的性能指标范围,即确定性能参数是处于大于第一性能指标范围,还是处于小于第一性能指标范围。其中,第二配置表中记录多个设备型号和各个设备型号对应的性能指标范围,即在确定设备型号后,可以查询第二配置表,直接确定对应的性能参数所属的性能指标范围。[0149]在确定性能参数所属的性能指标范围后,根据对应的性能指标范围确定布料动画处理方式,即当性能参数小于第一性能指标时,只需要执行生成第一级动画的过程,以在对应的显示屏中展示第一级动画,保证布料模型可以展示基础的动画形态。当性能参数大于第一性能指标时,执行生成第一级动画、第二级动画、融合第一级动画和第二级动画得到布料动画的过程,以在对应的显示屏中展示融合第一级动画和第二级动画得到的布料动画,以提升布料模型的动画细节表现效果。[0150]在本实施例中,可以根据当前运行设备的性能自适应选择对应的布料动画处理方式来生成布料模型的动画,确保游戏程序运行流畅,在设备所能承受的性能范围内提高动画表现效果。[0151]进一步地,考虑到在布料模型的动画展示场景中,一般只需要在近景的情况下才需要展示更加细节的表现效果,为了减少运行设备的性能消耗,在本申请一可选实施例中,上述获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束可以包括:[0152]响应于针对所述布料模型从远景到近景的第一切换操作,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。[0153]在本实施例中,当布料模型所处的虚拟场景从远近切换到近景时,才会在当前运行设备上执行生成第二级动画的相关步骤,以便在对应的显示屏中显示融合第一级动画和第二级动画的布料动画。当布料模型所处的虚拟场景从近景切换到远近时,则只执行生成第一级动画的相关步骤,以便在对应的显示屏中显示第一级动画。[0154]其中,远景和近景可以通过比较布料模型在虚拟场景中,与对应的虚拟摄像机的距离和设定的距离阈值的大小来确定。示例性地,当布料模型与虚拟摄像机的距离小于距离阈值时,说明此时布料模型处于近景;当布料模型与虚拟摄像机的距离大于或等于距离阈值时,说明此时布料模型处于远景。[0155]本实施例中,当布料模型处于远景时,只执行生成第一级动画的相关步骤,以减少计算量,减少性能消耗;当布料模型处于近景时,执行生成第二级动画的相关步骤,以展示更真实的模拟效果。[0156]本申请实施例通过获取布料网格模型和与布料网格模型的顶点关联的骨骼链,其中,骨骼链由多个骨骼连接形成,多个骨骼的层级按照从骨骼链的链首至链尾的方向依次递减;骨骼链包含配置动态骨骼算法的动态骨骼,骨骼链中层级大于预设层级的骨骼配置骨骼动画;动态骨骼包含层级小于预设层级的骨骼中的至少部分骨骼;根据骨骼动画和动态骨骼的动画确定布料网格模型的第一级动画;然后,获取布料网格模型中与动态骨骼对应的动态顶点和布料约束;根据布料约束对动态顶点进行物理模拟计算,得到布料网格模型的第二级动画;最后,融合第一级动画和第二级动画,得到布料网格模型的布料动画;本申请实施例在进行顶点物理模拟计算得到第二级动画的过程中,采用的是与动态骨骼对应行物理模拟计算的模拟顶点是动态骨骼对应的顶点,且布料动画融合了第一级动画和第二级动画,使得更易于控制物理模拟计算的造型动态;此外,在生成第一级动画时只需要对骨骼链中大于预设层级的骨骼制作骨骼动画,还可以减少动画制作的工作量,提高动画制作的效率。[0157]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。[0158]参照图7,示出了本申请的一种布料动画处理装置实施例的结构框图,与方法实施例相对应,本申请实施例中,该布料动画处理装置可以包括如下模块:[0159]第一获取模块701,用于获取布料网格模型和骨骼链,所述骨骼链与所述布料网格模型的顶点关联,所述骨骼链由多个骨骼连接形成,多个所述骨骼的层级按照从所述骨骼链的链首至链尾的方向依次递减;所述骨骼链包含配置动态骨骼算法的动态骨骼,所述骨骼链中层级大于预设层级的骨骼配置骨骼动画;所述动态骨骼包含层级小于所述预设层级的骨骼中的至少部分骨骼;[0160]第一动画确定模块702,用于根据所述骨骼动画和所述动态骨骼的动画确定所述布料网格模型的第一级动画;[0161]第二获取模块703,用于获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束;[0162]第二动画确定模块704,用于根据所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画;[0163]布料动画生成模块705,用于融合所述第一级动画和所述第二级动画,得到所述布料网格模型的布料动画。[0165]性能参数获取模块,用于获取当前运行设备的性能参数;[0166]第二动画参数获取模块,用于当所述性能参数在大于第一性能指标时,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。[0168]设备型号获取模块,用于获取所述当前运行设备的设备型号;[0169]基于设备型号获取性能参数模块,用于从第一配置表中确定所述设备型号对应的性能参数,作为所述当前运行设备的性能参数;所述第一配置表中记录有多个设备型号和各个设备型号对应的性能参数。[0171]已使用资源信息获取模块,用于获取当前运行设备对应的已使用资源信息;[0172]剩余资源信息确定模块,用于根据所述已使用资源信息确定所述当前运行设备对应的剩余资源信息;[0173]基于剩余资源信息确定性能参数模块,用于根据所述剩余资源信息确定所述当前运行设备的性能参数。[0175]基于切换操作获取模块,用于响应于针对所述布料模型从远景到近景的第一切换操作,获取所述布料网格模型中与所述动态骨骼对应的动态顶点和布料约束。[0177]融合权重参数获取模块,用于获取各个动态顶点对应的第二级动画的融合权重参[0178]基于融合权重参数生成动画模块,用于根据所述融合权重系数,将所述第二级动画与所述第一级动画进行融合处理,得到所述布料网格模型的布料动画。[0179]可选地,所述第一动画确定模块702,包括:[0180]动画参数确定模块,用于根据所述骨骼动画确定所述动态骨骼的动画参数;[0181]动态配置参数确定模块,用于获取所述动态骨骼的动态配置参数;所述动态配置[0182]第一动画生成模块,用于根据所述阻尼、弹性系数、重力和角度约束处理所述动态骨骼的动画参数,生成所述动态骨骼的动画,以确定所述布料网格模型的第一级动画。[0184]碰撞检测模块,用于当所述动态骨骼位于对应的碰撞体内部时,将所述动态骨骼调整到所述碰撞体外;[0185]基于碰撞检测生成第一动画模块,用于根据调整后的所述动态骨骼的动画确定所述布料网格模型的第一级动画。[0187]最大偏移距离确定模块,用于获取所述布料网格模型与所述动态骨骼的最大偏移[0188]基于最大偏移距离生成第二动画模块,用于根据所述最大偏移距离和所述布料约束对所述动态顶点进行物理模拟计算,得到所述布料网格模型的第二级动画,使得所述布料网格模型在第三动画中与所述动态骨骼的偏移距离小于所述最大偏移距离。[0189]对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论