System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种动画虚拟人物的关节识别方法技术_技高网

一种动画虚拟人物的关节识别方法技术

技术编号:41069774 阅读:2 留言:0更新日期:2024-04-24 11:25
本发明专利技术公开了一种动画虚拟人物关节识别方法,采用以下实施步骤:S1、用户在Maya场景中选择需要标注的人形骨架系统的任意部分;S2、获取选择物体的长名;S3、获取选择物体所处骨架体系顶层物体的名称;S4、获取根关节,再列出根关节的后代关节,根据具体关节的特征,识别出具体关节。本发明专利技术可对任一具有一个骨架系统的动画虚拟人物实现关节识别,然后可以将识别出的关节数据进行复用,具有自动高效的特点。

【技术实现步骤摘要】

本专利技术涉及计算机图像信息处理,特别是指一种基于maya的动画虚拟人物关节识别方法。


技术介绍

1、maya(autodesk maya)是一款常用的三维动画软件,maya功能完善,制作效率极高,渲染真实感极强,是数字和三维制作的工具中的首选解决方案。现有技术中,使用maya快速进行虚拟人物建模的研究多有涉及,如中国专利(公开号cn 116012499 b)公开了一种快速生成maya三维角色动画的方法及系统,该专利技术在万能人模型的基础上,可以并行进行特定角色模型的制作、绑定和角色动画制作,避免了重复搭建骨骼和绘制关节权重的重复劳动,加快整体制作速度。在实际创作过程中,快速创建可以解决从无到有的过程,但目前大多数的行业从业者,都已产生了很多的存量动作数据,在最大化利用动作数据资源的活动中,产生了如下的复用需求场景:动画项目中不同角色之间的动作复用;不同公司生产的角色之间的动作复用;动画角色动作在游戏场景中的复用;游戏角色动作在动画场景中的复用;捕捉动作数据在动画、游戏及数字人应用中的复用;动画、游戏及数字人应用等项目对来自动作库的数据的复用等,如何找到成对的骨架关节(软件内名:joint)是不同角色之间的动作能否复用的关键。

2、现有技术中,为了实现动作数据复用,目前有两种关节识别方案,分别为“同命名”方案和“同结构”方案,“同命名”方案:对于两个需要进行复制粘贴的角色骨架关节,对于每一对对应的同性质关节(如右侧肘关节),先就其运动解剖意义对关节进行人工识别,然后进行同样的命名。在需要复制粘贴的场合,在程序中让机器按名称找到成对骨骼进行复制粘贴。“同结构”方案:即同一树形结构,对于两个需要进行复制粘贴的角色骨架关节,在建模后的绑定阶段,在创建角色的骨架关节系统时,采用同样的树形架构,即在树形架构的某个同层级同位置的节点,代表了明确的同样的骨骼。在需要复制粘贴的场景下,在确保两个角色具有相同树形结构的骨架关节的状况下,在程序中让机器按结构位置找到成对骨骼进行复制粘贴。“同命名”方案中,需要对角色骨架关节进行人工识别命名,而角色骨架的关键关节数至少50个以上,非常耗费人力和时间,且重命名后的关节在整个动画制作流程的流动中,有很多被有意识或无意识的再次改名,使得“同命名”方案使用困难。“同结构”方案受制于骨架关节层级和结构的固定,也使得复制困难。


技术实现思路

1、本专利技术的目的在于提供一种利用maya软件,可以对已有的虚拟人物进行关节识别,得到关节的相关数据,便于复用的方法。

2、为实现本专利技术的目的,拟采用以下技术方案:

3、一种动画虚拟人物的关节识别方法,采用以下实施步骤:

4、s1、用户在maya场景中选择需要标注的人形骨架系统的任意部分;

5、s2、获取选择物体的长名;

6、s3、获取选择物体所处骨架体系顶层物体的名称;

7、s4、获取根关节,再列出根关节的后代关节,根据具体关节的特征,识别出具体关节。

8、其中,所述s4步骤识别具体关节包括以下步骤:

9、s41、获取顶级物体的后代关节数组;

10、s42、在后代关节数组中获取分叉关节数组;

11、s43、重新给分叉关节数组排序;

12、s44、后代数最大的分叉关节认定为根关节;

13、s45、列出根关节的后代关节,根据具体关节的不同特征,识别具体关节。

14、其中,所述s42步骤在后代关节数组中获取分叉关节数组具体包括以下步骤:

15、s421、获取每个后代关节的非末端儿子关节数组元素个数;

16、s422、如果该后代关节的非末端儿子关节数大于1,就把该后代关节认定为分叉关节,放入分叉关节数组。

17、其中,所述s43步骤重新给分叉关节数组排序包括以下步骤:

18、s431、为关节数组里的每个关节计算后代数,并以关节数组的元素顺序把这些后代数放入一个整型数组,形成“输入后代数数组”;

19、s432、以“输入后代数数组”为基础重新升序得到一个新数组,称为“升序后代数数组”;

20、s433、从后向前遍历“升序后代数数组”的元素,遍历每个元素时,进行如下:从前向后遍历“输入后代数数组”元素,如果当前“输入后代数数组”元素(整型)与当前“升序后代数数组”元素(整型)的值相等,就把当前“输入后代数数组”下标的“关节数组”的元素放入一个新的数组的末尾,这个新的数组命名为“升序关节数组”;

21、s434、遍历“升序后代数数组”完成后,对“升序关节数组”进行移除重复元素处理,得到后代数最大的分叉关节。

22、其中,s421获取每个后代关节的非末端儿子关节数组元素个数具体为:获取每个后代关节的儿子关节数数组;遍历儿子关节数数组的每个关节,获取该关节的儿子关节数组;如果该数组的元素个数大于0,该关节被认定为非末端关节,放入非末端儿子关节数组;然后得到非末端儿子关节数组元素个数。

