基于OpenGL的三维皮影动画仿真与实现

2017-09-09 02:37王迪栗菲旋高伟
软件导刊 2017年8期
关键词:关键帧三维动画皮影戏

王迪+栗菲旋+高伟

摘 要:皮影戏作为传统动画之“雏形”,曾一度推动了我国动画产业的发展。然而,随着科技发展的日新月异,数字动画逐渐占据了艺术市场,导致传统皮影艺术濒临绝境。将传统皮影戏与计算机三维动画技术相结合,制作并实现一部数字皮影动画《武松打虎》:利用3ds Max建立皮影角色模型,并建立皮影角色模型数据库及其运动姿态数据库;利用关键帧和几何变换技术,实现皮影模型的三维动作仿真。该研究具有良好的应用前景,是对中国传统皮影艺术传承和保护的新尝试。

关键词:皮影戏;三维动画;数据库;关键帧;几何变换

DOIDOI:10.11907/rjdk.171677

中图分类号:TP317.4

文献标识码:A 文章编号文章编号:1672-7800(2017)008-0185-04

0 引言

皮影戏是我国古代一种集工艺美术和戏曲艺术于一身的民间艺术形式,但是随着社会的进步和科技的发展,新的娱乐模式逐渐取代了皮影戏这一传统文化艺术,使其逐渐走向萧条。要拯救皮影戏这一濒临绝境的文化遗产,不仅需要文艺工作者大力弘扬中国传统文化,以唤醒国民保护文化遗产的意识,还需要科技工作者为皮影戏的传承和保护开辟新途径。

2006年,国产皮影动画《桃花源记》获得了TBS动画数字作品大赛最优秀奖;2008年、2011年两部《功夫熊猫》在全球热映[4],其中风格古朴俏皮的皮影桥段给观众留下了深刻印象,计算机动画技术随之盛行,也给皮影戏的传承和发展带来了新的启发。据此,本文提出皮影戏与计算机三维动画技术相结合的新思路,以传统皮影戏“武松打虎”为例将其制作成一部数字皮影动画,并通过数字化渠道推广和传播。

1 皮影戏发展历程

1.1 皮影戏起源与发展

据史料记载,皮影戏起源于距今约2 000年前的西汉,东晋史学家干宝所著《搜神记》中有关于皮影戏的记载,“影戏之源出于汉武帝李夫人亡,齐人少翁言能致其魂,少翁夜为方帷张灯烛,帝坐他帐,自帐中望之,仿佛夫人像也,故今有影戏”。相传《汉书》也有类似的记载[1]。皮影戏就是濫觞于这段古代帝王的爱情故事[2]。

皮影戏起源于西汉,兴盛于唐宋,在清代盛极一时,又在近代遭受重创。在唐代中晚期,已有类似影戏的雏形出现,被僧人俗称为“变文”,是统治者用来普及佛教文化的一种形式。宋代的影戏表演已初具规模,北宋时都城汴梁就已经有皮影戏的演出。清朝以来,中国皮影艺术发展达到顶峰,皮影戏深受广大民众和宫廷的青睐。与此同时,皮影戏广泛传播,遍布中国大地,形成了不同的流派,独具地方特色,可谓盛况空前。不幸的是,随着近代抗战爆发和“文革”的迫害,皮影戏经历了风雨劫难,开始一蹶不振。

1.2 皮影戏濒临绝境的原因

皮影制作工序繁琐以及难以保存、携带的特点给皮影戏的传承和发展带来严峻的挑战。皮影用兽皮或纸板制作而成。据说,一套完整的皮影道具需要经过选皮、制皮、画稿、过稿、镂刻、敷彩、发汗熨平、缀结合成八道工序才能完成,制作工艺相当复杂。此外,皮影成品的保存和携带也是一个尚未攻克的难题。由于皮影材质多为皮质或纸质,光照、温度和湿度变化都会导致皮影褪色或变形,导致皮影制品难以长期保存。再加之,皮影大都采用镂空的雕刻方式,且影人的头部、躯干和四肢是相互分离的,为了演出时灵活多变,再用线将皮影各部缀结合成,这无疑增加了皮影携带的难度,稍有不慎,就将造成皮影结构残破,难以修复和弥补[3]。

皮影戏传播方式的局限和现代各种文化形式的冲击使得皮影戏逐渐走向衰落。传统皮影戏演出几乎不受场地限制,但是近代以来,皮影戏遭受迫害开始一蹶不振,演出场地也仅仅局限于散落各地的皮影戏班,皮影市场开始大幅萎缩。另一方面,皮影戏的表演极其考验艺人们的表演技能,在皮影界,流传着这样一句话“三年能出个戏子,三年出不来个影匠”,形象地刻画了学艺的艰辛,从而导致愿意继承皮影衣钵的人急剧减少。此外,随着现代影音技术的发展和各种文娱形式的涌现,皮影戏显然不能满足现代人的审美要求,再加上网络等传播渠道的日益普及,固守陈规的皮影艺术受到了巨大冲击,使得青少年观众越来越少,直接威胁到皮影这一传统民间艺术的生存和发展。

