Scratchのエラー・トラブル解決大全|動かない時の原因と対処法

プログラミング・電子工作

トラブルシューティング / 保存版

Scratchのエラー・トラブル解決大全|動かない時の対処法

Scratchは、文字のコードを書かないぶん、エラーメッセージが出ません。だからこそ、「なぜ動かないのか」が分かりにくく、困ってしまうことがあります。本記事は、そんなときの「駆け込み寺」です。ブロックの組み立てから、実行時の不具合、スプライトのトラブル、電子工作連携まで、「画面のどこを押して、何を確認するか」まで具体的にまとめました。今、困っていることに近い項目を、目次から探してみてください。

YOFUKASI LAB編集部
公開日:2026年9月15日
更新日:2026年10月10日
読了目安:90分(辞書的に活用推奨)

執筆・実機検証:YOFUKASI LAB運営者

理学療法士/Arduino・Pythonを使った医療機器制作・学会発表経験あり

🔧 この記事の使い方

最初から順番に読む必要はありません。今、困っていることに近い章を探してください。各Qは「原因 → 手順 → 直らないとき」の順に書いています。

  • ブロックがうまく組み立てられないときは → 1章へ
  • 緑の旗を押しても動かないときは → 2章へ
  • スプライトやコスチュームがおかしいときは → 3章へ
  • 変数やリストが思った通りにならないときは → 4章へ
  • 音が鳴らないときは → 5章へ
  • ジャンプ・当たり判定などゲーム作りで困っているときは → 6章へ
  • 保存・共有ができないときは → 7章へ
  • アカウント・サインインで困っているときは → 8章へ
  • Arduino・Raspberry Pi・micro:bitとの連携で困っているときは → 9章へ
  • 動作が重い・カクつくときは → 10章へ

📖 先に知っておくと読みやすい言葉

本記事で繰り返し出てくる言葉を、先に簡単に説明します。

  • スプライト:画面に登場するキャラクターや物のことです。
  • スクリプト:ブロックを縦につなげた、ひとかたまりのプログラムのことです。
  • 変数:数字や文字を、一時的に覚えておく入れ物のことです。スコアなどに使います。
  • リスト:変数を、複数まとめて並べられるようにしたものです。
  • クローン:あるスプライトを、プログラムの中で複製したコピーのことです。敵キャラを何体も出したいときなどに使います。
  • 「ずっと」ブロック:中に入れたブロックを、無限に繰り返し実行させるブロックです。
  • 右クリック:Macでは「controlキーを押しながらクリック」または「トラックパッドを2本指でクリック」、タブレットでは「長押し」が同じ操作になります。

🗺 画面の場所の名前(この記事での呼び方)

Scratch 3.0(scratch.mit.edu の「作る」画面/Scratchアプリ)の標準レイアウトです。以下の手順は、すべてこの呼び方で説明します。

呼び方 場所 何があるか
メニューバー 画面のいちばん上 「設定」(または地球儀アイコン)「ファイル」「編集」「チュートリアル」、作品名の入力欄、「共有する」ボタン
タブ メニューバーのすぐ下・左 「コード」「コスチューム」「音」の3つ。ステージを選んでいるときは「コスチューム」が「背景」に変わります
ブロックパレット 画面の左側 左端に色つきの丸(カテゴリ)が縦に並び、その右にブロックの一覧
コードエリア 画面の中央 ブロックを組み立てる広い場所。右下に拡大(+)・縮小(−)・元の大きさ(=)ボタン
ステージ 画面の右上 作品が動く場所。左上に緑の旗と赤い停止ボタン
スプライト情報 ステージのすぐ下 スプライト名、x・y、表示する(目のアイコン)、大きさ、向き
スプライトリスト スプライト情報の下(画面右下) スプライトのサムネイル一覧。右下にネコの顔の丸いボタン(スプライトを選ぶ)
ステージ欄 画面のいちばん右下 「ステージ」と書かれた縦長の枠。下に丸いボタン(背景を選ぶ)
拡張機能ボタン 画面のいちばん左下 ブロックと+が描かれた青い四角いボタン

🚨 どのトラブルでも最初に試す5つ

原因が分からないときは、まずこの順番で試してください。これだけで直ることも多くあります。

  1. 赤い停止ボタン → 緑の旗の順に押し直す(ステージ左上)。
  2. スプライトリストで、直したいスプライトをクリックして選び直す。別のスプライトのコードを見ていることがよくあります。
  3. あやしいブロックをコードエリアで直接クリックする。クリックしたブロック(のかたまり)だけがその場で実行され、動くかどうかを確かめられます。
  4. メニューバーの「ファイル」→「コンピューターに保存する」で、今の状態を保存する(この後の操作で壊しても戻れるようにするため)。
  5. 保存できたら、ブラウザの再読み込み(WindowsはF5キー、Macはcommand+R)をしてから、もう一度開く。
Chapter 01 / Block Basics

01ブロックの組み立て・基本操作編

Scratchのブロックがつながらない時の原因と基本的な直し方

「ブロックがうまくつながらない」。Scratchを始めたばかりの方が、最初にぶつかる壁です。代表的な原因から見ていきましょう。

とくに多い2つの原因(詳しく解説)

1ブロックの形が合っていない

Scratchのブロックには、大きく分けて5つの形があります。形が合わない場所には、どうやってもはまりません。

・上が丸く盛り上がった形(「緑の旗が押されたとき」など):スクリプトのいちばん上専用です。上には何もつなげられません。
・上にへこみ、下に出っぱりがある四角い形(「10歩動かす」など):上下に積み重ねます。
・コの字の形(「ずっと」「もし〜なら」など):口の中に、四角いブロックをはさみます。
・六角形(両端がとがった形)(「〜に触れた」「〜=〜」など):「はい/いいえ」を表します。「もし〜なら」「〜まで待つ」「〜まで繰り返す」などの、六角形の穴に入ります。
・両端が丸い形(「x座標」「タイマー」、変数など):数や文字を表します。丸い入力欄に入ります。

2ドラッグする位置がずれている

ブロックをつなげるには、動かしているブロックの左上の角を、相手のブロックの左下の角に近づけます。近づくと、つながる位置に灰色の影が表示されます。影が出ている状態でマウスのボタンを離すと、ぴたりとつながります。影が出ないまま離すと、つながらずに単独で置かれます。

1ブロックがうまくつながらない

原因:形が合っていないか、離す位置がずれているかのどちらかです。

  1. つなげたい2つのブロックの形を、上の「5つの形」と見比べます。
  2. 四角いブロック同士なら、動かすブロックの左上の角を、相手の左下の角へゆっくり近づけます。
  3. 灰色の影が出たら、そこでマウスのボタン(指)を離します。
  4. 六角形や丸いブロックの場合は、ブロックの左端を、入れたい穴の左端に重ねます。穴のふちが白く光ったら離します。
  5. ブロックが小さくて合わせにくいときは、コードエリア右下の「+」ボタンを2〜3回押して拡大します。

直らないとき:影も白い光も出ないなら、形が合っていません。たとえば六角形のブロックは、四角いブロックの列の間には入りません。「もし〜なら」や「〜まで待つ」などの、六角形の穴に入れてください。

2ブロックを間違った場所につなげてしまった

原因:影が出た位置が、ねらった場所と違っていた状態です。

  1. すぐなら、キーボードのCtrl+Z(Macはcommand+Z)を1回押します。直前の操作が取り消されます。
  2. 時間がたっている場合は、間違えたブロックをつかんで下へ引っぱります。そのブロックと、その下につながるすべてのブロックが外れます。
  3. 外れたかたまりを、正しい位置までドラッグし、灰色の影が出たら離します。
  4. 入力欄に入れた丸いブロックや六角形のブロックは、そのブロックをつかんで外へ引き出せば外れます。

直らないとき:戻しすぎたときはCtrl+Shift+Z(Macはcommand+shift+Z)でやり直せます。

3ブロックが消えてしまった

原因:多いのは次の3つです。(a) ブロックパレットの上で離して削除した、(b) 別のスプライトを選んでいる、(c) コードエリアの見えない場所にある。

  1. コードエリアの何もないところを1回クリックしてから、Ctrl+Z(Macはcommand+Z)を押します。削除した直後なら戻ります。
  2. 戻らなければ、画面右下のスプライトリストで、スプライトを1つずつクリックします。コードはスプライトごとに別々に保存されているため、別のスプライト側に作っていることがあります。いちばん右の「ステージ」欄もクリックして確認します。
  3. それでも見つからなければ、コードエリアの何もないところを右クリック →「きれいにする」を選びます。散らばったスクリプトが左上から縦一列に並び直されます。
  4. コードエリア右下の「−」ボタンを数回押して縮小し、全体を見渡します。

覚えておくこと:Scratch 3.0にはゴミ箱がありません。ブロックを左のブロックパレットへドラッグして離すと、それが「削除」になります。

4ブロックの色分けの意味が分からない

考え方:ブロックの色は、ブロックパレット左端の丸(カテゴリ)の色と同じです。色が分かれば、どこに入っているかが分かります。

  • 青「動き」:歩く、回る、座標を変える
  • 紫「見た目」:言う、コスチューム、大きさ、表示する/隠す
  • 赤紫「音」:音を鳴らす、音量
  • 黄色「イベント」:「〜のとき」で始まる、スクリプトの先頭用ブロック
  • 黄土色「制御」:待つ、ずっと、もし〜なら、クローン
  • 水色「調べる」:触れた、キーが押された、タイマー
  • 緑「演算」:計算、比較(=・<・>)、かつ/または
  • オレンジ「変数」:変数、リスト
  • ピンク「ブロック定義」:自分で作るブロック

使い方:ほしいブロックの色の丸をクリックすると、パレットがその位置まで自動でスクロールします。

5ブロックを右クリックしても何も出ない

原因:右クリックする場所によって、出るメニューが変わります。入力欄(白い丸の部分)の上では、目的のメニューが出ないことがあります。

  1. ブロックの色のついた部分(文字のあたり)にマウスを合わせて右クリックします。「複製」「コメントを追加」「ブロックを削除」が出ます。
  2. コードエリアの何もないところを右クリックすると、「取り消し」「やり直し」「きれいにする」「コメントを追加」などが出ます。
  3. Macで右クリックができない場合は、controlキーを押しながらクリック、またはトラックパッドを2本指でクリックします。
  4. タブレットの場合は、ブロックを動かさずに1秒ほど長押しします。

直らないとき:左側のブロックパレットにあるブロックは、右クリックしても編集用のメニューは出ません。一度コードエリアに出してから右クリックしてください。

6ブロックパレットに欲しいブロックが見当たらない

原因:ペンや音楽などのブロックは「拡張機能」で、最初は表示されていません。

  1. 画面のいちばん左下にある、青い四角いボタン(ブロックと+の絵)をクリックします。
  2. 「拡張機能を選ぶ」画面が開きます。音楽、ペン、ビデオモーションセンサー、音声合成、翻訳、Makey Makey、micro:bit、LEGO関連などが並んでいます。
  3. 使いたいものを1回クリックします。
  4. ブロックパレット左端の、丸の列のいちばん下に、新しいカテゴリが追加されます。

それでも見つからないとき:(1)「クローンされたとき」など一部のブロックは、ステージを選んでいると表示されません。スプライトリストでスプライトを選び直します。(2) 逆に「動き」のブロックは、ステージを選んでいると出ません。(3) 変数のブロックは、「変数」カテゴリの「変数を作る」ボタンで変数を作るまで増えません。なお、Scratchの標準機能に「物理演算」の拡張機能はありません。

7ブロックの数値を変更できない

原因:クリックする場所が、入力欄から少しずれていることがほとんどです。

  1. ブロックを、先にコードエリアへ出します(パレットの中でも入力はできますが、出してからの方が確実です)。
  2. 数字が書かれた白い丸い部分の真ん中を、1回クリックします。数字が青く選択されます。
  3. そのままキーボードで、半角の数字を入力します。
  4. Enterキーを押すか、コードエリアの何もないところをクリックして確定します。

直らないとき:全角の数字(10など)は、数として扱われません。キーボードの「半角/全角」キー(Macは「英数」キー)で日本語入力をオフにしてから入力してください。また「▼」がついた欄の多くは、クリックして一覧から選ぶ方式です(中には、丸いブロックをはめこめる欄もあります)。

8かたまりのブロックを外そうとして、全部外れてしまう

しくみ:ブロックをつかむと、そのブロックと、それより下のすべてが一緒に動きます。これはScratchの仕様です。

まん中の1つだけを外す手順は、次のとおりです。

  1. 外したいブロックの1つ下のブロックをつかみ、横の空いた場所へ引っぱって置きます(下のかたまりを一時避難させます)。
  2. 外したいブロックをつかみ、別の場所へ引っぱります。今度は1つだけ外れます。
  3. 手順1で避難させたかたまりをつかみ、元のスクリプトの下端へ近づけ、灰色の影が出たら離します。

1つだけ消したいとき:そのブロックを右クリック →「ブロックを削除」を選ぶと、そのブロックだけが消え、上下は自動でつながります。

9複数のブロックをまとめて動かしたい
  1. 動かしたいかたまりの、いちばん上のブロックをつかんでドラッグします。下につながるすべてが一緒に動きます。
  2. 別のスプライトへコピーしたいときは、かたまりをつかんだまま、画面右下のスプライトリストにある、相手のスプライトの絵の上まで運び、絵が少しゆれたら離します。元のスプライトにも残ります。
  3. 全体をきれいに並べ直したいときは、コードエリアの何もないところを右クリック →「きれいにする」を選びます。

注意:Scratch 3.0には、マウスで囲んで複数のスクリプトを選ぶ機能がありません。離れた場所にあるスクリプトは、1つずつ動かします。

10ブロックを複製したい
  1. 複製したいブロックの、色のついた部分を右クリックします。
  2. メニューのいちばん上の「複製」をクリックします。
  3. コピーがマウスにくっついてきます。置きたい場所でクリックします。

しくみ:右クリックしたブロックと、その下すべてが複製されます。スクリプト全体を複製したいときは、いちばん上のブロックを右クリックします。

補足:キーボードのコピー・貼り付け(Ctrl+C → Ctrl+V)が使える場合もありますが、選択の状態や操作環境によって結果が変わります。慣れるまでは、右クリックの「複製」を使うのが確実です。

11コメントを付けたい
  1. メモを付けたいブロックを右クリックします。
  2. 「コメントを追加」をクリックします。黄色い付箋が、ブロックの右側に出ます。
  3. 付箋の中をクリックし、メモを入力します。
  4. 付箋の外をクリックすると確定します。

付箋の操作:上の帯の部分をドラッグすると移動、左上の▼をクリックすると1行に折りたたみ、右下の角をドラッグすると大きさの変更、右上の×で削除です。

補足:ブロックに付けず、コードエリアの何もないところを右クリック →「コメントを追加」で、独立したメモも置けます。

12ブロックの実行順序が分からなくなった

