Director 6.0动画制作手册 谢成开 1999年 第52期 01版 #1一、动画制作原理 动画是多媒体中的一种很好的表现形式,也是深受人们喜欢的一种影视形式,以“米老鼠”、“唐老鸭”、“狮子王”为代表的优秀动画片轰动了全世界,其独特的艺术形式深深的吸引了儿童,乃至老人的钟爱。动画制作的原理是将一连串的画面顺序快速地播出,这些画面相似却又稍有不同、利用人眼的视觉暂留特点来产生动的感觉。动画的制作是在完成画面的制作之后将画面连接起来。按照人眼的视觉迟滞时间推算,必须每秒钟播放24幅画面才不会感觉到画面间的跳动,这样制作1分钟的动画就需要绘制1440幅画面。制作的过程中,前后相邻的画面十分相似、所以大量的工作是重复的。利用计算机来制作动画,并不是让它来做所有工作,它只是帮助人们来做这些重复的乏味的工作,为动画制作者节约大量的时间,使之能把主要精力放在画面的设计和情节的构思上,提高动画的艺术水平和制作水平。 从大类来分,制作动画的常用方法有三种:一是画面接画面制作,这种方法是按照设计的情节和动作绘制出每一个画面,这是最早的动画制作方式,尽管它显得十分笨拙,但可以做得十分细致精美,因此它在动画制作上还占有十分重要的地位。二是关键帧动画制作,它只需要制作出关键帧画面,其余的画面由计算机根据设定的参数和数据自动生成,这种方式具有速度快、自动化程度高的优点,但所生成的画面有一定的局限性,不一定能满足设计的要求。三是实时录制方式,这种方式是利用软件提供的功能,在拖动动画演员光标的同时,由计算机记录下演员的动作并自动生成相应的画面,这种方式具有较高的录活性,但要制作者具有很高的光标拖动水平和经验,同时也要有高精度的光标控制设备,若用普通的鼠标器是很难得到满意结果的,必须把握好光标的拖动位置和速度才可能制作出好的动画。 Director 6.0是一个多媒体开发工具,在动画制作方面很有特长,它提供了多种动画制作的方法,主要有逐帧动画、实时录制作动画、单步动画、关键帧动画、旋转与变形动画、转场动画、文字动画、颜色动画等。其动画制作以电影中的舞台、演员角色、帧等概念来实现,很容易理解,且操作简单方便,是动画制作软件中的佼佼者。 #1二、逐帧动画 逐帧动画方式是需要绘制出动画的每一幅画面,由于相邻两画面间的差异较小,所以大量的是重复劳动,为了减少这些重复劳动,并保持两画面间的动作的连贯性,Director提供了透明纸(Onion Skin)功能,也有人把它称为洋葱皮,因为洋葱皮是一层一层的,都很薄,上层能透出下层的颜色、筋络。有了透明纸后,绘制一个新画面时,上一个画面的影子好像存在下一层中,似乎新的画面是一张半透明的画布蒙在上一画面之上。这样,在制作新的画面时能看到与上一画面间的相互位置关系,为画面动作、形态的连贯性提供了保证。 Director 6.0的透明功能操作步骤如下: 1.打开绘图窗口(按Ctrl+5),并使之成为当前窗口。 2.打开视图菜单,选择Onion Skin,弹出一个透明纸工具条窗口(^520112a^1)。 窗口中按从左到右次序各工具按钮的功能如表1。 表1 透明纸功能钮 次序 功 能 1 透明纸工具开关,按下时可使用 透明纸方法绘图,此时,选定的 背景和参考演员都会在绘图窗口 中以虚像的形式显示出来。 2 设定同时显示的以前的参考演员 成员数目,与当前的画面离得近 的演员就显示得清楚一些,离得 远就显示得模糊一些 3 设定同时显示的以后的参考赏成 员数目与当前的画面离得近的演 员就显示得清楚一些,离得远就 显示得模糊一些 4 选定当前的演员为背景演员 5 显示背景演员作为参考 6 将当前的背景演员和前台演员作 标记,以后每次使用前台演员的 时候,都会自动调用对应的后台 演员 使用透明纸制作动画的步骤如下: 1.打开绘图窗口(Ctrl+5)。 2.从视图(View)菜单中打开Onion Skin工具条。 3.使用绘图窗口绘制或通过左上部的左右键按钮得到作为参考的背景演员、使它出现在绘图窗口中。 4.在透明纸工具条中用鼠标左键单击透明纸开关,启动透明纸绘图功能。 5.用鼠标左键单击透明纸工具条上的第2个按钮,使当前的演员为背景。 6.用鼠标左键单击透明纸工具条上的第三个按钮,使选定的背景显示出来,此时的背景,是一个虚像。 7.参考当前的背景创建其它的演员成员。每次绘制完当前的演员成员后点击绘图窗口左上部的“+”按钮,就可以直接进行下一个演员成员(下一个动画画面)的创建。 定位在动画制作中是十分重要的,Director 6.0中表示位图在屏幕上的位置是通过定位点的座标来确定的,缺省情况下定位点是设在位图的中心,但用户可以通过绘图窗口中的定位工具重新设定。在生成动画时是以定位点为依据的,演员运动的抛迹便是定位点的轨迹。因此,在使用透明纸功能制作动画时必须注意将前景演员和背景演员的定位点重合在一起。 在所有画面制作完成之后,打开演员窗口(Ctrl+3),用鼠标右键点击动画的第一个画面,然后按住SHIFT键,再用鼠标左键点击最后一个动画画面,选中动画的所有画面演员,打开修改菜单(modify),选中Cast to Time项,则立即生成动画。打开控制面板(Ctrl+2),按下播放按钮,立即可以看到动画效果。 #1三、实时录制动画 实时录制,就是把使用光标控制设备(鼠标、数字化仪等)在舞台上拖动角色的过程自动化录下来。比如您想制作一小球呈螺旋状前进的效果,你只需要绘制一个小球演员,开始录制后,你只要拖动小球按照需要的轨迹移动即可。动画的效果取决于你对光标的控制水平和录制采样的时间间隔。对光标的控制水平体现在位置的准确性和移动速度的均匀性上,它们都是动画质量的关键因素。采样的时间间隔是指每秒钟记录多少次被拖动演员的位置数据,若此值少于24,则动画必定有跳动感,这个间隔的设置是通过播放控制面板的播放速度参数窗设定。 实时录制动画的创作步骤如下: 1.打开绘图窗口(Ctrl+5),绘制一个小球演员。 2.打开演员窗口(Ctrl+3),并将小球演员拖到舞台上。 3.打开播放控制面板(Ctrl+2),设定录制采样速度,一般设为30帧/秒左右。 4.打开控制菜单(Control),选择Read-Time Recording项,打开录制开关。 5.在舞台上按照要求的路径拖动演员,直到完成为止。停止拖动后、控制面板自开始播放刚才录制的动画。 按下播放控制面板的停止按钮,停止动画的播放,此时我们可以在舞台上看到小球运动的轨迹图(^520112b^2)。轨迹线上的小圆圈代表自动录制的帧位置,每一个帧都是一个关键帧。从图中可以看出:帧之间的距离不够均匀,这说明画面运动的速度也不均匀。 实时录制是一种很方便的动画制作方法,动画的效果取决于对鼠标的控制,这既是优点,也是缺点,优点是简单方便,缺点是难以控制,动画的效果不够理想,正因为如此,在实际的动画制作中,实时录制采用并不多。当然,在一些要求不高的动画中,本法会给你带来极大的方便和动画的制作速度。 #1四、单步动画 单步录制动画是为了实时录制动画中难以精确控制的缺陷而产生的,在这种方法中我们可以控制每一帧的位置,能提高控制的精确度,但录制的过程较为麻烦。 单步录制动画的创作步骤如下: 1.打开绘图窗口,绘制要制作动画的小球演员。 2.打开演员窗口,将演员拖到舞台上。 3.打开播放控制面板,单击左上方的前进后退按钮,将录制磁头位置设定在动画的开始帧上。 4.打开控制菜单(Control),选择Setp Recording项,使进入单步录制状态。 5.按下播放控制面板的前进按钮,使录制磁头前进一帧,然后拖动演员到目的位置,这样使录制好了第一帧。以后不断重复上述过程,直到录制完所有的帧数。 动画录制完成之后,在舞台上选中演员,可以看到小球演员运动的轨迹线,线上的小圆圈代表录制的每一个帧,这些帧都是关键帧,可以拖动这些小圆圈改变其在舞台上的位置,以达到理想的效果。当然这种方法也适合实时录制动画中的轨迹线编辑,以改善其效果。 在单步录制过程中应注意,按播放控制面板的回退键或在其它地方点击鼠标均会终止单步录制,说明在录制过程中是不能对录制好的画面进行编辑的。另外,若需要增加动画的长度而不改变原先的动画,可以直接在编排窗口(Ctrl+4)的动画演员通道中拖动最后一帧来延长动画的帧数,在缺省情况下,系统会自动填充中间的帧。 上述的单步录制方法只能看到演员的轨迹线,而不能看到前后画面演员的相对位置和遮挡关系,直观性仍然不够,动画录制时仍有较大的盲目性。为了改变这一不足,Director 6.0提供了从空间到时间(Space to Time)的单步录制方法,其步骤如下: 1.打开文件菜单(File),选择参考设置项(Proferences),再选其中的角色子项(Sprite),打开角色设置窗口,将其角色生成期设定为1帧。 2.打开演员窗口,将动画演员拖入舞台,放在动画的第一帧位置上。再拖入该演员到舞台的第二帧位置上,重复此过程,直到所有帧制作完毕。在这个过程中,可以随时对任意一帧的位置进行拖动调整,甚至它的大小、颜色、混合值等都可调整,具有极大的灵活性。 3.在舞台上用框选的方式选中所有拖入舞台的演员。 4.打开修改菜单(Modify),选择空间到时间项(Space to Time),此时弹出一个相应的对话框,要求输入两录制帧间要插入的帧数,当然,中间的插入帧由系统自动完成。参数输入后,点击OK按钮则自动生成了所需要的动画。 动画制作完成后,在舞台上点击动画演员,仍可看到运动的轨迹线,线上有大小不同的两种园圈,大的是我们录制的帧,它是关键帧,可以编辑,小的是系统自动生成的帧,它不是关键帧,不能对它进行独立的编辑。 #1五、关键帧动画 关键帧动画是指两个关键帧画面角色属性质发生变化而产生的动画。角色属性质包括角色在舞台上的位置、大小、混合值、运动的轨迹、运动的速度几个方面。任何两关键帧之间都可以形成由这些参数变化引起的动画。关键帧之间的画面由系统自动生成,并且均匀分布在两关键帧之间的运动轨迹上。 关键帧动画的创作步骤如下: 1.打开绘图窗口,绘制一彩色小球演员。 2.打开演员窗口,将小球演员拖到舞台上。 3.打开编辑窗口,拖动小球演员所在通道的最后一帧,直到动画所需的帧数为止。 4.根据设计的要求插入多个关键帧。插入关键帧的方法是:在编辑窗口中,在动画演员所在通道上点击所需插入关键帧的位置,此时代表播放头的红线便出现在该帧上,然后在该位置上按下鼠标右键,弹出快捷菜单,选择其中的插入关键帧(Insert Keyframe),此时便插入了一个关键帧。可以在通道上看到出现了一个小圆圈,这便是关键帧的标记。如果对关键帧设置的位置不满意,可以选择快捷菜单中的删除关键帧项(Remove Keyframe),将该关键帧从通道中删除。 5.回到舞台上,点击动画演员以选中它,此时可以在演员的定位点上看到红色、绿色的小圆点,其中红色代表的是动画的最后一帧,绿色代表的是动画的第一帧。分别把它们拖到要求的位置,这时你可以在轨迹线上看到其它一些小圆圈,它们是动画中间的关键帧,分别把它们拖到要求的位置上。 6.在舞台动画演员的位置上按下鼠标右键,弹出快捷菜单,选择角色夹映面板(Tweening),此时弹出一个角色夹映面板(Sprite Tweening),在此面板中可以对插入画面的控制参数进行设置。在Tween项目中,路径参数(Path)项是指可以控制两关键帧之间轨迹的形状及起止与终止速度;Size项是指可以改变两关键帧之间演员的大小来形成动画;Blend项是指可以改变两关键帧之间的混合值来形成动画;Foreground color和Background color可以改变前景和背景形成动画。Curvature是改变运动轨迹的曲度,它必须在Tween中选择了Path子项后才有效,滑块向左边移动表示运动轨迹接近直线化,向右边移动表示更曲线化,其下的Continuous at Enddoints是控制运动曲线在关键帧处的连续性。Speed项是动画速度,有平滑改变(Smooth Changes)和尖锐改变(Sharp Changes)两种选择,总之,Continuous at Endpoints、Sharp Changes和Smooth Changes共同决定了运动轨迹曲线的形状,它们都必须在前面选择了Path项后才有效。在面板下方的Ease in项设置运动的加速度,滑块向右拉加速度越大,Ease out设置了运动的减速度,即越接近终点运动速度越慢 ,其滑块向右移减速度就大。Ease in和Ease out两个滑块是相互制约的,当一个值加大到一定程度时,另一个值自动减少,这从滑块位置的移动中可以观察到,在本例小球的运动动画中,我们选择Path、Size、Blend三项动画参数,将曲度滑块移到中间位置,将Ease in和Ease out滑块移到中间位置,使之形成小球从远处飞近速度越来越快,然后又飞向远方,速度越来越慢的视觉效果,这更接近于真实的感受。 7.在舞台动画演员处按下右键,在弹出的菜单中选择性质(Properties)项,弹出一个角色性质参数面板,设定大小(Size)和混合值(Blend)参数。设定大小(Size)参数时可以通过宽、高的象素点数和放缩比例系数两种方式,比例系数是以百分数的形式表示。混合值的设定是以百分数的形式表示,此值越小画面越模糊。本例中我们表现的是小球由远到近,又由近到无的动画过程。因此,在起始关键帧处的大小值设定为0%,混合值设定为50%,中间关键帧大小值和混合值均设为100%,终止关键帧设置与起始帧相同。 完成上述步骤之后,我们便可以播放动画,看到一小球从远处飞来,图像越来越大,画面越变越清晰,且运动的速度逐渐加快,到达视觉的最近处之后,看到小球飞向远方,图像渐渐模糊,尺寸越来越小,运动速度也逐渐变慢,直至消失在远方(^520112c^3)。 #1六、旋转动画 旋转是日常生活中常见的一种运动方式,如汽车轮胎、游戏转盘、时针指针等都是以旋转方式运动的。在制作这类动画时,Director 6.0提供了一种十分方便的制作方式,其创作步骤如下: 1.打开绘图窗口,绘制出要作旋转的演员。 2.在绘图窗口中将矩形选择工具的状态设为收缩(Shrink),然后用此工具拉出一个矩形套住刚才绘制的演员,此时会看到绘图窗口上方原来灰色的许多按钮变得可用了。 3.选择绘图窗口上方标有旋转符号的按钮(有顺时针和反时针之分),此时选择的矩形框变成虚线并闪动,四个角上出现了一个小方框,拉动任一小方框进行旋转,直到满意为止。 4.打开Xtras菜单,选拔自动畸变(Auto Distort)项,弹出一个参数面板,输入需要的动画帧数,按下开始(Begin)按钮,此时自动生成动画的各个画面。 5.打开文件菜单,按单步动画方法将角色生成期设定为1帧。 6.打开演员窗口,将所有动画画面的演员全部选择,并将其拖动到舞台适当的位置。至此动画制作完毕,可以播放观看动画效果。 #1七、变形动画 变形动画是动画演员形状发生变化过程的演示。Dirctor 6.0提供了透视变形、拉伸变形、斜切变形三种变形方式,能从变形过程自动生成动画,其创作方法和步骤与旋转动画类似: 1.打开绘图窗口,绘制变形动画的第一帧所需演员。 2.将矩形选择工具的状态设为Shrink,并用此工具拉出一选择框套住绘制的演员,此时变形工具按钮变为可用(^520112d^4)。 3.选择所需的变形方式按钮,拉动矩形框角上的小方块进行变形操作,直到满意为止。 4.打开Xtras菜单,选择Auto Distort项,填入所需的动画帧数,按开始(Begin)按钮,自动生成动画的各个画面。 5.打开演员窗口,选中自动生成的所有演员。 6.打开修改菜单(Modify),选择Cast to Time项,此时动画演员自动出现在舞台上。至此,可以播放动画以观察其效果。 从上可以看出:变形动画的制作确实很方便,遗憾的是变形方式还不够多,常常不能满足我们的设计需求,加之变形方式不能同时迭加使用更导致了制作动画的局限。 #1八、转场动画 转场是影视制作中的一种常用方式,就其本身的含义而言,它是从一个画面过渡到另一个画面,其过渡的过程就是一种动画。Director 6.0提供了多种转场方式,不同的转场方式形成不同的动画效果。转场方式分为覆盖(Cover)、分解(Dissolve)、推出(Push)、透开(ReVeal)、条纹(Stripe)、擦抹(Wipe)和其他(Other)七类,每类方式中还有多种形式,因此转场动画是十分丰富的,应用也较灵活,只有充分理解了各种方式的意义之后才能应用自如。下面以太阳从地平线升起的过程为例,说明转场动画的制作方法和步骤。 1.通过引入(Import)或打开绘图窗口绘制一个地平线演员。按绘图窗口的+按纽再制作一个太阳演员。 2.打开演员窗口,将地平线演员拖入舞台的合适位置并打开编排窗口(Score)使该演员从1通道的第一帧开始。将太阳演员拖入舞台上,并在编排窗口中使其从第二通道的第二帧开始。这样,从第二帧开始可以看到太阳演员和地平线演员,且太阳演员刚好在地平线演员上方,在场景上第一帧和第二帧之间就需要完成转场。 3.在编排窗口中打开效果通道,使转场通道显示出来,在转场通道第二帧的位置上双击鼠标左键,弹出转场方式设置面板。在该面板中,左边是转场的类型选择窗,右边是每种类型的转场方式选择窗。在下方有两个滑块,Duration和Smoothness,前者是设定转场过程的时间,单位以秒计;后者是设定转场效果的平滑度。最底边的效果(Affects)项有两个选项,一项是整个舞台(Entire Stage),另一项是只改变变化区域部分(Change Area Only),前一项是对整个舞台上的画面进行转场,后一项是只对画面变化的部分进行转场,这在动画制作中是十分有用的,它产生的动画效果不影响原有的背景画面。本例中太阳从地平线的升起就要用到这个选项。我们选择类型覆盖(Cover),选择方式为向上覆盖(Cover UP),设定转场时间(Duration)为2秒,将平滑度滑块拉到最左边,选择Chand Area Only项,按下OK按钮。 至此本转场动画制作完毕,按下插放键可以看到鲜红的太阳从地平线上冉冉升起。转场动画的效果十分丰富,有兴趣的读者可以试试其它转场方式的动画效果。 #1九、文字动画 在Director 6.0中,文字本身也是一种演员,前述的各种动画方式自然也适合做文字动画,但Director 6.0还专门提供了文字动画生成器,利用这个生成器做文字动画更为方便。文字动画生成器可以生成多种文字动画效果,如片头、片尾的文字介绍,制作组信息、片名等。它们的一般制作过程如下: 1.打开编排窗口,在文字动画起始的通道和帧数对应的小方格内单击鼠标左键,以确定文字动画的编排位置。 2.打开Xtas菜单,选择文字动画生成器(Wizards)项,选择其中的Animation WiXard子项,弹出一个文字动画生成器面板。 该面版的最上一排按纽是文字动画的方式,有Banners、Zooms、Credits、Bullets四种,Banners方式制作的文字动画可以将文字从上、下、左、右四个不同的方向推入推出;Zooms方式可以将文字制作成逐渐放大、逐渐缩小、先放大后缩小以及先缩小后放大四种动画方式;Credits方式将文字上卷呈现或单行逐一呈现,它需要两个编排通道,因此在制作这种动画时在前一步应预先选择两个编排通道;Bullets方式可以生成DInstant、Wipe、Roll和Ripple四种文字动画效果,Instant是通过转场而出现的文字;Wipe是自上而下展开文字;Roll是自右向左逐行推出文字;Ripple是自右向左错落推出各行文字,但最终自动对齐。面板上的style窗口设置文字字体,通过上下拉动滑块可以选择所需的字体,但遗憾的是没有中文字体可选。Text窗口是动画文字的输入窗口,在输入文字时要注意格式和行数,在Credits方式中每行文字要有一个冒号,在Bullets方式中每输入一行文字就需要一个编排通道,在第一步中要预选足够的通道数。面板左下角的FPS设定动画的播放速度,Seconds是动画的秒数,此两项的乘积便是实际制作出的动画帧数。Base line是文字动画运动的轨迹距离舞台上边缘(左右运动)或距离舞台左边缘(上下运动)的距离,这个距离可以在生成动画后在舞上拖动演员来改变。 3.按下面板上的Creat按钮便自动生成文字动画,且自动播放出动画效果。 4.在上一步中我们没有解决中文字体、文字大小、文字颜色及文字修饰等问题,在这里借助其它方式来解决。首先在编排窗口中双击文字演员,此时弹出文字演员编辑窗口,在该窗口中可以选择所需的中文字体和文字大小,然后删除原有的英文,重新输入相应的中文。用鼠标刷黑输入的文字,选择文字修饰效果,如加粗、倾斜、加下画线等,按所需的对齐方式、字间距、行间距的大小选择相应的按钮,填入相应的数据。达到自己的编排要求后,打开窗口菜单(Window),选择工具面板项(Tool Palette),弹出一个工具面板。 在工具面板上点击前景色方框,在弹出的调色板中选择所需的颜色,此时动画文字的颜色便随之变化。 5.重新播放动画,可以看到新的动画文字效果,如不满意,可以再回到上一步重新修改和设定。 对于Zooms方式产生的文字动画,其形成的演员是位图式的文字,在编辑窗口中双击此演员时会弹出绘图窗口,在这里装饰效果及颜色的变化更为灵活,可以将文字变形,每个字填上不同的颜色,甚至可以配上各种背景图片。 #1十、倒片动画 物体的运动都有正反两个方向,汽车的前进与后退、弹跳的小球、往复运动的各种机械设备等,在这些运动中,典型的特征是具有对称性,也就是说一个方向的运动是另一方向运动的倒片效果。Direcfor 6.0在制作这类动画上提供了一种十分简单的办法。倒片动画的具体创作步骤如下: 1.采用前述的各种办法制作出一个方向的动画。 2.打开编排窗口,选中动画所有的通道及画面方格,按住Alt键,将其拖到动画最后一个画面之后的第一个小方格,使复制的画面与已制作好的动画画面相连。 3.打开修改菜单(Modify),选择Reverse Sequence(倒序)项,此时,被选中的复制画面的顺序自动颠倒过来,得到另一方向运动动画的各个画面。 4.播放动画,我们看到的是一个运动的全过程,至此动画制作完毕。 #1十一、颜色动画 每逢佳节,五彩缤纷的霓虹灯曾给我们留下了美好的记忆,各种色彩的灯光在不停的移动,形成了各式各样美丽图画。Director 6.0实现这类动画十分方便、快捷,其创作步骤如下: 1.打开绘图窗口,双击前景色框,弹出一调色板,依次选择一种颜色绘制一小圆圈,使绘制的小圆圈组成一个大圆圈。 2.打开修改菜单(Modify),选择其上的Transform Bitmap项,出现一位图转换面板,在该面板中设置颜色深度(Color Depth)为8 bits,然后按下Transform按钮,在出现的警告性提示中按OK按钮,这样就将绘制的演员转换为了256色模式。Director循环颜色动画只能工作在256色模式。 3.打开演员窗口,将绘制的演员拖到舞台上合适的位置。 4.打开编排窗口,并打开效果通道,在效果通道中有一个彩色方块的通道便是调色板通道。 5.在调色板通道上双击与演员起始帧同一列的小方块,此时弹出一个调色板(Palette)设置面板。 在该面板中的Action项中,选择Color Cycing;在Rate项中将滑块移到5秒处,这一时间是彩色循环动画的时间长度;在Cycles项中,将值设为3,表示颜色的循环次数;在Option项中,选择loop项,表示要作循环动画;最后在左上方的调色板内选择在桧画窗口中用到的所有颜色选择的方法是单击第一个色块之后,按住shift键点击最后一个色块。 6.为了使动画能正常工作,必须将显示卡也设置到256色模式,为此打开Windows的开始菜单,选择控制面板,在控制面板中双击显示图标,将系统颜色设为256模式。 7.回到Director 6.0,按下播放按钮,可以看到绘制的演员颜色在不停的循环移动,但同时我们也看到屏幕上的其它部分的颜色也在不断发生变化,这也是Director 6.0颜色循环动画的不足之处。 #1十二、Lingo语言实现动画 Lingo语言是Director提供的一种编程语言,它是一种易于理解的面向对象的程序设计语言。可以直接用Lingo语言代码来实现动画。Lingo语言是一种脚本语言,它分为电影脚本(Movie Script)、演员脚本(Cast Script)、帧脚本(Score Script)及行为脚本(Behavior)。电影脚本中的Lingo程序是电影一开始播放时便开始执行。演员脚本中的Lingo程序只有当在该演员上发生了程序中指定的事件时才开始执行。行为演员实际上是角色角本(Sprite Script),在这里我们应该明确演员与角色的区别,演员是存在于演员窗口中,它是我们通过绘画窗口绘制的位图或是通过外部引入的图像、声音、视频、文字等,甚至调色板、行为脚本都是演员;角色存在于舞台上,当我们从演员窗口中把演员拖到舞台上时它就成为了一个角色,再把同一演员拖入一次,它就成为了另一个角色但分别具有不同的脚色名称,这和我们现在拍摄的影视类似,一个演员可以在同一剧目中担任多个角色,帧脚本内的Lingo程序只有当电影播放到该帧时才可能执行,它通过编辑窗中的脚本通道进行录入和修改。 Lingo编写的程序必须依靠事件的驱动才能执行,当有事件发生时,系统就会发生相应的消息到各个脚本程序,它们接到的消息与程序内的事件相同时便执行相应的程序代码。Director 6.0提供的事件消息如表2。 表2 Director 6.0的事件消息 消 息 事 件 Mouse Up 鼠标键被松开 Mouse Down 鼠标键被按下 Right Mouse Up 鼠标右键被松开 Right Mouse Down 鼠标右键被按下 Mouse Enter 鼠标光标进入角色所在的范围 Mouse Leave 鼠标光标离开角色所在的范围 Mouse Within 鼠标光标在角色的范围之内 Key Up 键盘上一个键被松开 Key Down 键盘上一个键被按下 Prepare Frame 播放指针播放完成当前的画面但是还没有 进入下一幅画面 Enter Frame 播放指针开始播放当前的画面 Enter Frame 播放指针开始播放当前的画面 Exit Frame 播放指针播放完当前的画面 New Event 收到特殊的消息(可能是未定义的) 除了系统提供的事件消息之外,用户还可以自定义自己的事件消息,例如: on mouse up My sound End on My sound Beep End 当程度执行到第二行时会发出一个消息My sound,这是一个自定义的事件消息,此时第四行的程序接到消息后开始响应,发出声音。有编程经验的读者会发现这和其它语言中的子程序调用是一回事。 Lingo语言实现动画是通过在程序中控制角色的属性来实现的,如通过控制角色的位置属性可以使角色移动,控制角色的大小属性可使角色实现放缩动画。角色的属性有很多,请读者查阅有关资料。 下面我们给出一个用Lingo语言实现动画的例子,在本例中利用了角色的位置属性locv和loch,使控制的角色做圆周运动。具体操作步骤如下: 1.打开绘图窗口,绘制一个喜欢的动画演员。 2.打开编排窗口,并打开其内的效果通道,在第一帧对应的帧脚本通道的第一个方格内双击左键,此时弹出帧脚本编辑窗口,在该窗口内输入下列代码: on ExitFrame go to the Frame End 上述代码的作用是当动画要离开第一帧时使播放头又回到第一帧的位置上,这样的结果是动画在编排通道内永远位于第一帧的位置上。 3.打开演员窗口,选中刚才绘制的演员,并在该演员框内按下鼠标右键,此时会弹出快捷菜单,在该菜单上选择Cast Member Script项,之后会弹出演员脚本编辑窗口,在该窗口内输入如下代码: On mouse up Puppet Sprite 1,True Set the Visible of Sprite 1 to True Put pi()/360 into increment Put 1 into repeatFactor Pub incrment*repeatFactor into increment Put 0 into Angle Put 320 into Xcent Put 240 into Ycent Put 200 into size repeat with i=1 to 720/repeatFactor set the loch of sprite 1 to X cent+sin(Angle)*size set the locv of sprite 1 to Y cent+cos(Angle)*size updateStage Put increment+Angle into Angle end repeat PuppetSpritel,False Puppet Sprite 1,falst end 从上面的程序代码中可以看出:作圆形运动的演员是以点(320,240)为圆心,以200为半径。通过调整repeatFactor的大小,可以调整运动一周的步数,步数越多运动越平滑。 4.打开演员窗口,把绘制的演员拖入舞台,使之成为角色。 5.按下播放按钮,播放影片,此时我们看到演员并没有运动,且在编排窗口上看到播放头始终在第一帧的位置上,这是因为有了脚本的缘故。演员没有运动是因为没有事件的驱动,它需要按下并松开鼠标来驱动,现在我们将光标移动到舞台上角色的范围内,按下并松开鼠标左键,此时就会看到角色在作圆周运动了。 #1十三、综合实例一——家庭电子影集 影集是每个家庭的必备之物,它记录着家庭每个成员的生活、生长及各种人生经历。Director 6.0很方便为我们制作一个家庭电子影集,其具体制作步骤: 1.将家庭成员的照片扫描保存在硬盘上备用。 2.按文字动画的制作方式将家庭影集四个字制作为放缩文字动画。 3.将家庭成员的照片以外部引入的方式装入到演员库。具体方法是:打开文件菜单(File),选择其中的Import项,在弹出的对话框内选择照片的所有文件名,再按下Import按钮。 4.打开演员窗口,将家庭成员的照片以成员为序依次排在文字动画演员之后。每个家庭成员选择一幅照片作为主索引照片,将它们从演员窗口拖入到编排窗口文字动画演员的最后一帧对应的2、3、4……通道,并将其角色生成期缩短到一帧。这样做的目的是文字动画,演员放大到最后一帧时可以和各家庭成员的索引照片同时显示在屏幕上。设置索引演员的目的是为了我们选择浏览照片。 5.在编排窗口内打开效果通道,在文字动画演员最后一帧的上方设置标记“start”,在父亲照片的第一帧上方设置“Father”标记,在母亲照片的第一帧上方设置“Mother”标记,在儿子照片的第一帧上方设置“Son”标记。接下来要在帧脚本通道内编上一些Lingo语句,有文字动画演员的最后一帧上录入如下语句: on Exit Frame go to the Frame End 上述代码的作用是当文字动画播放完后将影片定格在这一帧上,等待我们选择。 在每个成员照片的最后一帧上输入如下语句: on ExitFrame go to “start” End 上述代码的作用是播放完某一成员的所有照片之后转到文字动画的最后一帧,以便再选择浏览其它成员的照片。 为了使我们的影集更生动活泼,我们在转场通道内给两张照片间设置上不同方式的转场,使之产生动画效果。 6.打开演员窗口,选中父亲的索引照片演员,给该演员输入如下演员脚本: on mouse up go to “Father” End 上述代码的作用是:当在索引演员上按下鼠标松开时转动父亲照片的第一帧上,开始播放父亲的所有照片。同理在母亲和儿子和索引照片上输入下列Lingo语句: 母亲: on mouse up go to “mother” End 儿子: on mouse up go to “son” End 7.回到编排窗口,将播放磁头移到文字动画演员的最后一帧上,此时在舞台上去拖动各主索引成员照片,以调整好在画面上的位置。按下播放按钮,此时我们看到文字动画开始播放,文字逐渐变大,最后定格在最后一帧上,在这一帧的画面上我们看到了各成员的主索引照片,我们只要将光标移动到某一成员上并按下鼠标松开,这一成员的照片便开始依次播放,并看到每两张相邻照片间有各种转场动画。有兴趣的读者可以在声音通道上配上不同的音乐,使影集更加完美。 #1十四、综合实例二——听从指挥的小猫 本例将制作的动画是小猫在你鼠标的指挥下进行跳动。 1.打开绘图窗口,在该窗口内绘制向左跳动的动作,每一动作作为一个演员,绘制时采用洋葱皮技术。 2.打开演员窗口,选中刚才绘制的演员,再打开Modify菜单,选中Cast to Time项,在舞台上可以看到已有小猫演员。 3.打开编排窗口,在小猫演员所在的通道内,向右拖动最后一帧,使其达到20帧的长度。 4.回到舞台上,右击小猫图片,此时在弹出的菜单上选择Cut sprites项,将动画剪帖到剪帖板上。 5.在演员窗口上选择一空白方格,在此方格内按鼠标右键,此时会弹出一循环胶片,对话框(Creat Film Loop),在Name框内填入循环胶片的名称Cat,再按OK按钮。此时在演员窗口上我们可以看到刚才形成的循环胶片演员Cat。 6.删掉舞台上的各种演员,将Cat演员从演员窗口中拖到舞台上。 7.在编排窗口中Cat所在的通道内,移到其第一帧的位置,在同一列的脚本通道方格上双击鼠标左键,此时出现帧脚本输入窗口,输入如下Lingo语句: on ExitFrame go to the Frame End 此脚本的作用是将动画定格在第一帧上。 8.打开window菜单,选择script项,弹出电影脚本(Movie scrept)输入窗口,在其内输入如下代码: on startmovie Puppet sprite 1,True end on mouseup set the loch of Sprite 1 tp the mouseH set the locv of Sprite 1 tp the mouseV update stege end 上述代码中,the mouseH是鼠标的横向位置属性,the mouseV是鼠标的纵向位置属性。从上面的两个set指令中看到:是把鼠标的位置坐标赋给了Cat这个角色,它的编号为1,所以用Sprite 1来表示。 9.按下播放按钮,我们看到小猫在原地不停地跳动,此时只要在左边的某一处点击鼠标左键,就会看到小猫就到你点击的地方跳动。当然你也可以在任何地方点击鼠标,只是我们在本例中只制作了向左跳动的动画胶片,跳动的动作可能与你点击的方向不协调。