タイトル: Scratch(スクラッチ)
SEOタイトル: Scratch (スクラッチ) 完全ガイド|MIT 発の子ども向けビジュアルプログラミング
| この記事の要点 |
|
Scratch とは
Scratch(スクラッチ)は、米国マサチューセッツ工科大学(MIT)メディアラボの Lifelong Kindergarten Group が 2007 年に公開した、子ども向けのビジュアルプログラミング言語です。難しい文法を覚える代わりに、ブロックを組み合わせてプログラムを作ることができ、世界中の小学校・プログラミング教室で標準的に使われています。
ブラウザだけで動き、登録不要で試せ、保存にはアカウントが必要です。日本語にも完全対応しており、文部科学省「小学校プログラミング教育の手引」でも代表的な学習ツールとして紹介されています。
始め方
| 環境 | URL / 入手 | 用途 |
|---|---|---|
| オンライン版 | scratch.mit.edu | 標準。ブラウザで動く |
| Scratch Desktop | scratch.mit.edu/download | オフラインで動かしたい教室 |
| Scratch Link | 同上 | micro:bit / LEGO 等の連携用 |
| ScratchJr | App Store / Google Play | 5〜7 歳向け(タブレット) |
| TurboWarp | turbowarp.org | 高速版・上限緩和・コンパイル |
画面の構成要素
| 要素 | 説明 |
|---|---|
| スプライト | 動かすキャラクター。デフォルトはネコ。複数配置可 |
| コスチューム | スプライトの見た目バリエーション。切り替えでアニメ表現 |
| 背景 | ステージの背景画像。シーン切替に使う |
| ステージ | 実行画面。480×360 px、中心が (0,0) |
| スクリプト | ブロックを縦に積み重ねたプログラム |
| 音 | SE / BGM。録音もOK |
ブロックカテゴリ(Scratch 3.0)
| カテゴリ | 色 | 主な機能 |
|---|---|---|
| 動き | 青 | 10 歩動かす、x/y 座標、角度回転 |
| 見た目 | 紫 | こんにちはと言う、コスチューム切替、大きさ |
| 音 | ピンク | 音を鳴らす、音量、テンポ |
| イベント | 黄 | 緑の旗が押されたとき、メッセージ送受信 |
| 制御 | オレンジ | 繰り返し、もし〜なら、待つ、複製、停止 |
| 調べる | 水色 | マウス位置、衝突判定、キー押下、タイマー |
| 演算 | 緑 | 四則演算、比較、論理、乱数、文字列 |
| 変数 | 濃オレンジ | 変数 / リスト(配列) |
| ブロック定義 | 赤 | 自作ブロック(関数) |
最初のプログラム例: 矢印キーでネコを動かす
イベント「緑の旗が押されたとき」を置く- 下に
制御「ずっと」を繋ぐ - 「ずっと」の中に
制御「もし〜なら」を 4 つ入れ、それぞれに
・「右向き矢印が押された」→ x を 10 ずつ変える
・「左向き矢印が押された」→ x を -10 ずつ変える
・「上向き矢印が押された」→ y を 10 ずつ変える
・「下向き矢印が押された」→ y を -10 ずつ変える - 緑の旗をクリックして実行
テキストで書くと何になるか(概念対応)
# Scratch のブロックは Python だとこんなイメージ
while True: # 「ずっと」
if pressed('right arrow'): # 「もし右向き矢印が押されたなら」
sprite.x += 10 # 「x を 10 ずつ変える」
if pressed('left arrow'):
sprite.x -= 10
if pressed('up arrow'):
sprite.y += 10
if pressed('down arrow'):
sprite.y -= 10
典型的な学習ステップ
- 動かす: 緑の旗 → ずっと → 10 歩動かす → はしっこに着いたら、はね返る
- イベント: 矢印キー / スペースで動作
- 条件分岐: もし〜なら、もし〜でなければ
- 変数: 「スコア」「ライフ」を作って加減算
- メッセージ送受信: スプライト間通信
- 自作ブロック: 関数化、引数
- リスト: 配列、ランキング
- クローン: 弾を生成する系(シューティング)
ScratchJr との違い
| 項目 | Scratch | ScratchJr |
|---|---|---|
| 対象年齢 | 8〜16 歳 | 5〜7 歳 |
| プラットフォーム | Web / デスクトップ | iPad / Android / Amazon Fire |
| UI | 文字ありブロック | 絵だけのブロック(読字前) |
| 機能 | 変数 / リスト / 自作関数あり | 無し |
| 保存 | クラウド | 端末ローカル |
TurboWarp(高機能版)
Scratch 3.0 は処理が重く、複雑なゲームは限界があります。TurboWarp は Scratch プロジェクトを JIT コンパイルする非公式互換ランタイムで、同じ .sb3 を読み込めます:
- JavaScript に変換して10 倍以上高速
- FPS / クローン数の上限を解放
- HTML / EXE / Web ページにパッケージ化可能
- 外部 URL 取得などの拡張機能
Scratch からの次の一歩
| 移行先 | 特徴 |
|---|---|
| Python | 文法が易しく学習用途で定番。Scratch から自然 |
| JavaScript | ブラウザでゲーム / Web 制作。Scratch のキャラ表現と相性◎ |
| micro:bit / MakeCode | Scratch 風ブロック + JavaScript。物理デバイス |
| Unity / Godot | 本格的ゲーム制作(中学生〜) |
| Processing / p5.js | ビジュアル表現メイン |
FAQ
Q: 何歳から始められる?
A: 読み書きができる 8 歳前後から。5〜7 歳はScratchJr。大人の入門にも十分使えます。
Q: 保存・共有は安全?
A: scratch.mit.edu のアカウントは本名禁止・年齢登録ありで子ども保護が徹底されています。公開プロジェクトはコミュニティガイドラインで管理。
Q: 学校で導入するときの注意
A: ネット接続が必要、またはScratch Desktopのオフライン版を配布。校内 LAN でscratch.mit.edu が許可リストに入っているか確認を。
Q: Scratch から Python に上手く繋げるには?
A: 同じ「変数」「繰り返し」「条件分岐」をテキストで書き直す体験が効果的。Scratch の作品を Python で再実装する課題が有効です。