提供: Japanese Scratch-Wiki
(拡張機能から転送)
このきじは ひらがなでよめます。ひらがなでよむ

![]() |
この記事は2020年11月の注目の記事です。 |
拡張機能は、Scratch 3.0の機能のひとつで、ブロックを追加してScratchのプログラムを拡張するものである。拡張機能自体はScratch 2.0にも存在したが、3.0ではより使いやすいものとなっている。拡張機能は、拡張機能ライブラリーから選択できる。
一度読み込まれた拡張機能を除去するには、拡張機能のブロックをスクリプトエリアから全部削除してプロジェクトを保存し、F5キーを押すなどして再度読み込む。(Scratch 3 アプリの場合は、一度終了し再度開く。)
種類
拡張機能は、内部の仕組みから以下の2つに分類できる。
- サンドボックス化されていない拡張機能 — 現在拡張機能ライブラリーから追加できる拡張機能。
- サンドボックス化された拡張機能 — 公式には読み込み手段は存在しないが、modをすると読み込める。Web Workerを利用してサンドボックス化できる。
また、拡張機能の内容から、以下のようにも分類できる。
- 外部機器を扱う拡張機能 — micro:bit、Makey Makeyなど
- APIを扱う拡張機能 — 翻訳、音声合成
- Scratch 2.0に存在したブロックを扱う拡張機能 — ペン、音楽など
さらに、Scratchチームが作成した「公式」の拡張機能とmod等で追加された「非公式」の拡張機能という区分もできる。
一覧
公式には、以下の拡張機能がある。
- 音楽拡張機能 — 音ブロックの一部が移動した。MIDI楽器を扱う。
- ペン拡張機能 — ペンブロックが移動した。
- ビデオモーションセンサー拡張機能 — 調べるブロックの一部が移動した。ビデオモーションを扱う。カメラが必要。
- 音声合成拡張機能 — Scratchに文章をしゃべらせる拡張機能。
- 翻訳拡張機能 — Google翻訳を行う拡張機能。
- Makey Makey拡張機能 — 本質的に() キーが押されたときブロックと同じだが、押された順番を考慮するブロックもある点が異なる。
- micro:bit拡張機能 — micro:bitのサポート。ネットワーク接続、Scratch LinkとBluetoothが必要。
- LEGO MINDSTORMS EV3拡張機能 — LEGOのMINDSTORMSをサポートする。ネットワーク接続、Scratch LinkとBluetoothが必要。
- LEGO BOOST拡張機能 — LEGO BOOSTをサポートする。ネットワーク接続、Scratch LinkとBluetoothが必要。
- LEGO WeDo 2.0拡張機能 — LEGO WeDo(2.0のみ)をサポートする。ネットワーク接続、Scratch LinkとBluetoothが必要。
- Go Direct Force & Acceleration拡張機能 — Go Direct Force & Accelerationをサポートする。ネットワーク接続、Scratch LinkとBluetoothが必要。
拡張機能に関する誤解や騒動
- ペンブロックや音楽関係ブロックの拡張機能化に伴い、そのブロックが廃止されたと誤解した人がいた。
- Scratch デスクトップのバージョン3.14.0以前では、パソコン上にて、Bluetooth接続を行う拡張機能は、Scratch デスクトップであってもネットワーク接続も必要とした。よって、完全オフラインではBluetooth機器を扱えなかった。バージョン3.14.0以降では、Scratch デスクトップ上ではそのような拡張機能の使用にはインターネット接続は不要となった。
- Scratchのバグにより、開発中でライブラリーに追加されていない「音声認識拡張機能」が本番環境で使用できた時期があった。これは、JSONをハッキングして「読み込む拡張機能」の部分に
speech2text
を追加することで行える。現在バグは修正され、また音声認識拡張機能を含んだプロジェクトは削除/非共有になった。 - Scratchの脆弱性、CVE-2020-14000は、拡張機能の自動読み込みに関連している。
- micro:bit拡張機能は、あくまでBluetooth接続したmicro:bitとScratchが通信しあっているだけで、micro:bit単体での自立運転はできない。また、micro:bitに実際に信号を出しているのは、Scratch Linkであり、WebBluetoothなどではない。
実装
- 詳細は「Scratch 3.0の拡張機能を作ってみよう」を参照
拡張機能はほかのブロックと異なり、scratch-vmで定義されている。ライブラリー項目はscratch-guiで定義されている。
関連項目
- Scratchユーザーインターフェース (3.0)
- Scratch Lab — 実験的な拡張機能をテストするサイト
- Stretch3