2 数字皮影动画制作过程

2.1 皮影角色模型提取与建立

2.1.1 皮影模型数字化提取

传统皮影素材主要是通过制作者重复雕刻和绘画获得,一套完整的皮影道具需要手工雕刻3 000余刀,大约花费一位手工艺人数月的时间,可见这种方式难以对皮影制品进行批量化生产,在一定程度上制约了皮影艺术的发展。随着数字化时代的到来,人们提出了皮影模型的数字化提取技术,大大降低了皮影制作的复杂程度,节省了大量人力、物力和时间[5]。

目前,常用的皮影模型的数字化提取方式大致有3种:第1种是数码拍摄技术;第2种是扫描仪扫描技术;第3种是用数位板连接PhotoShop手动绘图技术,其中数码拍摄技术是使用最普遍、最广泛的图像获取技术。本文在皮影模型的数字化提取过程中首先将皮影模型肢解开来,按部位提取。

下面以传统皮影戏“武松打虎”为例,在PhotoShop CC图形处理平台上进行武松影人头部模型的数字化提取操作,图1所示为武松头部模型提取的全过程。首先,用磁环套索工具将模型边缘选中,然后截取模型并创建新图层将其保存为png格式的透明背景图,这样就完成了皮影部件模型的数字化提取。

2.1.2 三维皮影模型创建与合成

皮影模型的数字化提取操作是按照皮影的头部、躯干、四肢分别进行的,因此,皮影模型的创建过程也应该是各部件分别进行[6]。创建皮影模型,首要任务是分析皮影模型的结构特征,图2所示为皮影角色模型的层次结构;其次,使用3ds Max建模工具建立皮影各部件模型,具体操作如图3所示,共分为3步。endprint

(1)轮廓导出。依次建立工作路径→设置容差值→路径到Illustrator→生成.ai格式文件。图4所示为武松皮影头部模型轮廓。

(2)模型创建。先将之前保存好的.ai格式文件导入到3ds Max软件中,在视图控制区会显示皮影轮廓的二维线框,如图5所示。然后对其进行挤出操作就得到三维的皮影模型。

(3)纹理贴图。在模型简单创建之后,就进入到材质编辑阶段。首先,在3ds Max软件的修改器列表中选择UVW贴图,然后在材质编辑器中为刚刚建好的武松头部模型进行“有贴图的真实材质”编辑,最后通过移动、旋转和缩放操作完成贴图操作。图5为三维的武松皮影头部模型。

三维皮影各部件模型创建完成后,开始进入模型合成阶段,皮影模型的合成也是在3ds Max平台下进行的。首先,将皮影角色的各部件模型导入到一个新的Max文件中,然后参照真实的皮影模型通过控制平移、旋转、缩放进而拼接成一个完整的三维皮影角色模型并保存[8]。图7为武松的三维皮影角色模型。

2.2 三维皮影角色模型数据库

在制作数字皮影动画的过程中,需要把真实的皮影道具、舞台道具以及声音和灯光以数字化的形式进行存取。本文采用数据库组织、存储和管理各类数据,旨在建立一個可共享的三维皮影角色模型数据库。

在创建数据库之前,首先要分析其所要包含的内容以及设计结构。结合皮影模型的提取和建立及数字皮影动画的后期处理,可以明确三维皮影角色模型数据库所要包含的数据内容有:皮影角色各部件贴图文件、ai格式的各部件轮廓文件、max模型文件、静态场景文件、声音、光照、文本(剧本或台词)等。显然,该数据库包含的内容较为繁多。为了方便数据检索,本实验采用分类存取的方式设计数据库,并设置相应的关键字进行标记。

由此可见,三维皮影角色模型数据库的建立为数字皮影动画的制作带来了诸多便利。首先,克服了传统皮影道具难以保存和携带的缺点;其次,数据分类存储,方便提取,大大提高了皮影戏的演出效率;此外,数字化皮影道具可以通过网络实现共享,而且分散各地的皮影表演者可以根据观众喜好随时修改或重组皮影造型,轻松实现皮影再创造[5]。

2.3 三维皮影角色模型运动姿态数据库