基本:1つのスクリプトは、上から下へ1つずつ実行されます。ただし、スクリプトが2つ以上あると、それらは同時に動きます。

  1. 紫の「見た目」カテゴリから、「(こんにちは!)と(2)秒言う」をコードエリアに出します。
  2. 「こんにちは!」の部分をクリックし、「1」と入力します。
  3. このブロックを、確かめたい場所のすぐ上にはさみます。別の場所には「2」「3」と番号を変えてはさみます。
  4. 緑の旗を押し、スプライトが言う番号の順番を見ます。出てこない番号があれば、そこまで処理が届いていません。
  5. 確認が終わったら、はさんだブロックを右クリック →「ブロックを削除」で消します。

目で見る方法:実行中のスクリプトは、まわりが黄色く光ります。光っていないスクリプトは、今は動いていません。



Chapter 02 / Runtime Issues

02実行時のトラブル編

Scratchで緑の旗を押しても動かない時や途中で止まる時の対処法

ブロックは組み立てられたのに、実行すると思い通りに動かない。Scratchでもっとも多い相談です。

13緑の旗を押しても何も起きない

代表的な原因:先頭のブロックがない、先頭とつながっていない、別のスプライトに作っている、の3つです。ほかに、スプライトが隠れている、条件が成り立っていない、どこかで待っている、という場合もあります(Q15・Q16・Q27)。

  1. スクリプトのいちばん上に、黄色の「(緑の旗)が押されたとき」があるか見ます。なければ、黄色の「イベント」カテゴリのいちばん上から出して、スクリプトの上につなげます。
  2. そのブロックをつかんで、少しだけ動かします。下のブロックが一緒についてくれば、つながっています。ついてこなければ、すき間が空いているので、つなぎ直します。
  3. 下のブロックのかたまりを直接クリックします。これで動くなら、ブロック自体は正しく、原因は手順1・2です。
  4. 直接クリックしても動かないなら、スプライト情報を見ます。「表示する」の目のアイコンが左側(開いた目)になっているか、x・yが0付近か、大きさが100かを確認します(Q14・Q27参照)。
  5. 緑の旗を押したとき、スクリプトが黄色く光るか見ます。光るのに見た目が変わらないなら、動いてはいます。一瞬で終わっている可能性があるので、「(1)秒待つ」をはさんで確かめます。

直らないとき:スプライトリストで、動かしたいスプライトをクリックし、そのスプライトのコードエリアにスクリプトがあるか確認します。ステージ側に作っていた、という例もよくあります。

14スプライトが画面外に消えてしまった

原因:ステージの範囲は、xが−240〜240、yが−180〜180です。端のぎりぎりにいる、隠れている、極端に小さい、のどれかです。

  1. スプライトリストで、消えたスプライトをクリックして選びます。
  2. ステージの下のスプライト情報で、「x」の欄をクリックして0と入力しEnter、「y」の欄にも0と入力しEnterを押します。ステージの中央に戻ります。
  3. まだ見えなければ、「表示する」の右にある2つの目のアイコンのうち、左(開いた目)をクリックします。
  4. 「大きさ」の欄に100と入力しEnterを押します。
  5. それでも見えなければ、紫の「見た目」カテゴリの「画像効果をなくす」をパレットの中で直接クリックします(透明になっている場合、Q39参照)。

再発を防ぐ:スクリプトの先頭(緑の旗のすぐ下)に、青の「x座標を(0)、y座標を(0)にする」と、紫の「表示する」を入れておきます。歩き続けるスプライトには、青の「もし端に着いたら、跳ね返る」を「ずっと」の中に入れます。

15プログラムが途中で止まる

原因:「待つ」系のブロックで、待ったままになっていることが大半です。

  1. 緑の旗を押し、止まったように見える状態で、コードエリアを見ます。黄色く光っているスクリプトは、まだ動いています(どこかで待っています)。
  2. 光っているスクリプトの中から、次のブロックを探します。
    ・「〈 〉まで待つ」:条件がいつまでも成り立たない
    ・「〈 〉まで繰り返す」:同上
    ・「( )秒待つ」:秒数が大きすぎる
    ・「( )と聞いて待つ」:ステージ下の入力欄で答えを待っている
    ・「終わるまで( )の音を鳴らす」:長い音が終わるのを待っている
    ・「( )を送って待つ」:受け取った側のスクリプトが終わらない
  3. 見つけたら、Q12の「番号を言わせる」方法で、その直前と直後に番号をはさみ、どこで止まるか特定します。
  4. 光っているスクリプトが1つもない場合は、最後まで実行して終わっただけです。繰り返したい部分を「ずっと」で囲みます。

直らないとき:どこかに「(すべてを止める)」ブロックが入っていないか探します。これが実行されると、全スクリプトが止まります。

16「もし〜なら」が思った通りに分岐しない

原因:(a) 判定が1回しか行われていない、(b) 比べている値が思っている値と違う、のどちらかです。

  1. 「もし〜なら」が「ずっと」の中に入っているかを見ます。入っていないと、緑の旗を押した瞬間に1回だけ判定して終わります。これがいちばん多い原因です。
  2. 条件の六角形の穴に、緑の比較ブロック(=・<・>)や、水色の「〜に触れた」が、きちんとはまっているか見ます。穴が空のままだと、常に「いいえ」として扱われます。
  3. 比べている値を確かめます。「(こんにちは!)と言う」をコードエリアに出し、「こんにちは!」の欄に、比べている変数の丸いブロックをはめて、クリックします。今の値がふきだしに出ます。
  4. 値に、全角の数字や、前後の空白がまざっていないか見ます。全角の「10」は数ではなく文字として扱われ、大小の比較が思い通りになりません。
  5. 「<」と「>」の向きを、声に出して読んで確かめます(「スコア > 10」は「スコアが10より大きい」)。「10以上」にしたいときは、緑の「〈 〉ではない」に「スコア < 10」をはめて、「〈スコア < 10〉ではない」とします(小数が入っても正しく判定できます。整数しか使わないなら「スコア > 9」でも同じです)。

補足:Scratchは、半角の「10」という文字と数の10を、同じものとして比べます。アルファベットの大文字・小文字も区別しません(「A」=「a」は「はい」になります)。

17「ずっと」ブロックの中身が実行されない

原因:ブロックが「ずっと」の口の中に入っておらず、下や横に置かれているだけ、という状態が多いです。

  1. 「ずっと」ブロックをつかんで少し動かします。中に入れたはずのブロックが一緒についてくれば入っています。ついてこなければ入っていません。
  2. 入っていなければ、入れたいブロックをつかみ、その左上の角を「ずっと」の口の内側・左上に近づけます。口の中に灰色の影が出たら離します。
  3. 「ずっと」の上に、「(緑の旗)が押されたとき」などの先頭ブロックがつながっているか確認します。
  4. 「ずっと」より上に、「〜まで待つ」や長い「〜秒待つ」があると、そこで止まって「ずっと」まで届きません(Q15参照)。

覚えておくこと:「ずっと」の下には、ブロックをつなげられません(下に出っぱりがない形です)。「ずっと」の後に何かさせたい場合は、「〜まで繰り返す」に置きかえます。

18変数の値がリセットされない

原因:Scratchは、赤い停止ボタンを押しても、緑の旗を押し直しても、変数の値を自動では戻しません。前回の値がそのまま残ります。

  1. オレンジの「変数」カテゴリから、「(変数▼)を(0)にする」をコードエリアに出します。
  2. 「▼」をクリックし、リセットしたい変数の名前を選びます。
  3. このブロックを、「(緑の旗)が押されたとき」のすぐ下にはさみます。「ずっと」の中には入れません(入れると毎回0に戻ってしまいます)。
  4. 変数が複数あるなら、変数の数だけ同じブロックを並べます。

同じ考え方で:位置(x座標・y座標)、向き、コスチューム、大きさ、表示/隠すも、自動では戻りません。ゲームの最初の状態にしたいものは、すべて緑の旗のすぐ下で指定します。

192つのスクリプトが同時に動いて競合する

原因:「(緑の旗)が押されたとき」が2つ以上あると、それらは同時に動きます。同じもの(同じ変数、同じ座標、同じコスチューム)を両方から変えると、結果が安定しません。

  1. おかしな動きをするもの(たとえばx座標)を1つ決めます。
  2. そのスプライトのコードエリア全体を見て、それを変えるブロックが、いくつのスクリプトに入っているか数えます。
  3. 2つ以上のスクリプトに入っていたら、1つのスクリプトにまとめます。片方のブロックを、もう片方の「ずっと」の中へ移します。
  4. 「準備が終わってから動かしたい」など、順番を決めたい場合は、黄色の「(メッセージ1▼)を送る」と「(メッセージ1▼)を受け取ったとき」を使います。準備のスクリプトの最後に「送る」を置き、後から動かしたいスクリプトの先頭を「受け取ったとき」に取りかえます。

メッセージ名の付け方:「送る」ブロックの「▼」→「新しいメッセージ」をクリックし、「ゲーム開始」などの名前を入力して「OK」を押します。

20キー入力が反応しない

原因:(a) ステージ以外の場所が選ばれている、(b) 日本語入力がオンになっている、(c) 判定ブロックが「ずっと」に入っていない、の3つが定番です。

  1. ステージの中を1回クリックしてから、キーを押します。コメントや数値の入力欄をさわった直後は、キーがそちらに取られています。
  2. 日本語入力をオフにします。Windowsは「半角/全角」キー、Macは「英数」キーを押します。日本語入力がオンのままだと、文字キーが反応しないことがあります。
  3. 黄色の「(スペース▼)キーが押されたとき」を使っている場合は、「▼」をクリックし、キーを選び直します。
  4. 水色の「(スペース▼)キーが押された」(六角形)を使っている場合は、次の形になっているか確認します。
    (緑の旗)が押されたとき
    ずっと
      もし〈(右向き矢印▼)キーが押された〉なら
        x座標を(10)ずつ変える
  5. 「ずっと」がないと、緑の旗を押した瞬間に1回調べるだけで終わるため、反応しません。

直らないとき:ブラウザの拡張機能や、キーボードのショートカットがキーを横取りしていることがあります。別のキー(スペースやa)に変えて試してください。

21マウスクリックが反応しない

原因:クリックは、絵の色がぬられた部分にしか反応しません。また、手前に別のスプライトがあると、そちらがクリックを受け取ります。

  1. 黄色の「このスプライトが押されたとき」が、クリックしたいスプライト自身のコードエリアにあるか確認します(スプライトリストでそのスプライトを選んで見ます)。
  2. 絵の、線ではなく色がぬられた部分をクリックします。輪郭だけの絵は、中が透明なので反応しません。
  3. 中をぬるには、「コスチューム」タブを開き、左の道具からバケツの形の「塗りつぶし」を選び、絵の内側をクリックします。
  4. 手前に別のスプライトが重なっていないか確認します。重なっていれば、クリックしたいスプライトを、ステージ上で少しドラッグします。ドラッグしたスプライトは、いちばん手前に来ます。
  5. スプライトが隠れている(「隠す」が実行された)状態では、クリックに反応しません。

直らないとき:「このスプライトが押されたとき」の下に、ブロックがきちんとつながっているか、もう一度確認します(Q13の手順2)。「もし〈マウスが押された〉なら」で作っている場合は、「ずっと」の中に入っているかも見ます。スプライトが小さくて押しにくいときは、ステージ右上の全画面表示ボタン(四方に矢印のアイコン)で大きく表示すると、確かめやすくなります。

22スプライトの向きがおかしくなる(逆さまになる)

原因:回転方法が「自由に回転」になっているため、左を向くと絵が上下逆さまになります。

  1. スプライトリストで、そのスプライトをクリックして選びます。
  2. スプライト情報の「向き」の数字をクリックします。丸いダイヤルが出ます。
  3. ダイヤルの下に、3つの小さなボタンが並んでいます。左から「自由に回転」「左右のみ」「回転しない」です。
  4. 左右に歩くキャラクターなら、まん中の「左右のみ」(左右の矢印の絵)をクリックします。
  5. 向きを元に戻すには、同じ「向き」の欄に90と入力してEnterを押します(90が右向きです)。

プログラムで固定する:青の「動き」カテゴリのいちばん下にある「回転方法を(左右のみ▼)にする」を、緑の旗のすぐ下に入れておくと確実です。

23「もし〜なら」の条件が、常に真になってしまう

原因:比べる向きが逆、値が思っている値と違う、または「〜ではない」「または」の組み合わせが意図と違う、のどれかです。

  1. 条件のブロックだけを、「もし〜なら」から引き出して、コードエリアの空いた場所に置きます。
  2. その六角形のブロックを直接クリックします。「true」(はい)か「false」(いいえ)が、ふきだしで表示されます。
  3. 状況を変えて(スプライトを動かす、変数の値を変えるなど)、もう一度クリックします。いつも「true」なら、条件の作り方が原因です。
  4. 「◇または◇」を使っている場合、片方でも成り立てば「はい」になります。「両方とも」にしたいなら「◇かつ◇」に取りかえます。
  5. 「(色)色に触れた」を使っている場合、背景の色や、自分の絵の中の同じ色に、常に触れていないか確認します。

補足:数と文字の比較については、Q16の手順4をご覧ください。

24動きがカクカクする

原因:(a)「〜キーが押されたとき」で動かしている、(b) 1回の移動量が大きい、(c)「ずっと」の中に「待つ」がある、のいずれかです。

  1. 黄色の「( )キーが押されたとき」で動かしている場合、キーを押し続けると、最初に一拍止まってから動き出します。これはキーボードの連続入力の性質です。Q20の手順4のように、「ずっと」+「もし〈キーが押された〉なら」の形に作りかえると、なめらかになります。
  2. 「(10)歩動かす」「x座標を(10)ずつ変える」の数字を、3〜5に小さくします。待ち時間のない「ずっと」は、非常に短い間隔で繰り返されるので、小さい数でも十分な速さになります。
  3. 「ずっと」の中に「( )秒待つ」があれば、外すか、数字を小さくします。
  4. それでも重い場合は、10章の対策を行います。

注意:「編集」メニューの「ターボモードにする」は、計算を速くする機能で、動きをなめらかにする機能ではありません。ゲームでは速すぎて操作できなくなることがあります。

25突然フリーズする

原因:クローンの作りすぎ、または終わらない重い計算がほとんどです。

  1. まず、ステージ左上の赤い停止ボタンを押します。押せれば、クローンはすべて消え、動きが戻ります。
  2. 動きが戻ったら、すぐに「ファイル」→「コンピューターに保存する」で保存します。
  3. 「(自分自身▼)のクローンを作る」が、待ち時間なしで「ずっと」の中に入っていないか探します。入っていれば、すぐ下に「(0.5)秒待つ」を入れます。
  4. 「クローンされたとき」のスクリプトの中に、「(自分自身)のクローンを作る」が入っていないか確認します。クローンがクローンを作り、一気に増えます。
  5. 「〜まで繰り返す」の中に、画面が変わらない計算だけが入っていて、条件が成り立たない場合も固まります。Q15の方法で特定します。

停止ボタンも押せないとき:ブラウザのタブを閉じるしかありません。保存していない変更は失われます。開き直した後は、緑の旗を押す前に、手順3・4を確認してください。

