国际数字多媒体广播杂志

PDF
国际数字多媒体广播杂志/2017/文章
特殊的问题

大视觉数据的涌现技术与应用

浏览特刊

研究文章|开放获取

体积 2017 |文章的ID 4815932 | https://doi.org/10.1155/2017/4815932

余阳,杨巨成,昝晓飞,黄建刚,张祥波 基于物理引擎的角色动画仿真研究",国际数字多媒体广播杂志 卷。2017 文章的ID4815932 7 页面 2017 https://doi.org/10.1155/2017/4815932

基于物理引擎的角色动画仿真研究

学术编辑器:Jenq-Neng黄
收到了 2017年2月28日
接受 2017年5月17日
发表 2017年7月12日

摘要

计算机3D角色动画本质上是一种产品,它结合了计算机图形学和机器人学、物理学、数学和艺术。它是基于计算机硬件和图形算法等相关科学迅速发展起来的新技术。目前主流的角色动画技术是基于人工制作的关键技术和基于动作捕捉设备技术的帧捕捉。三维人物动画不仅广泛应用于电影、动画制作等商业领域,还广泛应用于虚拟现实、计算机辅助教育、飞行仿真、工程仿真、军事仿真等领域。本文试图通过研究基于物理的角色动画来解决角色中出现的交互性差、利用率低、制作复杂等问题。本文以运动数据为基础,对其运动学、动力学技术和生产工艺进行了深入研究。同时分析ODE、PhysX、Bullet等多种主流物理引擎,研究OBB层次包围盒树、AABB层次树等碰撞检测算法。最后,实现了基于ODE的角色动画,仿真了三轮车的运动和碰撞过程。

1.研究背景与意义

目前主流的动画制作技术是基于人工制作的关键帧技术和基于捕捉设备的动作捕捉技术。基于人工制作的关键帧技术是原创动画组合技术。它依靠关键帧的生成和关键帧之间的插补来驱动动画的连续播放。技术允许设计师以最大程度的自由,按照自己的意愿创作动画,但技术的产品在自然表现方面不是很好;而且,生产过程相当复杂[1].随着动作捕捉设备的出现,它可以用来捕捉动作数据作为动画制作的信息源,从而大大提高了角色动画制作的效率和角色动画的真实感。然而,由于该技术需要真正的人物来参与动作信息的捕捉过程,因此其应用范围十分有限。在使用这项技术时,不允许真正的行动者采取一些危险的行动。此外,这种设备的高成本也限制了该技术的广泛应用。

在工业需求不断增长、用户体验需求不断增加、计算机相关技术快速发展的背景下,上述两种常见的传统动画制作方式越来越不可能满足设计和使用的要求。其根本原因在于,这两种技术在动画组合和存储的过程中采用了离线的方式,然后用于后期制作;因此,考虑到动画的高质量和长时间,它将承担相应的巨大的数据存储空间。而且这种方法最大的问题是实时性和自适应性能较差,使得耗费大量时间和金钱的动画只能在特定情况下使用一次。所有这些问题都不符合当前计算机处理和用户体验快速增长的趋势[2].

摘要针对角色动画制作过程中存在的实时性差、利用率低、流程复杂等问题,研究了基于物理引擎的角色动画仿真方法,并通过实例实现了该方法。

目前,角色动画一直是计算机图形学研究的重点和难点。在研究中,动画制作的方法有很多种,可以分为以下几类[3.]:(我)基于运动学的动画制作方法(2)基于动力学的动画制作方法(3)基于运动数据的动画制作方法

下面就简单介绍一下以上三种类型的角色动画。

2.1.基于运动学的角色动画制作原理

运动学是物理力学中一个非常重要的分支。在研究过程中,将对象抽象为刚体模型和粒子模型[4].这些模型被用来研究物体的运动。刚体模型的重点是研究刚体的角速度、旋转运动、线速度等。质点模型的研究重点是质点在特定参照系中的速度、加速度、减速和运动方程。此外,不需要考虑动力学的影响因素,如质量和力。

运动学方法分为正运动学和逆运动学。

