1. はじめに

目次に戻る


Scratch(*1)を最初に触ったのは2010年で、「これは良いものだ」と思って自分の子ども達に教え始めました。

それ以来、Scratchのコミュニティや、当時からこども向けプログラミングワークショップをおこなっていたOtOMO、子どもを対象としたプログラミング道場CoderDojoに関わっています。

自分の子ども達はすっかり大きくなり、今はあまりScratchをやらなくなりましたが、筆者の方は相変わらず楽しんでいます。

特にScratchの拡張可能な部分に面白さを感じ、ラジコンボールのSpheroをScratchからコントロールできるようにしたScratch2Spheroを始め、自立して2輪で走るおもちゃのロボットWowWee MiPをコントロールできるScratch2MiP、機械学習を使ったプログラミングが簡単にできるML2Scratch、iOSのARKitを使いScratchから命令を送ってAR空間上にブロックを積み上げることができるS2AR(Scratch2ARKit)などを作ってきました。

ScratchとMinecraftをつなげて、ブロックの組み立てを自動化できるようにしたScratch2MCPIについては、共著で書いた「Raspberry Piではじめるどきどきプログラミング増補改訂第2版」でその使い方を解説しています。

こうしたScratchの拡張機能を利用するには、これまではScratch1.4で利用できる遠隔センサー接続[(筆者のブロクでの解説記事)](https://blog.champierre.com/1047)という仕組みや[ScratchX](http://scratchx.org/)というScratch2をベースに拡張可能にした特別なバージョンを使っていたのですが、2019年になりリリースされたScratch 3では、始めから簡単に拡張できる仕組みが用意されています。

ただし、ScratchXでは一般の開発者が公開した拡張機能を取り込める機能が用意されていたのに対して、Scratch 3ではまだ取り込める機能は用意されていません。(そのうちに公開されるだろうという噂はあります)

しかし、Scratch 3のソースコードはGitHubで公開されているので、これをカスタマイズすれば自分で作った拡張機能を使うことができます。拡張機能を使えるようにするのもそうですが、Scratch 3をいじってみて自分専用にカスタマイズするというのは、Scratchをある程度やっている人たちには魅力的なのではないでしょうか。

一方、Scratchはこども向けのおもちゃだと思っている方たちがいます。筆者は決してそんなことはないと思って、それまで子ども向けの入門書が多かった中で、大人向け、中級者向けのScratchの本、「Scratchで楽しく学ぶ アート&サイエンス」を2018年に書きました。

これと同じ流れを組む「大人のためのScratch」シリーズとして、Scratch 3のカスタマイズ方法や拡張機能を追加する方法の解説記事を公開しようと思い立ちました。

本格的な拡張機能を作るにはJavaScriptの知識が必要とはなりますが、今はJavaScriptに詳しくなくても、手順を間違えず、コピペだけで体験できるようにしましたので、Scratchの初心者を卒業したすべての年齢のこどもたち(*2)ならば誰でも楽しめるのではないかと思っています。

*1 Scratch はMITメディアラボ(MIT Media Lab)のライフロング・キンダーガーデン(Lifelong Kindergarten Group)により開発されました。参照: http://scratch.mit.edu

*2 阿部和広 | インタビュー | Computer Science for ALL


目次に戻る