王涛 范坤明
摘 要:三维动画制作及教学内容中,角色的动作生成是一个非常重要的环节。笔者提出利用Kinect和3DSMAX整合技术,通过Kinect的动作捕捉技术,使用户的动作与模型的动作产生联动,生成关键帧,然后将这些关键帧制作动画,并把这种方法运用到实际教学中。
关键词:Kinect;3DSMAX;三维动画
截至2014年底我国动漫产业总产值已经超过1000亿元,国内核心二次元用户规模达到4984万人,而泛二次元用户规模达到1亿人。随着国内动漫行业规模的持续扩大,动画电影,特别是三维动画电影作品越来越多地受到投资者和观众的青睐,涌现了一大批诸如《疯狂动物城》《功夫熊猫3》《西游记之大圣归来》等优秀作品,具有广阔的发展前景。受此影响,国内对于三维动画制作人才的需求也在逐年增加。各大高校也把三维动画制作引入课堂,开设了相关课程进行教学。
如今三维动画制作教学的主要内容包括角色和场景制作两大部分。针对角色制作部分又细分为角色模型创建、贴图材质绘制、骨骼绑定及蒙皮、动作制作及关键帧生成、后期动画合成等几个模块。其中针对角色动作制作及关键帧生成的内容,课程教学的关键在于教授学生如何制作角色动作,并利用关键帧记录角色的运动过程。所谓关键帧,是指角色或者物体运动或变化中的关键动作所处的那一帧。在传统教学中,学生根据事前决定的故事内容,通过手动调整角色在某一时刻各个骨骼关节的位置制作角色的动作,并通过软件将此帧的内容记录下来作为一帧关键帧。重复以上操作,在完成所有关键帧之后,学生可以通过软件自动创建关键帧之间的过渡帧,从而将角色的动作连贯起来,合成完整的动画。在实际的教学过程中我们发现,由于缺乏经验,学生往往需要花费大量的时间调节角色的动作,结果仍然经常出现动作不到位甚至变形的情况,大大影响了动画制作的效率和最终结果。
因此,笔者利用Kinect和3DSMAX整合技术,提出一种三维动画角色动作制作过程中的教学新方法。通过让学生使用Kinect设备识别自身的骨骼关节,将其与3DSmax中预先制作好的模型骨骼关节进行匹配。通过Kinect动作捕捉技术捕捉学生动作,将动作映射到上面使模型产生联动,再由3DSMAX记录为关键帧,然后利用这些关键帧生成过渡帧,最终合成动画。
1 Kinect原理简介
Kinect是一款由微软研发,最早针对XBOX游戏平台的体感周边外设产品。[1]凭借其自身卓越的动作捕捉和识别性能和相对低廉的成本,迅速为人们所关注和熟识。Kinect不需要使用任何控制器,只需要通过内置的红外投影机和红外摄像头接收红外光点阵[2]生成深度数据图,然后对得到的深度数据图中通过边缘检测、噪声阈值处理等操作区分背景和人体轮廓,将人物从背景图像中剥离出来。接着Kinect将人物轮廓中的人体部位信息与预存在机器中的人体部位学习样本进行匹配,识别不同的人体部位和关节位置。对于一些如手、脚等可能被遮挡的身体部位,Kinect可以通过其他关节推算被遮档部位的关节位置从而得到完整的骨骼关节图,最后对这些骨骼关节点的运动进行跟踪,实时记录人体的关节运动变化情况。[3]如图1所示,左图为Kinect拍摄到的彩色图像,右半部分为得到的深度数据图。图中绿色线条为kinect识别出的人体骨骼信息。从结果我们可以看出人体与背景被清晰地区分开来,人体的各部分信息及骨骼关节也被清楚地识别了出来。
2 3DSMAX原理简介
3D Studio Max是当今主流的基于PC系统的三维动画渲染和制作软件,广泛应用于三维模型、三维动画制作过程中。[4]在实际的教学中,我们利用3DSMAX软件完成三维角色模型制作、动作编辑、动画合成等一系列操作,一般包括以下几个方面:第一,角色模型制作,俗称建模;第二,为模型增加材质和纹理贴图;第三,为角色绑定骨骼,蒙皮并根据动画内容制作角色动作的关键帧;第四,利用关键桢生成过渡帧;第五,完成后期动画合成。关于角色骨骼绑定,3DSMAX软件主要采用BIPED骨骼和BONE骨骼两种骨骼。BIPED骨骼具有一个完整的人形形态,具有头、颈、躯干、四肢等各个部分,适合表示包括人类在内的两足生物的骨骼。BONE骨骼为单独分离的骨骼片段,用户根据角色的形态和实际需要通过连接不同的骨骼片段组成一副完整的骨骼关节模型,从而实现形状各异的生物的骨骼模拟。用户根据实际情况选择BIPED骨骼和BONE骨骼来绑定角色模型。
3 Kinect和3DSMAX整合技术
Kinect与3DSMAX整合技术的核心原理是将人视为控制器,利用Kinect采集人体信息,识别人体的骨骼和关节。另外,利用3DSMAX软件根据动画内容预先制作角色模型并绑定骨骼,将骨骼和关节与Kinect得到的人体骨骼和关节一一匹配,形成关联映射。用户根据动画内容,完成各种动作,Kinect记录用户的动作,并将骨骼关节信息传输给3DSMAX软件,使角色模型的动作也产生对应的变化,即由用户的动作来操纵角色模型的动作,从而达到用户动作与角色动作的互动与同步。因为Kinect无法直接与3DSMAX兼容,所以我们采用“Kinect+OpenNI+3DSMAX”系统,实现Kinect与3DSMAX之间的数据通信。OpenNI由一组可用来编写通用自然交互应用的接口组成,通过标准化的通信方式,实现软件的视频、音频数据的交互。
接下来,我们通过3dsmax自带的储存关键帧功能,编写脚本自动记录下一系列关键帧。本文中笔者采用每隔一段时间自动设置关键帧的办法记录使用者的动作。假设整个动作时间为T帧,时间间隔为t帧(0
图2,左图为Kinect记录的使用者的动作深度图像,右图为3dsmax中模型的动作图。从结果可以看出,右图中模型动作与使用者动作一致,且能随使用者动作变化发生相对应的改变。
4 在实际的教学中的应用
为了验证新方法在实际教学中的效果,我(下转第页)(上接第页)们针对动画专业两个年级学生(每个年级50人左右),分别采取传统的三维动画教学方法和Kinect和3DSMAX整合技术的教学方法,在一学期的时间内完成角色骨骼绑定、蒙皮、动作制作等内容的教学。课堂上使用3DSMAX2014版本,主要使用biped骨骼模型进行试验。制作一个简单动作的角色动画(跑步、行走),使用传统的教学方法,手动调节角色动作的学生大约需要1个小时,而使用Kinect和3DSMAX整合技术的学生只需要5~10分钟即可完成。从制作效果来看,基于Kinect和3DSMAX整合技术制作出的模型动作略好于使用传统教学制作出的动作。由此可见,采用Kinect和3DSMAX整合技术,能够在保证角色动作质量的基础上,节省学生花费的时间,提高学生学习的效率和积极性。利用Kinect和3DSMAX整合技术,我们在教学中收到了很好的效果。
5 结语
相比于传统的动画制作技术,基于Kinect与3DSMAX整合技术能够大大提高三维动画学习和制作的效率。以后的研究方向包括如何利用Kinect与3DSMAX整合技术完成人形角色的复杂动作以及非人形角色的动作模拟,进一步提高识别和制作动作的准确性。
参考文献:
[1] 刘晋钢,刘卫斌,刘晋霞.Kinect与Unity3D数据整合技术在体感游戏中的应用研究[J].电脑开发与应用,2014.
[2] 郑立国,罗江林,许舸.基于Kinect的动作捕捉系统的实现[J].吉林大学学报(工学版),2013.
[3] 邬冠上.基于Kinect的交互式健身游戏的设计与实现[D].中国科学院大学(工程管理与信息技术学院),2014.
[4] 黄静,张红忠. 3DSMAX在虚拟现实中的应用[J].测绘与空间地理信息,2013.
作者简介:王涛(1984—),男,山西临县人,博士,讲师,研究方向:数字艺术,视觉传达。
通讯作者:赵怡,四川大学艺术学院教师。