内河船舶操纵模拟器中虚拟人的模拟

    周立松

    

    

    

    摘 要:现有内河船舶操纵模拟器中仅能模拟人员落水场景,且模拟效果较差,很有必要对模拟器中虚拟人及其动作的模拟进行研究。采用分层表示模型将虚拟人分为骨骼层和皮肤层,在3Ds MAX中构建虚拟人的骨骼模型,使用蒙皮骨骼技术将皮肤绑定在骨骼上,从而实现了虚拟人的几何建模。根据人员动作的关键姿势生成关键帧,再由关键帧生成动作的中间帧。用Cal3D骨骼动画引擎将虚拟人动画导出,并导入到OSG场景管理软件中进行绘制,最终实现了虚拟人及其运动的模拟。

    关键词:内河船舶操纵模拟器 虚拟人 蒙皮骨骼 关键帧

    内河船舶操纵模拟器是内河船员教学与培训的重要设备。在模拟器中,无论是人员行走、攀爬、落水后挣扎,还是船舶靠离码头时人员抛、接、系缆绳等场景都需要对人员及其动作进行模拟,现有的内河船船操纵模拟器中仅能模拟人员落水场景,且模拟效果较差。所以很有必要对模拟器中虚拟人及其动作的模拟进行研究,从而丰富场景的显示内容,提高场景的真实感。

    从上世纪80年代开始,有关虚拟人及其运动研究就得到了开展,随着计算机处理能力的提高,一些关于虚拟人建模和运动的关键技术取得了较大的进步。本文的主要工作是创建虚拟人模型,通过对人员行走、攀爬等的分析,获得动作关键帧,最后用场景驱动软件将虚拟人的动作显示到场景中。

    虚拟人的几何建模

    虚拟人的几何建模就是根据虚拟人的外观和行为特征,在满足逼真度要求的前提下,将虚拟人在计算机中进行几何表示的过程。对虚拟人进行几何建模是实现计算机人体模拟的必要条件,一些学者对这一领域做了深入研究,总结表面模型、体模型和分层表示模型等建模方法。

    采用分层表示模型,一个虚拟人模型一般可以分为3个层次,即骨骼层、肌肉层和皮肤层。骨骼层包括人体主要骨架结构和主要关节,他们共同组合决定人体的基本姿态,其状态变化由各关节参数控制;肌肉层确定了人体运动过程中各部位的变形;皮肤层确定了人体的最终显示外观,其形状变化受肌肉层影响。分层表示模型方法从人体生理结构入手,直观地反映了人体运动过程中各个层次的变化和相互影响,对虚拟人及其运动的模拟更为逼真,而且由于对虚拟人的运动控制只需在骨骼层上进行,从而使得运动控制算法的设计更加简单,因此分层表示模型方法已成为目前最流行的虚拟人建模方法。

    采用分层表示模型对虚拟人进行几何建模。由于人体的肌肉和皮肤形变十分复杂,根据内河模拟器的实际需求,我们并没有考虑虚拟人运动过程中的形变问题,只是将虚拟人体分成骨骼层和皮肤层,并采用蒙皮骨骼技术实现骨骼层和皮肤层的关联。

    蒙皮骨骼技术包含骨骼和蒙皮两个部分。骨骼是用以控制蒙皮的一种抽象概念。蒙皮是一个整体网格,被骨骼控制并显示在外部的因素。蒙皮骨骼动画中骨骼控制蒙皮运动,而骨骼本身的运动是动画数据,每个关键帧中包含时间和骨骼运动信息,运动信息可以用一个矩阵直接表示骨骼新的变换,也可用四元数表示骨骼的旋转。蒙皮将网格中的顶点附着在骨骼之上,而且每个顶点可以被多个骨骼所控制,这样在关节处的顶点由于同时受到父子骨骼的拉扯而改变位置就消除了裂缝。

    采用3Ds MAX作为虚拟人的建模工具,其原因包括以下几个方面:一是3Ds MAX建模功能非常强大,能够较好的满足对虚拟人进行建模的需求,并且其在角色动画方面具备很明显的优势,另外丰富的插件也是其一大亮点;二是由于3Ds MAX建立的模型具有较高的逼真度;三是3Ds MAX能够与其他软件进行很好的配合,便于建模后相关操作的顺利进行。用3Ds MAX建立的人体骨骼如图1(a)所示,进行蒙皮后的人体模型如图1(b)所示,人体模型是四肢张开的,这样方便后面的处理。

    虚拟人的动作模拟

    虚拟人的几何模型建好后,得到了虚拟人的静态显示。为了对虚拟人在特定的环境和场景中的动作进行模拟,还需要对虚拟人进行运动控制,使其具有动态特性。在对虚拟人的运动控制研究方面采用的技术主要有:参数化关键帧技术,过程动画技术,运动捕捉技术。

    参数化关键帧技术由关键帧动画技术演化而来,是较早使用的对虚拟人进行运动控制的方法之一。使用该技术模拟人体运动时,需要首先给定运动过程中的若干个关键姿态,即关键帧,然后采用插补算法得到相邻关键姿态间的若干个中间姿态,即中间帧,这样就实现了对人体运动的控制。该方法简单直观,得到了广泛的应用,本文也采用此项技术实现虚拟人的动作模拟。

    在内河模拟器中需要对人员行走、攀爬、落水后挣扎及船舶靠离码头时人员接缆绳等动作进行模拟,受篇幅的限制,以下仅以攀爬运动中腿、脚的动作为例,对其关键帧进行详细分析。

    人攀爬动作的第一个周期可大致分为两个阶段:左臂向上移动、右腿向上移动,右臂、左腿辅助运动,同时身体向上移动;右臂向上移动、左腿向上移动,左臂、右腿辅助运动,同时身体向上移动。这两个阶段是对称的,所以研究其中一个阶段即可。以下对第一个阶段中腿和脚的动作过程进行研究,将这一过程分为三个关键姿势。

    第一个关键姿势是右脚刚刚抬起向上跨步,左腿直立,如图2(a)所示;第二个关键姿势是右脚踏上台阶,左腿伸直,如图2(b)所示;第三个关键姿势是左腿刚要抬起离开台阶,如图2(c)所示。

    得到三个关键姿势后,用这三个关键姿势作为关键帧,接下来进行关键帧插值。先对第一和第二关键帧进行插值,如图3(a)所示,这个阶段从右脚刚刚抬起向上跨步开始,到右脚接触台阶结束。再对第二和第三关键帧进行插值,如图3(b)所示,这个阶段从左脚跟逐渐抬起到左脚的脚踝不能继续向上抬起时为止。最后对第三关键帧和下一阶段的第一关键帧进行插值,如图3(c)所示,这个阶段的动作是左脚逐渐抬起,右脚趋向直立。

    虚拟人的显示

    1、显示工具

    建好的虚拟人模型要想在三维场景中显示出来,需要用到场景驱动软件,目前主要的场景驱动软件有OpenGVS、VTree、Vega、OSG、OGRE等。其中OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。本文选用OSG作为场景驱动软件来显示虚拟人。

    要想用OSG显示虚拟人模型及其动作,还需要用到Cal3D骨骼动画引擎。Cal3D使用的是基于关键帧的骨骼动画,它把数据分为三部分:骨骼(Skeleton)、网格(Mesh)和动画(Animation)。由一个文本配置文件(Cal3D.cfg)管理,每个动画文件是独立的。Cal3D支持动作混合,可以实现两个动作的混合执行。其中,每一个动作都有一个权重,即不同的动作优先级是不一样的。

    Cal3D主要由文件导出器和C++库两部分构成。文件导出器的作用是将三维建模工具建立的模型转化成C++库所能够加载的Cal3D文件格式;C++库提供各种方法,以便于加载导出文件、创建人物、运行动画并存储必要的数据,进行三维图形库的绘制。

    2、整体流程

    虚拟人及其动作的模拟的整个流程如图4所示。第一步,在3Ds MAX中进行人体建模、生成人体骨骼;第二步,对骨骼模型进行蒙皮、并制作蒙皮骨骼动画;第三步,在3Ds MAX中装载Cal3D文件导出器;并用导出器将蒙皮骨骼动画文件导出;第四步整理.cfg文件;第五步,用OSG中调用Cal3D导出文件,显示虚拟人及其动作。如图5所示,分别是人员行走、攀爬、接缆绳及落水挣扎等动作的模拟效果。

    结论

    以内河船舶操纵模拟器为应用背景,对虚拟人及其运动的模拟进行了研究。采用分层表示模型,在3Ds MAX中建立了虚拟人骨骼模型,使用蒙皮骨骼技术将皮肤和骨骼进行绑定;而后根据人员行走、攀爬等动作生成关键帧,并根据关键帧生成了中间帧。使用Cal3D骨骼动画引擎将虚拟人蒙皮骨骼动画导出并引入到OSG场景驱动软件中进行绘制。

    今后还需要在以下方面做进一步研究:将肌肉层添加到虚拟人模型中,同时将所做工作应用到内河船舶操纵模拟器中。

    参考文献:

    [1]徐爱国.虚拟人动画中的三位服装仿真技术研究:(博士学位论文). 杭州: 浙江大学, 2006.

    [2]景韶宇,沈治英.人机设计中的虚拟人仿真技术研究.计算机工程与应用.2005, 41(6): 196-199.

    [3] 罗冠,郝重阳.虚拟人骨骼结构的多刚体系统建模方法研究.计算机辅助设计与图形学学报.2005, 17(6): 1354-1358.

    [4]罗冠.虚拟人的运动生成及控制技术研究:(博士学位论文). 西安:西北工业大学, 2003.

    [5] 黄锦军.虚拟人运动控制技术的研究与实现:(博士学位论文).武汉:华中科技大学,2007.

    [6]肖鹏,刘更代,徐明亮.OpenSceneGraph三维渲染引擎编程指南. 北京:清华大学出版社,2010.

    [7]黄玲.捕捉虚拟人运动的运动控制技术的研究:(硕士学位论文).北京:首都师范大学,2007.

    (作者单位:广西交通运输学校)

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建