一种虚拟昆虫动画角色的运动仿真方法与流程

文档序号:12787369阅读:585来源:国知局
一种虚拟昆虫动画角色的运动仿真方法与流程

本发明涉及计算机图形学,特别是涉及一种虚拟昆虫动画角色的运动仿真方法。



背景技术:

角色动画是计算机图形学的一个研究分支,该领域主要解决的问题是如何为三维虚拟角色生成自然、可控、自适应的动画。传统的手工动画由动画师手动完成,即通过设置动画关键帧(Key Frame)的方法,最大的问题是费时费力(一个动画师一天大概只能完成10s左右,大约240帧动画)。这种手工动画也不适用于实时交互的游戏、虚拟现实等领域。主流的角色动画方法可分为两大类:

1)数据驱动型的角色动画方法

过去10年,运动捕捉(Motion Capture)的技术逐渐得到普及,提供了一种快速得到大量动画数据的方法。最近几年,Kinect等大众级别的硬件设备广泛普及,使得运动捕捉逐渐成为角色动画的主流方法。但通过运动捕捉采集的数据,却难以直接迁移到新的角色或新的场景上。即使通过各种方法修改原始数据,修改后的运动也难以保证其自然性,尤其是在和复杂的虚拟场景交互的情况下。

传统运动捕捉的系统不适用于昆虫类角色,主要原因有两个:一是昆虫体积小;二是昆虫运动速度快。Gibson等(Gibson D.P.,Oziem D.,Dalton C.J.and Campbell N.W.,2007.A system for the capture and synthesis of insect motion.Graphical Models,69(5),231–245.)利用多台同步高速摄像机拍摄了蚂蚁的行走录像,从录像中提取了蚂蚁的行动轨迹,并基于此原始数据,为虚拟蚂蚁角色生成了新的运动路径。但该方法有若干局限性,一是数据提取过程中需要手工标定,二是仅能提取躯干部位的轨迹序列,并不能精确获得各关节自由度的数据。Seol等(Seol Y.,O’Sullivan C.and Lee J.,2013.Creature features:online motion puppetry for non-human characters.In Proceedings of the 12th ACM SIGGRAPH/Eurographics Symposium on Computer Animation,SCA’13,New York,NY,USA.ACM,213–221.)利用Kinect捕捉人的运动,并将其映射到虚拟角色上,包括一些骨骼模型差异较大的动物,例如大象、蜘蛛等。该方法利用Kinect作为便捷的数据采集方法,但其缺陷在于因为真实表演者和虚拟角色之间存在较大的骨骼差异,因此无法精确控制虚拟角色的运动。以上分析表明,由于真实昆虫的运动数据较难获取,传统数据驱动的方法并不适合产生虚拟昆虫的运动。

2)物理仿真型的角色动画方法

除了数据驱动型的方法,角色动画也可以通过物理仿真的方式产生。该方法能准确控制虚拟角色的运动,自动适应于不同的地形、物理碰撞等外界环境,生成的动画符合自然物理规律,允许对虚拟环境进行实时交互。

Fang等(Fang J.,Jiang C.and Terzopoulos D.,2013.Modeling and animating myriapoda:a real-time kinematic/dynamic approach.In Proceedings of the 12th ACM SIGGRAPH/Eurographics Symposium on Computer Animation,SCA’13,New York,NY,USA.ACM,203–212.)利用物理仿真的方法,将多节昆虫的躯干分为刚体和非刚体部分,刚体部分用刚体仿真,非刚体部分用有限元仿真,通过耦合两部分的仿真结果,实现自然的多节昆虫的运动。Guo等(Guo,S.,Chang,J.,Yang,X.,Wang,W.and Zhang,J.,2014,October.Locomotion Skills for Insects with Sample‐based Controller.In Computer Graphics Forum(Vol.33,No.7,pp.31-40).)模拟真实昆虫的运动机能,将每个自由度的运动用一个独立的非线性振荡器控制,通过协调18个振荡器的输出控制六足昆虫的运动。