26ブロックの周りに、黄色い枠が表示される

結論:エラーではありません。「このスクリプトは今、実行中です」という印です。

  1. 消したいときは、ステージ左上の赤い停止ボタンを押します。
  2. 「ずっと」が入ったスクリプトは、止めるまで光り続けます。これは正常です。
  3. 「ずっと」がないのに光り続ける場合は、どこかで待っています。Q15の手順2の一覧から探します。

活用法:動かないときに「光っているか」を見るだけで、「始まっていない」のか「途中で待っている」のかを切り分けられます。

27ブロックは動くのに、画面に反映されない

原因:スプライトが隠れている、透明になっている、何かの後ろにいる、または別のスプライトを動かしている、のどれかです。

  1. スプライト情報の「表示する」の左側の目のアイコンをクリックします。
  2. 紫の「見た目」カテゴリの「画像効果をなくす」を、パレットの中で直接クリックします。
  3. 同じく「見た目」の「(最前面▼)へ移動する」を、パレットの中で直接クリックします。
  4. スプライト情報のx・yを見ながら緑の旗を押します。数字が変わっていれば動いています。数字が変わらないなら、スクリプトは別のスプライトのものです。スプライトリストで選び直します。
  5. コスチュームが空(何も描かれていない絵)になっていないか、「コスチューム」タブで確認します。

再発を防ぐ:緑の旗のすぐ下に「表示する」「画像効果をなくす」を入れておきます。



Chapter 03 / Sprites and Costumes

03スプライト・コスチューム編

Scratchのスプライト追加や重なりやコスチューム切り替えのトラブル対処法

キャラクターや、その見た目に関するトラブルです。

28新しいスプライトが追加できない
  1. 画面右下のスプライトリストの、右下の角にある青い丸いボタン(ネコの顔と+の絵)を探します。
  2. そのボタンをクリックすると、スプライトの一覧(ライブラリ)が開きます。使いたい絵を1回クリックすると追加されます。
  3. ボタンにマウスを乗せるだけ(タブレットは1回タップ)にすると、上に4つの小さなボタンが出ます。上から「スプライトをアップロード」「サプライズ」「描く」「スプライトを選ぶ」です。
  4. 自分で描くなら筆のアイコン「描く」、パソコンの画像を使うならいちばん上の「スプライトをアップロード」をクリックします。

直らないとき:ライブラリの一覧が出ない・真っ白な場合は、通信が不安定です。オンライン版では、一覧の読み込みにインターネット接続が必要です。接続を確認してから、「ファイル」→「コンピューターに保存する」で保存し、ブラウザを再読み込みします。

29スプライトが重なって見えない

しくみ:スプライトには前後の順番(層)があります。後ろの層にいるスプライトは、手前のスプライトに隠れます。

  1. いちばん簡単な方法:緑の旗を押していない状態で、ステージ上の、手前に出したいスプライトを少しだけドラッグします。ドラッグしたスプライトが、いちばん手前に来ます。
  2. 完全に隠れていてつかめないときは、スプライトリストでそのスプライトを選び、紫の「見た目」カテゴリの「(最前面▼)へ移動する」を、パレットの中で直接クリックします。
  3. 実行中もずっと手前にしたいスプライトには、「(最前面▼)へ移動する」を、緑の旗のすぐ下に入れます。
  4. 背景のように、いちばん後ろにしたいスプライトは、「▼」をクリックして「最背面」に変えます。
  5. 1段ずつ調整したいときは、すぐ下の「(1)層(手前に出す▼)」を使います。

注意:ステージ上のスプライトを右クリックしても、順番を変えるメニューは出ません。上の方法で操作します。

30コスチュームが切り替わらない

原因:コスチュームが1枚しかない、切り替えが速すぎて見えない、別のスクリプトがすぐ元に戻している、のどれかです。

  1. スプライトを選び、「コスチューム」タブをクリックします。左側の縦の一覧に、絵が2枚以上あるか数えます。
  2. 1枚しかなければ、一覧のいちばん下の丸いボタンから追加します。同じ絵を少し変えたいなら、今の絵を右クリック →「複製」を選び、コピーを描きかえます。
  3. 「コード」タブに戻り、次の形になっているか確認します。
    (緑の旗)が押されたとき
    ずっと
      次のコスチュームにする
      (0.2)秒待つ
  4. 「待つ」がないと、非常に短い間隔で切り替わり続け、ちらつくだけで動いて見えません。
  5. 別のスクリプトの「ずっと」の中に、「コスチュームを( )にする」がないか探します。あると、切り替えた直後に戻されます。

確かめ方:「次のコスチュームにする」を、パレットの中で直接クリックします。クリックするたびに絵が変われば、コスチュームは正しく、原因はスクリプト側です。

31自分で描いた絵が反映されない

原因:別のスプライトに描いた、別のコスチュームに描いた、キャンバスの端の方に描いた、のどれかです。

  1. スプライトリストで、絵を変えたいスプライトをクリックします。青い枠で囲まれているものが、今選ばれているスプライトです。
  2. 「コスチューム」タブを開き、左の一覧で、描いた絵のコスチュームをクリックします。クリックしたコスチュームが、ステージに表示されます。
  3. ステージで位置がずれて見える場合は、キャンバスのまん中にある小さな丸い印(中心の目印)を探します。絵がここから離れていると、スプライトがずれて表示され、回転もおかしくなります。
  4. 左の道具のいちばん上、矢印の「選択」をクリックし、絵全体をドラッグで囲んで選び、中心の印に重なるように動かします。
  5. 緑の旗を押すと別の絵に戻る場合は、コードの中の「コスチュームを( )にする」の「▼」をクリックし、描いた絵の名前を選びます。

補足:描いた内容は自動で反映されます。「保存」ボタンを押す必要はありません。

32スプライトのサイズが変わらない
  1. スプライトリストでスプライトを選び、スプライト情報の「大きさ」の欄をクリックします。
  2. 半角で数字を入力し(100が元の大きさ、50で半分、200で2倍)、Enterを押します。
  3. 緑の旗を押すと元に戻る場合は、コードの中に紫の「大きさを( )%にする」があります。その数字を書きかえます。
  4. 「大きさを(10)ずつ変える」が「ずっと」の中にあると、大きくなり続けます。意図していなければ外します。

ある大きさで止まるとき:Scratchには大きさの上限と下限があります(ステージより極端に大きくはできず、数ピクセルより小さくもできません)。もっと大きくしたい場合は、「コスチューム」タブで絵そのものを選択し、角をドラッグして大きく描き直します。

33スプライトを削除してしまった

重要:スプライトの削除は、Ctrl+Zでは戻りません。メニューから復元します。

  1. ほかの操作をする前に、メニューバーの「編集」をクリックします。
  2. いちばん上の「スプライトを復元」をクリックします。スプライトが、コードやコスチュームごと戻ります。

注意:復元できるのは、最後に削除した1つだけです。続けて別のスプライト・コスチューム・音を削除すると、前のものは復元できなくなります。いちばん上の項目が灰色の「復元」になっていて押せない場合は、復元できるものがありません。復元できる範囲は、Scratchの版や使い方によってちがうことがあるため、消してしまったら、ほかの操作をする前に、まずこのメニューを確認してください。

復元できないとき:オンライン版でサインイン中なら、ページを再読み込みすると、最後に自動保存された時点に戻る場合があります(ただし削除後に保存されていると戻りません)。パソコンに保存した.sb3ファイルがあれば、「ファイル」→「コンピューターから読み込む」で開き直します。

34複数のスプライトを同時に操作したい

しくみ:コードは、スプライトごとに別々に持ちます。1つのスクリプトで、ほかのスプライトを直接動かすことはできません。

  1. 1体目のスプライトで、動きのスクリプトを完成させます。
  2. そのスクリプトのいちばん上のブロックをつかみ、スプライトリストの2体目の絵の上までドラッグして離します。同じスクリプトが2体目にコピーされます。
  3. スプライトリストで2体目をクリックし、コピーされたことを確認して、数字などを調整します。
  4. 全員を同じタイミングで動かしたいときは、どれか1つのスプライト(またはステージ)に「(スタート▼)を送る」を置き、各スプライトの先頭を「(スタート▼)を受け取ったとき」にします。

同じ動きをする敵がたくさん必要なら:スプライトを増やすより、クローンを使う方が管理しやすくなります(Q65参照)。

35スプライトの名前を変更したい
  1. スプライトリストで、名前を変えたいスプライトをクリックします。
  2. スプライト情報の左上、「スプライト」と書かれた入力欄をクリックします。
  3. 今の名前を消し、新しい名前を入力して、Enterを押します。

補足:名前を変えると、「( )に触れた」などで、そのスプライトを選んでいるブロックの表示も、自動で新しい名前に変わります。作り直す必要はありません。「スプライト1」「スプライト2」のままだと後で混乱するので、「プレイヤー」「てき」など、役割が分かる名前にしておくことをおすすめします。

36コスチューム番号がずれる

しくみ:コスチューム番号は、「コスチューム」タブの一覧の、上から何番目かです。途中の1枚を削除・追加・並べかえすると、それより下の番号がすべて変わります。

  1. 「コスチューム」タブを開きます。一覧の各絵の左上に小さく書かれた数字が、今の番号です。
  2. 順番を直すには、一覧の絵を上下にドラッグして並べかえます。
  3. コードで番号を使っている場所(「コスチュームを( )にする」に数や変数を入れている部分)を、今の番号に合わせて直します。

ずれない作り方:番号ではなく名前で指定します。「コスチュームを( ▼)にする」の「▼」から名前を選べば、順番が変わっても影響を受けません。コスチュームの名前は、「コスチューム」タブの上の「コスチューム」欄で変えられます。

37背景(ステージ)が変わらない

原因:切りかえ先の背景が追加されていない、または、ほかのスクリプトがすぐ元に戻していることが多いです。

  1. 画面のいちばん右下にある「ステージ」欄をクリックします(スプライトリストの右隣の縦長の枠です)。
  2. 画面左上のタブが「コード/背景/音」に変わります。「背景」タブをクリックします。
  3. 左の一覧に、切りかえたい背景があるか確認します。なければ、ステージ欄の下の丸いボタン(背景を選ぶ)をクリックし、一覧から選んで追加します。
  4. 「コード」タブに戻り、紫の「見た目」カテゴリの「背景を( ▼)にする」の「▼」をクリックして、背景の名前を選びます。
  5. このブロックは、ステージのコードにも、スプライトのコードにも置けます。パレットの中で直接クリックして、背景が変わるか確かめます。

直らないとき:緑の旗のすぐ下に「背景を(最初の背景)にする」があり、別の場所の切りかえと同時に動いていないか確認します。背景を変えるブロックがどこにあるか、ステージと全スプライトのコードを順に見ます。

38アップロードした画像が表示されない
  1. 画像の形式を確認します。使えるのはPNG・JPG(JPEG)・SVG・GIF・BMPです。動くGIF(アニメーションGIF)は、動きがそのまま再生されるわけではありません。コマごとのコスチュームに分かれるなど、元のとおりにならないことがあります。スマートフォンの写真に多いHEIC形式や、PDFは使えません。JPGやPNGに変換してからアップロードします。
  2. アップロードする場所を確認します。
    ・新しいスプライトにする:スプライトリスト右下の丸いボタンに乗せる →「スプライトをアップロード」
    ・今のスプライトの絵を増やす:「コスチューム」タブ → 左下の丸いボタンに乗せる →「コスチュームをアップロード」
    ・背景にする:ステージ欄の下の丸いボタンに乗せる →「背景をアップロード」
  3. アップロード後、「コスチューム」タブの一覧に絵が追加されているか見ます。追加されていれば、その絵をクリックするとステージに出ます。
  4. 追加されない場合は、ファイルが大きすぎる可能性があります。画像編集ソフトで、横幅を1000ピクセル以下に縮小し、ファイルサイズを小さくしてから再度試します。

画像が大きすぎてステージからはみ出すとき:スプライト情報の「大きさ」を30〜50に下げます。

39スプライトが透明になった・色が変わった

原因:「(幽霊▼)の効果」や「(色▼)の効果」が変わったままになっています。これらは、赤い停止ボタンを押しても、緑の旗を押し直しても、自動では戻りません。

  1. スプライトリストで、そのスプライトを選びます。
  2. 紫の「見た目」カテゴリの「画像効果をなくす」を、パレットの中で直接クリックします。元の見た目に戻ります。
  3. 再発を防ぐため、同じブロックを、緑の旗のすぐ下に入れます。
  4. 「(幽霊▼)の効果を( )ずつ変える」が「ずっと」の中にあると、だんだん透明になって消えます。意図していなければ外します。

目安:幽霊の効果は、0でふつう、100で完全に透明です。完全に透明なスプライトは、見えませんが、当たり判定は残ります。



Chapter 04 / Variables and Lists

04変数・リスト編

Scratchの変数とリストが正しく動かない時の使い分けと対処法

スコアや状態の管理でよく使う、変数とリストのトラブルです。

40変数の値が正しく更新されない

原因:「〜にする」と「〜ずつ変える」の取りちがえ、または、変数の選びまちがいが定番です。

  1. 使っているブロックを確認します。
    ・「(変数▼)を(1)にする」:今の値に関係なく、1に書きかえる
    ・「(変数▼)を(1)ずつ変える」:今の値に1を足す(−1なら1を引く)
  2. スコアを増やしたいのに「〜にする」を使っていると、いつまでも同じ値のままです。「〜ずつ変える」に取りかえます。
  3. ブロックの「▼」をクリックし、変えたい変数の名前が選ばれているか確認します。変数を作った直後は、別の変数が選ばれていることがあります。
  4. オレンジの「変数」カテゴリで、変数名の左のチェックボックスをクリックしてチェックを入れます。ステージに今の値が表示されるので、実行しながら値の変化を見ます。
  5. 値が変わらないなら、そのブロックまで処理が届いていません。Q12の方法で確かめます。

直らないとき:増えた直後に0に戻る場合は、「(変数▼)を(0)にする」が「ずっと」の中に入っていないか探します。

41変数がスプライト間で共有されない

原因:変数を作るときに「このスプライトのみ」を選んだためです。この設定は、後から変えられません。

  1. 確かめ方:変数名の左のチェックを入れ、ステージの表示を見ます。「スプライト1: スコア」のように、スプライト名が前に付いていれば、「このスプライトのみ」の変数です。
  2. オレンジの「変数」カテゴリのいちばん上、「変数を作る」ボタンをクリックします。
  3. 「新しい変数名」に、今とは別の名前(例:「スコア2」)を入力します。
  4. 下の選択肢で「すべてのスプライト用」が選ばれていることを確認し、「OK」を押します。
  5. コードの中で、古い変数を使っているブロックの「▼」をクリックし、新しい変数に選び直します。丸い変数ブロックは、新しいものに差しかえます。
  6. すべて置きかえたら、古い変数を右クリック →「変数「〜」を削除」を選びます。その後、新しい変数を右クリック →「変数名を変更」で、元の名前に戻せます。

