Xcratch – 拡張できるScratch3.0mod

拡張機能の追加をして拡張できるScratch3.0mod環境「Xcratch」のご紹介。

平成29年改訂の学習指導要領にもとづく授業の実施とGIGAスクール構想実現事業による情報環境整備もなされ,学校で情報教育やコンピューティングに取り組む機会も増えてきました。

プログラミング体験・教育の取り組みもその一つ。

そこで使うツールも様々ですが,Scratch(スクラッチ)はブロックを組み合わせる操作で利用できるグラフィカルプログラミング環境として広く利用されています。

Scratch自体もいくつかのバージョンを経て,現在の3.0は,HTML5対応の標準的なブラウザがあれば利用できる形になっています。(インターネット接続が前提ですが,ネットのない環境で利用できるバージョンもあります。)

Scratch3.0には,「拡張機能」と呼ばれるScratch環境自体に機能を追加してパワーアップできる仕組みが組み込まれています。

Scratchには標準でもたくさんのブロックが用意されているのですが,ここに機能を追加して新しいブロックが加わると,もっといろんなプログラムを組むことができるというわけです。

たとえば「音楽」とか「ペン」のブロックも機能追加する形で提供されています。

この他にもいくつか拡張機能が用意されていることが分かりますが,Scratch3.0の公式サイトで公開されている環境では,あらかじめ用意されている拡張機能以外を選ぶことはできませんし,新しく追加することもできません。あくまでも公式サイトがあらかじめ用意してくれているものだけです。

ところが,世の中には,面白い機能をもった拡張機能が,いろんな人々によって開発されて公開されています。

たとえば,機械学習を利用できる拡張機能「ML2Scratch」というものがあり,コンピュータに分類を学習をさせて自動判定処理をプログラミングすることができます。

その他にも,マイコンボードmicro:bitの機能をフル活用できる「Micro:bit More」といった拡張機能や,QRコードの読み取りができる「QRコード」拡張機能もあります。

これらはScratch3.0用の拡張機能なのですが,公式サイトに組み込まれていないため,現在のところ公式サイト上で利用することができないのです。


それならば組み込めばいいじゃないか…ということになりますが,公式サイトはそう簡単に追加してくれません。

そこで,公式サイトとは別に,独自にScratch3.0環境をつくって,それを改造(mod)して拡張機能を組み込んでしまえば好きな拡張機能が使える…という方法が考えられました。

それがScratch3.0mod環境です。

このmod環境を,インターネットのクラウド上に構築してみんなに使ってもらえるようにしたものもありますし,自分のパソコンや端末上のローカルな環境上に構築して自分やグループだけで利用できるようにしたものもあります。

とにかく,大元をどこかに複製して,改造や拡張を施したScratch3.0環境を使うのです。

それで,大元はどこから来るのか?

実は,Scratch3.0の大元(ソース)は,開発しているMIT(マサチューセッツ工科大学)のグループがインターネット上で公開しています。

というわけで,説明されている手順通りにその大元を複製して準備すれば,誰でもインターネット上やローカル上でScratch3.0環境を構築することができるというわけです。


ただし,大元を複製して環境構築できるといっても,それを改造するとなると大変。

そこで,ある程度改造を施した上で,あちこちで公開されている拡張機能を自由に追加できるような機構を最初から用意してくれているmod環境があれば,それを複製して利用した方が楽です。

というわけで,冒頭でリンクをご紹介した「Xcratch」は横川耕二先生が改造を施したScratch3.0mod環境で,これを複製して環境構築すれば,公式サイトのScratch3.0とはまた一味違ったScratchプログラミングが楽しめるというわけです。

外部の拡張機能を追加するには,あらかじめXcratch対応を施した拡張機能が公開しているURLをXcratch側に入力することで実現します。

これで[OK]すれば拡張機能がインターネットから読み込まれるというわけです。

あとは思う存分プロジェクトのプログラミングを楽しんでもらうということになります。


お恥ずかしながら,私も拡張機能を提供しています。

ScratchとICカードリーダSONY RC-S380を使ってICカードの番号を読み取る「PaSoRich」とクラウド上に数字を保存して連想配列のように利用できる「NumberBank」の2つです。

最近はキャッシュレス決済もいろんな方法が登場し,電子マネーといった方法でのお買い物についても扱った消費者教育も注目が高まっています

キャッシュレス決済のリテラシー向上を目的とした中学生向け教育プログラム
https://www.sony.co.jp/corporate/information/news/202105/21-010/
「学校内通貨」を発行するデジタルネーティブ小学生、大人は彼らに何ができるか
https://xtech.nikkei.com/atcl/nxt/column/18/00138/092400884/

こうした実践でICカード読み取りや数字を保存できる拡張機能が貢献できる部分もありそうです。

この2つの拡張機能をXcratch環境に追加できるように対応させました。

以下のURLを入力すればXcratchにそれぞれの拡張機能が読み込まれます。

PaSoRich (Xcratch用)
https://con3office.github.io/xcx-pasorich/dist/pasorich.mjs
NumberBank (Xcratch用)
https://con3office.github.io/xcx-numberbank/dist/numberbank.mjs

Xcratch環境でいろんな拡張機能と組み合わせると,さらに面白いプロジェクトをつくることができるんじゃないかと思います。こちらもぜひご利用ください。