传统皮影戏演出中,每个影人背后都有3根竹签,其中一根固定在影人的颈部,用以控制头部和身体的运动,另外两根分别固定在两只手臂上,用以控制上肢的运动,虽然影人腿部没有撑杆,但是可以通过头部和上身的运动带动腿部的运动。显然,影戏的表演者是借助竹签控制影人躯体的关节点进而控制影人活动的。在这种传统表演模式的启发下,数字皮影动画也将通过三维皮影角色模型关节点的几何变换实现其运动姿态的变化,并建立其运动姿态数据库。

确定数字皮影的关节点以及通过几何变换实现武松打虎的关键动作成为本次研究课题的一个难点。图8和图9分别为武松和老虎身体各部的组件,为了表演时能活动自如,本实验将皮影各组件分别导入VisualStudio 2010平台。例如,使用 CLoad3DS::Import3DS() 函数及其相关程序代码将皮影各部件模型的.3ds文件导入到项目空间。当组件导入完毕后,确定模型关节点并通过平移、旋转等几何变换完成武松打虎的动作实现,并记录武松打虎过程中每个动作的几何变换数据,分析综合后添加到三维皮影角色模型的运动姿态数据库中。表1所示为武松打虎关键动作的几何变换数据。

2.4 三维数字皮影动画生成与实现

三维数字皮影动画的生成关键在于实现三维皮影角色模型的运动仿真,而实现模型运动又主要依赖于模型对象关键帧的设定,这也是本次课题研究的一个难点。本文从关键帧的设定、关键帧的排序处理、帧与时间序列的对应关系等方面出发,实现三维皮影角色模型的运动仿真[7-8]。

首先,从已经建立好的三维皮影角色模型运动姿态数据库中提取已存储的数据,然后动态地构造模型运动过程中每一帧的平移、旋转和缩放矩阵。本文借助OpenGL图形库中的平移变换函数glTranslate(TYPE x,TYPE y,TYPE z)、旋转变换函数glRotate(TYPE angle,TYPE x,TYPE y,TYPE z)和缩放变换函数glScale(TYPE x,TYPE y,TYPE z)生成变换矩阵[11],并将这些变换矩阵作用在模型对象的初始数据点上,从而得到每一帧的位置数据,这样就基本模拟了皮影角色模型的运动过程,完成了对其关键帧的设定。下面以武松头部为例进行关键帧设定:

//武松绘制的起点

glTranslatef(50.0, -20.0, 0.0);

glScalef(multiple, multiple, multiple);

//武松头部

glPushMatrix();

glTranslatef(-140.0+xtran,-60.0,0.0);

shadow.Head();

glPopMatrix();

其次,关键帧的排序处理至关重要。关键帧决定了模型运动位置、模型比例大小及其角度偏移,为了适应动画中皮影模型的运动规律,必须对设定好的关键帧进行合理排序。比如,武松的一个简单的走路动作要依次经过抬腿、迈步、落地才能完成,中间涉及旋转、平移等多次不同排序。但是,要特别处理好平移和旋转的先后关系。

最后,通过设置帧与时间的对应关系呈现出连续绘制的动画效果。本次数字皮影动画的制作过程中引入了定时器,通过使用 GetTickCount() 函数建立了时间序列与帧的对应关系,然后在对事件的响应中更新屏幕,显示当前帧的皮影模型。

经过上述操作,基本生成了三维皮影数字动画的“雏形”。为了使动画播放效果更为连贯,本文引入了线性插值(Linear Interpolation)算法,目的是避免由于关键帧分布不均匀而产生的不真实的运动效果[9]。基于关键帧插值运动控制技术的主要操作有:①确定一个简单插值函数P(x)用来控制模型运动;②设置n个关键帧参数i=0,2,3,4,5……n-1;③采用线性插值技术对n个插值点进行插值;④对该插值函数进行离散采样,求得在某一帧时的参数值。经过插值操作后,模型的运动效果更为连贯逼真[10]。

3 数字皮影动画后期制作

数字皮影动画的后期制作包括光照、背景音乐、动态字幕等处理,此外还涉及简单的人机交互,也即需要建立完善的消息响应机制。本文研究的数字动画后期制作也是基于OpenGL进行的。

常用的OpenGL光照模型有:环境光(Ambient Light)、漫射光(Diffuse Light)和镜面光(Specular Light)[11]。在本次研究中,使用如下程序代码定义光照:

GLfloat LightAmbient[] = {0.5f,0.5f,0.5f,1.0f};

GLfloat LightDiffuse[] = {1.0f,1.0f,1.0f,1.0f};

GLfloat LightPosition[] = {0.0f,0.0f,-130.0f,1.0f};

然后,调用函数 glEnable()启动光照;若使光照无效,则调用gDisable()函数关闭当前光照。