注意:ステージを選んだ状態で変数を作ると、選択肢は出ず、必ず「すべてのスプライト用」になります。

42リストに要素を追加できない
  1. オレンジの「変数」カテゴリを開き、下の方にある「リストを作る」ボタンをクリックします(「変数を作る」とは別のボタンです)。
  2. 名前を入力して「OK」を押します。リスト用のブロックが、パレットに追加されます。
  3. 「(なにか)を(リスト名▼)に追加する」をコードエリアに出し、「なにか」の欄に、追加したい文字や数を入力します。
  4. ブロックを直接クリックします。ステージ上のリストの表示に、1行増えれば成功です。
  5. リストがステージに見えないときは、パレットのリスト名の左のチェックボックスにチェックを入れます。

直らないとき:ブロックの「▼」で、別のリストが選ばれていないか確認します。また、追加した直後に「(リスト名▼)のすべてを削除する」が実行されていないか探します(Q43参照)。

43リストの中身が消えてしまう

原因:ほとんどの場合、緑の旗のすぐ下にある「(リスト名▼)のすべてを削除する」が、実行のたびに中身を消しています。

  1. 全スプライトとステージのコードを順に開き、「〜のすべてを削除する」「(リスト名)の(1)番目を削除する」を探します。
  2. 中身を残したい場合は、見つけたブロックを右クリック →「ブロックを削除」で消します。
  3. 「ゲーム開始時は空にしたいが、途中では消したくない」場合は、そのブロックが「ずっと」の中に入っていないか確認し、入っていれば緑の旗のすぐ下へ移します。

補足:リストの中身は、変数と同じく、プロジェクトを保存した時点の内容が、作品と一緒に保存されます。保存した後に遊んで増えた分は、もう一度保存しなければ残りません。ただし、ほかの人がその作品を開いたときに共有されるわけではありません。

44ステージ上の変数の表示を消したい・見た目を変えたい
  1. 消す:オレンジの「変数」カテゴリで、変数名の左のチェックボックスをクリックし、チェックを外します。
  2. プログラムで消す:「変数( ▼)を隠す」を緑の旗のすぐ下に入れます。出すときは「変数( ▼)を表示する」です。
  3. 動かす:ステージ上の変数の表示を、そのままドラッグします。
  4. 見た目を変える:ステージ上の変数の表示を右クリックします(パレットの変数名ではありません)。「普通の表示」「大きな表示」「スライダー」から選びます。ダブルクリックでも、順に切りかわります。
  5. 「スライダー」にすると、つまみをドラッグして値を変えられます。もう一度右クリック →「スライダーの範囲を変える」で、最小値と最大値を設定します。

チェックを外しても消えないとき:コードの中の「変数( )を表示する」が、実行のたびに表示し直しています。そのブロックを外します。

45「このスプライトのみ」と「すべてのスプライト用」を間違える

使い分けの目安:

  • すべてのスプライト用:ゲーム全体で1つだけあればよい値。スコア、残り時間、ゲームの状態(プレイ中/ゲームオーバー)など。どのスプライトからも読み書きできます。
  • このスプライトのみ:スプライト(やクローン)ごとに別々に持たせたい値。それぞれの敵の体力、落下速度、移動の速さなど。
  1. 見分け方:変数のチェックを入れ、ステージの表示を見ます。名前の前にスプライト名が付いていれば「このスプライトのみ」です。
  2. 間違えていた場合は、後から変更できないため、Q41の手順2〜6で作り直します。

迷ったら:最初は「すべてのスプライト用」で作って問題ありません。クローンを使い始めたときに、Q49を読んで使い分けてください。

46リストの番号がずれる

しくみ:Scratchのリストは、1番目から数えます。途中の項目を削除すると、それより後ろの項目が、1つずつ前につまります。

  1. リストのチェックを入れ、ステージ上で中身を表示します。各行の左の数字が、今の番号です。
  2. 「0番目」を指定していないか確認します。0番目は存在しないため、何も返ってきません。
  3. 前から順に削除しながら調べる処理は、番号がずれて、1つおきに飛ばしてしまいます。後ろ(最後の番号)から前へ向かって調べるように変えます。
  4. 最後の項目を指定したいときは、番号の欄に「(リスト名▼)の長さ」ブロックをはめます。

存在しない番号を指定したとき:エラーメッセージは出ません。何も返ってこない、何も起きないなど、ブロックの種類によって結果がちがいます。「何も表示されない」「追加されない」ときは、番号が1以上で、リストの長さを超えていないか確認してください。

47変数名を間違えて、別の変数を作ってしまった

名前を打ち間違えただけの場合(消さずに直せます):

  1. オレンジの「変数」カテゴリで、その変数の丸いブロックを右クリックします。
  2. 「変数名を変更」をクリックし、正しい名前を入力して「OK」を押します。コードの中の表示も、すべて自動で変わります。

よけいな変数を作ってしまった場合:

  1. 消したい変数を使っているブロックがあれば、「▼」をクリックして、残す方の変数に選び直します。
  2. 消したい変数の丸いブロックを右クリック →「変数「〜」を削除」をクリックします。
  3. まだ使われている場合は、確認の画面が出ます。そのまま進むと、その変数を使っているブロックも一緒に消えます。心配なら「キャンセル」を押し、手順1をやり直します。

予防:「スコア」と「すこあ」、「score」と「Score」のように、似た名前を作らないようにします。

48リストが画面に表示されすぎて邪魔
  1. 消す:オレンジの「変数」カテゴリで、リスト名の左のチェックボックスを外します。
  2. 小さくする:ステージ上のリストの表示の、右下の角にある「=」の印をドラッグします。
  3. 動かす:リストの表示の、上の名前の部分をドラッグします。
  4. 遊ぶ人には見せない:緑の旗のすぐ下に「リスト( ▼)を隠す」を入れます。作っている間だけ確認したいときは、パレットのチェックで出し入れします。

補足:表示を消しても、リストの中身は消えません。

49クローンと変数の関係が分からない

しくみ:

  • 「このスプライトのみ」の変数:クローンが作られた瞬間の値がコピーされ、その後はクローン1体ごとに別々の値になります。
  • 「すべてのスプライト用」の変数:全員で1つの値を共有します。あるクローンが変えると、全員の値が変わります。

敵ごとに体力を持たせる手順:

  1. 敵のスプライトを選んだ状態で、「変数を作る」をクリックします。
  2. 名前を「体力」とし、「このスプライトのみ」を選んで「OK」を押します。
  3. 次のように組みます。
    クローンされたとき
    [体力▼]を(3)にする
    表示する
    ずっと
      もし〈(たま▼)に触れた〉なら
        [体力▼]を(-1)ずつ変える
        (0.2)秒待つ
      もし〈(体力)=(0)〉なら
        このクローンを削除する

よくある失敗:体力を「すべてのスプライト用」で作ると、1体に当てただけで全員の体力が減ります。Q41の方法で作り直します。



Chapter 05 / Sound Issues

05音・サウンド編

Scratchで音が鳴らない時や録音できない時の確認ポイント

音に関するトラブルは、パソコン側の設定が原因のことも多くあります。Scratchの外側から順に確認していきます。

50音が鳴らない

切り分け方:「パソコン →ブラウザ → Scratchの音データ →ブロック」の順に確認します。

  1. パソコン:画面右下(Macは右上)のスピーカーのアイコンをクリックし、音量が0や消音になっていないか確認します。イヤホンやBluetoothスピーカーにつながっていないかも見ます。
  2. ブラウザ:Scratchを開いているタブを右クリックします。「サイトのミュートを解除」という項目があれば、クリックします(消音されていた状態です)。
  3. Scratchの音データ:スプライトを選び、「音」タブをクリックします。左の一覧の音をクリックし、波形の下の青い再生ボタン(▶)を押します。ここで鳴れば、パソコンとブラウザは正常です。
  4. ブロック:「コード」タブに戻り、赤紫の「音」カテゴリの「( ▼)の音を鳴らす」の「▼」をクリックし、音の名前を選び直します。そのブロックを直接クリックして、鳴るか確かめます。
  5. ブロックをクリックすると鳴るのに、緑の旗では鳴らない場合は、そのブロックまで処理が届いていません(Q12・Q15参照)。

いちばん多い見落とし:音はスプライトごとに持っています。ネコに入れた音は、別のスプライトのブロックの「▼」には出てきません。鳴らしたいスプライトを選んだ状態で「音」タブを開き、音を追加してください。「音」タブの一覧で音をつかみ、スプライトリストの別のスプライトの上へドラッグすると、コピーできます。

51音が二重に鳴る・ビリビリ鳴り続ける

原因:「( )の音を鳴らす」が「ずっと」の中にあり、待ち時間なしで、非常に短い間隔で鳴らし直されています。

  1. 音を鳴らすブロックが、「ずっと」の中に入っていないか探します。
  2. BGMのように繰り返したい場合は、「終わるまで( ▼)の音を鳴らす」に取りかえます。音が最後まで鳴ってから、次の周に進みます。
  3. 当たったときの効果音が連続で鳴る場合は、音のブロックの下に「(0.3)秒待つ」を入れるか、Q62の「無敵時間」の方法を使います。
  4. 同じ音を鳴らすブロックが、複数のスプライトに入っていないか確認します。同じメッセージを複数のスプライトが受け取って、同時に鳴らしていることがあります。
  5. クローンを使っている場合、クローン全員が同じ音を鳴らしていないか確認します。

すぐ止めたいとき:赤紫の「音」カテゴリの「すべての音を止める」を、パレットの中で直接クリックします。

52録音した音が反映されない
  1. 音を入れたいスプライトを選び、「音」タブをクリックします。
  2. 左下の丸いスピーカーのボタンにマウスを乗せ、出てきた中からマイクの絵の「録音する」をクリックします。
  3. ブラウザの左上に「マイクの使用を許可しますか」と出たら、「許可」をクリックします。
  4. 録音の画面で、声を出すと左の音量メーターが上下に動くかを確認します。動かなければ、マイクが音を拾っていません(下の「直らないとき」へ)。
  5. 赤い丸の「録音する」を押して録音し、「録音をやめる」を押します。
  6. 波形の両端にある赤い線をドラッグして、使う範囲を決めます。
  7. 右下の「保存」を押します。ここを押さずに画面を閉じると、録音は残りません。
  8. 左の一覧に「recording1」が追加されます。コードの「( ▼)の音を鳴らす」の「▼」から選びます。

直らないとき:一度「ブロック」を選んでしまった場合は、アドレスバーの左端にある鍵(または調整)のアイコンをクリックし、「マイク」を「許可」に変えてから、ページを再読み込みします。それでもメーターが動かなければ、パソコンの設定(Windows:設定 → システム → サウンド → 入力/Mac:システム設定 → サウンド → 入力)で、使いたいマイクが選ばれているか確認します。

53音量が変えられない
  1. 赤紫の「音」カテゴリから、「音量を(100)%にする」を出します。
  2. 数字を0〜100の間で入力します(100が最大、0が無音)。
  3. このブロックを、音を鳴らすスプライトのコードの、音を鳴らすブロックより上に入れます。

しくみ:音量もスプライトごとです。ネコの音量を下げても、ほかのスプライトの音は小さくなりません。BGMだけ小さくしたいなら、BGMを鳴らしているスプライト(またはステージ)に入れます。

音そのものを小さくする方法:「音」タブで音を選び、波形の下に並ぶボタンの「小さく」を数回押します。音データ自体が小さくなります(Ctrl+Zで戻せます)。

54音が途中で途切れる

原因の切り分け:次の3つを、順に確認します。

  • 鳴らし直し:鳴り終わる前に、同じ音を鳴らすブロックが、もう一度実行されている
  • 音を止めるブロック:「すべての音を止める」が実行されている
  • 全体の停止:「(すべてを止める)」が実行された、赤い停止ボタンが押された、または音を鳴らしているクローンが削除された
  1. 音を鳴らすブロックが、「ずっと」の中や、何度も実行される場所にないか確認します。あれば、Q51の手順2・3で直します。
  2. 全スプライトとステージのコードから、「すべての音を止める」「(すべてを止める)」を探します。
  3. ゲームオーバーの音が鳴らない場合は、「(すべてを止める)」の上に、「終わるまで( ▼)の音を鳴らす」を置きます。鳴り終わってから止まるようになります。
  4. クローンに音を鳴らさせている場合は、削除の前に「終わるまで〜鳴らす」を使うか、音はクローンではないスプライト(ステージなど)に鳴らさせます。

補足:「( )の音を鳴らす」は、鳴らし始めたらすぐ次のブロックへ進みます。次のブロックへ進んだだけでは、音は止まりません。そのため、音どうしが重なって聞こえることもあります。重ねたくないときは「終わるまで〜鳴らす」を使います。

55BGMとSE(効果音)を同時に鳴らせない

原因:Scratchは、ちがう音なら同時に鳴らせます。鳴らせないのは、BGMと効果音が同じスクリプトの中にあり、「終わるまで〜鳴らす」で待たされているためです。

  1. BGM用に、独立したスクリプトを作ります(ステージに置くのがおすすめです)。
    (緑の旗)が押されたとき
    ずっと
      終わるまで(BGM▼)の音を鳴らす
  2. 効果音は、別のスクリプトの中で、「( ▼)の音を鳴らす」(待たない方)を使います。下の2行は、当たり判定などを行う別のスクリプトの、「ずっと」の中に入れる一部分です。
    もし〈(コイン▼)に触れた〉なら
      (ピコ▼)の音を鳴らす
  3. ステージに音を入れるには、画面右下の「ステージ」欄をクリックしてから、「音」タブで追加します。

BGMが大きくて効果音が聞こえないとき:BGMのスクリプトの「ずっと」の上に、「音量を(30)%にする」を入れます。

56音のライブラリから探せない
  1. 音を入れたいスプライトを選び、「音」タブをクリックします。
  2. 左下の丸いスピーカーのボタンをクリックします。「音を選ぶ」画面が開きます。
  3. 上に並ぶ分類のボタン(動物、効果、ループ、音符、パーカッション、宇宙、スポーツ、声、奇妙)をクリックして、しぼりこみます。BGMは「ループ」、効果音は「効果」の中にあります。
  4. 音の絵の右上にある小さな再生マークにマウスを乗せると、試し聞きができます。
  5. 使いたい音をクリックすると、スプライトに追加されます。

検索のコツ:左上の検索欄は、音の名前で探します。音の名前の多くは英語なので、「pop」「jump」「coin」「laser」など、英単語で試してみてください。

57音の長さが合わない(前後の無音を切りたい)
  1. 「音」タブで、編集したい音をクリックします。
  2. 波形の上で、いらない部分をドラッグして選びます(色が変わります)。
  3. 波形の上に並ぶボタンの「削除」をクリックします。選んだ部分が消え、前後がつながります。
  4. 逆に、残したい部分だけを選んで「新しくコピー」を押すと、その部分だけの新しい音ができます。
  5. 青い再生ボタンで確認します。失敗したら、波形の上の左向き矢印(取り消し)で戻します。