2.1.1.正运动学法[5

在一个简单的运动学系统中,通常有两个端点。它们是自由端和固定端。正运动学描述了以系统的固定端为起点的自由端运动。正运动学方法:第一步是建立物体的层次结构,然后建立各物体在层次结构中的旋转和位置。

2.1.2.逆运动学方法

另一种基于运动学的仿真技术是逆运动学方法[5].逆运动学与正运动学正好相反。逆运动学是指固定端由自由端驱动的运动。

用下面的公式表示逆运动学的基本原理[6]:

公式(1)是逆运动学的基本公式,其中 为关节链端位移, 是关节链末端的旋转角度,和 就是雅可比矩阵。由上式可知,关节的位移等于关节链末端的旋转角度与雅可比矩阵的乘积。但是公式(2)常用于逆运动学[6]:

的公式, 公式(1). 是线性代数中雅可比矩阵的伪逆矩阵。 是一个单位矩阵。 是优化常数。 为关节最小化运动时的能量消耗。从整个关节链的末端开始计算逆运动学。相对于正运动学,逆运动学更适合创建更复杂的运动,更容易在动画中实现物体的翻转。然而,逆运动学并不是通用的。有些问题适合正运动学,但不适合逆运动学。

2.2.基于动力学的动画制作原理

动力学也是物理学的一个重要分支,它研究力与运动之间的关系。动力学研究的基本理论是牛顿运动定律。动力学研究的对象是远低于光速的宏观物体。用这种方法制作的动画具有很强的物理现实性,因为它是以物理定律为基础的。

在角色动画仿真中,运动学方法是计算角色各关节的位置和旋转角度,关键帧由两种数据组成。

在角色动画的模拟中,动态方法首先给出对象的物理属性和施加的各种力,然后利用牛顿运动定律来计算角色的状态。这种方法的实质是通过力来计算物体的加速度。在动力学中,力的类型可以分为两种:点力和场力[7].

除了力之外,碰撞也是影响角色移动的重要因素。在现实世界中,当两个物体碰撞时,它们会碰撞,但不会互相穿透。当发生碰撞时,相互作用力会改变两个物体的初始状态,如位置、轨迹和方向。因此,在模拟角色动画时,如果物体之间发生碰撞,角色的原始运动状态会因为交互力的作用而发生改变。

2.3.基于运动数据的角色动画制作原理
2.3.1。动作捕捉

以上的动画方法是利用力学、生物力学和日常生活经验来实现的。在动作捕捉技术中,数据来源于真实的演员表演,通过动作捕捉设备获取动作数据。由于处理后的数据是由人产生的,动作捕捉技术可以使动画更加真实和自然。在捕获和处理过程中没有人工数据。但是,动作捕捉设备非常昂贵和复杂的操作。在数据采集过程中,运动模型的肢体、身体和头部通常设置传感器点,这些采集的数据是整个动作捕捉技术中非常重要的一部分[8].

本文介绍的动力学和运动学技术用于动画的物理运动定律。然而,人体运动的物理规律的复杂性,特别是人体运动协调机制的复杂性,使得仿真工作非常困难,从而导致制作的动画不真实,缺乏丰富的人体实际运动的详细信息。近年来,动作捕捉技术进入了人们的视线;它克服了以上两种动画制作方法的不足,成为人类动画中最有前途的技术之一。

2.3.2。运动混合

运动混合技术是一种基于特定运动数据库和算法的技术。为了使用这种技术来处理动画,我们通常需要使用插值算法和插值参数。

运动混合技术的主要优点是计算复杂度低。它是基于运动捕捉数据,保持原有的动态运动。它的主要缺点是,例如,紧张、担忧等行为过于依赖于现有的运营数据,数据量增加。如果角色以不太疲劳或疲劳的步态行走,那么就需要有正常的步态数据,也需要有非常疲劳的步态数据。在插值过程中,生产者通常通过持久的和线性的默认视图处理参数集合之间的转换和转换[9].

2.3.3。运动变形

运动变形是对已有的运动信息进行修改和利用的技术。Popoivc和Witkin使用交互方法来移动和缩放选定的关键帧,以修改现有数据。与时域轨迹相比,采用Williams和Bruderlin在频域对已有的动画数据进行调整、修改和重用。与移动动画技术和过程动画技术相比,运动混合技术的优势在于可以利用现有的真实捕捉数据进行动画生成。此外,该技术为动画创作者和关键帧动画的兼容提供了一个工具,将会非常方便的处理。

运动混合技术属于过程动画技术,与运动学动画技术和过程动画技术相比,它的优点是可以利用现有的真实捕捉数据生成动画[10].该技术与关键帧动画技术相兼容。

一般物理引擎有两种类型:开源物理引擎和商业物理引擎。

常用的专业物理引擎有ODE、PhysX、Bullet、Havork、Newton和Vortex。这些物理引擎被广泛应用于图形建模工具、游戏开发、虚拟现实系统等领域。

碰撞检测是物理引擎的技术核心,因此对物理引擎的研究大多集中在碰撞检测算法的研究上。在现实生活中,有些反应在物体碰撞时或碰撞后自然发生[11].然而,在虚拟世界中,碰撞问题需要一些算法来解决。碰撞检测是机器人、虚拟现实等领域的重要组成部分。它的主要目的是确定两个或两个以上的物体是否会渗透或接触。碰撞检测的研究就是通过一定的算法,使两个或两个以上的物体不同时占据同一空间区域,而不损坏物体。

目前,国内外对碰撞检测的研究主要分为两大类:空间分解法和包围盒法。包围盒方法将一个形状复杂的物体模拟成一个近似的简单的三维空间。包围盒法中的层次包围盒法适用于复杂环境下的碰撞检测。

ODE (Open Dynamics Engine)是一个刚体动力学的开源库,经常用于关节连接的仿真。ODE可以用来模拟虚拟现实环境中移动的物体、有腿的生物和地面上的车辆。它健壮、灵活、快速。灵活性体现在可移植性上;可以使用Unix/Linux、Windows和MacOS。它有一个内置的碰撞检测系统。

4.基于ODE的角色动画仿真研究与设计

4.1.基于ODE的仿真车辆动力学建模

在ODE中,有一种特殊类型的关节,如图所示1

铰链-2接头由两个非同轴铰链组成。本实用新型包括两个转轴和一个支撑点。其中,轴2只能绕轴旋转;然而,轴1不仅可以围绕轴旋转,还可以限制其旋转的范围。

这个汽车模型由车身和车轮组成。根据铰链-2的接头类型,车身1代表车身,车身2代表车轮;同样,轴1可以表示车轮的方向盘,轴2可以表示车轮滚动轴。在ODE系统的动力学设计中,生成具有质量和位置的ODE刚体,同时生成与刚体相对应的ODE几何。最后,车身和车轮通过铰链-2连接。一个简单的汽车模型已经造好了。

4.2.基于ODE的角色碰撞仿真

基于ODE的字符碰撞仿真过程如下。

4.2.1。准备碰撞模拟中的空间初始化

在这个阶段,需要设置碰撞空间的类型和接触面的相关属性,如柔韧性、弹性、摩擦力等。

4.2.2。碰撞模拟中的数据初始化

在这个阶段,需要在碰撞模拟之前做一些初始化和清理数据的工作[12].

碰撞数据清理.清除各种碰撞信息,包括清除碰撞数据、清除接触组、破坏当前碰撞空间。然后,重新设置接触面的所有属性,以符合用户的需要。

根据用户需求,创建四叉树空间、散列空间和简单空间。这三种新的碰撞空间使用不同的碰撞检测算法和不同的数据结构。不同的几何图形使用不同的数据结构存储。

碰撞检测的数据.碰撞数据是一个自定义变量,用于存储碰撞几何所需的所有数据。字符对象是数据的来源。在碰撞模拟之前,您需要为每个碰撞对象设置碰撞数据,并将数据添加到碰撞列表中。最后,在进行碰撞仿真时,将碰撞信息传递给碰撞函数。

4.2.3。碰撞仿真开始

仿真过程以时间步长为单位。利用ODE模拟器,仿真完成一个时间步长为单位的碰撞效果需要利用当前状态之前的碰撞作用和影响数据,然后再对碰撞作用体施加作用[1314].这个链接需要调用ODE中现有的空间冲突函数。最后,根据两个接触刚体在碰撞中产生的接触节点数据,ODE完成碰撞[15].空间碰撞函数是这个环节中非常重要的函数。其功能原型为空白dSpaceCollidedSpaceID空间无效 dNearCallback ).

