基于运动捕获数据的三维角色动画设计论文(2)

时间:2021-08-31

  1.骨架嵌入

  由于骨架嵌入需要将骨架重新定义大小和定位使得它能够正确的嵌入到模型当中,所以它能公式化为一个优化的过程:计算关节点的位置和朝向使它能够更好的适合于给定的模型。但是这个优化是一个三维空间的问题,所以连续优化的方法是不可行的。因此可以建立一个用顶点表示潜在关节点,用边表示独立的骨骼的图来简化优化问题。建立这样一个图是具有一定挑战的,因为我们可以用未知数量的顶点和边来表示相同模型的关节和骨架。我们在近似模型垂直等分的平面上建立中轴面,并且建立圆心在中轴面上的圆的一个特定的集合,将这些图的圆心连接起来形成一个图。然后使用自定义的离散的罚函数来最优化的骨架嵌入这个图。为了帮助优化,在给定的骨架中可以包括一些关节点的额外的信息。比如说对称的部位应该以相同的名称命名,又比如如果一个关节被命名为脚,那么就表示它应该事在模型中位置最低的一个关节。由于定义的罚函数是独立于具体的模型的,所以并没有减弱它的通用性。

  2.简化骨架

  前面的步骤建立了几何图G=(V, E)来表示骨架,我们需要将它嵌入到我们给定的骨架当中。给定骨架原先是以有s个节点的树的形式给出(在一般人形的骨架上会取s=18),但是如果这s个节点没有经过简化,嵌入的优化过程是很难处理的。因此我们需要一个简单的骨架,所以在嵌入骨架之前,需要将骨架简化。所有的'自由度为2的关节都将被除去(比如说膝关节), 关节两端的骨骼块被连在一起。简化后的骨架将会只有r个连接点。那么骨架嵌入以后缺少某些必要关节的骨架怎么让角色动起来呢?我们根据未简化骨架上关节在整条边上的比例,重新计算出该关节在简化骨架上的位置,然后插入到骨架中。在我们的系统中,简化的骨架中r=7。简化后的结果就是我们可以将简化的骨架嵌入到系统中以最小化罚函数惩罚的对象。否则这样的工作是很难实现的。

  3.离散的嵌入骨架和优化

  一般不可能计算离散的嵌入方式时使罚函数最小,因为嵌入的数量是指数级的。但是可以用类似分支定界的方法在问题的解空间树T上搜索问题解。我们使用这样一种方法:首先根据部分嵌入的下界估计保存优先级队列。然后在每一步,取出在队列中最好的部分嵌入,将它展开,与下一个关节进行计算,然后将结果保存在队列中。所以,第一个被完整展开的嵌入就是最好的嵌入。为了加速算法并且尽可能少的占用内存,如果部分嵌入有一个很高的下界,那么它将被立即拒绝并不在嵌入到队列中。虽然这种算法在最坏的情况下依然是指数级的,但是在我们测试实际情况它都是很快的。

  在骨架嵌入前将骨架进行了简化,省略了很多的关节,比如说膝关节,但简单骨架嵌入以后,要让角色真正的动起来,还是需要重新插入这些关节。在这里可以通过按比列分割骨架图中路径最短的边来得到。我们希望嵌入后的骨架能够很好的满足角色的形态比列,但是,有时候骨架并不能很好的适应我们的角色。同时,一些小的被忽略的骨骼块并没有被赋予正确的朝向。骨架优化的过程就是为了解决这些问题的提出的。

  4.蒙皮

  我们的角色和嵌入的骨架在将皮肤依附到骨架上之前是没有任何关联的。骨架并不能够驱动角色运动。因此我们需要指定骨架运动与角色表面网格变化之间的联系。虽然在这里我们可以用很多的网格编辑技术来进行网格变形,但是我们选择标准的LBS方法:假设表示网格顶点j的坐标,表示第i块骨骼的变形矩阵,表示第i块骨骼对第j个网格顶点的变形权值。LBS把j变形后的位置表示为。我们的目标就是找到每一块骨骼变化对所有顶点的影响权值。我们所期望权值有以下几个特性:首先它应该与网格的大小无关,其次权值的变化应该平滑,最后关节间两块骨骼的移动宽度必须与关节到表面网格的距离成一定的比例。即使有一个方案能够得到权值使得骨骼能够满足这些特性,但是它们很可能失败因为他们忽略了角色的的几何学特性。作为代替,我们用热平衡原理来寻找权值。假设我们把角色的体积认为是一个不占容积的热导体,然后我们强迫骨骼i的温度为1,而其他骨骼的温度为0。当热平衡以后,我们就可以把表面上每个顶点的温度值作为该骨骼对它影响的权值。  四、实验结果

  盼盼动画系统设计时主要依照三个标准:① 广泛性。适应于尽可能多的模型。对一些结构比较特殊,或者会产生歧义的模型能够尽可能的正确嵌入骨架。②质量。关键在于蒙皮的技术,让表面皮肤能根据骨架运动驱动正确的位和形变,以期与视频游戏中的模型相媲美。③ 性能。运行在大多数的家用计算机上。 在盼盼动画系统里对采用的模型进行了一些简单的限制:模型必须是全封闭的,并且是以最自然的姿势站立,这样能大幅度的提高骨架嵌入的准确性。当然模型需要是一个有四肢能被嵌入人体骨架的。

  图3为盼盼三维角色动画系统的一张截图画面。系统主要包括模型选取、BVH运动数据选取、运行、视图操作、工具条等功能。该系统的运行环境为英特尔酷睿双核CPU,主频为1.73Mhz,内存为1GB。因为盼盼动画系统是单线程的,所以双核的CPU几乎没有什么影响。测试发现,计算的主要消耗花费在分离过程中距离场的计算上。

  五、展望

  虽然盼盼动画系统在人体动画领域取得了一定的进展,但是它依然存在着不足,限制着它的应用范围。在技术方面,建立骨架图的时候可以用椭圆来建立初始骨架图。在应用方面,首先它的蒙皮质量在某些地方还可以改进,可以通过在骨架上自动蒙皮的技术来提高质量;其次,它的骨架中的关节与一般人体的关节有出入,不能由一般人体骨架运动的数据来驱动,这样就不能很好地利用网络上大量的表现复杂运动的运动数据。另外,盼盼动画系统依然不能够表现手部动画、脸部动画这些需要细节的动作。如果能在后期中加入这些方面的应用,一定能够得到更为广泛的应用,并且大大减少人体动画开发的整个周期。  注释

  ①Liu P, Wu F, Ma W, Liang R, Ouhyoung M, “Automatic animation skeleton using repulsive force field”, Proc. of Pacific Graphics’2003, pp. 309-413.

  ②Teichmann M, Teller S. “Assisted articulation of closed polygonal models.” Proc. of Computer Animation and Simulation’98, pp. 87-102.

  ③Katz S, Tal A, “Hierarchical mesh decomposition using fuzzy clustering and cuts”, ACM Transactions on Graphics, 2003, 22(3): 954-961.

  ④Wade L. Automated generation of control skeletons for use in animation. PhD thesis, The Ohio State University, 2000.

  ⑤Baran I, Popovi? J, “Automatic rigging and animation of 3D characters”, ACM Transactions on Graphics, 2007, 26(3):72.

  ⑥Kry P, James D, Pai D, “EigenSkin: Real time large deformation character skinning in hardware”, Proc. of Symposium on Computer Animation (SCA)’2003, pp. 153-160.