ほかのボタン:波形の下に「速く」「遅く」「大きく」「小さく」「フェードイン」「フェードアウト」「逆向き」などが並んでいます。長さを少し縮めたいだけなら「速く」も使えます(音の高さも上がります)。

補足:編集した内容は、その場で自動的に反映されます。「保存」ボタンはありません。プロジェクト全体の保存だけ、忘れずに行ってください。



Chapter 06 / Game Development

06ゲーム制作特有のトラブル編

Scratchゲームでジャンプや当たり判定やスコアがおかしい時の対処法

ジャンプ、重力、当たり判定など、アクションゲーム制作でよくぶつかる壁です。この章では、ブロックの並びを文字で書いた見本も載せています。[ ]は変数、( )は数や選択肢、〈 〉は六角形の条件ブロックを表します。

58キャラクターが地面をすり抜ける

原因:落ちる速さが大きくなり、1回の移動で地面を通りこしている、または、地面にめり込んだときに押しもどす処理がない、のどちらかです。

Q58〜Q60は、同じ1つのサンプルを少しずつ育てていく形で説明します。まず、ここで土台を作ります。

  1. プレイヤーのスプライトを選び、「変数を作る」で、「落下速度」「接地中」「ジャンプ回数」の3つを作ります(どれも「このスプライトのみ」)。
  2. 次のように組みます。これが「重力と着地」のスクリプトです。
    (緑の旗)が押されたとき
    [落下速度▼]を(0)にする
    [接地中▼]を(0)にする
    [ジャンプ回数▼]を(0)にする
    ずっと
      [落下速度▼]を(-1)ずつ変える
      もし〈(落下速度)<(-12)〉なら
        [落下速度▼]を(-12)にする
      y座標を(落下速度)ずつ変える
      もし〈〈(地面▼)に触れた〉かつ〈(落下速度)<(1)〉〉なら
        〈〈(地面▼)に触れた〉ではない〉まで繰り返す
          y座標を(1)ずつ変える
        [落下速度▼]を(0)にする
        [接地中▼]を(1)にする
        [ジャンプ回数▼]を(0)にする
      でなければ
        [接地中▼]を(0)にする
  3. 「もし〜なら/でなければ」は、黄土色の「制御」カテゴリにある、口が2つあるブロックです。

このサンプルのポイント:

  • 落下速度に上限(−12)をつけています。1回の移動量が大きくなりすぎず、地面を通りこしにくくなります。地面の絵の厚みは、20ピクセル以上にしてください。
  • 着地の処理は「落ちているとき(落下速度が1より小さいとき)」だけ行います。上昇中に足場へ下から触れても、上へ押し上げられません(下からは通りぬけ、上からは乗れる足場になります)。
  • 「接地中」という変数に、地面に立っているかどうかを記録します。立っている間、スプライトは毎回1ピクセル沈んで、すぐ押しもどされます。このとき「接地中」が1になります。ジャンプの判定には、「地面に触れた」ではなく、この変数を使います(Q59)。

確認:「(地面▼)に触れた」の「▼」で、地面のスプライトが正しく選ばれているか見ます。地面を背景に描いている場合は、「(色)色に触れた」を使い、色の四角をクリック → いちばん下のスポイトのアイコンをクリック → ステージ上の地面をクリックして、色を取ります。このサンプルは、壁(横からの衝突)は扱っていません。壁を作る場合は、横に動かした直後に「触れたら、動かした分だけ戻す」処理を、別に入れます。

59ジャンプが不自然・ジャンプできない

原因:「y座標を(50)ずつ変える」のように、一瞬で上に移動させていると、瞬間移動に見えます。また、「地面に触れた」をジャンプの条件にすると、着地の処理で地面から押しもどされた直後は「触れていない」ため、ジャンプできないことがあります。Q58で作った「落下速度」と「接地中」を使うと、どちらも解決します。

  1. Q58のスクリプトの、「ずっと」の中のいちばん上に、次を追加します。
      もし〈〈(スペース▼)キーが押された〉かつ〈(接地中)=(1)〉〉なら
        [落下速度▼]を(12)にする
        [接地中▼]を(0)にする
  2. 緑の旗を押し、地面に立った状態でスペースキーを押します。山なりに飛んで、着地すれば成功です。
  3. 数字を1つずつ変えて、動きを見比べます。
    ・ジャンプの数字(12):大きくすると高く飛ぶ
    ・重力の数字(−1):−2にすると、すばやく落ちる、きびきびした動きになる。−0.5にすると、ふわっとした動きになる

ジャンプできないとき:「接地中」のチェックを入れて、ステージに表示します。地面に立っているときに1、空中で0になっているか確認します。ずっと0のままなら、Q58の「(地面▼)に触れた」の相手が正しいか、「でなければ」の位置が見本どおりかを確認します。

60二段ジャンプが暴発する(何度もジャンプできてしまう)

原因:キーを1回押したつもりでも、指が離れるまでの間に、「ずっと」が何度も繰り返され、何回分も数えられています。

  1. Q59で追加した3行(ジャンプの「もし」)は、取りのぞきます。残したままだと、1回の入力で2つの処理が同時に働きます。
  2. ジャンプ用に、別のスクリプトを作ります。
    (緑の旗)が押されたとき
    ずっと
      〈(スペース▼)キーが押された〉まで待つ
      もし〈(ジャンプ回数)<(2)〉なら
        [落下速度▼]を(12)にする
        [接地中▼]を(0)にする
        [ジャンプ回数▼]を(1)ずつ変える
      〈〈(スペース▼)キーが押された〉ではない〉まで待つ
  3. 最後の「キーが離されるまで待つ」が大切です。これで、1回押すごとに、1回だけ数えられます。
  4. 「ジャンプ回数」を0に戻す処理は、Q58のスクリプトに、すでに入っています(緑の旗を押したときと、実際に着地したときの2か所)。ほかの場所で0に戻すブロックを足さないでください。空中で回数が戻り、何度でも飛べてしまいます。

直らないとき:「ジャンプ回数」のチェックを入れて、ステージに表示します。キーを1回押して、数字が1だけ増えるか、着地で0に戻るかを見ます。なお、このサンプルでは、足場から歩いて落ちた場合も、空中で2回までジャンプできます。

61当たり判定が反応しない
  1. 水色の「( ▼)に触れた」の「▼」をクリックし、相手のスプライトの名前を選び直します。最初は「マウスのポインター」が選ばれています。
  2. 判定が「ずっと」の中に入っているか確認します。
    (緑の旗)が押されたとき
    ずっと
      もし〈(てき▼)に触れた〉なら
        (いたい!)と(1)秒言う
  3. 確かめ方:2つのスプライトをステージ上で重ねてから、「(てき▼)に触れた」ブロックを直接クリックします。「true」と出れば、判定は正しく働いています。
  4. 「false」と出る場合、どちらかが隠れている(「隠す」の状態)と、触れたことになりません。完全に見えなくしつつ判定したいときは、「隠す」ではなく「(幽霊▼)の効果を(100)にする」を使います。
  5. 絵の色がぬられた部分同士が重なって、はじめて「触れた」になります。細い線だけの絵は、当たりにくくなります。

速い弾がすり抜けるとき:1コマの移動量が、相手の幅より大きくなっています。弾の速さを下げるか、相手の絵を大きくします。

62当たり判定が過剰に反応する

原因:触れている間、「ずっと」が非常に短い間隔で繰り返されるため、1回の接触が何十回分にも数えられます。

方法A(かんたん):離れるまで待つ

もし〈(てき▼)に触れた〉なら
  [ライフ▼]を(-1)ずつ変える
  〈〈(てき▼)に触れた〉ではない〉まで待つ

方法B:無敵時間を作る

  1. 「変数を作る」で「無敵中」を作ります。
  2. 緑の旗のすぐ下に「[無敵中▼]を(0)にする」を入れます。
  3. 判定を次の形にします。
    もし〈〈(てき▼)に触れた〉かつ〈(無敵中)=(0)〉〉なら
      [無敵中▼]を(1)にする
      [ライフ▼]を(-1)ずつ変える
      (1)秒待つ
      [無敵中▼]を(0)にする

使い分け:コインのように、取ったら消えるものは、取られた側を「隠す」(クローンなら「このクローンを削除する」)だけで、二重に数えられなくなります。

63スコアが正しくカウントされない
  1. 一気に増える場合:Q62と同じ原因です。方法AかBで直します。
  2. 2ずつ増える場合:当たった2つのスプライトの両方に、スコアを増やすブロックが入っています。片方を削除します。
  3. 増えない場合:「[スコア▼]を(1)にする」になっていないか確認し、「〜ずつ変える」に取りかえます(Q40参照)。
  4. スプライトによって値がちがう場合:スコアが「このスプライトのみ」で作られています。Q41の方法で作り直します。
  5. 前回の続きから始まる場合:緑の旗のすぐ下に「[スコア▼]を(0)にする」を入れます。
  6. コインが消えてスコアが増えない場合:コイン側で「隠す」が先に実行され、プレイヤー側の判定が間に合っていません。スコアを増やす処理を、コイン側のスクリプトにまとめ、「スコアを変える →隠す」の順にします。

確かめ方:11章の事例のように、スコアを増やすブロックのすぐ上に、「(ふえた)と(0.5)秒言う」を一時的に入れ、1回の接触で何回表示されるか数えます。ただし、「言う」の待ち時間によって、動きが変わることがあります。動きを変えずに調べたいときは、「回数」という変数を作り、同じ場所に「[回数▼]を(1)ずつ変える」を入れ、ステージに表示して数えます。

64ゲームオーバーの処理が動かない

原因:「(すべてを止める)」が実行されると、その下のブロックも、ほかのスクリプトも、すべて止まります。その後に置いた表示や音は、実行されません。

  1. 「ゲームオーバー」の文字のスプライトを作ります(スプライトリスト右下のボタンに乗せる →「描く」→ 左の道具の「T」で文字を入力)。
  2. そのスプライトに、次の2つを組みます。
    (緑の旗)が押されたとき
    隠す
    
    (ゲームオーバー▼)を受け取ったとき
    表示する
    (最前面▼)へ移動する
  3. プレイヤー側の判定を、次の順番にします。
    もし〈(ライフ)<(1)〉なら
      (ゲームオーバー▼)を送って待つ
      (すべてを止める▼)
  4. 「送って待つ」を使うと、受け取った側の処理が終わってから、止める処理に進みます。

判定そのものが動かないとき:条件を「(ライフ)=(0)」にしていると、一度に2減って−1になった場合に素通りします。「(ライフ)<(1)」にしておくと確実です。また、この「もし」が「ずっと」の中にあるか確認します。

65複数の敵を、同時に処理したい
  1. 敵のスプライトを1体だけ作ります。
  2. 「作る係」のスクリプトを組みます。元のスプライト自身は隠しておきます。
    (緑の旗)が押されたとき
    隠す
    ずっと
      (自分自身▼)のクローンを作る
      (1)秒待つ
  3. 「クローン1体ずつの動き」を、「クローンされたとき」から始まる別のスクリプトに組みます。
    クローンされたとき
    x座標を((-200)から(200)までの乱数)、y座標を(170)にする
    表示する
    〈(y座標)<(-170)〉まで繰り返す
      y座標を(-4)ずつ変える
    このクローンを削除する
  4. 「隠す」と「表示する」の位置が大切です。元のスプライトは隠したまま、クローンだけが見えるようにします。

制限:クローンは、プロジェクト全体で同時に300体までです。それを超えると、新しいクローンは作られません。最後の「このクローンを削除する」を忘れると、すぐに上限に達し、敵が出なくなります。

66タイマーが正しく動かない

しくみ:水色の「タイマー」は、緑の旗を押すと0から数え始めます。赤い停止ボタンでスクリプトを止めても、タイマー自体は進み続けます。好きなタイミングで0に戻すには、「タイマーをリセット」ブロックを使います。止めることはできません。

経過時間を表示する(数え上げ):

(緑の旗)が押されたとき
タイマーをリセット
ずっと
  [時間▼]を((タイマー)の(切り下げ▼))にする

残り時間を表示する(カウントダウン・正確な方法):

(緑の旗)が押されたとき
タイマーをリセット
ずっと
  [のこり時間▼]を((30)−((タイマー)の(切り下げ▼)))にする
  もし〈(のこり時間)<(1)〉なら
    [のこり時間▼]を(0)にする
    (タイムアップ▼)を送る
    (このスクリプトを止める▼)
  1. 「( )の(切り下げ▼)」は、緑の「演算」カテゴリのいちばん下にある「( )の(絶対値▼)」を出し、「▼」をクリックして「切り下げ」を選びます。
  2. 「(このスクリプトを止める▼)」は、黄土色の「制御」カテゴリの「(すべてを止める▼)」を出し、「▼」から選びます。
  3. このスクリプトは、ほかの処理とは別の、独立したスクリプトとして置きます。

かんたんな方法について:「(1)秒待つ」と「[のこり時間▼]を(-1)ずつ変える」を繰り返す方法でも、カウントダウンは作れます。ただし、作品が重いと、1回ごとに少しずつ遅れ、実際の30秒より長くなることがあります。正確さが必要なら、上のタイマーを使う方法にします。

ゲームの途中からはかりたいとき:はかり始める場所で「タイマーをリセット」を実行します。リセットしたくない場合は、「[開始時刻▼]を(タイマー)にする」で開始時の値を覚えておき、「(タイマー)−(開始時刻)」を経過時間として使います。ゲームオーバー後も数字が増え続けるときは、その瞬間に「[記録▼]を(タイマー)にする」で別の変数に写し、そちらを表示します。

67難易度が急に上がる・下がる

原因:速さを変える処理が、「ずっと」の中で毎回実行され、一気に変化しています。

  1. 「変数を作る」で「はやさ」(すべてのスプライト用)を作ります。
  2. 敵の動きの数字を、変数に置きかえます。「y座標を(-4)ずつ変える」の「-4」の欄に、「(0)−(はやさ)」をはめます。
  3. 難易度の調整を、独立したスクリプトにまとめます。
    (緑の旗)が押されたとき
    [はやさ▼]を(3)にする
    ずっと
      (10)秒待つ
      もし〈(はやさ)<(10)〉なら
        [はやさ▼]を(0.5)ずつ変える
  4. 「10秒ごとに0.5だけ」「上限は10」のように、待ち時間・変化の量・上限の3つを必ず決めます。

調整のコツ:「はやさ」のチェックを入れてステージに表示し、右クリック →「スライダー」にします。遊びながらつまみを動かして、ちょうどよい最小値と最大値を探せます。

68リスタート処理がうまくいかない

考え方:Scratchは、最初の状態を覚えていません。「最初の状態」を、自分でブロックにして書いておく必要があります。やり直しの方法は2つあり、作り方がちがいます。

方法A:緑の旗を押してやり直す(かんたん・おすすめ)

  1. 各スプライトの「(緑の旗)が押されたとき」のすぐ下に、最初の状態をそろえます。
    (緑の旗)が押されたとき
    x座標を(-180)、y座標を(-100)にする
    (90)度に向ける
    コスチュームを(たつ▼)にする
    大きさを(100)%にする
    画像効果をなくす
    表示する
    [ライフ▼]を(3)にする
    [スコア▼]を(0)にする
  2. 緑の旗を押すと、動いていたスクリプトはすべて止まり、クローンも自動ですべて消え、すべての「(緑の旗)が押されたとき」が最初から動きます。クローンを作るスクリプトも、最初から動き直します。これだけで完成です。