23、在s45步骤中,胸关节具有后代数最多的特征,根据s43步骤对分叉关节数组排序后,分叉数组中的后代数最多的关节判定为胸关节。

24、是s45步骤中,在胸关节的子关节中,颈关节具有后代数最小的特征,根据s43步骤对分叉关节数组排序后,分叉数组中的后代数最小的关节判定为颈关节。

25、在s45步骤中,肩胛关节的识别,以人体上方向为基准方向,以人体后方向为投影方向,用出生角度对胸关节的子关节数组进行排序,位于最左向位序号的关节识别为左肩胛关节,位于最右向位序号的关节识别为右肩胛关节。

26、在s45步骤中,大腿关节的识别,以人体上方向为基准方向,以人体后方向为投影方向,用方向夹角对根关节的子关节数组进行排序,位于最左向位序号的关节识别为左大腿关节,位于最右向位序号的关节识别为右大腿关节。

27、在s45步骤中,头部关节的识别,把步骤s421获取颈关节的非末端儿子关节名称数组和该数组的对应的非末端儿子关节数数组(又称对应值数组),通过把对应值数组排序,创建一个新的有序值数组,有序值数组内升序下标循环,对应值数组内升序下标循环,对比对应值数组当前下标的元素与有序值数组当前下标的元素的大小,如果相等,那么,与对应值数组当前下标相等的名称数组下标的元素加入新的有序名称数组,有序值数组内循环完成后,在有序名称数组内移除去重复元素,后代关节的子关节数最多的关节判定为头关节。

28、在s44步骤识别出根关节,对应的人体关节是盆骨。

29、采用本技术方案,可以将存量的用不同标准命名的骨架,进行有效识别并便于复用,便于新的动画虚拟人物的快速创建,盘活存量资产,节省成本。同时可以消除因语言和称谓习惯不同而导致信息不统一。对于用本专利技术识别标注过的骨架,在后续的生产流程的流转中可任意编辑名称,也可在一定限度内改变层级结构。随着本专利技术应用的便利性优势不断提高,为创建跨越国际动漫游戏行业及本文档来自技高网...

【技术保护点】

1.一种动画虚拟人物关节识别方法,其特征在于,采用以下实施步骤:

2.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,所述S42步骤在后代关节数组中获取分叉关节数组具体包括以下步骤:

3.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,所述S43步骤重新给分叉关节数组排序包括以下步骤:

4.根据权利要求2所述的一种动画虚拟人物关节识别方法,其特征在于,S421获取每个后代关节的非末端儿子关节数组元素个数具体为:获取每个后代关节的儿子关节数数组;遍历儿子关节数数组的每个关节,获取该关节的儿子关节数组;如果该数组的元素个数大于0,该关节被认定为非末端关节,放入非末端儿子关节数组;然后得到非末端儿子关节数组元素个数。

5.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,在S45步骤中,胸关节具有后代数最多的特征,根据S43步骤对分叉关节数组排序后,分叉数组中的后代数最多的关节判定为胸关节。

6.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,是S45步骤中,颈关节具有后代数最小的特征,根据S43步骤对分叉关节数组排序后,分叉数组中的后代数最小的关节判定为颈关节。

7.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,在S45步骤中,肩胛关节的识别,以人体上方向为基准方向,以人体后方向为投影方向,用出生角度对关节数组进行排序,位于最左向位序号的关节识别为左肩胛关节,位于最右向位序号的关节识别为右肩胛关节。

8.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,在S45步骤中,大腿关节的识别,以人体上方向为基准方向,以人体后方向为投影方向,用方向夹角对根关节的子关节数组进行排序,位于最左向位序号的关节识别为左大腿关节,位于最右向位序号的关节识别为右大腿关节。

9.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,在S45步骤中,头部关节的识别,把步骤S421获取颈关节的非末端儿子关节数组,通过把对应值数组排序,创建一个新的有序值数组,有序值数组内升序下标循环,对应值数组内升序下标循环,对比对应值数组当前下标的元素与有序值数组当前下标的元素的大小,如果相等,那么,与对应值数组当前下标相等的名称数组下标的元素加入新的有序名称数组,有序值数组内循环完成后,在有序名称数组内移除去重复元素,后代关节的子关节数最多的关节判定为头关节。

10.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,在S44步骤识别出根关节,对应的人体关节是盆骨。

...

【技术特征摘要】

1.一种动画虚拟人物关节识别方法,其特征在于,采用以下实施步骤:

2.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,所述s42步骤在后代关节数组中获取分叉关节数组具体包括以下步骤:

3.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,所述s43步骤重新给分叉关节数组排序包括以下步骤:

4.根据权利要求2所述的一种动画虚拟人物关节识别方法,其特征在于,s421获取每个后代关节的非末端儿子关节数组元素个数具体为:获取每个后代关节的儿子关节数数组;遍历儿子关节数数组的每个关节,获取该关节的儿子关节数组;如果该数组的元素个数大于0,该关节被认定为非末端关节,放入非末端儿子关节数组;然后得到非末端儿子关节数组元素个数。

5.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,在s45步骤中,胸关节具有后代数最多的特征,根据s43步骤对分叉关节数组排序后,分叉数组中的后代数最多的关节判定为胸关节。

6.根据权利要求1所述的一种动画虚拟人物关节识别方法,其特征在于,是s45步骤中,颈关节具有后代数最小的特征,根据s43步骤对分叉关节数组排序后,分叉数组中的后代数最小的关节判定为颈关节。

7.根据权利要求1所述的一种动画...

【专利技术属性】
技术研发人员:沈杰吴佳李锦
申请(专利权)人:浙江中南卡通股份有限公司
类型:发明
国别省市:

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

1