APP下载

基于虚拟动画设计的角色建模与行为控制研究

2020-09-21金文玥

现代电子技术 2020年17期
关键词:动画设计

金文玥

摘  要: 为提升虚拟场景中的逼真视觉体验效果,对三维虚拟动画设计中的角色进行建模与行为控制。在POSER软件内创建三维虚拟动画角色模型,在3D软件内创建三维虚拟动画角色骨骼并对骨骼进行蒙皮,实现动画角色建模。通过骨骼动画技术模拟角色运动行为,在3D软件中调整动作并驱动骨骼。通过3D软件中的运动信息、关键帧设置及足迹等为动画设计中所需角色模型的骨骼增添所需动作。采用Implement Gain about()函数操控虚拟角色动作,实现角色模型的行为控制。将所研究方法应用于灭火救援三维虚拟动画仿真教学实验中,结果表明,此方法创建的消防员模型纹理数高、更清晰逼真、误差低、建模精准,且行为控制准确,模型运行顺畅,整体效果理想。

关键词: 三维虚拟; 动画设计; 角色建模; 行为控制; 蒙皮操作; 动画技术; 运动行为

中图分类号: TN915.43?34; TP391.9                 文献标识码: A                  文章编号: 1004?373X(2020)17?0110?05

Abstract: The characters in the 3D virtual animation design are subjected to modeling and behavior control to improve the effect of realistic visual experience in the virtual scene. The 3D virtual animation character model is created in the POSER software, and the 3D virtual animation character skeleton is created in the 3D software and the skeleton is subjected to skinning to achieve animation character modeling. The skeletal animation technology is used to simulate the role motion behavior, adjust action and drive skeleton in the 3D software. The motion information, key frame setting and footprint in the 3D software are used to add required action for the skeleton of required role model in the design. The Implement Gain about() function is adopted to manipulate virtual character movement to control the behavior of role models. The proposed method is applied to the 3D virtual animation simulation teaching experiment of fire fighting and rescue. The experimental results show that the firefighter model created with this method has a large number of textures, which is clearer and more realistic. The model is of low error, accurate modeling and exact behavior control, smooth operation and ideal overall effect.

Keywords: 3D virtual; animation design; role modeling; behavior control; skinning operation; animation technology; movement behavior

0  引  言

虛拟动画技术随着网络技术与计算机图形技术的快速发展已然成为国内外学者研究的热点。虚拟动画技术属于一种体验虚拟空间的计算机模拟系统,通过结合仿真技术、计算机技术及微电子技术等为用户提供虚拟空间,提升用户的感官享受,体验身临其境的真实感受[1?2]。

目前,此技术已应用于更多领域,如娱乐游戏、虚拟教学、影视媒体、医疗及旅游等各领域,逐渐成为人们生活与工作中不可缺少的一部分[3]。

虚拟动画技术中的关键部分即实现虚拟场景中角色模型的漫游,而实现此目的首先应完成虚拟动画场景中的角色建模与行为控制[4]。其中用来模拟虚拟动画场景角色模型内部几何性质的抽象模型即为三维角色模型,此类模型以计算机通过特殊信息格式的方式保存;行为控制即以特定方式控制三维角色模型的动作行为,令三维虚拟动画场景运行更流畅[5?6]。本文通过三维角色建模对模型实行行为控制,提高三维虚拟动画的逼真流畅效果。

1  三维虚拟动画设计中角色建模与行为控制方法

1.1  角色建模

创建骨骼系统三维模型是构建虚拟角色的首要步骤,作为三维虚拟动画设计平台中工作基础的三维角色建模工作,所创建的角色模型应同时符合平台实时阅览特性及逼真的呈现效果[7]。在三维虚拟动画设计中,需要用户对角色模型的创建过程及方式精准把控,为此造成角色建模的不易实现。

为了降低角色建模的难度,将建模过程中较为繁琐的步骤适当省掉,可采用已有的人物模型通过修改创建需要的角色模型,并将修改后的角色模型导入三维虚拟动画场景内[8?9]。比如由弗朗科公司设计的POSER软件,是三维人物创建模型的常用工具,可提供多种类别的人物模型,如男孩、女孩、成年男女及木偶形态骨骼的多种模型,为用户创建角色模型提供帮助,且可通过软件内的工具栏将骨骼调整成用户所需的骨骼类型。三维虚拟动画设计平台内虚拟角色的建模步骤如下。

