寻声记:Scratch 3.0趣味编程之旅(全彩)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 造型的动画

吃饱喝足,呱呱喵的心情好了一些。

“感谢你的西瓜,尽管这西瓜不是彩虹色的。”

喵喵呱想了半天,想象不出彩虹色的西瓜什么样,但还是很有礼貌地回答:“不用谢。”

呱呱喵:“为了表示我的谢意,我给你唱首歌吧?”

说完也不等喵喵呱同意,张嘴就唱了起来:“许多小动物,在唱着歌~~喵呜,喵呜~~真快乐!”

喵喵呱赶紧捂住呱呱喵的嘴:“你别唱了,我听着你喵呜就闹心。”

呱呱喵不满意了:“那你来唱一个。”

喵喵呱很为难,一直都觉得自己呱呱的叫声不好听,没练习过唱歌。

“我不会唱歌。”喵喵呱坦白。

“那你出个别的节目。”呱呱喵这次很好说话。

“朗诵吧!”喵喵呱想了想,它觉得猫的朗诵挺好。然后拿出了第1章的朗诵作品放给呱呱喵看。

没想到呱呱喵一蹦三尺高:“你这是假唱!不对,还不如假唱呢。”

喵喵呱很茫然:“我这是朗诵。”

呱呱喵很生气:“人家假唱,起码嘴还在动,你这啥都没动。”

让嘴动起来这件事情其实不难做,但你要明白“动”是怎么回事。人的眼睛看到的影像会暂留一刹那,也就是说,实际图像消失之后,其影像还会暂时停留在眼前,这叫视觉暂留。利用这一原理,在一幅画的影像还没消失前,播放下一幅画的影像,就会给人带来一种“动”的感觉,如图2-30所示。

图2-30

喵喵呱:“这个一刹那是多久呢?”

通常来说,人看到的物体形象在1/24秒的时间内不会消失,所以每秒播放24张以上的连续画面,看起来就是连续的动作。

喵喵呱惊呼:“天哪!也就是说,我起码要为猫的嘴巴绘制24张画面才有动的感觉吗?”

不是这样的,虽然每秒24张画面号称全动画,但实际播放却并不是非常流畅。想要看到流畅的动作,每秒起码需要25~30张画面。而要想让所有的人都感觉不到卡顿现象,那就需要每秒60张画面。在Scratch 2.0中,以每秒30张画面来展示动画效果,而在Scratch 3.0中,这个数字变成了60。

喵喵呱:“我打算放弃了……”

不要被数据吓倒,动画片的制作通常采用“一拍一”、“一拍二”、“一拍三”这三种常见方式。解释一下,就是每一张画面拍几次,换算一下就是一秒24张画面、12张画面或者8张画面。

喵喵呱:“那也不少!”

平均每秒8张,那只是平均数字,这个数字根据要表现的内容是不断变化的。例如,通常的动作是8张,但激烈的动作可能是24张,静止画面只要一张就可以。如果是有关对话的画面,一般只要画嘴的小、中、大三个造型,也就是三张画面就可以。

图2-31

喵喵呱:“如果是这样,只需要张嘴和闭嘴两个造型就可以吧?

要求不高的话确实没有问题,而且在Scratch中延迟的时间一般控制在0.1秒就可以。现在打开第1章中猫的朗诵文件,切换到“造型”标签,你会发现这只猫本来就有两个造型,现在删掉一个。在造型缩略图上单击鼠标右键,选择删除,或者单击缩略图右上角的按钮都可以。然后复制第一个造型。

使用选择工具选中小猫,会发现只能选中小猫的整个头部。这对单独修改嘴的造型造成了不便。仔细观察发现,画布上方的拆散按钮是可用的,说明这种情况是因为小猫整个头部被合成了一个分组,我们只需要单击拆散按钮把分组打散,小猫的嘴部造型就被单独分离出来了,如图2-32所示。

图2-32

喵喵呱:“我单击了一次后完全没有效果!”

只要拆散按钮是可用的,就可以一直单击,直到你想要的效果出现。现在把画面放大一些,使用修改工具细微调整一下嘴巴的大小,就像图2-33所示的画面这样。

图2-33

调整满意之后,连续复制两次,复制出第三、四个造型。现在小猫有四个造型,其中造型2~造型4都是一样的。观察发现下,嘴巴的大、中、小三个造型已经有两个了,也就是大、中造型,现在来调整第三个,也就是小的造型。删掉嘴巴,重新画一条曲线就可以,如图2-34所示。

图2-34

喵喵呱:“我很好奇,说好了需要三个造型,你为什么鼓捣出四个来?

第四个造型其实是一个制作技巧,现在口型动画是以“大、中、小”的顺序来切换的,如果没有第四个造型,动画会以“大、中、小、大……”的顺序循环,出现了“小、大”的衔接跳转,影响了动画的效果。

喵喵呱:“有点‘烧脑’,我一会儿删掉第四个造型试试。”

挺好,实践出真知。现在造型已经绘制好了,需要连续切换才能播放出运动的感觉。造型切换的时间可以使用“等待……秒”积木把控,那么你会怎么写小猫的脚本呢?

喵喵呱:“简单!按照图2-35所示的做就可以。”

图2-35

你不觉得这样写有问题吗?

喵喵呱:“我测试过的,很流畅。”

好吧!这样写虽然没有问题。但你可能还不知道有“重复执行”积木。对编程来说,执行命令有顺序执行、循环执行、条件执行和分支执行等多种方式。之前所做的程序都是以顺序执行的方式来编写的。简单地说,1、2、3、4这种逐一执行命令积木的方式,但是这次出现了1、2、1、2、1、2这样执行的情况,这时使用重复执行1、2的方式可以大大减轻工作量。

喵喵呱:“这个积木我找到了,就在‘控制’标签下,它是一个半包围结构的积木,是不是把需要重复执行的积木堆砌到它的包围圈里就可以?”

没错,其实“重复执行”相关的积木有三个,分别是重复执行、重复执行……次、重复执行直到……,如图2-36所示。“重复执行”会一直执行下去;“重复执行……次”是给重复执行限定了一个次数,重复到设置的次数之后,继续往下顺序执行。目前,你能弄明白前两个的用法就可以。至于第三个,以后用到的时候再说。

图2-36

喵喵呱:“哎!还卖关子?”

我们的脚本可以这样写(见图2-37)。如果说只让小猫说2秒的话,那就使用计次的重复执行。

喵喵呱:我算算,一次0.1秒,2秒就是20次。

数学还挺好,最后的脚本和效果应该是图2-37所示的样子。

图2-37

动手做

1.请制作小猫一边眨眼,一边说话的动画效果。

2.使用造型相关功能制作任一角色,从舞台左面逐渐移动到舞台右面的动画。

问问你

这种使用造型逐一变化来做动画的方法叫作逐帧动画。从道理上说,任何动画效果都是逐帧动画制作的。就你目前的认知来说,你认为这种动画制作方式分别有什么优点和缺点呢?