首页 理论教育基于运动分割和朝向变换的运动轨迹编辑方法简介

基于运动分割和朝向变换的运动轨迹编辑方法简介

【摘要】:根据双脚落地约束的状况,系统自动把运动划分为腾空阶段和足触地阶段。2)运动路径提取与编辑运动路径path是一种特殊的运动轨迹。本文采用3次NURBS曲线来拟合根节点轨迹曲线。在腾空阶段,由于不受外力作用,如果运动速度与原始运动差别较大,将会导致物理失真。根据式(5-6)进行路径变换,求出结果运动的根轨迹。4)试验结果图5-8和图5-9给出了我们的运动轨迹编辑方法的部分试验结果。

运动轨迹编辑算法的流程包含三个步骤:落地约束检测和运动分割、运动路径提取与编辑、约束施加。

路径编辑问题的描述如下:给定目标路径P,使虚拟人能够沿着目标路径P行走。P可以是任意路径,可以用样条拟合进行曲线优化。由于在路径改变后,运动会发生滑步的现象,因此必须预先检测出脚的落地约束,以便清除滑步现象。

1)约束检测和运动分割

为保证编辑后运动的视觉真实性,编辑前后运动必须满足相同的几何约束。其中代表性的几何约束是落地约束,它的特征是角色上的某点(足部)处于某个特定位置。落地约束最显著的特征就是脚的相对速度较低,为了尽量克服噪声的影响,我们去除持续时间较短的候选帧。也就是说,只有当脚停留在某位置超过一定时间段后,我们才认为这样的帧是落地约束帧。这样,采用速度与边界盒准则作为我们的检测标准,具体过程是:用户通过图形界面,交互设定速度阈值和持续时间阈值,系统自动计算出结果并显示出来,用户可对所得结果进行进一步微调。约束检测界面如图5-6所示。

图5-6 落地约束的检测界面

经过多次试验,我们发现:选择速度阈值为0.045米/秒,时间阈值选取10帧(采样率为120帧/秒)时,对绝大部分运动可以得到较为满意的结果。对于余下的少数运动,我们采用手工后处理来进一步调整检测结果,增加检测精度。根据双脚落地约束的状况,系统自动把运动划分为腾空阶段和足触地阶段。

2)运动路径提取与编辑

运动路径path是一种特殊的运动轨迹。它是把人物角色压缩、抽象成一个特征点时,所经过的轨迹,经过滤波后,并投影到水平面上而得到的一条光滑曲线。运动路径不包括高频的细节,而是对路线轨迹进行滤波处理,抽出其中的主要部分。

由于垂直方向受重力影响,我们编辑和改变运动路径时,一般只是改变它的x和z坐标,而不改变它的y坐标。本文采用3次NURBS曲线来拟合根节点轨迹曲线。3次NURBS曲线C(u)可以表示为

式中,Pi是第i个控制顶点,wi是相应的权重,参数u的取值范围是0≤u≤1,Ni,n是基函数。

在任意时刻,路径都有一个对应的位置,和一个对应的路径方向,因此可以在路径上建立一个随时间变换的坐标系统。其中y轴垂直向上,x指向路径的切线方向,z轴为二者的乘积,现在轨迹曲线可以相对于该坐标系来描述。假设在时刻t原始路径的位置为P0(t),方向为R0(t),而角色跟关节的位置为PC(t),角色身体的朝向为RC(t),则相对于路径上的坐标系来说其位置和朝向分别为P0-1(t)PC(t)和R0-1(t)RC(t)。

现在我们可以对路径进行编辑,结果使路径在时刻t的位置变为P(t),方向变为R(t)。为了保持运动细节不变,编辑后的运动需保持人体朝向和路径之间原有的关系不变。为了适应路径的变化,角色的绝对位置和身体朝向应该变为

上述算法是对路径曲线进行时间参数化,简单易行,适合于编辑前后运动路径曲线变化不大的情形。但是如果目标路径的长度发生较大的变化,时间参数化会造成角色运动速度改变的现象。因此,为了使得目标运动的速度和原始运动一致,可以采用弧长参数化的方法。这样,可以使得编辑前后控制节点对应的曲线长度保持不变,从而保证动态性能在运动编辑前后保持不变。

然而,根据原始捕获运动的特性,运动路径可分割为腾空阶段和足触地阶段。在腾空阶段,由于不受外力作用,如果运动速度与原始运动差别较大,将会导致物理失真。因此,我们在弧长参数化之前,先将整条路径按照不同阶段划分,速度调整仅作用在足触地阶段,腾空阶段保持原始速度不变。我们按照落地状态将原始运动和编辑后的运动划分为一系列关键时间片断T∈[T1,TN]和t∈[T′1,T′N](二者都是用弧长参数化来度量),二者间的映射关系是分段直线。在飞行阶段由于保持编辑前后速度不变,分段直线的斜率近似为1。图5-7给出了具有5个关键时间片断的映射例子。

图5-7 输入和输出运动的分段线性映射关系

给定任一输入时间T,对应的输出时间t(T)可由式(5-7)计算。

式中,m为满足T>Tm的最大时间分段编号,arci代表原始运动的第i段弧长,arc′i代表编辑后运动的第i段弧长。(www.chuimin.cn)

下面是编辑过程的具体步骤:

(1)利用NURBS曲线拟合捕获运动的根轨迹曲线。

(2)计算原始路径的位置P0(t)和方向R0(t)以及角色的平移矩阵PC(t)和朝向矩阵RC(t)。

(3)调节初始路径样条曲线的控制点,设定新的路径P(t)和R(t)。

(4)按照弧长对t重新参数化,参数化时注意保留腾空阶段的绝对速度不变,将弧长改变量平均分配到脚触地阶段。

根据式(5-6)进行路径变换,求出结果运动的根轨迹。

3)约束重建

人体运动经过路径编辑以后,常常会出现违背约束的情形,最明显的是违背落地约束而出现滑行现象。这是因为对于原有运动的约束帧,人物脚部的末端效应器在这些帧内保持位置不变。

由于路径变换矩阵是随时间而变化,因此编辑后末端效应器的位置会出现变化,即产生滑动现象。为此我们必须要进行约束重建。约束重建方法很简单,我们选择Kovar等的滑步清除算法[103]来统一进行处理。具体过程包括如下五个步骤:

(1)确定每个落地约束的位置。

(2)对每一约束帧,计算踝的全局位置和朝向,要求使脚满足约束条件。

(3)计算根的位置。

(4)对腿进行调节,使踝满足位置和朝向的要求。

(5)平滑后处理。

关于滑步清除算法的进一步介绍详见[103]

4)试验结果

图5-8和图5-9给出了我们的运动轨迹编辑方法的部分试验结果。

图5-8 原始输入舞蹈运动序列

图5-9 路径编辑后的舞蹈运动序列