当前位置: 首页 > 专利查询>浙江大学专利>正文

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

技术编号:2947286 阅读:239 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于混合控制的反应跟随运动生成方法。本发明专利技术方法具体步骤包括根据接受的外部事件,预测虚拟人在物理模拟下的运动轨迹;从运动捕获数据库中快速搜索出与之相适应的运动序列;选择出下阶段的过度序列;采用基于物理的方法生成反应跟随性运动,用来衔接事件发生前、后这两段运动序列;采用生物力学原理对生成的反应跟随运动进行调整,使经过物理模拟后的动作在失重的情况下具有人类特点的自我保护和平衡维持意识。本发明专利技术的方法可以快速有效地模拟虚拟人对连续、多次触发事件的反应动作,而且可以做到实时。

【技术实现步骤摘要】

本专利技术属于计算机动画领域,尤其是涉及。
技术介绍
随着人体动画在虚拟现实、三维游戏、数字娱乐中的广泛应用,人们对人体动画的真实感和交互性提出了更高的要求。生成对不可预料事件做出真实的、可以控制的反应跟随性人体动画,一直是人体动画领域一项具有挑战性的工作。由于反应跟随性人体动画通常要求虚拟人的运动保持物理约束、与环境交互自然、实时响应用户输入等等,因此反应跟随性人体动画对其生成技术提出了更高的要求。目前生成反应跟随性人体动画主要有采用数据驱动方式或物理模拟方法。数据驱动方式,主要指运动捕获数据驱动方式。运动捕获数据通过记录真实的人体运动数据来驱动虚拟人,因此包含丰富的细节信息,具有高效率、所生成的动画真实感强等优点。但是就其技术本身而言,运动捕获技术是对运动的复制,所获取的数据只能在特定的环境下应用。由于数据驱动方式过于依赖事先捕获或生成的运动序列,它们不太适合有外力作用或与环境有密切交互的、不可预料的场景。而且需要在整个数据库范围内进行相似度计算,代价非常高,一般不可能实时地对用户的输入做出反应。因此基于数据驱动的方法通常只对特定的反应运动进行模拟,例如只针对被“推”后做出的平衡保持反应做了处理,这样可以减少捕获的数据和搜索空间。处理人物与环境动态交互最自然的一种方式就是采用物理模拟的方法。最近,在一些具有高级物理模拟特效的游戏中采用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)同时创建两个相同的场景,每个场景隶属于一个物理模拟过程,(2)将预测模拟过程的时间步长设 为普通模拟的十倍,(3)将预测模拟过程与普通模拟过程设置为在同一时间起步,(4)将预测出来的运动序列与数据库中的运动序列进行比较,反馈给正常的物理模拟过程;2)采用近似最近邻搜索算法进行运动搜索,并采用骨骼结构的层次细节降低搜索空间 维度的方法来提高运动搜索的速度;3)对物理模拟下的运动轨迹与数据库中运动序列的任意两帧之间作相似度计算,物理模拟得到的序列与数据库中的序列两帧之间的差异,表示为对应关节的位置和角度差异的权值之和,设f↓[s]和f↓[m]分别表示预测 的运动轨迹和数据库中的运动序列中的两帧,则在一个窗口内,两帧差异公式可以表示为:D(f↓[s],f↓[m])=**(w↓[pj]□p↓[j](f↓[si])-T↓[θ,l](f↓[s0],f↓[m0])p↓[j](f↓[mi])□+ w↓[θj]□θ↓[j](f↓[si])-T↓[θ,l](f↓[s0],f↓[m0])θ↓[j](f↓[mi])□)其中ws为跳转窗口的大小,J为虚拟人的关节数量,p↓[j](f↓[si])表示f↓[si]帧第j个关节的位置,类似的 θ↓[j](f↓[si])为f↓[si]帧第j个关节的方位角,T↓[θ,l](f↓[s0],f↓[m0])是一个坐标变换操作,根据身体不同部位对相似度计算贡献的大小,w↓[pj]和w↓[θj]分别对第j个关节的线距离和角距离加权;4 )采用基于物理的方法生成反应跟随性运动来衔接事件发生前、后这两段运动序列,其步骤为:(1)将原始序列与搜索到的序列进行插值,得到关节在跳转前后两段序列插值后的姿态角θ↓[blend](t),(2)在物理模拟的过程中,动力学控制器沿着前后两段序列的插值序列生成相应的反应动作;(3)对于每个关节,动力学控制器采用比例微分伺服器计算作用在其上的力矩:τ=k↓[s](θ↓[blend](t)-θ↓[cur])-k↓[d](-*↓[cur])其中k↓[s]和k↓[d]分 别为相应关节的刚性和阻尼增益,θ↓[cur]和*↓[cur]分别表示当前的关节姿态角和角速度;5)采用生物力学原理对生成的反应...

【技术特征摘要】

【专利技术属性】
技术研发人员:潘志庚唐冰
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1