轨迹曲线用图形表示机构装置中某一点或顶点相对于零件的运动。图9.5.76 “轨迹曲线”对话框● :可选取要生成的曲线类型。......
2023-06-20
运动轨迹编辑算法的流程包含三个步骤:落地约束检测和运动分割、运动路径提取与编辑、约束施加。
路径编辑问题的描述如下:给定目标路径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 路径编辑后的舞蹈运动序列
有关虚拟现实理论基础与应用开发实践的文章
为此,我们研究利用层次化样条曲线来自动确定样条控制点的间距。给定原始运动序列,用户利用IK算法调整原始运动的若干关键帧姿态,系统自动利用层次化样条曲线拟合运动的偏移图,生成光滑的运动曲线,得到结果运动。整个算法包括解析逆向运动学、多层次运动曲线拟合和在线运动编辑三大步骤。......
2023-10-17
接下来,我觉得还有这么几个问题非常有趣,可以讨论一下。其中最为有害的当属“运动惩罚”。研究发现,孩子运动习惯完全是被父母主导的。小贴士¤运动可以帮助少年儿童增加身高。¤运动有助于预防近视。¤运动有助于控制体型,降低肥胖率。¤运动要遵循少年儿童的生长规律,应循序渐进,不可操之过急。具体见本节的“学龄前儿童与学龄后儿童的运动方法”。......
2023-11-23
本书5.1~5.4节的方法是建立在像素域中的。如今,越来越多的视频以压缩形式进行存储和传输,所以出现了一些在压缩域中进行运动片段分割的算法。文献[7]提到了一种基于帧运动量计算的压缩域监控视频运动片段分割算法。视频的运动活动性是指视频序列给用户视觉上的感知运动强弱程度,目前出现了多种视频运动活动性的评判方法。通过以上3个参数综合衡量帧的运动活动性,将视频帧分为运动片段和静止片段两部分。......
2023-11-23
(一)运动性疲劳产生的原因运动性疲劳产生的原因主要有以下几个方面。(二)运动性疲劳的判断方法人体是一个完整的有机体,当然运动后产生的疲劳也会是综合性的,它不仅反映在心理上,同时也及时反映在生理上。......
2023-11-05
网球是两人或4人在中隔一网的场地上用球拍往返拍击一个有弹性的橡胶小球的球类运动。网球运动起源于法国。1358—1360年间,掌球游戏传入英国王室。1858年英国哈利·格姆在伯明翰建造了世界上第一块草地网球场,1872年又创办莱明顿网球俱乐部,促进了网球运动的形成。网球可以培养人们动作迅速、判断准确、反应快,并能提高速度、力量、耐力、灵敏等素质。优秀运动员一般用于第一次发球,常可直接得分。......
2023-11-03
相关推荐