方法B:ゲーム内の「もう一度」ボタンでやり直す

この方法では、クローンは自動で消えず、止まったスクリプトも自動では再開しません。そこで、「ゲーム状態」という変数(すべてのスプライト用)で、全体の進行を管理します。0=待機、1=プレイ中、2=ゲームオーバー、と決めます。

  1. ステージに、開始の合図と、全体の初期化をまとめます。
    (緑の旗)が押されたとき
    (ゲーム開始▼)を送る
    
    (ゲーム開始▼)を受け取ったとき
    [スコア▼]を(0)にする
    [ライフ▼]を(3)にする
    [ゲーム状態▼]を(1)にする
  2. 各スプライトは、「(緑の旗)が押されたとき」の代わりに、「(ゲーム開始▼)を受け取ったとき」から始めます。位置や見た目の初期化を、その下に並べます。「ずっと」は、「〈(ゲーム状態)=(2)〉まで繰り返す」に置きかえます。
  3. クローンを使うスプライトには、「クローンか」という変数(このスプライトのみ)を作り、次のように組みます。
    (緑の旗)が押されたとき
    [クローンか▼]を(0)にする
    
    クローンされたとき
    [クローンか▼]を(1)にする
    (この下に、クローンの動き)
    
    (ゲーム開始▼)を受け取ったとき
    もし〈(クローンか)=(1)〉なら
      このクローンを削除する
    隠す
    〈(ゲーム状態)=(1)〉まで待つ
    〈(ゲーム状態)=(2)〉まで繰り返す
      (自分自身▼)のクローンを作る
      (1)秒待つ

    「ゲーム開始」は、クローンにも届きます。前の回のクローンは自分を削除し、元のスプライトだけが、クローン作りを最初からやり直します。

  4. ゲームオーバーにするときは、「(すべてを止める)」ではなく、「[ゲーム状態▼]を(2)にする」→「(ゲームオーバー▼)を送る」とします。各スクリプトは、手順2・3の「まで繰り返す」で、自分から止まります。
  5. 「もう一度」ボタンのスプライトに、次を組みます。
    (ゲームオーバー▼)を受け取ったとき
    表示する
    
    (ゲーム開始▼)を受け取ったとき
    隠す
    
    このスプライトが押されたとき
    もし〈(ゲーム状態)=(2)〉なら
      [ゲーム状態▼]を(0)にする
      (ゲーム開始▼)を送る

スクリプトが二重に動かない理由:同じメッセージをもう一度受け取ると、その「受け取ったとき」のスクリプトは、動いている途中でも、最初からやり直しになります(2本に増えるわけではありません)。そのため、ゲームの処理を「(ゲーム開始▼)を受け取ったとき」の下にまとめておけば、重複しません。逆に、「(緑の旗)が押されたとき」の下に「ずっと」を残したままにすると、ボタンでの再開時に止まったままになったり、初期化と食いちがったりします。方法Bでは、ゲームの処理を緑の旗の下に置かないようにします。

69クローンを使うと重くなる

原因:役目を終えたクローンが、画面の端や画面の外で残り続け、数が増えています。

  1. 「クローンされたとき」のスクリプトが、どの道を通っても、最後に「このクローンを削除する」にたどり着くか確認します。
  2. 「ずっと」で動かしている場合は、中に次を入れます。
      もし〈(端▼)に触れた〉なら
        このクローンを削除する
  3. クローンを作る間隔を見直します。「(0.1)秒待つ」を「(0.5)秒待つ」にするだけで、数は5分の1になります。
  4. クローン1体ごとの「ずっと」の中身を減らします。全員が毎回、たくさんの「〜に触れた」を調べていると重くなります。

数を確かめる方法:「クローン数」という変数(すべてのスプライト用)を作り、「クローンされたとき」のすぐ下で1増やし、「このクローンを削除する」のすぐ上で1減らします。ステージに表示して、増え続けていないか見ます。ほかの対策は10章をご覧ください。



Chapter 07 / Save and Load

07保存・共有・読み込み編

Scratchの保存や共有やログインができない時のトラブル対処法

せっかく作った作品を、失わないための対策です。この章では、ブラウザで使う scratch.mit.edu を「オンライン版」、パソコンにインストールして使うScratchアプリを「オフライン版」と呼びます。

70保存したファイルが開けない

原因:ファイルをダブルクリックして開こうとしている場合が、もっとも多いです。Scratchのファイルは、Scratchの中から開きます。

  1. 先にScratchを開きます(オンライン版なら scratch.mit.edu の「作る」、オフライン版ならScratchアプリ)。
  2. メニューバーの「ファイル」→「コンピューターから読み込む」をクリックします。
  3. ファイルを選ぶ画面で、保存した場所(多くは「ダウンロード」フォルダ)を開き、ファイルをクリックして「開く」を押します。
  4. 「現在のプロジェクトの内容を置きかえますか」と聞かれたら、今開いている作品が不要であることを確認して「OK」を押します。

ファイルの種類:Scratch 3.0は「.sb3」です。古い「.sb2」(Scratch 2.0)や「.sb」(Scratch 1.4)も、同じ手順で読み込めます。ただし、Scratch 3.0で保存し直すと.sb3になり、古いScratchでは開けなくなります。

直らないとき:ファイル名の末尾が「.sb3.zip」になっている場合は、もともとScratchで保存した.sb3ファイルの名前が、途中で変わってしまったものかどうかを確認します。そうであれば、末尾を「.sb3」に戻すと開けることがあります(拡張子の表示方法はQ74)。ふつうのZIPファイルや、一度展開して圧縮し直したファイルは、名前を変えても開けません。その場合は、元の.sb3ファイルやバックアップを探してください。ファイルサイズが0KBの場合は、保存に失敗しています。別の日に保存したファイルを探します。

71作品が消えてしまった

オンライン版(サインインして作っていた場合):

  1. scratch.mit.edu を開き、右上でサインインしているか確認します(Q82参照)。
  2. 右上の自分のユーザー名をクリック →「私の作品」をクリックします(右上のフォルダの絵のアイコンでも開けます)。
  3. 左の「すべての作品」をクリックし、一覧を下まで見ます。名前を付けていない作品は「Untitled」や「Untitled-2」などになっています。
  4. なければ、左の「ゴミ箱」をクリックします。まちがえて削除した作品は、ここから元に戻せます。

オフライン版、またはサインインせずに作っていた場合:

  1. 作品は、「コンピューターに保存する」を押したときにだけ、パソコンに保存されます。
  2. Windowsはエクスプローラー、MacはFinderを開き、右上の検索欄に「.sb3」と入力して検索します。
  3. 「ダウンロード」フォルダも直接確認します。

見つからないとき:一度も保存していない作品は、残念ながら復元できません。今後は、Q75・Q77の方法で、こまめに保存してください。

72オフライン版とオンライン版で、ファイルのやりとりができない

結論:どちらも同じ.sb3形式なので、やりとりできます。

  1. オフライン → オンライン:オフライン版で「ファイル」→「コンピューターに保存する」。オンライン版でサインインし、「作る」を押してから、「ファイル」→「コンピューターから読み込む」でそのファイルを選びます。
  2. オンライン → オフライン:オンライン版で作品を開き、「ファイル」→「コンピューターに保存する」。オフライン版で「ファイル」→「コンピューターから読み込む」。
  3. うまく開けない場合は、オフライン版が古い可能性があります。公式のダウンロードページ(scratch.mit.edu/download)から、最新版を入れ直します。

注意:オフライン版には、オンライン専用の機能(バックパック、クラウド変数、共有)がありません。また、翻訳・音声合成など一部の拡張機能は、インターネット接続がないと動きません。

73共有した作品が、他の人に反映されない
  1. 作品を開き、メニューバーにオレンジ色の「共有する」ボタンが残っていないか見ます。残っていれば、まだ共有されていません。クリックします。
  2. 「共有する」が押せない・メールの確認を求められる場合は、登録したメールアドレスに届いている確認メールを開き、中のリンクをクリックします。メールの確認が済むまで、共有はできません。
  3. 共有した後に直した内容は、保存されたときに反映されます。「ファイル」→「直ちに保存」をクリックします。
  4. 相手には、ページの再読み込み(F5キー、Macはcommand+R)をしてもらいます。
  5. 伝えるURLは、https://scratch.mit.edu/projects/数字/の形です。作品を直しても、このURLは変わりません。URLの末尾に「editor」が付いている場合は、取りのぞいて伝えます。

相手が「見られない」と言うとき:共有されていない作品のURLは、本人以外には表示されません。「私の作品」を開き、その作品に「共有しない」というリンクが出ていれば、共有済みです。

74拡張子(.sb3)が分からない・表示されない

拡張子とは:ファイル名の最後の「.sb3」の部分で、ファイルの種類を表します。パソコンの初期設定では、表示されないことがあります。

  1. Windows 11:エクスプローラーを開く → 上の「表示」をクリック → いちばん下の「表示」にマウスを合わせる →「ファイル名拡張子」をクリックしてチェックを入れる。
  2. Windows 10:エクスプローラーを開く → 上の「表示」タブをクリック →「ファイル名拡張子」のチェックボックスにチェックを入れる。
  3. Mac:Finderを開く → 画面いちばん上のメニューの「Finder」→「設定」(古いmacOSでは「環境設定」)→「詳細」→「すべてのファイル名拡張子を表示」にチェックを入れる。

種類の見分け方:.sb3はプロジェクト全体、.sprite3はスプライト1体分(スプライトを右クリック →「書き出し」で作られます)です。.sprite3は、スプライトリスト右下のボタン →「スプライトをアップロード」で読み込みます。

75自動保存されない

自動保存されるのは、「オンライン版」かつ「サインイン中」かつ「自分の作品」のときだけです。

  1. オンライン版・サインイン中:作業中、定期的に自動で保存されます。すぐ保存したいときは、「ファイル」→「直ちに保存」をクリックします。メニューバーの右の方に「作品が保存されました」と出れば完了です。
  2. オンライン版・サインインしていない:自動保存はありません。「ファイル」→「コンピューターに保存する」で、パソコンに保存します。
  3. オフライン版:自動保存はありません。同じく「ファイル」→「コンピューターに保存する」で保存します。

おすすめの習慣:「大きな変更の前」と「うまく動いた直後」に保存します。オンライン版でも、通信が切れると自動保存に失敗するため、ときどき「コンピューターに保存する」で手元にも残しておくと安心です。なお、「共有する」は公開の操作で、保存の代わりにはなりません。

76複数人での共同編集ができない

結論:Scratchには、複数人が同時に1つの作品を編集する機能はありません。次のどれかの方法で、順番に作ります。

  1. ファイルを受け渡す:「ファイル」→「コンピューターに保存する」で.sb3ファイルを作り、相手に渡します。相手は「コンピューターから読み込む」で開いて続きを作ります。
  2. リミックスする:作品を共有し、相手にそのページを開いてもらいます。「中を見る」→ 緑色の「リミックス」を押すと、相手のアカウントにコピーが作られます。
  3. 部品だけ持ち寄る:スプライトリストでスプライトを右クリック →「書き出し」で.sprite3ファイルにし、相手に渡します。相手は「スプライトをアップロード」で、自分の作品に取りこみます。
  4. バックパックを使う(オンライン版・サインイン中):コードエリアのいちばん下の「バックパック」をクリックして開き、スクリプトやスプライトをドラッグして入れます。別の作品を開いて、バックパックからドラッグして取り出します。

注意:同じ作品を2人が別々に直すと、あとで1つにまとめるのが大変です。「誰が、どのスプライトを担当するか」を先に決め、方法3で持ち寄るのが確実です。

77バックアップの取り方が分からない
  1. メニューバーの「ファイル」→「コンピューターに保存する」をクリックします。
  2. 保存の画面が出たら、ファイル名に日付や番号を付けます(例:game_1010_ジャンプ完成.sb3)。
  3. 保存の画面が出ず、自動で「ダウンロード」フォルダに入る場合は、後からファイルを右クリック →「名前の変更」で、同じように名前を付けます。
  4. 古いファイルは、上書きせずに残します。こわしてしまったとき、1つ前の版に戻れます。
  5. USBメモリや、クラウドストレージ(Googleドライブなど)にも、コピーを置いておきます。

オンライン版の別の方法:「ファイル」→「コピーを保存」をクリックすると、今の作品のコピーが「私の作品」の中に作られます。大きな改造の前に押しておくと、元の版が残ります。

78動画や画像として書き出したい・うまくいかない

画像(コスチューム・背景)を書き出す:

  1. スプライトを選び、「コスチューム」タブをクリックします。
  2. 左の一覧で、書き出したい絵を右クリック →「書き出し」をクリックします。
  3. ベクターの絵は.svg、ビットマップの絵は.pngで保存されます。.svgが開けない場合は、先に画面下の「ビットマップに変換」ボタンを押してから書き出すと、.pngになります。

動いている様子を動画にする:Scratchには、動画を書き出す機能がありません。パソコンの画面録画を使います。

  1. ステージ右上の全画面表示ボタンを押します。
  2. Windows:Windowsキー+Gで「Xbox Game Bar」を開き、録画ボタンを押します(または、Windowsキー+Alt+Rで録画の開始・停止)。
  3. Mac:shift+command+5を押し、「選択部分を収録」を選んで、ステージを囲みます。

ステージの静止画だけほしいとき:ステージの上で右クリックし、画像を保存する項目が出れば、それを使います。出ない場合は、スクリーンショット(Windows:Windowsキー+Shift+S/Mac:shift+command+4)を使います。

79プロジェクトが重くて、保存に失敗する

原因:大きな画像や長い音が入っていると、オンラインでの保存に失敗することがあります。オンライン版では、画像や音は1つあたり約10MBまで、ブロックや変数・リストなどの情報(project.json)は約5MBまで、という別々の上限があります(作品全体で10MBまで、という意味ではありません)。

  1. まず、手元に残します。「ファイル」→「コンピューターに保存する」は、オンラインの保存に失敗していても使えます。
  2. 各スプライトとステージの「音」タブを開き、使っていない音にマウスを乗せ、右上の×で削除します。長いBGMは、Q57の方法で必要な部分だけ残します。
  3. 各スプライトの「コスチューム」タブと、ステージの「背景」タブで、使っていない絵を同じように削除します。
  4. 写真など、大きな画像を使っている場合は、パソコンの画像編集ソフトで、横幅960ピクセル程度まで縮小してから、入れ直します。
  5. 「ファイル」→「直ちに保存」を、もう一度試します。

直らないとき:通信が不安定な可能性があります。Wi-Fiの接続を確認し、数分おいてから試します。それまでは、ブラウザのタブを閉じないでください。



Chapter 08 / Account Issues

08アカウント・オンライン機能編

