CN102214365A - 基于骨骼动画原理的通用虚拟人仿真技术 - Google Patents
基于骨骼动画原理的通用虚拟人仿真技术 Download PDFInfo
- Publication number
- CN102214365A CN102214365A CN2011102015756A CN201110201575A CN102214365A CN 102214365 A CN102214365 A CN 102214365A CN 2011102015756 A CN2011102015756 A CN 2011102015756A CN 201110201575 A CN201110201575 A CN 201110201575A CN 102214365 A CN102214365 A CN 102214365A
- Authority
- CN
- China
- Prior art keywords
- visual human
- model
- action
- skeleton cartoon
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种基于骨骼动画原理的通用虚拟人仿真技术,它包括虚拟人渲染引擎(1)、几何模型和动画数据导出插件(2)、骨骼动画模型生成模块(3)三个部分。该技术的特征是可以为基于OpenGL或Direct3D的各类虚拟现实引擎或游戏引擎添加虚拟人。其开发流程是开发者使用建模软件制作虚拟人模型和动作,通过导出插件(2)导出几何模型和动画数据,并使用骨骼动画模型生成模块生成骨骼动画模型,最终在仿真程序中使用虚拟人渲染引擎(1)将虚拟人渲染出来。
Description
技术领域:
本发明涉及虚拟人仿真领域,具体讲是一种能兼容OpenGL和Direct3D两种图形API,并在OpenGL或Direct3D生成的虚拟环境中实现虚拟人仿真的技术。
背景技术:
随着虚拟现实技术应用越来越深入,通过建立虚拟训练系统来培训操作人员已成为模拟训练的主流,在虚拟环境中加入虚拟人进行各种模拟作业,可以使用户获得更强的沉浸感。目前也有不少引擎尤其是游戏引擎提供了对虚拟人角色的支持,但该类引擎大多适用于民用仿真领域,对大地型、虚拟仪表、分布式仿真等的支持不够专业,或多或少无法满足军事仿真的要求,在军事仿真中应用较少。军事仿真一般采用Vega Prime、Mantis等专业虚拟现实引擎,但目前这类引擎不直接支持虚拟人仿真,虽然可以通过OpenGL、Direct3D等进行底层编程实现,但各虚拟现实引擎提供的接口和参考资料很少,自己编程实现存在理论复杂、坐标系统难统一、渲染环境易破坏等诸多问题;另一种最常用的方法是采用DI-GUY等虚拟人仿真软件,但采用DI-GUY进行开发存在诸多缺陷,如系统封装复杂,很难掌握其底层运动控制技术;DI-GUY5.0以后版本对人物模型进行了加密,不便于扩展其模型库,使其满足用户需要;该软件使用flt、obj等格式的模型,这些模型格式不能保存骨骼绑定信息,只能采用关节动画技术实现虚拟人动画,运动时各关节连接部位的网格易出现分离和破裂现象,很难形成较逼真的动作;另一个致命缺陷是DI-GUY虚拟人手指没有关节,没法完成手指动作。
现有虚拟人仿真技术的另一个缺陷是通用性问题。各种内置支持虚拟人仿真的引擎一般都有自己独特的虚拟人仿真技术,有专用的模型格式,它们的虚拟人生成、控制和动作形成技术各不相同,针对某一引擎中生成的动作没法用于驱动其它虚拟人仿真系统。甚至同一软件不同版本之间也存在很大差异,如DI-GUY4.3采用数组存储各关节运动数据,而DI-GUY5.0以后采用矩阵存储运动数据,原有DI-GUY4.3控制方法完全失效,只能全部重写代码;这样就造成开发人员必须花大量时间学习各种引擎的虚拟人仿真技术,况且还有大量的引擎自身并不提供虚拟人仿真功能,等等,这些因素增加了虚拟人开发的难度和工作量,限制了虚拟人仿真的发展和工程实现。
发明内容:
本发明的目的是克服上述已有技术的不足,提供一种基于骨骼动画原理的通用虚拟人仿真技术,该技术可以在各类视景引擎的虚拟环境中生成虚拟人,实现动画模型和动作数据的重用,方便代码在各引擎之间移植,并通过对骨骼动画原理的适当改进,实现了传统骨骼动画不能完成的逆序动作推进、动作数据实时重写等功能。
为了达到上述目的,本发明的技术解决方案是:基于骨骼动画原理的通用虚拟人仿真技术由虚拟人渲染引擎(1)、几何模型和动作数据导出插件(2)、骨骼动画模型生成模块(3)三部分组成,其中几何模型和动作数据导出插件将虚拟人模型及动作数据从3dsmax、Blender等软件中导出为骨骼动画模型所支持的几何模型和动作数据,骨骼动画模型生成模块将几何模型、动作数据及纹理等打包成骨骼动画模型,最后用虚拟人渲染引擎将骨骼动画模型在仿真系统的虚拟环境中渲染出来。
本发明所述的通用虚拟人仿真技术与以往技术相比有如下突出的实质性特点和显著进步:
1、原理方面。本技术采用改进的骨骼动画原理,可以实现动作的逆序推进、关节动作数据的实时重写等功能,生成的动作生动逼真,可以实现各种细腻的动作效果,且动作可控性有所提高。
2、平台适应性。以往技术一般只与某一引擎紧密结合,只能在某一引擎中生成虚拟人,而本技术可以与各类引擎结合,具有广泛的平台适应性。
3、可扩展性。用户可根据自身需要定制虚拟人模型和动作。
4、代码可移植性。对核心代码进行了深度封装,基于OpenGL和Direct3D图形API的虚拟人渲染引擎都使用了相同的函数名,不需进行修改就可以将代码在各个引擎环境间进行移植。
本发明涉及的几何模型和动作数据导出插件可以在建模软件中将虚拟人的几何模型和动作序列数据分别导出。几何模型包含虚拟人的网格数据、纹理信息、骨骼绑定信息等;虚拟人动作使用顶点混合技术实现,顶点代表了皮肤上的点,骨骼皮肤绑定算法是骨骼动画中的关键算法,它决定着骨骼如何带动皮肤运动,导出插件支持刚性绑定算法和柔性绑定算法。刚性绑定算法的基本思想是皮肤上每个点仅由一块骨骼控制;柔性绑定算法中每个皮肤点可以受多个骨骼的影响,并由多个骨骼的位置来确定皮肤点最终的位置,虚拟人皮肤上的顶点位置通过其所属骨头集及相应权值计算得到,也就是说由骨骼驱动皮肤上顶点运动。
虚拟人渲染引擎是该通用虚拟人仿真技术的核心,该引擎封装了虚拟人模型渲染及动作生成控制的全部函数,可在视景引擎中完成虚拟人的渲染任务,其特殊之处在于该引擎针对OpenGL和Direct3D两种图形API分别封装了相应函数,使其具备在各类虚拟环境中生成自身渲染环境的功能,该特性使得本虚拟人仿真技术可以广泛适于目前主流虚拟现实引擎及游戏引擎。
虚拟人渲染引擎可以实现通用化的原理如下:随着计算机图形学的不断发展,多数图形API逐渐消失,基本只剩下OpenGL和Direct3D两种图形API,目前主流的商业版或开源版虚拟现实引擎和游戏引擎都基于OpenGL或Direct3D图形API,因此引擎只需提供对OpenGL或Direct3D图形API的支持,生成相应的渲染环境,就可以通过读取骨骼动画模型中的几何数据和动作数据,并使用相应的图形API将虚拟人在虚拟环境中渲染出来。骨骼动画模型只是一种存储虚拟人几何模型和动作数据的文件,它与图形API没有任何关系,骨骼动画模型完全能够为OpenGL或Direct3D图形API共用,因此可以实现一种适用于各类平台、各类API的通用虚拟人仿真技术,该技术可以使用同样的模型、同样的开发流程和控制参数在各类引擎中生成虚拟人。即使是一个普通的应用程序,也可以通过为其生成渲染环境而加入虚拟人。
与以往虚拟人仿真软件相比,该虚拟人渲染引擎还提供如下功能:
1、逆序推进虚拟人动作功能。传统骨骼动画只能播放已在建模软件中事先建好的动作,如果某个动作有一个相反的动作,则需要为该相反的动作建立一个新的动作,如果使用本引擎提供的逆序推进虚拟人动作功能,则可以逆序播放已有动作达到生成相反动作的目的;对一些循环往复类动作,也可以使用该技术实现。
2、多个虚拟人协调动作,某些动作如抬一个箱子需要多人协调完成,本引擎通过统一多个虚拟人的建模空间、剪裁空间和的动作推进参数,达到多人协调动作的目的;
3、动作数据重写功能。传统的骨骼动画技术只能播放已制作好的动作数据,虚拟人各关节的运动将严格按照已有动作数据驱动,本引擎通过提供控制接口,用户可以实时改变相应关节的旋转矩阵,从而实现新的动作,该功能使用户可以在程序中实时生成新的虚拟人动作。
使用该虚拟人渲染引擎进行虚拟人渲染的流程包括生成渲染环境、初始化虚拟人、确定虚拟人缩放比例、确定虚拟人位置、绘制虚拟人、推进仿真时间及恢复渲染环境等7个步骤,其具体流程如附图1所示。
1、生成合适的虚拟人渲染环境,并保存视景引擎当前的渲染状态。本发明的突出特点是广泛的平台适应性,但各个引擎的实现各不相同,一般都对OpenGL或Direct3D进行了二次封装或扩展,它们的光源、材质、坐标系等都与OpenGL或Direct3D默认对象有所不同。比如VEGA或Vega Prime这两个常用的虚拟现实引擎,它们都有自己的光源系统,它们的光源无法影响用户直接使用OpenGL命令绘制的对象;它们的坐标系统与OpenGL默认坐标系统相差90度,等等。因此为了保证本虚拟人仿真技术的通用性和渲染的正确性,在进行虚拟人渲染工作前,必须先建立适合本虚拟人仿真技术的渲染环境,包括合适的投影变换、光源等,并保存当前的渲染状态,以便虚拟人渲染完成后恢复视景引擎的渲染状态。
2、初始化虚拟人,指定其动作序列及动作开始帧。当首次将虚拟人模型载入内存时,根据骨骼动画模型存放的路径及模型名将模型载入,并指定模型的动作序列号及开始帧;当虚拟人模型已载入内存后,如果需要改变动作,只需指定模型动作序列号及开始帧就可以完成动作切换。
3、确定虚拟人在虚拟环境中的缩放比例。虚拟人的建模空间与最终的虚拟环境在缩放比例、位置、坐标系方向都可能不同,此步骤用来指定虚拟人在虚拟环境中的大小,通过控制虚拟人的缩放比例,使虚拟人的大小与虚拟空间中其它对象相协调。
4、确定虚拟人在虚拟环境中的位姿数据。该步骤用来消除虚拟人在建模坐标系中的坐标与最终渲染的虚拟环境之间的位置及姿态差异,使虚拟人定位到虚拟空间的合适方位。
5、绘制虚拟人模型。该步骤将虚拟人模型在虚拟环境中渲染出来。
6、推进仿真时间。为了使虚拟人完成动画,必须推进虚拟人的仿真时间,该时间与整个仿真系统的时间有一定关系,但一般不能直接使用系统仿真时间推进虚拟人动作。虚拟人动作的默认帧率在生成骨骼动画模型时已确定,一般为每秒30帧,但不同计算机性能不同,从而实际帧率各不相同,可能在目标计算机上虚拟人动作速度与项目开发时希望的速度相差较大而造成动作失真。因此应综合考虑虚拟人动作的实际帧率和整个仿真系统的帧率,当系统帧率低于或高于某一阈值时,动态调整虚拟人的仿真时间推进速度,从而改变虚拟人动作的速度。
7、恢复视景引擎的渲染状态。虚拟人渲染完成后,必须重置位置姿态和缩放设置,并将视景引擎的渲染状态恢复到在第1步保存的引擎渲染状态,防止因为渲染虚拟人而破坏整个渲染环境,从而导致出现不可预料的渲染结果。
本发明涉及的骨骼动画模型生成模块用来配置模型生成参数并最终生成骨骼动画模型。骨骼动画模型生成模块可以配置参数包括源文件存放目录、生成的骨骼动画模型文件名、模型缩放比例、身体组、衣服组、动作组等,可以设定动作数据文件及动作帧率,改变动作组中动作的排序、增删动作等,并最终生成骨骼动画模型。该模块会在当前目录下生成一个配置文件,将各项参数保存到配置文件,模块启动时自动搜索当前工作目录中是否存在配置文件,当发现配置文件时则自动载入。
附图说明:
图1虚拟人渲染流程图
图2虚拟人碰撞检测包围盒示意图
图3人机工效分析开发流程图
具体实施方式:
为了更好地理解与实施,下面给出具体实施例说明本发明的工程应用。
实施例1:将本虚拟人仿真技术应用于某型飞机虚拟地勤维护训练系统中,该项目使用Vega Prime视景引擎开发。其具体实施情况如下:
1、制作虚拟人模型和动作。制作虚拟人模型,为其绑定骨骼,并制作虚拟人动作,并使用导出插件分别导出为几何模型和动作数据;
2、使用骨骼动画模型生成模块将几何模型、动作数据等打包成骨骼动画模型;
3、在Vega Prime中生成虚拟人渲染环境,并用虚拟人渲染引擎OpenGL版本的控制函数将虚拟人添加到虚拟环境中;
4、使用键盘或摇杆等人机交互设备控制虚拟人的移动,用鼠标点击飞机上的操作部件,根据选中的操作部件判断是否控制虚拟人启动某个动作,某个动作完成后虚拟人原地站好。
实施例2:将本虚拟人仿真技术应用于某型舰艇设计中的动态人机工效分析,该项目基于Direct3D开发,用来分析舰艇建筑对舰员头部安全性的威胁。
传统JACK等人机工效学分析软件一般只用来完成静态分析,无法胜任动态分析任务,因此采用该通用虚拟人仿真技术实现动态人机工效学的分析。其主要开发流程如下:
1、在计算机中设计完成舰艇的三维模型后,将舰艇模型导入虚拟环境中,并为舰艇建立精确的碰撞检测包围盒。
2、生成虚拟人渲染环境,使用虚拟人渲染引擎Direct3D版本的控制函数将虚拟人模型加入虚拟环境。
3、为虚拟人头部、手臂、躯干等建立碰撞检测包围盒,控制虚拟人在舰艇上走动。
4、当检测到头部与舰艇的发生碰撞时,则应检查碰撞处的高度设计是否合理。
附图2为虚拟人的碰撞检测包围盒示意图,附图3为虚拟人应用于动态人机工效分析的开发流程图。
Claims (3)
1.基于骨骼动画原理的通用虚拟人仿真技术,包括虚拟人渲染引擎(1)、几何模型和动画数据导出插件(2)、骨骼动画模型生成模块(3)三个部分。
2.根据权利要求1所述的基于骨骼动画原理的通用虚拟人仿真技术,其特征在于根据骨骼动画原理,实现一种广泛适用于基于OpenGL或Direct3D图形API的各类虚拟现实引擎和游戏引擎的通用虚拟人仿真技术。
3.根据权利要求1所述的基于骨骼动画原理的通用虚拟人仿真技术,其特征在于对骨骼动画原理进行了适当改进,使骨骼动画可以实现如下功能:
3.1逆序推进虚拟人动作功能;
3.2多个虚拟人协调动作功能;
3.3虚拟人动作数据实时重写功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102015756A CN102214365A (zh) | 2011-07-11 | 2011-07-11 | 基于骨骼动画原理的通用虚拟人仿真技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102015756A CN102214365A (zh) | 2011-07-11 | 2011-07-11 | 基于骨骼动画原理的通用虚拟人仿真技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102214365A true CN102214365A (zh) | 2011-10-12 |
Family
ID=44745660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102015756A Pending CN102214365A (zh) | 2011-07-11 | 2011-07-11 | 基于骨骼动画原理的通用虚拟人仿真技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102214365A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103295258A (zh) * | 2013-04-18 | 2013-09-11 | 于连庆 | 一种新型的多功能大气科学数据图形渲染引擎 |
CN103426196A (zh) * | 2013-08-30 | 2013-12-04 | 电子科技大学 | 一种流体环境下的关节动画建模技术 |
CN104318601A (zh) * | 2014-10-22 | 2015-01-28 | 电子科技大学 | 一种流体环境下人体运动仿真方法 |
CN106296778A (zh) * | 2016-07-29 | 2017-01-04 | 网易(杭州)网络有限公司 | 虚拟对象运动控制方法与装置 |
CN107067451A (zh) * | 2017-04-07 | 2017-08-18 | 广州爱九游信息技术有限公司 | 动画中动态骨骼的实现方法和装置 |
CN111714880A (zh) * | 2020-04-30 | 2020-09-29 | 完美世界(北京)软件科技发展有限公司 | 画面的显示方法和装置、存储介质、电子装置 |
CN112546631A (zh) * | 2020-12-23 | 2021-03-26 | 上海米哈游天命科技有限公司 | 一种角色控制方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0353151A (ja) * | 1989-07-20 | 1991-03-07 | Toyota Motor Corp | 酸素センサのヒータ制御装置 |
JPH09153151A (ja) * | 1995-11-30 | 1997-06-10 | Matsushita Electric Ind Co Ltd | 3次元骨格構造の動き生成装置 |
CN101739709A (zh) * | 2009-12-24 | 2010-06-16 | 四川大学 | 一种三维人脸动画的控制方法 |
-
2011
- 2011-07-11 CN CN2011102015756A patent/CN102214365A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0353151A (ja) * | 1989-07-20 | 1991-03-07 | Toyota Motor Corp | 酸素センサのヒータ制御装置 |
JPH09153151A (ja) * | 1995-11-30 | 1997-06-10 | Matsushita Electric Ind Co Ltd | 3次元骨格構造の動き生成装置 |
CN101739709A (zh) * | 2009-12-24 | 2010-06-16 | 四川大学 | 一种三维人脸动画的控制方法 |
Non-Patent Citations (2)
Title |
---|
史杰 等: "基于Cal3D的虚拟士兵仿真研究", 《2009年系统仿真技术及其应用学术会议论文集》 * |
陈忠 等: "基于OpenGL的三维人体运动模型实现", 《计算机应用》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103295258A (zh) * | 2013-04-18 | 2013-09-11 | 于连庆 | 一种新型的多功能大气科学数据图形渲染引擎 |
CN103426196A (zh) * | 2013-08-30 | 2013-12-04 | 电子科技大学 | 一种流体环境下的关节动画建模技术 |
CN103426196B (zh) * | 2013-08-30 | 2016-07-06 | 电子科技大学 | 一种流体环境下的关节动画建模方法 |
CN104318601A (zh) * | 2014-10-22 | 2015-01-28 | 电子科技大学 | 一种流体环境下人体运动仿真方法 |
CN104318601B (zh) * | 2014-10-22 | 2017-08-15 | 电子科技大学 | 一种流体环境下人体运动仿真方法 |
CN106296778A (zh) * | 2016-07-29 | 2017-01-04 | 网易(杭州)网络有限公司 | 虚拟对象运动控制方法与装置 |
CN106296778B (zh) * | 2016-07-29 | 2019-11-15 | 网易(杭州)网络有限公司 | 虚拟对象运动控制方法与装置 |
CN107067451A (zh) * | 2017-04-07 | 2017-08-18 | 广州爱九游信息技术有限公司 | 动画中动态骨骼的实现方法和装置 |
CN111714880A (zh) * | 2020-04-30 | 2020-09-29 | 完美世界(北京)软件科技发展有限公司 | 画面的显示方法和装置、存储介质、电子装置 |
CN111714880B (zh) * | 2020-04-30 | 2023-10-20 | 完美世界(北京)软件科技发展有限公司 | 画面的显示方法和装置、存储介质、电子装置 |
CN112546631A (zh) * | 2020-12-23 | 2021-03-26 | 上海米哈游天命科技有限公司 | 一种角色控制方法、装置、设备及存储介质 |
CN112546631B (zh) * | 2020-12-23 | 2023-03-03 | 上海米哈游天命科技有限公司 | 一种角色控制方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102214365A (zh) | 基于骨骼动画原理的通用虚拟人仿真技术 | |
US9934602B2 (en) | System, method and device for three-dimensional modeling | |
EP2469474B1 (en) | Creation of a playable scene with an authoring system | |
Green et al. | A geometric modeling and animation system for virtual reality | |
Weller | New geometric data structures for collision detection and haptics | |
CN106296778A (zh) | 虚拟对象运动控制方法与装置 | |
CN107678537A (zh) | 增强现实环境中识别装配操作、模拟装配的方法和装置 | |
CN109887097A (zh) | 一种vr内容开发平台及方法 | |
CN104881518A (zh) | 一种飞行器的三维视景仿真系统 | |
CN102629388A (zh) | 机械装备仿真系统生成方法 | |
Wang et al. | A survey of museum applied research based on mobile augmented reality | |
CN115098100A (zh) | 基于云原生面向工业应用场景的数字孪生体组件驱动方法 | |
Roach et al. | Computer aided drafting virtual reality interface | |
Brothaler | OpenGL ES 2 for Android: A quick-start guide | |
Bikmullina et al. | The development of 3D object modeling techniques for use in the unity environmen | |
Koved et al. | GROOP: An object-oriented toolkit for animated 3D graphics | |
Fu et al. | Easyvrmodeling: Easily create 3d models by an immersive vr system | |
Thalmann et al. | The Making of the Xian terra-cotta Soldiers | |
Shultz | Integrating 3d graphics into early CS courses | |
Chen et al. | QuickCSGModeling: Quick CSG Operations Based on Fusing Signed Distance Fields for VR Modeling | |
Usta | Comparison of quaternion and euler angle methods for joint angle animation of human figure models | |
CN108198234B (zh) | 可实时互动的虚拟角色生成系统及方法 | |
Templet | Game Physics: An Analysis of Physics Engines for First-time Physics Developers | |
Peter et al. | Teaching computer graphics with java 3d | |
Yang et al. | Research on interactive operation considered physical attributes by using force feedback device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111012 |