一种基于混合控制的反应跟随运动生成方法

文档序号:6338397阅读:141来源:国知局
专利名称:一种基于混合控制的反应跟随运动生成方法
技术领域
本发明属于计算机动画领域,尤其是涉及一种基于混合控制的反应跟随运动生成方法。
背景技术
随着人体动画在虚拟现实、三维游戏、数字娱乐中的广泛应用,人们对人体动画的真实感和交互性提出了更高的要求。生成对不可预料事件做出真实的、可以控制的反应跟随性人体动画,一直是人体动画领域一项具有挑战性的工作。由于反应跟随性人体动画通常要求虚拟人的运动保持物理约束、与环境交互自然、实时响应用户输入等等,因此反应跟随性人体动画对其生成技术提出了更高的要求。目前生成反应跟随性人体动画主要有采用数据驱动方式或物理模拟方法。
数据驱动方式,主要指运动捕获数据驱动方式。运动捕获数据通过记录真实的人体运动数据来驱动虚拟人,因此包含丰富的细节信息,具有高效率、所生成的动画真实感强等优点。但是就其技术本身而言,运动捕获技术是对运动的复制,所获取的数据只能在特定的环境下应用。由于数据驱动方式过于依赖事先捕获或生成的运动序列,它们不太适合有外力作用或与环境有密切交互的、不可预料的场景。而且需要在整个数据库范围内进行相似度计算,代价非常高,一般不可能实时地对用户的输入做出反应。因此基于数据驱动的方法通常只对特定的反应运动进行模拟,例如只针对被“推”后做出的平衡保持反应做了处理,这样可以减少捕获的数据和搜索空间。
处理人物与环境动态交互最自然的一种方式就是采用物理模拟的方法。最近,在一些具有高级物理模拟特效的游戏中采用Rag-doll系统来动态模拟虚拟人与环境之间的交互作用。由于缺少必要的控制系统生成具有人类特性的行为,他们对外力的响应通常是被动的,因此Rag-doll模拟看起来毫无生机。虽然一些研究者试图设计一些动力学控制器来引导虚拟人实现生活中日常的一些活动,如行走、平衡、摔倒以及滚地等。由于动力学控制器设计的复杂性以及缺少对人体运动物理规则的认识,如果只用动力学的方法,即使是看上去非常简单的任务(例如,沿着一条直线行走)都非常难以实现。
前述的运动生成算法在使用中都有一定局限性,难以满足实时生成虚拟人反应跟随性动作的需要。比如,这些算法的计算量都很大,无法让用户实时地得到虚拟人对外界干扰的反应效果。有些方法只能处理特殊的输入方式,比如推和拉,难以做到细节上的准确性。