这个函数确定空间中可能出现的几何图形,然后调用回调函数来处理这对几何图形,并最终完成碰撞。

Callback的函数类型是dNearCallback,定义如下:Typedef空白dNearCallback无效 dGeomID 1dGeomID 2

其中,数据是直接来自dSpaceCollide传递的用户定义参数。探测可能碰撞的一对几何图形由参数表示 1, 2 (16].这个回调函数然后使用dCollide来生成几何图形之间的接触点。然后,这些接触点将作为接触关节添加到仿真过程中。

下面的操作将在回调函数中执行[17]:(我)使用dCollide函数生成几何图形之间选择的接触点,同时返回接触点的数量。(2)基于前一个链接中的所有碰撞数据,对每个接触点搜索两个符合条件的碰撞数据点。(3)ODE根据这两次碰撞中包含的接触关节信息完成碰撞效果,并再次显示图像。

4.2.4。碰撞仿真结束

随着ODE仿真的结束,碰撞仿真也作为驱动力停止力的特性。这个链接将做一些相关的数据清理工作,这有利于下一个仿真。

5.角色动画仿真的实现与测试

5.1.在角色动画中创建一个示例

打开物理引擎软件,编辑并运行C语言程序,得到如图所示的场景2

在图2,你可以看到场景的基本元素,包括天空、地面、汽车和障碍物。