1) 在POSER软件内创建角色模型。三维虚拟动画设计平台的关键技术即为角色模型的创建,角色的形象特点与状态通过角色模型展现,在此选用POSER 5.0版进行角色建模。从角色模型库内挑选与三维虚拟动画设计平台所需角色相符的角色身体、面部及头发等模型,对各模型实行拼接,并通过缩小尺寸、拼接及删除等工具修正模型原始状况。

为获取所需角色模型,需在POSER软件中修正POSER模型库内有限的三维资源,为后续的角色模型蒙皮环节奠定基础。以3DMAX的格式导出调节好的角色模型,并將其导入3D软件内继续进行模型的调整,为使模型可于特殊场景内使用,应在3D软件内通过蒙皮工具插件创建的角色模型进行模型单位的调整。该模型后续将用于VT软件内实行缩小操作,因此,无需事先对该模型进行缩小调整。由于角色模型并非以贴图的格式向外导出,而是通过一种材质格式经蒙皮插件导出,所以在3D软件内无法直接以贴图的形式导出该模型,故设计时应使用2个角色模型,分别为拥有衣服与头发的人物模型、面部非常清楚的脸部模型,如图1所示。

在3D软件内进行整体角色模型构建时,先删除其中一个人物模型的下半身,将其头部模型保留,然后附加到另外一个脸部模型上,实现角色模型的创建。创建后的模型如图2所示。

2) 3D软件内创建角色骨骼。通过3D软件中的CAT插件实现角色骨骼的创建,CAT插件在对人体的行为动作模仿时比3D软件自有的骨骼系统更准确。该软件在创建角色骨骼时可通过直接拖动的方式实现,并以删除或者复制功能实现角色骨骼数量的增减,获取所需角色骨骼模型。通过调节角色骨骼的大小,令其同已创建的角色模型对齐,为之后的角色骨骼动作设计和角色骨骼蒙皮做准备[10]。

3) 角色骨骼蒙皮。采用3D软件中的premiere编辑器对角色骨骼进行蒙皮操作。在工具面板上对角色骨骼的根节点进行选取,调整角色骨骼上的封套。其中封套调整时应将封套整体包进自身骨骼中,不可牵涉到其余骨骼,是整个角色骨骼蒙皮操作环节内最易出错的一环,若出现错误将导致角色模型在行走时产生粘连或蒙皮面破损的问题。由于蒙皮过程中出现差错的几率较高,因此,调节后为检测蒙皮效果,应为角色骨骼设定一个幅度较大的动作,检测是否会产生皮面破损等差错。如果出现差错,可通过3D软件内自有的修改器寻找到差错骨骼位置,细致调节蒙皮破损位置;若蒙皮破损位置过多,此修改器过于繁琐,应选择另一款修改器面板上的Bonm选项,全选角色骨骼进行整体调整。

1.2  行为控制

1.2.1  骨骼动画技术

骨骼动画(Skeletal Animation)技术是当下三维虚拟动画设计中应用范围最广泛的技术[11?12]。此技术在动画模拟人物与其余脊椎动物方面表现优越,属于一类计算机动画技术。所模拟的角色通常情况下表现为两部分,分别是层次化骨骼所构成的骨架与骨架上蒙皮的皮肤[13]。为实现模拟角色运动行为的目标,可采用以动画模拟骨架的方式,并以骨架对皮肤的形变进行操控与带动的方式实现目标。应用骨骼动画的基础模式为:所需动画通过动画生成软件提前制作完成,当动画运行时,程序需依据时间运算得出详细的显示,并遵循逻辑确定播放动画的顺序。通过在三维虚拟动画设计中使用运动捕捉技术,提高动画动作数据的便利性与逼真效果[14]。三维运动捕捉技术比较适用于模拟人类可完成的动作,对于人类无法完成的动作则应通过手动调整的方法实现。此外,为使动作的连接更顺畅、动作方式更多,可应用动画合成(Animation Blending)技术实现。

1.2.2  动作调整

经过在3D软件中对角色骨骼的创建及蒙皮之后,为角色骨骼增添动作。通过软件中的运动信息、关键帧设置及足迹等为动画设计中角色模型的骨骼增添所需动作,完成角色模型的动作调整[15]。