Scratch公式サイト(scratch.mit.edu)の、アカウントに関するトラブルです。サイトの表示や文言は変更されることがあるため、ボタンの名前が少しちがう場合は、近い意味のものを探してください。

80アカウント登録ができない
  1. scratch.mit.edu を開き、右上の「Scratchに参加しよう」をクリックします。
  2. ユーザー名:半角の英字・数字・「-」「_」で、3〜20文字です。日本語やスペースは使えません。「すでに使われています」と出たら、数字を足すなどして変えます。本名は使わないでください(あとから変更できません)。
  3. パスワード:6文字以上で、ユーザー名と同じものは使えません。上と下の2か所に、同じものを入力します。
  4. 国、生まれた年と月、性別を順に選び、「次へ」を押します。
  5. メールアドレス:確認メールを受け取れるアドレスを入力します。年齢によっては、保護者のメールアドレスを入力するよう案内されます。
  6. 届いたメールを開き、中の確認用のリンクをクリックします。これをしないと、共有やコメントができません。

確認メールが届かないとき:迷惑メールのフォルダを確認します。携帯会社のメールは、受信の制限で届かないことがあるため、Gmailなどのアドレスに変えて試します。メールアドレスは、右上のユーザー名 →「アカウント設定」→「電子メール」から変更できます。

81パスワードを忘れた
  1. scratch.mit.edu の右上の「サインイン」をクリックします。
  2. 入力欄の下にある「助けが必要ですか?」などのリンクをクリックします(直接、パスワード再設定のページ scratch.mit.edu/accounts/password_reset/ を開いても同じです)。
  3. ユーザー名、または登録したメールアドレスを入力し、送信します。
  4. 届いたメールの中のリンクをクリックし、新しいパスワードを2回入力します。

メールが届かないとき:登録したのが保護者のメールアドレスだった場合は、保護者の方の受信箱を確認してもらいます。学校で作ってもらったアカウントの場合は、先生がパスワードを再設定できます(Q87参照)。メールアドレスが分からない・使えない場合は、サイトのいちばん下の「連絡先」から、Scratchチームに問い合わせます。

82サインイン(ログイン)できない
  1. 日本語入力をオフにします(Windowsは「半角/全角」キー、Macは「英数」キー)。全角で入力すると、正しい文字でも通りません。
  2. Caps Lockがオンになっていないか確認します。パスワードは、大文字と小文字を区別します。
  3. ユーザー名の欄には、メールアドレスではなく、ユーザー名を入力します。
  4. ユーザー名を忘れた場合は、Q81の手順で、メールアドレスを入力して送信します。届くメールに、ユーザー名が書かれています。
  5. 何度も失敗した場合は、数分〜しばらく時間を置いてから、もう一度試します。
  6. それでも入れなければ、Q81の手順でパスワードを再設定します。

サインインしてもすぐ外れるとき:ブラウザの設定で、Cookie(クッキー)がブロックされている可能性があります。シークレットウィンドウではなく、通常のウィンドウで試してください。

83作品が非公開になっている

しくみ:作品は、作っただけでは自分にしか見えません。「共有する」を押して、はじめて公開されます。

  1. 右上のユーザー名 →「私の作品」をクリックします。
  2. 左の「共有していない作品」をクリックすると、非公開の作品だけが並びます。
  3. 公開したい作品の「中を見る」をクリックして開きます。
  4. メニューバーのオレンジ色の「共有する」をクリックします。
  5. 作品のページに切りかわります。「使い方」と「メモとクレジット」の欄に、遊び方や、使った素材の出どころを書いておきます。

逆に、非公開に戻したいとき:「私の作品」で、その作品の右にある「共有しない」をクリックします。「共有する」が押せない場合は、Q73の手順2(メールの確認)をご覧ください。

84コメントができない
  1. 右上に自分のユーザー名が出ているか確認します。「サインイン」と出ていれば、サインインします。
  2. メールアドレスの確認が済んでいるか確認します。ページの上の方に、確認を求める案内が出ていれば、その指示に従います(Q80の手順6)。
  3. コメント欄そのものが表示されない場合は、作品の作者が、コメントをオフにしています。この場合、誰も書き込めません。
  4. 続けて投稿すると、一時的に書き込みが止められることがあります。少し時間を置きます。
  5. コミュニティのきまりに合わない内容と自動で判定されると、一定時間、コメントができなくなります。表示された案内の時間が過ぎるまで待ちます。

自分の作品のコメントを止めたいとき:自分の作品のページを開き、コメント欄の上にある、コメントをオフにするスイッチを切りかえます。

85フォロー機能が使えない
  1. サインインしているか確認します。
  2. フォローしたい人のユーザー名をクリックし、その人のプロフィールのページを開きます。
  3. ページの上の方にある「フォローする」ボタンをクリックします。ボタンが「フォローをやめる」に変われば完了です。
  4. ボタンが反応しない場合は、ページを再読み込み(F5キー、Macはcommand+R)してから、もう一度押します。

補足:フォローした人の新しい作品は、トップページの「最新の情報」などに表示されます。自分のプロフィールのページには、「フォローする」ボタンは出ません。

86登録したばかりで、使えない機能がある

しくみ:Scratchでは、安全のために、登録直後のアカウントには、いくつかの制限があります。不具合ではありません。

  1. メールの確認がまだ:作品の共有やコメントができません。Q80の手順6で確認を済ませます。
  2. 登録して間もない:プロフィールに「New Scratcher」と表示されている間は、クラウド変数(オンラインでデータを保存する変数)など、一部の機能が使えません。作品を共有するなど、しばらく活動を続けると、「Scratcher」になるための案内が届きます。
  3. 生徒用アカウント:先生が作ったアカウントには、別の制限があります(Q87参照)。

保護者の方へ:登録時のメールアドレスが保護者のものであれば、確認メールやお知らせは、保護者の受信箱に届きます。

87学校アカウントで、制限がかかる

しくみ:制限には、2つの種類があります。1つは、Scratchの「教師用アカウント」にひもづいた「生徒用アカウント」としての制限で、先生がクラスを管理しています。もう1つは、学校のパソコンやネットワーク、学校独自のログインのしくみによる制限で、こちらはScratchの設定では変えられません。どちらの制限かによって、相談先が変わります。

  1. パスワードを忘れた場合は、先生に伝えます。生徒用アカウントのパスワードは、先生が再設定できます。
  2. 共有やコメントができない場合は、学校やクラスの方針で、使い方を決めていることがあります。先生に確認します。
  3. 学校のパソコンでScratchのページが開けない・一部が表示されない場合は、学校のネットワークの制限(フィルタリング)が原因のことがあります。これも、先生や、学校の情報担当の方に相談します。

家でも続きを作りたいとき:同じユーザー名とパスワードで、家のパソコンからもサインインできます。できない場合は、作品を「コンピューターに保存する」で持ち帰れるか、先生に確認してください。



Chapter 09 / Physical Computing

09電子工作連携のトラブル編

ScratchとArduinoの接続やLEDやセンサーが動かない時の対処法

Scratchを、Arduino・Raspberry Pi・micro:bitなどと組み合わせる際のトラブルです。Arduinoは、Scratchをもとに作られた別のソフト「mBlock 5」(パソコン版)を使う前提で説明します。mBlockは、バージョンによってボタンの名前や位置が少し変わるため、見当たらない場合は近い名前のものを探してください。

88mBlockでArduinoが認識されない
  1. ArduinoをUSBケーブルでパソコンにつなぎます。基板上の「ON」のLEDが点灯するか見ます。点灯しなければ、ケーブルかUSBの差し込み口の問題です。
  2. mBlockの画面で、ステージの下にある「デバイス」タブをクリックします。
  3. 「追加」をクリックし、デバイスの一覧から「Arduino Uno」を選んで「OK」を押します。
  4. 下の「接続」ボタンをクリックします。「USB」のタブで、ポート(WindowsはCOM3など、Macは/dev/tty.〜)を選び、「接続」を押します。
  5. ポートの一覧が空の場合は、パソコンがArduinoを見つけられていません。次を順に試します。
    ・USBケーブルを交換する。充電専用のケーブルでは通信できません。「データ通信対応」のものを使います。これがもっとも多い原因です。
    ・パソコンの別のUSBの差し込み口に、直接さす(USBハブを使わない)。
    ・互換ボード(USBの近くのチップに「CH340」と書かれているもの)は、CH340ドライバーのインストールが必要です。入れた後、パソコンを再起動します。

Windowsでの確かめ方:スタートボタンを右クリック →「デバイス マネージャー」→「ポート(COMとLPT)」を開きます。ArduinoをさしたときにCOMの行が増えれば、認識されています。「ほかのデバイス」に黄色い「!」が出る場合は、ドライバーが入っていません。

89GPIOの拡張機能が出てこない

原因:GPIOの拡張機能は、Raspberry Pi用の「Scratch 3」アプリにだけ入っています。ブラウザで開く scratch.mit.edu や、Windows・Mac用のScratchアプリには、ありません。

先に知っておくこと:使えるGPIOの拡張機能は、Raspberry Piの機種、OSのバージョン、Scratchアプリの種類によってちがいます。とくに、Raspberry Pi 5や、新しいRaspberry Pi OSでは、以前の手順のとおりにしても、拡張機能が出ない、または出ても動かない場合があります。まず、自分の環境を確認してください。

  1. 環境を確認します。ラズベリーのメニュー →「アクセサリ」→「LXTerminal」を開き、次を入力してEnterを押します。OSの名前とバージョンが表示されます。機種は、基板に印刷された名前で確認します。
    cat /etc/os-release
  2. ラズベリーのメニュー →「プログラミング」→「Scratch 3」をクリックして起動します。
  3. メニューに「Scratch 3」がない場合は、ラズベリーのメニュー →「設定」→「Recommended Software」→「Programming」→「Scratch 3」にチェックを入れ、「Apply」を押してインストールします。
  4. Scratch 3の画面左下の拡張機能ボタンをクリックし、一覧の中から「Raspberry Pi GPIO」または「Raspberry Pi Simple Electronics」を探してクリックします。
  5. ブロックパレットの丸の列のいちばん下に、新しいカテゴリが追加されれば成功です。

一覧に出ない・出ても動かないとき:その機種とOSの組み合わせでは、対応していない可能性があります。「Raspberry Pi(機種名) (OSのバージョン名) Scratch GPIO」で検索し、Raspberry Pi公式の案内やフォーラムで、対応状況を確認してください。OS全体の更新や入れ直しを、最初の対処にするのは避けます。すでに動いているほかの電子工作の環境が、変わってしまうことがあるためです。ScratchでのGPIOにこだわらない場合は、Pythonなど、別の方法を使う選択肢もあります。

90ブロックを実行しても、LEDが光らない

切り分け方:先に、配線のいらない「基板のLED」で試します。光れば、プログラムと接続は正常で、原因は配線にしぼれます。

  1. Arduino Unoには、13番ピンにつながったLED(「L」と書かれた小さなLED)が、基板に付いています。ブロックのピン番号を13にして実行します。
  2. 「L」が光る → プログラムは正常です。手順3以降で、配線を確認します。
    「L」も光らない → 接続かモードの問題です。Q88・Q96を確認します。
  3. LEDの向き:LEDには向きがあります。長い足(+)をピン側、短い足(−)をGND側にします。逆だと光りません。つなぎ直すときは、先にUSBケーブルを抜き、抵抗を直列に入れた状態で、足の長さを確認してからさし直します。
  4. 抵抗:LEDと直列に、220Ω〜330Ωの抵抗を入れます。抵抗なしでつなぐと、LEDがこわれることがあります。
  5. つなぎ方:「ピン → 抵抗 → LEDの長い足」「LEDの短い足 → GND」の順に、1本の道になっているか、指でたどります。
  6. ブレッドボード:同じ列(5つ並んだ穴)の中は、内部でつながっています。LEDの2本の足を同じ列にさすと、ショートして光りません。別の列にさします。
  7. ピン番号:ブロックの数字と、実際にジャンパー線をさした場所の番号が、同じか確認します。

直らないとき:LEDを別のものに取りかえます。ジャンパー線が中で切れていることもあるので、線も取りかえて試します。

91センサーの値が取得できない

前提:ここでは、Arduino Unoに、電圧で値を出す一般的なセンサー(明るさ、つまみなど)や、オン/オフだけのセンサーをつなぐ場合を説明します。I²CやSPIでつなぐセンサー、デジタル式の温湿度センサーなどは、専用の拡張機能やつなぎ方が必要です。使う電圧や線の役割は、必ずセンサーの説明書(仕様書)で確認してください。

  1. 値を見るときは、mBlockを「ライブ」モードにします(Q96参照)。ライブモードなら、ブロックをクリックするだけで、今の値がふきだしで表示されます。
  2. センサーの3本の線を確認します。
    ・電源(VCC・+)→ Arduinoの「5V」(センサーによっては「3.3V」。説明書で確認)
    ・GND(−)→ Arduinoの「GND」
    ・信号(OUT・S)→ アナログ値なら「A0」〜「A5」、デジタル値なら「2」〜「13」
  3. 明るさ・温度・つまみ(ボリューム)など、連続した数値を出すセンサーは、アナログピン(A0など)につなぎ、「アナログピンを読み取る」ブロックを使います。Arduino Unoの場合、値は0〜1023の範囲です。
  4. ボタンや人感センサーなど、オン/オフだけのものは、デジタルピンにつなぎ、「デジタルピンを読み取る」ブロックを使います。
  5. ブロックのピン番号を、信号線をさした場所に合わせます。

値がふらふらする・でたらめなとき:信号線が抜けている(どこにもつながっていないピンは、でたらめな値を返します)か、GNDがつながっていません。値がずっと0、またはずっと1023のときは、電源とGNDが逆になっていないか確認します。

92Bluetooth接続ができない(micro:bit)

必要なものは3つです。どれか1つでも欠けると、つながりません。

  1. パソコンに「Scratch Link」を入れて、起動しておく。ScratchとBluetoothをつなぐ、専用のソフトです。Scratch公式のmicro:bitのページ(scratch.mit.edu/microbit)の案内に従って、インストールします。起動すると、Windowsは画面右下の通知領域、Macは画面右上のメニューバーに、アイコンが出ます。アイコンが出ていなければ、起動していません。
  2. micro:bitに、Scratch用のプログラム(HEXファイル)を入れる。同じページからHEXファイルをダウンロードします。micro:bitをUSBケーブルでつなぐと、「MICROBIT」というドライブが出ます。そこへHEXファイルをドラッグして入れます。書き込みが終わると、micro:bitのLEDに、アルファベット5文字の名前が流れます。
  3. パソコンのBluetoothをオンにする。Windowsは「設定 → Bluetoothとデバイス」、Macは「システム設定 → Bluetooth」で確認します。
  4. Scratchで、左下の拡張機能ボタン →「micro:bit」をクリックします。
  5. micro:bitをさがす画面が出ます。手順2で流れた名前と同じものが出たら、「接続する」をクリックします。
  6. つながると、ブロックパレットのmicro:bitカテゴリの上にあるマークが、緑のチェックに変わります。オレンジの「!」のときは、つながっていません。「!」をクリックして、やり直します。