发明内容
本发明的目的是提供一种基于混合控制的反应跟随运动生成方法。
本发明生成方法的步骤如下1)根据接受的外部事件,预测虚拟人在物理模拟下的运动轨迹,其步骤为(1)同时创建两个相同的场景,每个场景隶属于一个物理模拟过程,(2)将预测模拟过程的时间步长设为普通模拟的十倍,(3)将预测模拟过程与普通模拟过程设置为在同一时间起步,(4)将预测出来的运动序列与数据库中的运动序列进行比较,寻找合适的跳转序列和最佳的跳转时机,并反馈给正常的物理模拟过程;2)采用近似最近邻搜索算法(ANN,Approximate NearestNeighbors,该方法为近邻搜索的常规算法)进行运动搜索,并采用骨骼结构的层次细节降低搜索空间维度的方法来提高运动搜索的速度;3)对物理模拟下的运动轨迹与数据库中运动序列的任意两帧之间作相似度计算,物理模拟得到的序列与数据库中的序列两帧之间的差异,表示为对应关节的位置和角度差异的权值之和。为了保证关节在速度上的相似性,以及确保在跳转帧之间不能有太大的差异,对相似度的计算,可以扩大到一个窗口大小范围内。窗口的大小选择为一个典型的跳转所需要的时间。假设fs和fm分别表示预测的运动轨迹和数据库中的运动序列中的两帧,则在一个窗口内,两帧差异公式可以表示为 其中ws为跳转窗口的大小,J为虚拟人的关节数量。pj(fsi)表示fsi帧第j个关节的位置,类似的θj(fsi)为fsi帧第j个关节的方位角。Tθ,l(fs0,fm0)是一个坐标变换操作。根据身体不同部位对相似度计算贡献的大小,wpj和wθj分别对第j个关节的线距离和角距离加权;4)采用基于物理的方法生成反应跟随性运动来衔接事件发生前、后这两段运动序列,其步骤为(1)将原始序列与搜索到的序列进行插值,得到关节在跳转前后两段序列插值后的姿态角θblend(t),(2)在物理模拟的过程中,动力学控制器沿着前后两段序列的插值序列生成相应的反应动作;(3)对于每个关节,动力学控制器采用比例微分伺服器计算作用在其上的力矩τ=ks(θblend(t)-θcur)-kd(-θ·cur)]]>其中ks和kd分别为相应关节的刚性和阻尼增益,θcur和 分别表示当前的关节姿态角和角速度。
5)采用生物力学原理对生成的反应跟随运动进行调整,其步骤为(1)采用比例微分控制器产生的力矩将向T姿态连续地驱动上部肢体,(2)控制器驱动双臂跟踪身体的着地点、生成保护性的动作以避免受到伤,(3)采用控制器驱动虚拟人到达或接近将要跳转的运动序列的初始姿态。
所说的创建物理模拟场景指的是建立虚拟人的动力学人体骨架模型,将捕获下来的数据与铰链结构的人体模型相关联,建立了一个混合式的虚拟人骨架。为了减少动力学模型的复杂性,只从捕获数据中抽取了15个关节。虚拟人身体每个部分的尺寸由捕获数据中的骨架确定。身体各部分的质量主要参考来自解剖学相关文献中的测量数据,并根据捕获数据中的骨架大小作了相应的缩放。虚拟人的运动由相应的运动捕获数据驱动,在运动过程中身体每个部分的物理属性可以随时查询。
所说的并行模拟机制的步骤为1)当由于碰撞或外界冲击改变虚拟人的状态时,一个拥有较大时间步长的物理模拟过程用来快速地预测响应结果和获取虚拟人在该物理模拟过程中的轨迹,2)该完全用物理模拟过程生成的运动序列是虚拟人被动响应外部事件的结果,主要用来搜索合适的跳转运动序列,3)同时,另一个具有正常时间步长的物理模拟过程将接管虚拟人的运动控制,并生成对外部事件的反应动作。
所说的运动选择方法是将初始的模拟轨迹(预测出来的运动轨迹)与数据库中的运动序列进行比较,而不是像普通方法那样在两段已经存在的运动序列之间做相似度计算。
所说的近似最近邻搜索算法是根据用户指定的误差边界ε和查询数据q,利用构建好的空间树来搜索满足以下条件的数据pdist(p,q)≤(1+ε)dist(p*,q)其中p*为q真正的近邻。
所说的骨骼结构的层次细节降低搜索空间维度的方法是建立人体关骨架的层次模型,根据层次级别,依次减少关节点数目。根据搜索效率,通过选择合适的层次骨骼结构,系统自动在速度和运动质量上作折中。
本发明提出了一种可以在运动捕获数据中加入物理上真实的反应跟随性运动的方法根据接受的外部事件,从运动捕获数据库中搜索出与之相适应的运动序列,采用基于物理的方法生成反应跟随性运动,并用来衔接事件发生前、后这两段运动序列。为了准确预测虚拟人的运动轨迹,本发明提出了并行模拟的方法。本发明的方法能实时地模拟虚拟人连续遇到障碍物后摔倒、爬起来的运动以及被对手推、打后做出的真实反应。在物理模拟过程中,本发明还提出了基于生物力学的姿态调整,采用手臂吸收瞬间冲击力的策略来模拟摔倒过程中的保护性动作。在虚拟人失去平衡的过程中,由于经过生物力学特性的调整,本发明生成动作更接近真实人。
本发明的方法采用基于并行模拟机制的运动轨迹预测,可以准确地预知虚拟人在动力学控制下的运动轨迹,确保运动过渡的平滑性。本发明采用了连续姿态控制的方法,使动力学控制器沿着外界扰动发生前后两段序列的插值运动数据驱动虚拟人,并生成相应的连续性反应动作。本发明提出的基于生物力学的姿态调整,采用手臂吸收瞬间的冲击力的策略来模拟具有人类行为特点的保护性动作,使生成的虚拟人运动更加逼真。因此本发明可以快速有效地模拟虚拟人对连续、多次触发事件的反应动作,而且本方法使用并行模拟机制预测虚拟人的运动轨迹,可以做到实时。本方法可以允许用户与虚拟人进行交互,具有很好的实现价值。
具体实施例方式
基于混合控制的反应跟随运动生成方法的原理是物理模拟和运动捕获这两种生成人体动画的技术具有一定的互补性。本方法采用数据驱动与动力学控制相结合的方法来提高人体动画的物理真实感。根据虚拟人受到的外力干扰,预测虚拟人在物理模拟下的运动轨迹,然后从运动捕获数据库中搜索出与之相适应的运动序列,并采用基于物理的方法生成反应跟随性运动,并用来衔接事件发生前、后这两段运动序列。也就是说,当虚拟人与外界没有任何交互时,采用捕获数据驱动;当虚拟人受到外力作用的时候跳转到物理模拟状态,通过动力学解算生成相应的动作。当外力作用效果消失,物理模拟没有运动捕获数据可靠时,再选择合适的帧序列回到运动捕获数据驱动状态。其中,虚拟人在物理模拟下运动轨迹的预测是生成反应运动的关键,为此本发明提出了采用并行模拟的机制。步骤为1)根据接受的外部事件,预测虚拟人在物理模拟下的运动轨迹,其步骤为(1)同时创建两个相同的场景,每个场景隶属于一个物理模拟过程。其中虚拟人骨架的动力学模型的建立是创建物理场景的关键。将捕获下来的数据与铰链结构的人体模型相关联,建立了一个混合式的虚拟人骨架。为了减少动力学模型的复杂性,只从捕获数据中抽取了15个关节。虚拟人身体每个部分的尺寸由捕获数据中的骨架确定。身体各部分的质量主要参考来自解剖学相关文献中的测量数据,并根据捕获数据中的骨架大小作了相应的缩放。每个人体关节可以看作是一个旋转或球形关节,分别拥有一个或三个自由度。
(2)将预测模拟过程的时间步长设为普通模拟的十倍。
(3)并行模拟,将预测模拟过程与普通模拟过程设置为在同一时间起步。物理模拟生成的最终运动序列将原始运动序列与下一步将要跳转的运动序列衔接起来。
(4)将预测出来的运动序列与数据库中的运动序列进行比较。
(5)寻找合适的跳转序列和最佳的跳转时机,并反馈给正常的物理模拟过程。
2)快速运动搜索,采用近似最近邻搜索算法(ANN,ApproximateNearest Neighbors)和骨骼结构的层次细节降低搜索空间维度的方法,提高运动搜索的速度。构建一棵kd树或者bbd树(balanced box-decomposition tree),对空间进行剖分。根据用户指定的误差边界ε和查询数据q,利用构建好的空间树来搜索满足以下条件的数据pdist(p,q)≤(1+ε)dist(p*,q)其中p*为q真正的近邻;所说的骨骼结构的层次细节降低搜索空间维度的方法是建立人体关骨架的层次模型,根据层次级别,依次减少关节点数目。根据搜索效率,通过选择合适的层次骨骼结构,系统自动在速度和运动质量上作折中。
3)运动选择,对物理模拟下的运动轨迹与数据库中运动序列的任意两帧之间作相似度计算。这样,物理模拟得到的序列与数据库中的序列两帧之间的差异,可以表示为对应关节的位置和角度差异的权值之和。为了保证关节在速度上的相似性,以及确保在跳转帧之间不能有太大的差异,对相似度的计算,可以扩大到一个窗口大小范围内。窗口的大小选择为一个典型的跳转所需要的时间。假设fs和fm分别表示预测的运动轨迹和数据库中的运动序列中的两帧,则在一个窗口内,两帧差异公式可以表示为 其中ws为跳转窗口的大小,J为虚拟人的关节数量。pj(fsi)表示fsi帧第j个关节的位置,类似的θj(fsi)为fsi帧第j个关节的方位角。Tθ,l(fs0,fm0)是一个坐标变换操作。根据身体不同部位对相似度计算贡献的大小,wpj和wθj分别对第j个关节的线距离和角距离加权;4)采用基于物理的方法生成反应跟随性运动,用来衔接事件发生前、后这两段运动序列,其步骤为(1)将原始序列与搜索到的序列进行插值,得到关节在跳转前后两段序列插值后的姿态角θblend(t),(2)在物理模拟的过程中,动力学控制器沿着前后两段序列的插值序列生成相应的反应动作;(3)对于每个关节,动力学控制器采用比例微分伺服器计算作用在其上的力矩τ=ks(θblend(t)-θcur)-kd(-θ·cur)]]>其中ks和kd分别为相应关节的刚性和阻尼增益,θcur和 分别表示当前的关节姿态角和角速度。
5)采用生物力学原理对生成的反应跟随运动进行调整,其步骤为(1)采用比例微分控制器产生的力矩将向T姿态连续地驱动上部肢体。当虚拟人受到一个意外的冲击,基于生物力学的控制器将在0.15秒内被激活,调整虚拟人肩和肘关节以降低身体重心的偏移的速度。我们以人体在意外滑倒实验数据为依据,采用比例微分控制器计算驱动双臂的力矩τrrτrr=ksrr(θT-pose-θcur)-kdrr(-θ·cur)]]>其中θT-pose为T形姿态下的关节姿态角。
(2)控制器驱动双臂跟踪身体的着地点、生成保护性的动作以避免受到伤。主动控制手臂的目的是使手臂在肩部着地之前先与地面接触,以起到缓冲的作用,保护头、胸、腹等重要部位。对于向后和向前倒,控制器驱动双臂跟踪身体的着地点;对于侧向倒,控制器只驱动倒下那一侧的手臂跟踪身体的着地点。
(3)采用控制器驱动虚拟人到达或接近将要跳转的运动序列的初始姿态。
本方法在物理模拟过程中使用了并行模拟的方法。通过并行模拟,本方法可以预知并计算出对外部不可预料干扰的反应动作。一个专门的物理模拟过程用来预测仿真结果。因此,本发明不需要将物理模拟结果倒带,然后再创建一个新的物理模拟过程。得到运动轨迹后,就可以将预测出来的运动序列与数据库中的运动序列进行比较,寻找合适的跳转序列和最佳的跳转时机,并反馈给正常的物理模拟过程。
本发明方法无论是对与环境的意外作用还是虚拟人之间的相互作用,或者多次与外部接触均能取得较好的效果。
权利要求
1.一种基于混合控制的反应跟随运动生成方法,其特征在于该方法包括如下步骤1)根据接受的外部事件,预测虚拟人在物理模拟下的运动轨迹,其步骤为(1)同时创建两个相同的场景,每个场景隶属于一个物理模拟过程,(2)将预测模拟过程的时间步长设为普通模拟的十倍,(3)将预测模拟过程与普通模拟过程设置为在同一时间起步,(4)将预测出来的运动序列与数据库中的运动序列进行比较,反馈给正常的物理模拟过程;2)采用近似最近邻搜索算法进行运动搜索,并采用骨骼结构的层次细节降低搜索空间维度的方法来提高运动搜索的速度;3)对物理模拟下的运动轨迹与数据库中运动序列的任意两帧之间作相似度计算,物理模拟得到的序列与数据库中的序列两帧之间的差异,表示为对应关节的位置和角度差异的权值之和,设fs和fm分别表示预测的运动轨迹和数据库中的运动序列中的两帧,则在一个窗口内,两帧差异公式可以表示为 其中ws为跳转窗口的大小,J为虚拟人的关节数量,pj(fsi)表示fsi帧第j个关节的位置,类似的θj(fsi)为fsi帧第j个关节的方位角,Tθ,l(fs0,fm0)是一个坐标变换操作,根据身体不同部位对相似度计算贡献的大小,wpj和wθj分别对第j个关节的线距离和角距离加权;4)采用基于物理的方法生成反应跟随性运动来衔接事件发生前、后这两段运动序列,其步骤为(1)将原始序列与搜索到的序列进行插值,得到关节在跳转前后两段序列插值后的姿态角θblend(t),(2)在物理模拟的过程中,动力学控制器沿着前后两段序列的插值序列生成相应的反应动作;(3)对于每个关节,动力学控制器采用比例微分伺服器计算作用在其上的力矩τ=ks(θblend(t)-θcur)-kd(-θ·cur)]]>其中ks和kd分别为相应关节的刚性和阻尼增益,θcur和 分别表示当前的关节姿态角和角速度;5)采用生物力学原理对生成的反应跟随运动进行调整,其步骤为(1)采用比例微分控制器产生的力矩将向T姿态连续地驱动上部肢体,(2)控制器驱动双臂跟踪身体的着地点、生成保护性的动作以避免受到伤,(3)采用控制器驱动虚拟人到达或接近将要跳转的运动序列的初始姿态。
2.如权利要求1所述的一种基于混合控制的反应跟随运动生成方法,其特征在于所述的创建物理模拟场景是指建立虚拟人的动力学人体骨架模型,将捕获下来的数据与铰链结构的人体模型相关联,建立了一个混合式的虚拟人骨架,虚拟人身体每个部分的尺寸由捕获数据中的骨架确定,身体各部分的质量为解剖学中的测量数据,并按照捕获数据中的骨架大小进行比例缩放,虚拟人的运动由相应的运动捕获数据驱动。
3.如权利要求1所述的一种基于混合控制的反应跟随运动生成方法,其特征在于所述的并行模拟机制的步骤为1)当由于碰撞或外界冲击改变虚拟人的状态时,一个拥有较大时间步长的物理模拟过程用来快速地预测响应结果和获取虚拟人在该物理模拟过程中的轨迹,2)该完全用物理模拟过程生成的运动序列是虚拟人被动响应外部事件的结果,主要用来搜索合适的跳转运动序列,3)同时,另一个具有正常时间步长的物理模拟过程将接管虚拟人的运动控制,并生成对外部事件的反应动作。
4.如权利要求1所述的一种基于混合控制的反应跟随运动生成方法,其特征在于所述的运动选择方法是将初始的模拟轨迹(预测出来的运动轨迹)与数据库中的运动序列进行比较,而不是像普通方法那样在两段已经存在的运动序列之间做相似度计算。
5.如权利要求1所述的一种基于混合控制的反应跟随运动生成方法,其特征在于所述的近似最近邻搜索算法是根据用户指定的误差边界ε和查询数据q,利用构建好的空间树来搜索满足以下条件的数据pdist(p,q)≤(1+ε)dist(p*,q)其中p*为q真正的近邻。
6.如权利要求1所述的一种基于混合控制的反应跟随运动生成方法,其特征在于所述的骨骼结构的层次细节降低搜索空间维度的方法是建立人体关骨架的层次模型,根据层次级别,依次减少关节点数目,并根据搜索效率,通过选择合适的层次骨骼结构,在速度和运动质量上作折中。
全文摘要
本发明涉及一种基于混合控制的反应跟随运动生成方法。本发明方法具体步骤包括根据接受的外部事件,预测虚拟人在物理模拟下的运动轨迹;从运动捕获数据库中快速搜索出与之相适应的运动序列;选择出下阶段的过度序列;采用基于物理的方法生成反应跟随性运动,用来衔接事件发生前、后这两段运动序列;采用生物力学原理对生成的反应跟随运动进行调整,使经过物理模拟后的动作在失重的情况下具有人类特点的自我保护和平衡维持意识。本发明的方法可以快速有效地模拟虚拟人对连续、多次触发事件的反应动作,而且可以做到实时。
文档编号G06T15/70GK1916969SQ20061005281
公开日2007年2月21日 申请日期2006年8月7日 优先权日2006年8月7日
发明者潘志庚, 唐冰 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1