项目5 视 觉 特 效 简单地说,视觉特效就是对图片或场景的各种技术处理。 经过特效处理,可以创造许多虚拟的真实场景,最常见的就是 影视剧中各种难以捕捉的镜头。 Mind+软件可以做出丰富的视觉特效,包括颜色、亮度、 马赛克等。本项目中的两个任务分别是学习颜色和亮度的控制 方法,涉及外观模块、事件模块等方面的编程知识,读者可以 结合有趣的案例边玩边学。 任务5.1 百变时装秀 灯光绚丽的舞台上,一名歌手站在舞台中间正在表演,她的服装还可以 不断地变换颜色,似乎在进行一场时装秀。 学会了改变服装颜色,就可以为舞台上更多角色更换服装颜色了,如公 主、王子、精灵等,开始一场百变时装秀。 1 . 演出舞台布置 编写代码之前,首先要根据任务的要求,设置背景和角色。 在背景库中选择“音乐”类中的“舞台聚光灯”图片作为舞台背景。 在角色库中选择“人物”类中的“歌手1”作为角色。调整角色的大小 和位置,完成后如图5-1所示。 图5-1 “歌手”的表演舞台 2 . 使用颜色特效编写代码 通过编程,单击“运行”按钮,舞台上歌手的服装就开始不停地变换颜 色。想要实现颜色变化的视觉效果,可以联想到外观类积木。 (1)颜色特效积木。 Mind+中可以使用的特效都集中在两块特效积木中,它们属于外观类, 标志颜色是蓝紫色。打开编程软件,找到外观类积木,查看外观类积木指令。 可以看到,这里有熟悉的“下一个造型”“将大小增加”等积木块,这些积 木块在之前的项目学习中已经使用过。滑动列表,可以看到两块积木,如 图5-2所示。 仔细观察就会发现,这两块积木中“颜色”部分是可选的,其后带有白 色小三角标识。在以前的学习中,也有类似的指令,还记得是哪些吗? 单击此积木块中的白色小三角,在弹出的下拉菜单中可以看到“亮度”“鱼 眼”“漩涡”“马赛克”等选项,如图5-3所示。可以看出,这些都是角色的 特效设定。 图5-2 颜色特效积木 图5-3 特效下拉选项卡 控制方式上,特效积木包括两种,分别是“特效增加”和“特效设定为”。 时装颜色变换使用的是“特效增加”这一块,要注意区分。 (2)代码编写。 首先拖曳一块“当 被点击”积木放置在代码区,这是程序运行的触发 事件,将“特效增加”积木块拖曳至下方,连接起来,默认参数是25,如图5-4 所示。 单击“运行”按钮,观察运行结果。可以发现,单击“运行”按钮后, 歌手的服装变了一次颜色,就结束了。想要变换更多颜色,只能再运行一次 程序,不能自动地变换颜色。 怎样循环变换颜色呢?使用循环执行就可以了。在控制类积木中找到“循 环执行”积木,拖曳至代码区,如图5-5所示。 单击“运行”按钮,观察运行结果。可以发现,歌手的服装颜色变化太 快了,几乎是在闪动中就变了,太有趣了! 变化太快,怎样才能慢一点呢?增加等待时间就可以了。“等待时间” 积木和“循环执行”积木一样,都属于控制类积木。在列表中找到它,拖曳 到循环内部就可以了,如图5-6所示。 图5-4 使用颜色特效积木 图5-5 使用循环执行 图5-6 添加“等待时间”积木 试一试,改变特效增加积木的参数值会有怎样的视觉效果,能发现规律 吗?改变等待时间,看看不同的等待时间会有哪些影响。 3 . 其他表演者 歌手在表演时,虽然服装颜色可以变化,但是没有动作上的变化,视觉 效果并不完美。进入“造型”界面,可以发现这个角色只有一个造型,因此 不会有造型上的变化。 让更多的表演者来到舞台,一起进行时装秀。需要添加其他角色,选择 一些有造型变化的角色,能让这场时装秀更漂亮。 (1) “公主”角色。 进入角色库,在“人物”类中选择“公主”角色,一位“公主”就出 现在舞台上了。让“公主”变换服装颜色的代码与“歌手”是一样的,按照 图5-6所示的代码为“公主”角色编写程序。 可是,这样的程序可以变换服装颜色,却不能让“公主”变换造型。如 同项目2中企鹅角色走路时需要变换造型一样,此时需要使用“下一个造型” 积木。 在外观类中找到“下一个造型”积木,拖曳到循环执行内部,如图5-7 所示。为了避免两个角色出现相同颜色的服装,可修改“颜色特效增加”积 木中的参数。 (2)更多表演者。 添加其他角色,让他们都来参加百变时装秀!每个角色的控制参照 图5-7,注意修改参数,这样可以呈现更丰富的色彩变换效果。 如图5-8所示,除了“歌手”和“公主”,还添加了“精灵”和“王子” 两个角色,放到舞台上合适的位置,并为他们编写控制代码。 图5-7 “公主”的代码 图5-8 “时装秀”的舞台 任务5.2 一闪一闪亮晶晶 夜空中的星星一闪一闪,好像对着地上的人们眨眼睛。在夜空中看到的 星星有两类,一类是恒星,另一类是行星。其中绝大多数都是遥远的恒星, 恒星是发光的,这些恒星或许比太阳更大、更亮,但是由于距离遥远,因此 我们只看到一点光亮。行星不发光,但是可以反射太阳光,因此也可以在夜 空中看到。星星之所以会“眨眼睛”,与大气层的遮挡有关,地球的大气层 是不断流动变化的,星星距离地球非常远,光线穿过厚厚的大气层时会被遮 挡,发生折射,看起来就是一闪一闪的。 本次任务学习控制角色亮度的方法,使用任务5.1中的特效积木块,通 过复制角色,修改角色参数,当单击“运行”按钮时,呈现夜空繁星闪烁的 视觉效果。 1 . 舞台布置 根据前面所学的步骤,进行舞台背景和角色的选择。先选择“夜空”图 片作为舞台背景,再选择“星星”作为本次项目的角色,完成后的参考图如 图5-9所示。角色默认大小是100,使用鼠标可以自由拖动星星,将其放置 在适当的位置。 图5-9 星星闪烁舞台 2 . 星星闪烁 准备好舞台背景和角色的设置之后,为角色编写代码。想要实现夜空繁 星闪烁的效果,首先使用特效积木块,并使用亮度选项,模拟一颗星星的闪 烁控制,进而做出许多大小不同、亮度不同、闪烁不定的繁星。 (1)亮度特效指令。 特效积木块中,“颜色”选项是默认的特效设置,可以在列表中改为“亮度” 选项,或其他选项,但一般不这么做,而是将积木块拖曳至代码区后,再根 据使用需要更改选项。 与“将大小增加”和“将大小设为”这类积木块类似,特效类积木块也 有两种,分别是“增加”和“设定为”。这两种积木块都可以实现本次任务 的特效,方法虽然相似,也略有不同,本次任务以“设定为”积木块为例。 (2)代码编写。 编写程序最重要的就是养成良好的编程习惯,做到思路清晰,不混乱。 完成代码编写后,单击“运行”按钮,“星星”不停地一闪一闪。 ① 一闪一闪:暗和亮。“星星”一闪一闪的效果,实际上是亮度的变化, 一会儿暗一会儿亮。在程序中,暗和亮都是通过参数确定的,还有时间的变 化。二者配合起来才能有一闪一闪的特效。 拖曳一块“将特效设定为”积木至代码区,单击白色小三角,打开选项卡, 选择“亮度”选项,这样就放置了一块亮度特效的积木。同样的方法,再次 拖曳一块同样的特效积木放置在下方,如图5-10所示。 积木默认数值是0,表示星星没有亮度。第一块积木参数不需要修改, 第二块积木控制“星星”亮的状态,修改参数值为200。数值过小亮度变化 不明显,修改参数时应注意观察效果。 ② 一闪一闪:等待时间。这里的等待时间就是“一会儿亮,一会儿暗” 中所说的“一会儿”,暗了,等待一会儿变亮了,或者亮了,等待一会儿又变 暗了。如果没有等待时间,很多现象就不容易被眼睛观察到,因为计算机的 运行速度实在太快了,人们的眼睛看到的就是一直暗或一直亮,没有亮度变化。 进入控制类积木列表,第一块积木就是等待积木。将其拖曳到第一块亮 度积木的下方,再拖曳一块积木放到第二块亮度积木的下方,等待积木的默 认时间参数是1秒,如图5-11所示。 想一想,这里有两个等待时间,哪一个时间是暗的等待时间,哪一个时 间是亮的等待时间呢? 图5-10 暗和亮 图5-11 增加等待时间 ③ 不停:循环执行。闪烁不停就是要求循环控制,使用控制类的“循环 执行”积木块。亮度特效指令和等待时间都需嵌套进“循环执行”积木块中。 进入控制类模块列表,找到“循环执行”积木块。拖曳至代码区,悬停在第 一块亮度特效积木上方,当出现能覆盖所有特效指令的阴影时,松开鼠标即 完成,如图5-12所示。 图5-12 增加循环执行 3 . 调试和修改 单击“运行”按钮,观察运行结果。可以看到夜空中的这颗小星星每隔 1秒就会闪烁一次。修改时间参数,可以让闪烁看起来更和谐,更符合实际。 还可以再添加几颗星星,使用不同的闪烁频率,营造“一闪一闪亮晶晶”的 效果,如图5-13所示。 (1)调整等待时间。 调整等待时间可以修改星星闪烁的速度,如暗保持0.2秒,亮保持0.3秒, 会有怎样的闪烁效果,自己试一试。 (2)增加星星。 添加同样的角色有两种方法,一种是在角色库中选择该角色,再为其编 写代码。还有一种是复制的方法。在角色列表区,在要复制的星星角色上方 右击,在弹出的菜单中选择“复制”命令就可以了,如图5-14所示。 图5-13 繁星闪烁示例 图5-14 复制角色 这时,控制程序也会跟随着角色一起被复制。如果想要修改参数,就可以 进入角色修改,省去了拖曳代码的时间。“夜空”中很快就会出现“满天繁星”了。 (3)改变星星大小。 仔细观察会发现,夜空中的星星并不是一样大的。角色中星星的默认大 小是100,舞台下方参数区域的“大小”数值可以直接改变相应星星的大小, 如可以改为50、80、120等。最终呈现效果可以参考图5-13。 任务5.3 扩展阅读:太阳系和星星 我们所居住的地球只是一个微小而普通的成员,它与太阳和其他七大行 星一起构成了太阳系。而太阳系又只是银河系中数以百亿计恒星之一,银河 系则是宇宙中数以千亿计星系之一。 1 . 广阔太阳系 太阳系(solar system)是一个以太阳为中心,受太阳引力约束在一起的 天体系统,包括太阳、行星及其卫星、矮行星、小行星、彗星和行星际物质。 太阳系位于距银河系中心大约2.4万~2.7万光年的位置(银河系的恒星数量 约在1000亿到4000亿之间,太阳只是其中之一)。太阳以220km/s的速度 绕银河系的中心运动,大约2.5亿年绕行一周,地球气候及整体自然界也因 此发生2.5亿年的周期性变化。太阳系结构如图5-15所示。 图5-15 太阳系结构简图 2 . 星星之最 决定人们观察星星是明是暗的,主要有两个因素:一是星星发光能力的 大小,二是星星和人们之间距离的远近。天文学家通常把星星发光的能力分 为25个星等,发光能力最强的比发光能力最差的大约相差100亿倍。离人 们距离近的星星的发光能力强,因此人们看到它就比较亮。可是,即使发光 能力相当强的星星,假如离人类十分遥远,那么它的亮度也许还不及比它的 发光能力差几万倍的星星。星星越亮,星等就越小。 (1)最亮的行星。在地球上,人类肉眼可以看到五大行星,其中最亮的 就是金星。金星的亮度虽然远不如太阳和月亮,但比著名的天狼星(除太阳 外全天最亮的恒星)还要亮14倍,犹如一颗耀眼的钻石。金星不仅亮度很高, 也很特别,它是太阳系内唯一逆向自转的大行星,自转方向与其他行星相反, 是自东向西。因此,在金星上看,太阳是西升东落。 (2)最古老的恒星。自古以来,人们会用“天荒地老”来比喻时间的长 久,可是天荒地老的时间却没有一颗星星的寿命长。在距离地球3.6万光年