三维舞台灯光效果中的动画效果模拟
2012-09-20沈萦华方瑜骅吕朝辉李春红
沈萦华,方瑜骅,吕朝辉,李春红
(中国传媒大学信息工程学院,北京100024)
1 引言
在实际的舞台场景灯光效果设计过程中,存在着大量的不确定性,设计师们在设计模拟中,常常需要大量的时间精力以及能源的投入,这对于他们是一个很大的考验,同时也存在着很大的风险,这使得舞台灯光效果设计工作存在着许多不确定性,可控性差而又成本高昂。
因此设计师们急需一个能够实时模拟场景灯光效果的平台,能够方便逼真地模拟实时的三维舞台场景和灯光环境。
本文中,通过OGRE提供的三维实时模拟功能,我们把设计师的静态设计和创作转化成具有临场感和交互能力的三维虚拟场景。不仅能够模拟静态的场景和灯光效果,也能模拟动态的场景灯光动画效果。这样设计师们可以实时对舞台中各种不同特效进行定制,随时捕捉并将设计者的新颖构思以及创意展现出来[1]。而可定制动画功能的加入,也让设计师们能设计出更为丰富绚丽的舞台场景效果。
2 系统架构
2.1 逻辑架构
这里重点介绍一下动画模拟设计的逻辑架构。
整体架构以OGRE引擎为基础,底层的资源类和插件类负责插件和舞台建模资源以及各种特效材质资源的导入,引擎框架负责控制场景管理器和场景监听器,最终通过执行器启动舞台场景的创建和舞台帧监听器。
主框架如下图所示:
图1 系统架构图
3 系统动画效果实现
OGRE提供了相当灵活的动画系统,通过它可以做各种各样的应用[2]。
骨骼动画运用骨骼结构来定义网格数据。
顶点动画保存顶点的快照来决定网格数据如何改变。
场景节点动画根据预先定义的路径来操作场景节点上挂接的实体的运动产生动画效果。
数值动画OGRE提供扩展的类来根据任何值产生动画效果。
3.1 追光灯动画实现
在场景中主要用到了骨骼动画和节点动画两种。通过骨骼动画模拟行走的机器人,通过场景节点动画来模拟追光灯的效果。
OGRE中定义了关键帧,关键帧可以表示驱动物关键帧的状态与相应的时间点,这样可以为一个可驱动点定义多个关键帧。把这些关键帧组合起来,形成动画的轨迹[3]。
场景中追光灯的动画效果主要分以下几步来进行创建:
1.创建灯光结点以及人物的结点动画对象。
2.创建人物动画的结点轨迹以及关键帧的动作,让人物沿着固定的轨迹前进。当运动到固定结点的时候,改变前进的方向。
3.创建灯光的结点轨迹,让灯光跟随人物的运动轨迹,实现追光的效果。
4.创建一个动画状态的对象,把已创建的动画对象与动画状态对象进行关联,并通过动画对象进行动画播放控制。
追光灯效果如下图所示:
3.2 灯光节点动画实现
舞台灯光设计师通常要进行动态灯光效果的设置,在舞台的不同位置添置灯光,设置灯光在不同时间段的特效,朝向,种类等效果。应用节点动画的技术,设置灯光节点在每一帧下的信息,设置完毕后,播放整个节点动画[4]。
灯光节点动画效果如下:
图4 灯光节点动画
3.3 场景动画实现
场景中如果只有灯光动画的话,舞台效果就会显得单薄,因此需要系统提供场景动画的设置,使得场景效果也能加到动画序列中来,整体舞台动画效果也更为丰富多彩。
场景动画重点要设置动画的时序、状态、场景效果三个要素,系统会在设置的时间段内播放相应场景效果,并根据时序改变场景效果状态。
场景动画效果如下:
图5 系统场景动画
下面用流程图来展示系统动画的实现过程:
图6 系统动画实现
在添加一个元动画的时候,系统会根据用户的设定添加元动画,根据元动画的种类进行动画属性设置与打包,最终添加到动画序列中。动画播放过程中,系统会判断并显示每个元动画的各个属性值以及运行状态,在动画播放完毕后,用户可以对动画进行重新编辑,并再次播放。
4 系统动画定制
4.1 系统动画定制时序
舞台动画效果模拟主要由以下部分组成:
图7 舞台动画效果
动画播放时,会根据各个元动画的时序和状态,决定动画播放顺序[5]。
具体定制播放时序图如下所示:
图8 动画定制时序图
系统会首先进行动画定制环境的初始化,对动画序列所需的程序和数据进行准备工作。
然后根据用户选择的动画种类,针对场景动画和灯光节点动画分别给用户提供不同的动画定制方案。
用户选择想要定制的动画并对动画中各个参数进行设置后,便可以把相应的动画加入动画序列中,又系统进行整体调度。
系统根据动画起始时间,运行时长和优先级对动画序列进行调度,设定各个元动画的优先级。
最终播放动画的时候,系统会实时记录各个元动画的播放状态,并在交互面板上通知设计者。
4.2 用户动画定制流程
根据系统实现,用户定制动画的流程如下图所示。
首先系统会进行动画定制环境的初始化工作,将动画序列清空,并准备动画所需资源。
接下来用户会添加元动画到动画序列中,这里元动画有两个种类,场景类元动画和灯光类元动画。用户选择想要添加的动画种类,然后可以设置相关元动画的各项参数信息。
图9 动画定制流程图
对于添加灯光类元动画,用户有多种不同种类的灯光可以选择,例如聚光灯动画、追光灯动画、柔光灯动画等。选定灯光种类后,用户可以对灯光相关参数进行设置,包括灯光颜色、强度、中心角、照射范围、旋转角度等。灯光动画同样支持一灯多动画,即一盏灯可以在不同的时段播放不同的灯光动画效果。用户设定时只需在不同的时间段,给同一个灯光节点赋予不同的灯光参数即可。
对于添加场景类动画,用户可以对常见的场景特效作为动画进行添加,这样舞台就可以在特定的时间播放场景动画。用户设定时只需设定场景动画的种类和播放时段,场景特效便能在特定的时段播放。
动画播放时,用户可以在前端观察每个元动画的播放状态。动画播放完成后,用户同样可以对现有动画序列进行重新设定和播放,支持任意元动画以及动画序列的可重入功能。
5 结束语
随着三维仿真技术的不断发展,专业舞台灯光领域也跨入了全面的数字化时代。系统建立虚拟仿真3D舞台,对舞台灯光设计及调整进行实时呈现,同时为舞台灯光设计师提供了丰富的系统交互功能,能够很好的解决这一难题。
本文在全面模拟舞台灯光效果的基础上,重点介绍了舞台场景灯光动画效果的模拟。对于追光灯动画,灯光节点动画,场景动画以及整体动画序列的定制与播放进行了阐述,并对具体动画播放的效果进行呈现。这样舞台灯光设计师能够灵活的定制想要的动画效果,并设置动画播放的时间顺序,在任意想要的时间播放。
系统在架构,友好性以及系统效率与稳定性方面都有一定的优势,无论是对于灯光设计师、演出导演、灯光控制操作者,还是对于灯光美术教学和做灯光效果演示等都是一个非常专业且实用的设计工具和得力助手。
[1] 金小刚,鲍虎军,彭群生.计算机动画技术综述[J]. 软件学报,1997,8(4):241-251.
[2] D Heam,P Baker.Computer Graphics C Version,2nd Edition[M]. 北京:清华大学出版社,1998.
[3] 范岩萍,罗学科,杨方廷.基于MultiGen Creator的复杂飞机模型建模方法研究[J].北方工业大学学报.2009,21(3):14-18.
[4] T Coleman.MAYA角色动画技术[M].北京:清华大学出版社,2000.
[5] R Fernando.GPU精粹——实时图形编程的技术、技巧和技艺[M].北京:人民邮电出版社,2006:100-106.