现阶段基于物理仿真的方法最大的问题在于产生的动画不够自然。这其中部分原因在于关节处的力和力矩的控制模型大部分是模拟机器人控制领域的比例差分控制器(Yin K.,Loken K.and van de Panne M.,July 2007.Simbicon:simple biped locomotion control.ACM Transactions on Graphics(TOG),26(3).)和虚拟模型控制器(Coros S.,Karpathy A.,Jones B.,Reveret L.and van de Panne M.,August 2011.Locomotion skills for simulated quadrupeds.ACM Transactions on Graphics(TOG),30,59:1–59:12.)。这些模型最大的优势在于实现简单,仅需提供虚拟角色各关节该时刻的旋转角度和速度,以及下一时刻的目标角度,即可返回该关节需要施加的力和力矩。现有模型的缺陷在于生成的动画过于僵硬,降低了用户对动画的真实感体验。近年来,非线性肌肉模型逐渐得到大家的关注。Wang(Wang J.M.,Hamner S.R.,Delp S.L.and Koltun V.,July 2012.Optimizing locomotion controllers using biologically-based actuators and objectives.ACM Transactions on Graphics(TOG),31(4),25:1–25:11.)首次将非线性肌肉模型用于虚拟类人角色上,驱动虚拟角色下半身的运动,取得了比之前方法更自然、稳定的角色动画。Geijtenbeek(Geijtenbeek T.,van de Panne M.and van der Stappen A.F.,2013.Flexible muscle-based locomotion for bipedal creatures.ACM Transactions on Graphics(TOG),32(6),206.)通过优化肌肉在骨骼的连接方式,将该肌肉模型应用于角色的全身控制中,可以在不同的角色、地形等情况下产生稳定的动画。



技术实现要素:

本发明的目的在于针对现有技术中难以利用数据驱动型的方法产生虚拟昆虫动画的问题,提供算法明确、流程清晰、产生的动画视觉自然、物理稳定、用户可控,在产业化之后可极大提高电影、动画、游戏领域中虚拟昆虫动画制作效率的一种虚拟昆虫动画角色的运动仿真方法。

本发明特别针对虚拟昆虫动画角色的运动仿真问题而提出。

本发明包括:

1个建立一套虚拟昆虫的骨骼模型的步骤;

1个建立一套非线性肌肉的驱动模型的步骤;

1个建立一套神经元网络的控制器的步骤。

所述建立一套虚拟昆虫的骨骼模型后将非线性肌肉模型加载于骨骼模型的关节连接处,驱动骨骼的关节转动;其次建立由单个神经元模型组成的大规模神经元网络模型,通过改变输入信号的方式产生控制信号,进而驱动肌肉模型和骨骼模型;最后,虚拟角色通过与外界环境的相互作用(例如与地面的摩擦力/支持力等),完成动画。

本发明针对现有工作中难以利用数据驱动型的方法产生虚拟昆虫动画的问题,提出了一套虚拟昆虫动画角色的骨骼-肌肉-神经的动画仿真方法。本发明算法明确、流程清晰,产生的动画视觉自然、物理稳定、用户可控,该方法在产业化之后可极大的提高电影、动画、游戏领域中虚拟昆虫的动画制作效率。

本发明属于物理仿真型的角色动画方法,针对昆虫普遍具有的生理结构(例如相似的步行足结构)和非线性肌肉模型,提出了一种为虚拟昆虫动画角色完成动画仿真的方法。

附图说明

图1为虚拟昆虫的单只步行足的自由度模型。

图2为基于神经元网络的控制器模型。

具体实施方式

一个虚拟昆虫角色的动画仿真方法:首先建立一套虚拟昆虫的骨骼模型;随后将非线性肌肉模型加载于骨骼模型的关节连接处,驱动骨骼的关节转动;其次建立由单个神经元模型组成的大规模神经元网络模型,通过改变输入信号的方式产生控制信号,进而驱动肌肉模型和骨骼模型;最后,虚拟角色通过与外界环境的相互作用(例如与地面的摩擦力/支持力等),完成动画。

下面具体介绍关键的实现细节:

1)建立一套虚拟昆虫的骨骼模型

