Scratch 从头学

image 一个小舞台(Stage),一些简单的可堆叠积木(Building Blocks),拖拖放放一些剪片(Sprite) 和动作积木就可以设计制作自己的动画作品了,这就是Scratch (小猫挠心)给人的简洁概念。正因为如此,去年的奥地利电子艺术节上,我也是毫不犹豫地投了一票,它最终获得了荣誉奖项

来自于MIT的Lifelong Kindergarten 项目组,他们设计目标就是给8岁以上的人设计一种更加直观有效的学习工具,在创造中学习新的技能和知识。如果说“做中学”和“创造中学”太笼统,那么给用户一个低门槛的交互设计工具,则是实实在在的一个创造。

image

所以除了亲自做一些作品,恐怕我永远不会了解这个工具的真正含义。于是就开始定义自己的小目标:争取把主要的功能用一个小故事串联起来,就不至于不懂山寨而评论山寨了。LOL

故事的脚本是这样的:一只河蟹看到绿色的草原,心理很不平衡,就去咔嚓咔嚓狂吃一通,破坏了环境和美丽风景;另一只河蟹不知道是想讨好还是要显摆自己有文化,跑到第一只河蟹的边上,写下了两个大字,然后张牙舞爪地离去。

在Scratch 中,这样的故事应当容易表达。首先在仓库中选了现成的河蟹剪片,复制一次,分别命名为Crab_eating 和 Crab_drawing,然后在Stage中选了一个草原的背景。开始对Crab_eating 进行“编程”:它的动作很疯狂,所以我基本上用了很多Random (随机)的命令,先拖一个蓝色积木:在1秒钟内,平滑移动到X:-31 Y:-40,这个积木是很常用的,只要修改其中的三个参数就可以控制一个剪片动来动去。然后旋转,开始播放一个剪刀的声音,然后放下画笔,便旋转、移动边画出轨迹,因为是白色的画笔(是拖动绿色积木完成笔色:将画笔颜色设定为白色),所以草原背景肯定会遭到破坏。这样重复五十次(拖动控制功能的黄色积木完成循环功能:重复执行50次)于是Crab_eating 完成了他的动作,最后在顶端增加一个控制积木:当

对这只河蟹的剪片大概只用了3分钟不到的时间便完成了它猛吃青草的过程,对时间和运动的特征数据做了一点小小的修改,以便更加流畅。但是因为只是为了学习,并没有追求完美,所以河蟹的动作只要看上去比较凶猛就可以了。

image

对河蟹Crab_drawing,我倒是花了几倍的功夫,估计有20分钟左右。因为它要努力装出有文化的样子,写出两个汉字。所以我得先在纸上大致画出一个和舞台一样的坐标系,看看要写的汉字的各个笔触的起点和终点坐标。有了这个大致的数据位置,其实程序很简单,就是不断重复地落笔和抬笔,把笔画连接起来。最后同样用动作积木平滑移动让河蟹Crab_drawing洋洋得意地到场边晃晃钳子。就这么简单。

后来为了增加“咔嚓咔嚓”的感觉,我点击了关联河蟹”Crab_eating”的“声音”卡,选择了一个类似剪刀的“喀嚓”声音,所以算是对这个河蟹行为的基本完成。艺术加工过程就比较没有边际了,留待后来的人们阶梯创造吧。

完成后的动画作品是这样的,你可以下载我的最粗简版本的源文件(Rev 0.0.1)进行修改和再创造,。或者只是点击绿色小旗欣赏美丽的草原与河蟹只战。唯一的遗憾是设计者没有考虑到网络上的事实交互环境已经是Flash,他们采用的Java插件播放形式有些老套。我已经和 @scratchteam@andresmh反应了这个问题

因为提供灵活的语言支持,加之小猫挠心异常简洁的用户界面,所以完全可以做为3-4年级之后的儿童教学内容,而且特别适合社区型学习,儿童可以在掌握语言和逻辑能力的基础上进一步地和想象力结合起来,做出创意的表达。从Scratch 社区中,可以看到一些学生的习作。相比之下,可能更适合在学习LOGOBASIC语言之前进行逻辑思维和创造思维的训练。

每年都有全球各地的Scratch Day线下活动(今年是3月16日),交流设计和教学的经验,有兴趣的人也可以组织中国本地的活动。