背景音乐是影戏表演不可或缺的一部分,在本次数字皮影动画《武松打虎》制作过程中,采集了符合其地方特色的说唱音频 ,并借助Windows提供的与多媒体有关的大多数接口,在程序中通过调用函数PlaySound()对该音频进行播放控制,具体调用方式为PlaySound("PLAY.wav",NULL,SND_LOOP)。通过肢体表演与背景音乐相结合,可以达到引人入胜的演出效果。

传统的影戏表演方式大多为“幕影”表演,场景单一,而且不能显示字幕,这就使得许多观影者“只能闻其声,不能知其意”。为了避免这种尴尬局面,本次数字皮影动画添加了动态字幕,随着音频的播放动态地显示其文字内容。具体操作需要先调用selectFont(int size, int charset, const char* face)函数来指定字体大小、字符集和字体名称;然后调用函数drawCNString(char* str)将文字显示在屏幕上。如图9所示为本课题制作的数字动画《武松打虎》的动作片段。

三维皮影数字动画的后期制作既表现了传统皮影戏的诸多艺术特性,也融入了大量现代多媒体元素,结合计算机动画技术更加完善了数字化皮影戏表演的功能,体现了数字动画的艺术性、交互性和易操作性。

4 结语

皮影戏作为我国民间艺术的“活化石”,具有不可替代的文化价值和艺术价值,并于2011年被正式列入世界非物质文化遗产名录。随之,保护这一古老而丰富多彩的传统文化变成了一项重要的使命。近年来,随着国内外三维数字动画技术的风靡,皮影戏的传承和发展迎来了新的曙光。本文提出了皮影戏和三维数字动画技术相结合的新思路,设计制作了一部三维数字皮影动画《武松打虎》,并通过数字化渠道进行推广和传播。这一尝试无论是对于传统文化还是对于计算机动画技术都具有重大的研究价值和推广意义,它的成功将给传统艺术领域和现代科技领域带来巨大突破。

参考文献:

[1] 高璐静,蔡建平.皮影动画中人物运动的特性分析与实现[J].北京工业大学,2010,31(10):2335-2342.

[2] 朱叶蓉.“影”与“动”——皮影艺术与计算机动画[D].长沙:湖南师范大学,2009.

[3] 高伟,郭瑾,郭舒婷.中国传统皮影艺术在数字动画中的应用与发展[J].辽宁师范大学学报:自然科学版,2015(12):475-481

[4] 朱大诚.皮影风格动画研究——以三维皮影动画《斩蔡阳》为例的创作探索[D].济南:山东大学,2014.

[5] 许瑾.皮影部件数字化提取系统研究设计[J].艺术评论,2013(9):118-120.

[6] 刘晓丹,于婷,孙庆杰,等.皮影动画角色的骨骼自动生成算法[J].计算机科学,2008,35(4B):286-288.

[7] 陈璇,张明敏,潘志庚.数字皮影的交互仿真和动画绘制[J].中国图象图形学报,2014,19(10):1490-1499.

[8] 陈国华.三维关键帧动画的交互设计技术[J].计算机仿真,2007(4):221-224.

[9] 张美香,郝轶鸣.关键帧动画技术综述[J].山西广播电视大學学报,2009(9):55-56.

[10] JAMESD FOLEY,ANDRIESVANDAM,STEVENK,et al.Introduction to computer graphics[M].董士海,唐泽圣,李华,等.译.北京:机械工业出版社,2007.

[11] [美]EDWARD ANGEL.OpenGL编程基础[M].第3版.段菲,译.北京:清华大学出版社,2009.

[12] 吴琼.我国传统皮影艺术与动画的结合[D].哈尔滨:哈尔滨理工大学,2011.

[13] 李钰漪,赵敏莉,王舒馨.浅析皮影戏的艺术价值[J].西安通信学院,2016(3):90-91.

[14] ZHANG,SONG Y H,CHEN Z,et al.Chinese shadow puppetry with an interactive interface using the kinect sensor[C].European Conference on Computer Vision,2012,7583(2):352-361.

[15] BARAN I,POPOVIC J.Automatic rigging and animation of 3D characters[J].ACM Transactions on Gra.Phits,2007,11(5):223-235.endprint

猜你喜欢
关键帧三维动画皮影戏
我们来演皮影戏
论三维动画特效数字模拟真实性与艺术性的结合
中国水墨画在三维动画设计中的应用
皮影戏
我发现了皮影戏的秘密
基于改进关键帧选择的RGB-D SLAM算法
基于相关系数的道路监控视频关键帧提取算法
皮影戏
基于聚散熵及运动目标检测的监控视频关键帧提取
让三维动画走进幼儿语言教学