直らないとき:(1) パソコンのBluetooth設定の画面で、micro:bitをペアリングしている場合は、いったん削除します(Scratchからの接続では、ペアリングは不要です)。(2) Scratch Linkを終了し、もう一度起動します。(3) micro:bitの裏のリセットボタンを押します。(4) MakeCodeなど別のプログラムを書きこんだ後は、手順2をやり直す必要があります。

93ファームウェアの更新が必要と言われる

しくみ:mBlockの「ライブ」モードでは、Arduinoの中に、パソコンからの指示を受け取るための専用プログラム(ファームウェア)を入れておく必要があります。別のプログラムをアップロードした後は、入れ直しが必要です。

  1. Arduinoを接続した状態で(Q88)、「デバイス」タブの中の「設定」をクリックします。
  2. 「ファームウェアを更新」(または「ファームウェアアップデート」)をクリックします。
  3. 確認の画面で、「更新」を押します。進み具合が100%になるまで待ちます。
  4. 更新中は、USBケーブルを抜かない、パソコンをスリープさせないようにします。
  5. 終わったら、もう一度「接続」を押して、つなぎ直します。

途中で失敗するとき:USBケーブルを交換し、ハブを使わずにパソコンへ直接つなぎます。Arduino IDEなど、同じポートを使うほかのソフトが開いていれば、閉じます。mBlock自体が古い場合は、公式サイトから最新版を入れ直します。

94Raspberry PiのScratchに、GPIOのブロックがない

まず、どのScratchを、どの環境で使っているか確認します。Raspberry Piには、複数の版のScratchがあり、GPIOの使い方がちがいます。

  1. Scratch 3アプリ:左下の拡張機能ボタン →「Raspberry Pi GPIO」をクリックして追加します(Q89の手順4・5)。
  2. Scratch 2(古いRaspberry Pi OS):「その他」カテゴリ →「拡張機能を追加」→「Pi GPIO」を選びます。
  3. ブラウザで scratch.mit.edu を開いている:GPIOは使えません。Q89の手順2で、アプリ版のScratch 3を起動します。
  4. Scratch 3アプリなのに、拡張機能の一覧にGPIOが出ない、または出ても動かない場合は、機種とOSの組み合わせが対応していない可能性があります。Q89の手順1で環境を確認し、「一覧に出ない・出ても動かないとき」の方法で、対応状況を調べます。

ブロックはあるのにLEDが光らないとき:ブロックの番号は、ピンの並び順の番号ではなく、「GPIO番号」です(例:GPIO17は、物理的には11番目のピン)。「Raspberry Pi GPIO ピン配置」で検索し、図で確認してください。また、Raspberry PiのGPIOは3.3Vです。5Vの電圧を入力すると、こわれることがあります。配線を変えるときは、電源を切ってから行います。

95ポートが複数あって、どれか分からない

「抜いて、さして、増えたもの」が、Arduinoのポートです。

  1. Arduinoを、パソコンから抜きます。
  2. mBlockの「接続」をクリックし、表示されるポートの一覧をメモします(スマートフォンで写真を撮ると確実です)。いったん閉じます。
  3. Arduinoをさします。10秒ほど待ちます。
  4. もう一度「接続」をクリックし、一覧を見ます。新しく増えたポートが、Arduinoです。それを選んで接続します。

見分けるヒント:Windowsでは、「COM1」はたいていパソコン本体のもので、ArduinoはCOM3以降になることが多いです。Macでは、名前に「usbmodem」または「usbserial」「wchusbserial」を含むものがArduinoで、「Bluetooth」を含むものはちがいます。何も増えない場合は、Q88の手順5をご覧ください。

96ライブモードとアップロードモードを間違える
ライブ アップロード
動き方 パソコンが、USB経由で1つずつ指示を出す プログラムをArduino本体に書きこむ
USBを抜くと 止まる 電源があれば、単体で動き続ける
ステージのスプライトとの連携 できる 基本的にできない
先頭に使うブロック 「緑の旗が押されたとき」など 「Arduino Unoが起動したとき」
向いている場面 試しながら作る、センサーの値を見る 完成した作品を、単体で動かす
  1. 「デバイス」タブでArduino Unoを選んだ状態で、その下にあるモードの切りかえスイッチ(「アップロード/ライブ」)を見ます。色が付いている側が、今のモードです。
  2. USBを抜くと止まる → ライブモードで動かしていました。スイッチを「アップロード」にし、先頭のブロックを「Arduino Unoが起動したとき」に取りかえ、「アップロード」ボタンを押して書きこみます。
  3. 緑の旗を押しても動かない → アップロードモードになっています。スイッチを「ライブ」にします。
  4. ブロックが灰色になっている・パレットにない → そのブロックは、今のモードでは使えません。モードを切りかえます。

注意:アップロードをした後にライブモードへ戻すと、ファームウェアの更新を求められます(Q93)。これは正常な動作です。

97拡張機能の追加が失敗する
  1. インターネット接続を確認します。オンライン版のScratchや、mBlockの拡張機能センターは、追加のときに通信が必要です。ほかのサイトが開けるか試します。
  2. 拡張機能ボタンを押しても、一覧が真っ白な場合は、「コンピューターに保存する」で作品を保存してから、ブラウザを再読み込みします。
  3. ブラウザを変えます。micro:bitやLEGOなど、機器とつなぐ拡張機能は、Google ChromeまたはMicrosoft Edgeの最新版で試します。
  4. 機器とつなぐ拡張機能で、「Scratch Linkが起動しているか確認してください」と出る場合は、Q92の手順1を行います。
  5. mBlockの場合:ブロックパレットのいちばん下の「拡張」ボタン → 拡張機能センターで、使いたいものの「+追加」を押します。ダウンロードが必要なものは、先にダウンロードのボタンを押します。
  6. 学校や会社のネットワークでは、通信の制限で失敗することがあります。家のネットワークで試すか、管理者に相談します。

補足:「デバイス」タブを選んでいるときと、「スプライト」タブを選んでいるときでは、追加できる拡張機能の一覧がちがいます(mBlock)。センサーなどの部品用の拡張機能は、「デバイス」タブを選んだ状態で追加します。



Chapter 10 / Performance

10動作が重い・パフォーマンス編

作品が大きくなるほど、動作が重くなることがあります。効果の大きい順に、1つずつ確認しましょう。

98プロジェクトが重くて、動作が遅い

まず、どこが重いのかを切り分けます。

  1. 緑の旗を押す前から重い(開くのが遅い、ドラッグが遅い)→ 画像や音のデータが大きすぎます。Q79の手順2〜4で、使っていない音・絵を削除し、大きな画像を縮小します。
  2. 緑の旗を押すと重くなる → プログラムの処理が多すぎます。以下を確認します。
  3. クローンの数:Q69の方法で、増え続けていないか確認します。もっとも多い原因です。
  4. 「ずっと」の中身:「ずっと」の数そのものより、中で何を、何回処理しているかを見ます。多数のクローンによる当たり判定、大きな絵の描画、リストの大量の操作が入っているものを、優先して調べます。
  5. 画像効果:「(色▼)の効果」「(幽霊▼)の効果」などを、たくさんのスプライトやクローンで、毎回変えていないか確認します。とくに、大きな絵に対する効果は重くなります。
  6. ペン:ペンで描く量が非常に多い(たくさんのクローンが同時に描く、スタンプを大量に押すなど)と、重くなることがあります。その場合は、区切りのよいところで「全部消す」を入れます。
  7. 大きなリスト:何千行もあるリストを、ステージに表示したままにしていないか確認します。チェックを外して隠すだけで、軽くなります。

パソコン側の対策:ほかのタブやアプリを閉じます。ノートパソコンは、電源につなぐと速くなることがあります。古いパソコンやタブレットでは、ステージ右上のボタンでステージを小さい表示にすると、少し軽くなります。

99スプライトが多いとカクカクする
  1. 不要なクローンを消す:画面の端に着いたクローン、役目を終えたクローンは、「このクローンを削除する」で消します(Q69)。
  2. 使っていないスプライトの処理を止める:隠れているスプライトも、「ずっと」の中身は実行され続けます。出番がない間は、「〈 〉まで待つ」で止めておくか、出番のときだけメッセージで動かす作りにします。
  3. 当たり判定を減らす:「全員が、全員に対して『触れた』を調べる」作りは、数が増えると急に重くなります。たとえば、弾と敵の判定は、敵の側だけで行います。
  4. 「(色)色に触れた」を減らす:色での判定は、スプライト同士の判定より重い処理です。できるだけ「(スプライト名)に触れた」に置きかえます。
  5. 絵をシンプルにする:細かいベクターの絵(点や線が非常に多いもの)は、描くのに時間がかかります。「コスチューム」タブの「ビットマップに変換」を押すと、軽くなることがあります(拡大すると粗くなるので、元の絵は複製して残しておきます)。
  6. 同時に出す数を決める:敵の数に上限をつけます。「もし〈(クローン数)<(20)〉なら(自分自身)のクローンを作る」のようにします。

確かめ方:スプライトを1体ずつ、スプライト情報の目のアイコンで隠すのではなく、そのスプライトの「(緑の旗)が押されたとき」を、下のブロックから一時的に切り離して実行します。切り離したときに軽くなったスプライトが、原因です。

100ブラウザがクラッシュする
  1. ブラウザを開き直し、Scratch以外のタブをすべて閉じます。動画サイトなどは、とくにメモリを使います。
  2. 作品を開いたら、緑の旗を押す前に、まず「ファイル」→「コンピューターに保存する」で手元に保存します。
  3. 緑の旗を押すと落ちる場合は、クローンの無限増殖(Q25の手順3・4)を、先に直します。
  4. 開いただけで落ちる場合は、データが大きすぎます。Q79の方法で、音と画像を減らします。開くことすらできない場合は、別のパソコン、または下記のオフライン版で開いて、データを減らします。
  5. ブラウザを最新版に更新します(Chromeなら、右上の「︙」→「ヘルプ」→「Google Chromeについて」)。
  6. ブラウザの拡張機能(広告ブロックなど)が影響していることがあります。シークレットウィンドウ(Ctrl+Shift+N、Macはcommand+shift+N)で開いて、改善するか試します。設定によっては、シークレットウィンドウでも拡張機能が動きます。その場合は、ブラウザの拡張機能の管理画面で、一時的にオフにして試します。
  7. パソコンを再起動します。

それでも改善しないとき:オフライン版のScratchアプリ(scratch.mit.edu/download)を使います。ブラウザのほかのタブや拡張機能の影響を受けないため、安定することがあります。

Chapter 11 / Last Resort

11それでも解決しないときは

ここまでの方法で直らないときは、次の3つの手順で、原因の場所をしぼりこみます。どんなトラブルにも使える、基本の調べ方です。

1「言わせる」「表示する」で、中で起きていることを見る

Scratchはエラーメッセージを出さないので、自分で「目印」を置きます。あやしい場所に、紫の「( )と(1)秒言う」を一時的にはさみ、そこを通っているか確かめます。変数は、オレンジの「変数」カテゴリでチェックを入れ、ステージに表示して、値の変化を見ます。

2半分ずつ切り離す

長いスクリプトは、まん中あたりのブロックをつかんで下へ引き、下半分を切り離します。上半分だけで実行し、問題が起きるか見ます。起きれば原因は上半分に、起きなければ下半分にあります。これを繰り返すと、数回で原因のブロックにたどり着けます。確認が終わったら、切り離した部分を元の位置につなぎ直します。

3「最小構成」で作り直してみる

「ファイル」→「コンピューターに保存する」で今の作品を保存した上で、「ファイル」→「新規」で新しいプロジェクトを開きます。うまくいかない動きだけを、最小限のブロックで作ります。それで動くなら、元の作品のどこかにある、ほかのスクリプトが邪魔をしています。動いた形に、元の要素を1つずつ足していき、動かなくなった時点で足したものが原因です。

編集部想定シナリオ

ゲームを制作していたNさんは、敵に触れると、スコアが2つ、3つと一気に増えてしまう不具合に悩んでいました。何度もブロックを見直しましたが、原因が分かりません。そこで、スコアを増やす処理の直前に、「今、増やしました」と言わせるブロックを、一時的に追加しました。実行してみると、たった1回の接触で、そのメッセージが3回も表示されました。「ずっと」ブロックの中で、当たり判定が、1回の接触中に何度もチェックされ続けていたことが、原因だと分かりました。Q62の方法A(離れるまで待つ)を入れると、スコアは1ずつ増えるようになりました。目に見えない繰り返しの速さこそが、原因の正体だったのです。

人に質問するときのコツ

Scratch公式サイトには、「ディスカッションフォーラム」という掲示板があり、日本語で質問できるコーナーもあります。サイトのいちばん下の「コミュニティー」の中にある「ディスカッションフォーラム」をクリックし、言語別のフォーラムの中から「日本語」を選びます。同じトラブルに、すでに誰かが遭遇し、解決策が書かれていることも多いので、まずは検索してみることをおすすめします。

質問するときは、次の4つを書くと、答えてもらいやすくなります。

  • やりたいこと:「スペースキーでジャンプさせたい」
  • 実際に起きていること:「押しても何も起きない。スクリプトは黄色く光っている」
  • 試したこと:「ステージをクリックしてから押した。キーを変えても同じだった」
  • 作品のURL、またはスクリプトのスクリーンショット(個人情報が写りこまないよう注意します)

関連記事・参考資料

基礎を学べる記事

  1. YOFUKASI LAB「Scratch入門|使い方・始め方を初心者向けにやさしく解説」2026年, https://yofukasi-lab-wp.com/2026/09/13/scratch-getting-started/
  2. YOFUKASI LAB「Scratchで電子工作入門|LED・センサーを動かして学ぶプログラミング」2026年, https://yofukasi-lab-wp.com/2026/09/13/scratch-electronics-getting-started/

応用・関連記事

  1. YOFUKASI LAB「Scratchでアクションゲームを作る方法|ジャンプ・重力・当たり判定」2026年, https://yofukasi-lab-wp.com/2026/09/14/scratch-action-game/
  2. YOFUKASI LAB「電子工作とプログラミング入門|初心者は何から始める?」2026年, https://yofukasi-lab-wp.com/2026/09/12/electronics-programming-getting-started/

参考資料(外部)

  1. Scratch公式サイト, https://scratch.mit.edu/
  2. Scratch公式「よくある質問(FAQ)」, https://scratch.mit.edu/faq
  3. Scratch公式「ディスカッションフォーラム」, https://scratch.mit.edu/discuss/
  4. Scratch Wiki(英語・ユーザー有志による運営), https://en.scratch-wiki.info/

※本記事は、Scratch 3.0(オンライン版・Scratchアプリ)およびmBlock 5(パソコン版)をもとにしています。画面の表示やボタンの名称は、バージョンアップにより変更されることがあります。
※本記事は個人の学習用途を対象にしています。教育機関での利用については、各校・各団体の方針もあわせてご確認ください。

関連記事

特集記事

コメント

この記事へのコメントはありません。

TOP
CLOSE