仿真实例由简单的元素组成:车辆的动力来自电机;动力输出和转向装置设置在前轮;所述车轮与车身通过铰链连接;车辆在接触场景中的任何物体时都可能有相互作用力;车内装有碰撞检测装置。

5.2。测试

通过设置车辆的功率、场景中车辆与物体之间的相互作用力以及地面滑移率,可以实现对车辆运动、碰撞过程的仿真。

性能测试如图所示3.4,5

在测试过程中,改变车辆或周围环境的各种参数,观察图片中的字符变化是否符合动力学原理。

5.2.1。摩擦测试

当车辆与地面接触时,将库仑摩擦系数mu由初始无穷大(不存在滑动接触)改为0(无摩擦接触)。这个系数必须设定。测试结果是车轮空转。此时,前轮作为动力输出只能空转,由于没有摩擦力,所以车辆无法移动[18].

5.2.2。渗透测试

当车辆与地面接触时,soft_cfm为接触法向柔韧性参数,用于调整物体的柔韧性。将soft_cfm值从原来的0.3增大到1,表示会有非常明显的物体穿透现象;测试结果如图所示6;车轮与地面之间出现非常明显的穿透现象18].

5.2.3。滑动系数测试

将FDS(力依赖滑移系数)设置为零。车辆模型翻车后,继续给车辆动力,车辆没有侧滑,一直静止。(FDS表示物体在运动时由于侧向外力的作用而产生的侧向滑动现象,滑动距离与物体的运动速度和外力成正比,因此FDS又称侧向力滑动系数[1819].)

若FDS滑动摩擦系数设置为0.1,则在车辆侧翻后继续给车辆动力,车辆仍可横向移动。测试结果如图所示7

当世界被创造时 可得到设为0的重力加速度的-轴方向,如图所示8

从试验结果来看,由于重力加速度为0,对车辆中的悬架进行了仿真。

通过模拟汽车和周围环境的各种参数设置,可以进行基于物理引擎的各种动画模拟。

6.总结

关于角色动画仿真的研究,国内外已经取得了很多成果。本文在研究和研究现有科研成果的基础上,做了以下工作:深入研究主流的计算机角色动画制作技术;对主流物理引擎进行深入分析和研究;深入研究相关的碰撞检测算法;设计并构建仿真体系结构,利用ODE引擎实现角色动画仿真;搭建仿真实验平台,成功操作实例,实现基于ode的角色动画仿真;并进行了不同参数下的试验和分析。