1.2.3  骨骼驱动

在得到与3D格式规范相符的三维虚拟角色动画数据之后,便可采用C++语言调用3D库函数对具体应用程序进行开发。应用3D的三种方法为:

1) 采用直接调用的方法,通过Direct X或Open GL完成场景的显示;

2) 在开源图形引擎Open Scene Graph内应用通过3D封装后的osg插件;

3) 在Delt 3D动画仿真引擎内应用通过3D封装后的Replica Body库。

对三维虚拟动画设计综合考量后,在此选用第三种方法。3D的关键功能被Delt 3D封装于dtChar命名空间。其中,有dtChar.h与character.h两个头文件,对character.h的调用包括在dtChar.h内,而关键核心类则包括在character.h内。库文件由dtChard.lib(Debug版)与dtChar.lib(Release版)构成。因此,在未使用3D功能时,需确定工程内包括dtChar.h,且将库文件dtChard.lib或dtChar.lib的连接引入,确保编译器的搜寻路径中包括这些文件。

1.2.4  实现行为控制

采用Implement Gain about()函数完成对虚拟角色动作的实行与操控,.rbody配置文件内对动作称呼的定义由此函数的参数指导。在系统对Implement Gain about()函数进行调用时,虚拟角色便会对其对应的动作数据进行调用,完成对应动作。在此为角色设定直立、行走及跑步三个动作,且三个动作之间的转换采用F4,F5,F6三个按键完成。

关键核心代码为:

mUnlocking keyRegulator=newUnlocking keyRegulator(m_role1.gain(),Gain Unlocking keyplate());

BoerUnlocking keyPress down(constdCore::Unlocking keyplate*unlocking keyplate,intunlocking key)

{

BoerStatement(fake);

Transformation(unlocking key)

{

example of case osgGA::GRAPHICAL USER INTERFACE Incident The AdaPter::UNLOCKING KEY_F4:

{

m_role1—>ImplementGain about(“STAGE”,fake,authentic);

smash;

}

example of case osfGA::GRAPHICAL USER INTERFACEIncidentThe AdaPter::UNLOCKING KEY_F5:

{

m_role1—>ImplementGain about(“TAKE A WALK”,fake,authentic);

m_role1—>Set upRotate(rotate);

m_role1—>Set upSpeed(speed);

smash;

}

example of case osgGA::GRAPHICAL USER INTERFACEIncidentThe AdaPter::UNLOCKING KEY_F6:

{

m_role1—>ImplementGain about(“FUNCTION”,fake,authentic);

m_role1—>Set upRotate(rotate);

m_role1—>Set upSpeed(speed);

smash;

}

break a contract:

smash;

}

revert Statement;

}

通過以上操作,实现三维虚拟动画设计中的角色行为控制。

2  仿真实验

将本文方法用于某消防队的一次灭火救援三维虚拟动画仿真教学中,观察实际应用效果,并将本文方法与基于语义树的三维角色建模方法、基于3DS MAX三维角色建模方法进行对比,验证本文方法的建模效果、建模精准度及行为控制效果。

2.1  实际应用效果

依据消防员的服装与装备特征,通过本文方法所构建的角色模型效果图如图3所示。从图3中可看出,消防员所配备的消防头盔与灭火战斗服等可准确展现,且模型效果清晰逼真。

采用本文方法实时控制消防员模型在灭火救援三维虚拟动画中的行为动作,实现教学场景动画的模拟,模拟效果如图4所示。

在图4的实际应用教学场景动画模拟效果图中,通过本文方法可实现对消防员行为的有效控制,完成动画教学中消防员的行走、跑等场景漫游,消防员模型灵敏的反应及逼真的整体效果可提升视觉感受及教学质量。

2.2  建模效果对比

为进一步验证本文方法所构建的消防员模型效果,将本文方法与基于语义树的三维角色建模方法、基于3DS MAX三维角色建模方法进行对比,对比不同方法所创建的实验中各个消防员模型的帧速与纹理数,从3种方法所构建的消防员模型中各随机抽取5个模型进行对比,对比结果见表1。

通过表1可看出,本文方法所创建的消防员模型的帧速与纹理数均高于其他两种方法,说明本文方法创建的模型运行时更顺畅,模型更加清晰逼真。

