角色动画中的骨骼蒙皮技术

参考文献《骨骼皮肤绑定技术的研究及实现
角色动画中的技术难点:建模技术、运动控制技术、运动捕获、骨骼皮肤绑定技术。
其中,建模技术研究的是角色模型层次及其之间的关系运动;控制技术研究的是运动学、动力学相关的数据生成和控制方法;运动捕获方面研究的主要是在对捕获数据进行编辑的同时如何保持运动数据的高频信息的技术;绑定技术主要研究如何应用运动数据驱动角色模型生成动画的方法,使得角色模型变形适当,动画效果更加真实。

建模技术

  • 杆状模型,只有骨骼层,以少量的关节链结构表示角色;
  • 皮肤模型,也是单层模型;
  • 骨骼皮肤模型,包含皮肤层和骨骼层的两层模型,用骨骼承载运动,用皮肤模型表达角色,再利用骨骼控制皮肤变形;
  • 多层模型的建模技术,为了进一步增加真实感并进行多种参数的设置和分析,在皮肤层与骨骼层之间添加肌肉层和脂肪层,并通过更复杂的控制和约束机制产生动画。

根据建模技术的不同,角色动画也可以分为杆状动画、顶点动画、骨骼皮肤动画和多层模型动画四种。

  • 杆状动画形式简单,易于理解,适用于舞蹈、体操、武术等以人的姿态表达为主的领域。
  • 顶点动画更具真实性,但是占用内存更大,动画修改操作复杂,不能实时交互。
  • 骨骼皮肤动画内存消耗小,交互性好,但是骨骼控制皮肤机制复杂且需要大量计算。适用于人物和其他脊椎动物。
  • 多层模型动画,可以大大提高动画效果的真实性图。由于计算的时间和空间复杂性高,还没有大规模应用。

骨骼皮肤动画

骨骼皮肤动画中的数据

骨骼皮肤动画主要涉及三种数据运动数据、骨骼数据和皮肤数据。其中运动数据中包含旋转数据和平移数据两个部分;骨骼数据分为层次化结构数据和非层次化数据两种类型。运动捕获数据按照数据组织方式可分为层次化(BVH、HTR)、和非层次化(BVA)两种,分别应用于层次化骨骼和非层次化骨骼数据。
旋转数据有四种表示方法:3x3的矩阵、欧拉角、轴角表示、四元数。其中,四元数以旋转无歧异、能够平滑插值、存储空间小等优点得到广泛的应用;而欧拉角易于理解,是界面交互的主要手段;而OpenGL以矩阵形式计算和存储平移变换和旋转变换。
骨骼数据来源:三维软件建模、从运动中提取、从皮肤数据生成。
皮肤数据主要包含皮肤点位置信息、材质信息和纹理坐标信息。

运动控制技术

在运动控制领域,长期活跃的几个研究内容有运动修改(关键帧内)、运动连接(关键帧之间)、运动路径编辑(运动段内)、运动融合(运动段之间),还有针对不同骨骼结构进行的运动重定向。
其中的难点不在于修改关键帧数据,而在于如何在修改的过程中不破坏原始运动中的细节信息—运动信号高频分量。一种方法是信号处理的方法;另一种是基于时空约束的方法。
基于时空约束的方法,对关键帧内数据进行的修改作为空间约束,对关键帧之间的距离间隔的帧数的修改作为时间约束,然后综合时空约束得到方程进行求解。但是这些约束方程不易得到,求解也未必有解或者唯一解,这个时候就应用一些距离最小、能量最小等原理来判断如何取舍结果。

骨骼皮肤绑定技术 Skining

Skining主要涉以下三个方面:骨骼皮肤绑定过程的设计、骨骼皮肤绑定算法的研究和骨骼皮肤绑定在角色动画中的应用。

骨骼皮肤绑定一般过程

骨骼皮肤绑定一般过程分四个阶段:骨骼皮肤数据的匹配阶段、皮肤点绑定权的计算阶段、动画生成阶段和效果检测阶段。
数据匹配:从运动中导出的骨骼与皮肤模型数据存在尺寸和姿态两方面的差异,尺寸不同可以简单的设置比例变换函数进行调整,姿态不同则需要对骨骼进行运动学操作。
骨骼皮肤对应关系设定和权值计算:一种是用户逐点设定(可实现任意效果,但是时间复杂度高);另一种是通过作用域包围盒(binding box,比如球体包围盒、圆柱体包围盒、轴向包围盒和非轴向包围盒等)设定。
选择包围盒要考虑两个方面:

  • 包围盒要能够尽可能的符合物体形状,并尽可能的小;
  • 包围盒要能够容易表达,并尽可能的简单,以简化计算。
    在这里插入图片描述

轴向包围盒和球体包围盒可以很好的满足第二个条件,但是它们的缺点是包围不够紧密,对角色模型来说很容易与其他部分的包围盒相交图。朝向包围盒和圆柱体包围盒比较容易符合第一个条件,其中比圆柱体包围盒更满足第二条。
手动调整包围盒大小效率很低,可以利用皮肤各个部分的子包围盒加速定位骨骼包围盒。骨骼皮肤对应关系设定好以后,要计算他们之间的影响因子—绑定权值,常用计算方法有距离反比、距离平方反比等。
在这里插入图片描述在这里插入图片描述
一个皮肤点可能受 n n n个骨骼的影响,求出原始点的局部坐标之后,使用变换矩阵 M M M进行位置变换,然后 n n n个变换结果以不同的绑定权叠加得到最终的位置。
效果检测:皮肤变形越大,越容易产生失真,对绑定失真的模型部位进行检测发现的过程就是检测阶段的主要内容。检测方法:逐帧的人眼检测手段;自动衡量模型网格变形量的算法。

骨骼皮肤绑定算法

刚性绑定算法:一个皮肤点由一个骨骼控制,并且与刚性绑定算法相关的皮肤也是分段皮肤,计算简单,但是真实感不强。
柔性绑定算法:一个皮肤点由临近的所有骨骼控制。Vertex Blending算法。
Vertex Blending算法没有考虑到皮肤点本身的拓扑关系,也没有在算法中保持皮肤的体积造成的,这带来了两个问题:弯曲的时候关节部位皮肤塌陷;自转的时候关节部位的皮肤打结。
在这里插入图片描述
可以通过添加骨骼链的方法解决上面的问题,但是骨骼添加的数量和位置均由操作者人为指定,绑定过程复杂化,操作难度增大,而且需要重新绑定皮肤。
后来提出的Bone Blending算法,不再对皮肤点进行结果位置的线性插值,而是对绑定的过程进行插值—对骨骼的旋转角度进行插值。
后来又有人提出了从皮肤模型开始利用聚类分析的方法反算骨骼拓扑、骨骼数量、骨骼位置直到骨骼皮肤对应关系、绑定权值等绑定步骤,然后利用运动数据驱动模型运动得到皮肤动画。
由于计算量很大,可以使用预计算的绑定算法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值