在长期进化中,昆虫形成了成熟的骨骼结构,便于适应复杂的环境。若以蚂蚁为例,其身体部分可分为头部、胸部、腹部,每只步行足的结构可分为基节、转节、腿节、胫节、跗节、前跗节。经实验生物学的验证,其中对运动起决定性作用的关节是胸部-基节α、基节-转节β、腿节-胫节γ,且这三个关节均主要围绕一个旋转轴旋转。基于上述实验结论,昆虫的骨骼系统可以简化为多个步行足驱动一个刚体,每个步行足由三个自由度控制的物理模型。单只步行足的自由度模型参见图1。每个自由度的转动均由非线性肌肉伸缩产生的力矩所驱动。利用现有的物理引擎建立虚拟昆虫的物理模型。具体而言,昆虫的身体和腿均用圆柱体近似,圆柱体的长度和直径由用户输入;其中,腿依次由上述的6个部分(基节、转节、腿节、胫节、跗节、前跗节)组成,每个部分均用圆柱体近似;除选择的三个关节通过铰链约束连接外,其余关节均不存在相对转动。

2)建立一套非线性肌肉的驱动模型

单个运动神经元和对应的肌肉构成了基本的运动单元。生物运动的完成均依赖于肌肉的收缩。目前应用最广泛的肌肉力学模型是希尔肌肉模型(Zajac F.E.,1988.Muscle and tendon:properties,models,scaling,and application to biomechanics and motor control.Critical reviews in biomedical engineering,17(4),359-411.)。该模型将肌肉产生的作用力F主要分解为两部分:主动收缩部分FCE和并联弹性部分FPE

F=FCE+FPE (1)

并联弹性部分FPE模拟的是肌肉细胞伸缩产生的被动作用力,可用弹簧模型模拟:

其中,L0是该肌肉处于无拉伸状态下的长度,Δl是某时刻该肌肉发生的长度变化,k为对应的弹簧模型的刚度系数。

与传统角色动画领域广泛应用的比例微分控制器相比,希尔肌肉模型最大的特点是考虑了肌肉主动收缩力FCE与肌肉长度l、收缩速度v之间的非线性关系:

其中,为a(t)是来自神经元的时序控制信号。分别描述收缩力与标准肌肉长度、标准收缩速度之间的关系:

标准肌肉长度标准收缩速度L0,vm分别是该肌肉处于无拉伸状态下的长度、该肌肉的最大收缩速度。通过该标准肌肉长度、标准收缩速度,可以用统一的函数描述具有不同长度、速度的肌肉。F0为不同肌肉的差异化常量。

非线性肌肉横跨于一个关节,两端分别连接两侧骨骼,通过肌肉的收缩完成两个骨骼的相对转动。产生的力矩τ:

τ=F×L (6)

其中,L为关节中心到肌肉的最短距离。

3)建立一套神经元网络的控制器

通过建立由单个神经元组成的神经网络,控制虚拟昆虫的运动。神经元网络的控制器框架图如图2所示。其中单个神经元的模型如下:

其中,ui为神经元细胞膜的电压值(神经控制信号),Ii(t)为输入电流值,R为神经元细胞膜的等效电阻,τm为神经元细胞膜电压变化的时间参数。输入电流改变神经元的电压,进而控制信号的传导。大规模神经元网络构成独立的神经元集群。神经元集群的信号输出,即肌肉模型中的时序控制信号a(t),等效于将该集群内所有神经元的输出之和:

其中,N为该神经集群中包含的神经元的个数。该步骤可以过滤掉有噪声的信号,为后续的肌肉驱动提供稳定、准确的控制信号。因此,动画角色的运动最终的控制信号是单个神经元的输入电流Ii(t)决定。为了确定理想的输入电流Ii(t),首先建立一个优化目标函数:

其中,m,m*分别为动画角色重心的真实轨迹和理想轨迹(用户输入),pj,分别为第j只步行足的真实着地点和理想着地点(用户输入),M为步行足的数量。以上目标函数本质上是使重心和步行足的运动轨迹尽可能的吻合用户输入。采用适应性协方差矩阵(Covariance Matrix Adaptation)优化以上目标函数,寻找可以使上述方程获得最小值的控制信号Ii(t)。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1