下一步的研究重点包括:从车辆运动模型升级到更复杂的人体运动模型,模拟更复杂、更精确的人体运动;针对不同的角色模型和运动状态建立不同的控制器,通过更智能的控制器实现更高效、更逼真的模拟;通过动画混合技术实现角色的自然关机状态。

的利益冲突

作者声明他们没有利益冲突。

参考文献

  1. 戴,基于角色的动画仿真研究与实现,电子科技大学,2012。
  2. C. K. Liu, A. Hertzmann, Z. Popović,“复杂最优多字符运动的构成”ACM SIGGRAPH/Eurographics计算机动画研讨会论文集(SCA '06),第215-222页,ACM,奥地利维也纳,2006年9月。视图:谷歌学者
  3. h .段虚拟现实中物理引擎关键技术的研究与应用,山东科技大学,2010。
  4. http://baike.baidu.com/view/85895.htm
  5. 美国高,基于OGRE和ODE的驾驶仿真系统的设计与实现,武汉理工大学,2006。
  6. V. B. Zordan和J. K. Hodgins,“动作捕捉驱动的碰撞和反应模拟”,在美国计算机学会SIGGRAPH/Eurographics计算机动画研讨会论文集(SCA '02),第89-96页,ACM, 2002年7月。视图:出版商的网站|谷歌学者
  7. 王志军,“碰撞检测问题的研究综述”,中国机械工程,2018,25(6):648 - 654。软件学报,没有。5, 1999。视图:谷歌学者
  8. T. Larsson和T. A. Moiler,“持续变形身体的碰撞检测”,收录于欧洲制图学论文集, 2001年。视图:谷歌学者
  9. Z. Popović,“在逼真的角色动画中控制物理,”ACM的通信号,第43卷。7,页51-58,2000。视图:出版商的网站|谷歌学者
  10. m·张车载履带动态故障诊断方法研究,中北大学,2014。
  11. t·张基于Quest 3D的汽车虚拟驾驶训练系统研究,河南理工大学,2012。
  12. x杨空间桌面系统碰撞检测模块的改进与优化,首都师范大学,2011。
  13. 王涛,“基于粒子群优化的自适应随机碰撞检测方法”,《计算机科学与技术》evoworkshop会议记录(EvoIASP '06), 2006年。视图:谷歌学者
  14. F. A. Madera, A. M. Day, and S. D. Laycock,“一种用于检测可变形物体之间碰撞的混合包围体积算法”,发表于第二届计算机-人类交互进展国际会议论文集(ACHI '09), pp. 136-141, IEEE, Cancún,墨西哥,2009年2月。视图:出版商的网站|谷歌学者
  15. 徐敏,邹勇,“实时碰撞检测算法综述,”计算机应用研究,没有。1, 2008。视图:谷歌学者
  16. J. T. Klosowski, M. Held, J. S. B. Mitchell, H. Sowizral,和K. Zikan,“使用k- dop包围体积层次的高效碰撞检测”,计算机图形学学报,第4卷,第4期。1、1998年。视图:出版商的网站|谷歌学者
  17. R. Smith,“Open Dynamics Engine v0.5用户指南”,2006,http://www.ode.org/ode-latest-userguide.html视图:谷歌学者
  18. T. Geijtenbeek和N. Pronost,“使用模拟物理的互动角色动画”,《游戏与虚拟世界》,2011。视图:谷歌学者
  19. m .王虚拟现实艺术在工程中的研究与实践,哈尔滨工程大学,2010。
  20. P. Jiménez, F. Thomas和C. Torras,《3D碰撞检测:一项调查》,计算机与图形学,第25卷,第2期2,页269-285,2001。视图:出版商的网站|谷歌学者

版权所有©2017杨宇等。这是一篇发布在知识共享署名许可协议,允许在任何媒介上不受限制地使用、传播和复制,但必须正确引用原作。


更多相关文章

PDF 下载引用 引用
下载其他格式更多的
订单打印副本订单
的观点3819
下载844
引用

相关文章

年度文章奖:由主编评选的2020年杰出研究贡献。阅读获奖文章