2.3  精准度对比

将3种不同方法所创建的消防员模型与真实消防员作对比,得出3种方法创建模型的误差值,结合3种方法所创建模型的特征点数量,分析3种方法的精准度,具体对比结果见表2。

通过分析表2可得出,本文方法所构建消防员模型的误差值最低,且模型的特征点数量最多,说明本文方法建模精准度高。

2.4  行为控制效果对比

通过分析3种不同方法对消防员模型进行行为控制时的偏移量,对比出3种方法的不同控制效果,3种方法的行为控制偏移量情况如图5所示。

通过图5能够看出,本文方法的行为控制偏移量远低于其他两种方法,足以说明采用本文方法对消防员模型进行行为控制时,控制准确性最高,控制效果更理想。

3  结  论

本文通过创建三维虚拟动画场景中的角色模型,对各模型进行特定行为控制,实现三维虚拟动画的有效设计。通过实验验证本文方法所建模型精准度高,行为控制流畅准确,应用于灭火救援虚拟仿真消防教学中,可提升观感及教学质量。文中仅对三维虚拟动画设计中的角色建模与行为控制展开研究,未来应继续研究三维虚拟动画设计中的场景构建,进一步提升整体动画场景的逼真体验。

参考文献

[1] 孔素然,殷均平.人体特殊动作三维动画建模与渲染方法改进研究[J].微电子学与计算机,2016,33(9):169?172.

[2] 叶凤华,叶欢.基于Flash和3D动画渲染技术的育苗机器人设计[J].农机化研究,2018,40(3):189?192.

[3] 周渝果.浅析茶叶包装折叠纸盒上的三维动画设计[J].福建茶叶,2016,38(11):189?190.

[4] 胡志刚,黄拼搏,周振宇,等.二维影像技术和三维可视化技术辅助ALPPS治疗肝癌效果的初步探讨[J].中华外科杂志,2016,54(9):686?691.

[5] 孙春辉,成锡平.基于无人机的实景三维建模在消防中的应用[J].消防科学与技术,2018,37(4):501?504.

[6] 詹曙,常乐乐,梁植程,等.SICP配准的三维人脸建模[J].光电工程,2016,43(3):88?94.

[7] 鄢荣曾,胡敏.颞下颌关节三维有限元建模相关因素分析[J].医用生物力学,2016,31(2):182?187.

[8] 艾飞,洪滔,李崇源.三维动画技术在茶品牌包装中的应用[J].福建茶叶,2017,39(9):142?143.

[9] 张文英,何坤金,张荣丽,等.基于开源场景图形的三维可视化与信息管理系统设计[J].计算机应用,2016,36(7):2056?2060.

[10] 朱真,廖惟博,王章野.流体模拟动画技术新进展[J].计算机工程与应用,2016,52(4):142?150.

[11] 孔徳瀚,刘永山.基于路网的三维虚拟现实场景间接可视查询框架[J].计算机学报,2016,39(10):2045?2060.

[12] 姬林松,李彦林,黄赞,等.三维有限元分析内侧半月板全部切除后不同软骨缺损面积对膝关节应力的影响[J].中国现代医学杂志,2016,26(8):65?70.

[13] 陈素华,杨军,马顺昌,等.虚拟现实技术在颅颈交界区病变手术中的应用[J].中华神经外科杂志,2018,34(6):591?595.

[14] 陈图南,尹训涛,李学刚,等.多模态融合的3D虚拟现实技术在中央区胶质瘤切除术中的应用[J].中华医学杂志,2018,98(17):1302?1305.

[15] 薛艳英,江汉祥,万江山,等.取证轨迹数据在人物行为分析上的应用[J].计算机科学,2016,43(12):219?224.

猜你喜欢

动画设计
基于品牌传播的吉祥物动画设计探讨
Flash动画设计的课程研究与互动探讨
二维动画场景色彩研究与应用
三维动画模拟遗传信息的翻译过程
中专“Flash动画设计”课程教学的实践与思考
任务型教学模式在动画设计教学中的应用
广西动画设计人才培养模式研究
艺术元素有效融入动画设计教学的途径探究
多媒体技术下动画设计教学方法的应用
汉代画像石艺术在现代动画教学中的实践研究