最終更新日 2025年4月27日 by toytune
スクラッチはアメリカの大学、MIT(マサチューセッツ工科大学)メディアラボで開発されたビジュアルプログラミング言語です。
もくじ
はじめに
スクラッチでは、プログラムが動き出す「きっかけ」を「イベント」と呼びます。その中でも、スプライト同士のやりとりに使う「メッセージ」について、今回は詳しく学んでいきましょう。
メッセージを使うと、スプライト同士で「合図」を送り合い、タイミングよく動かすことができます。
今回は、2つのスプライトを使って、片方の動きが終わったらもう一方が動き出す、という連携プログラムを作ってみます。
▼ 今回作成するプログラム(の旗をクリックして動作を確認することができます)
「ネコ」のスプライトのプログラムの初期設定をする
まずは、もともとある「ネコ」のスプライトを使ってプログラムを作っていきます。
新しくプロジェクトを作ったばかりならそのままでよいのですが、念のため右下のスプライトと背景のところから、「ネコ」のスプライト のアイコンをクリックして選択状態にしておきましょう。

「ネコ」のスプライトが選択された状態になったので、「ネコ」のプログラムを作っていきます。
まず最初のきっかけは、ステージのをクリックしたタイミングで動作させ、「ネコ」の位置を左端にしたいと思うので、画面左側のコードの中から下記をドラッグして、中の数値を変更してください。手順は下記となります。画像も参照してください。
- 「イベント」から「旗が押されたとき」をドラッグ
- 「動き」から「x座標を0、y 座標を0にする」をドラッグし、ドラッグした2つをくっつける
- 「x座標を0、y 座標を0にする」の「x座標」数字を「-200」と入力

ステージのをクリックすると、中央にいた「ネコ」のスプライトがx座標-200方向となる左端へ移動し、意図した通りになりました。
ここからもう一つのスプライトを追加して、2つのスプライトが右端まで動くプログラムを作りたいと思います。

ネコが動いてメッセージを送るプログラムを追加しよう
続けて、ネコが右へ歩きながら、端に着いたときにメッセージを送るプログラムを作っていきます。
「制御」から「1秒待つ」をドラッグし、下にくっつけます。そのあと、「1秒待つ」の「1」は短くてわかりにくいかもしれないので、「2」と入力し、「2秒待つ」と変更します。


今回「ずっと」動作させたいものは、歩くアニメーションになるので、「動き」から「10歩動かす」をドラッグし、「ずっと」の中に入れます。

右端まで動かしたいので、右端に到着したときの条件分岐を設置しておきます。
「制御」から「もし〜なら」をドラッグし、「ずっと」の中、「10歩動かす」の下にくっつけます。

右端まで到着したことを確認したいので、「調べる」から「マウスのポインターに触れた」をドラッグし、
「もし〜なら」の六角形のところに入れます。

現在は「マウスのポインターに触れた」ことを調べるとなっているので、「マウスのポインター」をクリックし、出てきた選択肢の中から「端」をクリックで選択します。
これで、「もし端に触れたなら」になりました。

「もし端に触れたなら」の場合の動作を作っていきます。右端に到達したことが見た目でわかるように
「見た目」から「こんにちは!2秒言う」をドラッグし、「もし端に触れたなら」の中に入れます。

今回のプログラムに合わせたいので、「こんにちは!」を「おいでよ!」などに変更します。

いよいよこのタイミングで、あとから追加するスプライトへメッセージを送りたいと思うので、
「イベント」から「メッセージ1を送って待つ」をドラッグし、「おいでよ!と2秒言う」の下にくっつけます。

このままでもいいのですが、せっかくなので新しくメッセージを作ります。
「メッセージ1を送って待つ」の「メッセージ1」をクリックし、出てきた選択肢の中から「新しいメッセージ」をクリックで選択します。

「新しいメッセージ」をクリックすると青い画面に切り替わり、「新しいメッセージ」を設定します。
設定といっても、「新しいメッセージ」の名前を入れるだけです。
ここではわかりやすく「おいでよ」と入力します。入力できたら右下の「OK」をクリックします。

「OK」をクリックすると画面が戻ります。
さきほどまで「メッセージ1」だったところが「おいでよ」に自動的に変わっています。もしかわってなけばもう一度クリックで開き、出てきた選択肢から「おいでよ」をクリックで選択します。

これで、ネコのスプライトが端まで歩いて「おいでよ!」と言ったあと、メッセージ「おいでよ」を送るようになりました。
クマのスプライトを追加してプログラムを作ろう
次に、メッセージを受け取る側のスプライトを作成します。
画面右下のスプライトと背景のところから、「スプライトを選ぶ」をクリックしてください。

画面がスプライトの一覧に遷移します。
わかりやすいように「ネコ」のスプライトとは違うもので、さらに右側に向いているものが良いので、
「Bear-walking」という「クマ」のスプライトを見つけてクリックしてください。

画面が戻ると、スプライトと背景のところと、ステージに「クマ」のスプライトが表示されました。

「クマ」のスプライトがそのまま選択されている状態になると思うので、このスプライトにプログラムを追加していきたいと思います。
「ネコ」のスプライトと同じく、ステージのをクリックしたタイミングで「クマ」のスプライトの位置や、大きさを設定したいので、画面左側のコードの中から下記をドラッグして、中の数値を変更してください。手順は下記となります。画像も参照してください。
- 「イベント」から「旗が押されたとき」をドラッグ
- 「見た目」から「大きさを100%にする」をドラッグし、くっつける
- 「大きさを100%にする」の「100」を「50」に変更する
「クマ」のスプライトが少し大きかったですが、これで半分の大きさになります。

続けて、「ネコ」のスプライトと同じ位置にしたいので、「動き」から「x座標を0、y座標を0にする」をドラッグし、その下にくっつけます。
「x座標を0、y座標を0にする」のx座標の「0」を「-200」に変更します。
もし「-200」になっていたら、そのままで大丈夫です。

これで、ステージのをクリックしたとき、「クマ」のスプライトは大きさは半分になり、「ネコ」と同じ左端になるプログラムが完成しました。
クマがメッセージを受け取ったときのプログラムを作ろう
続いて、ネコからのメッセージ「おいでよ」を受け取ったらクマが反応して動くようにします。
「イベント」から「おいでよを受け取ったとき」を最初につくったプログラムの下などにドラッグしてください。画像は下にドラッグしていますが、場所はどこでも構いません。

ここからは、「ネコ」のスプライトから「おいでよ」のメッセージを受け取ったときの動作をプログラムしていきます。
「見た目」から「こんにちわ!と2秒言う」をドラッグして下にくっつけます。
もしこのとき、「おいでよ!と2秒言う」になっていれば、それをドラッグしてください。
「こんにちわ!」または「おいでよ!」を「いくよ!」と入力し変更してください。

続けて右端に動くアニメーションを作っていきます。
歩き続けてほしいので、「制御」から「ずっと」をドラッグして下にくっつけます。

今度は「動き」の中から「10歩動かす」をドラッグし、「ずっと」の中に入れます。
これで完成です。

「クマ」のスプライトのプログラムは2つ作りました。改めて2つのプログラムを見てみます。
1つ目は、ステージのをクリックしたタイミングで、「クマ」のスプライトの大きさが半分(50%)になり、左端に移動します。
2つ目は、「おいでよ」のメッセージを受け取ったとき、「いくよ!」と2秒言ってから、右へ歩き出すアニメーションになります。

これで、クマは「おいでよ」のメッセージを受け取ったあと、「いくよ!」と表示し、右へ歩き続けるようになります。
プログラムの動きを確認してみよう
それでは、完成したプログラムを実行してみましょう。
「クマ」のスプライトのだいたいの大きさと位置に注目しながら、ステージのをクリックします。

ステージのをクリックしたあと、「ネコ」のスプライトが右へ動き出しました。
同時に「クマ」のスプライトは半分の大きさになり、左端へ移動しました。

「ネコ」のスプライトが右端まで到達すると、「おいでよ!」の吹き出しが表示されました。

その後、「ネコ」のスプライト のプログラムはここまでで終了です。
今度は、「クマ」のスプライトから「いくよ!」の吹き出しが表示されました。
ここで、「ネコ」のスプライトから、「おいでよ」のメッセージが「クマ」のスプライトへ送られて、
「クマ」のスプライトが受け取ったのでこの動作が開始されたということになります。

「クマ」のスプライトの「いくよ!」の吹き出しが消えたあと、右への移動を開始しました。

「クマ」のスプライトも右端まで到達しました。
ステージの端に到達したあとのプログラムを作っていないので、これで終了です。

まとめ
今回の学びポイントを振り返ってみましょう。
- 「メッセージ」を使えば、他のスプライトに動きのきっかけを伝えることができる
- 「もし〜なら」を使えば、条件によってメッセージを送ることもできる
- 「メッセージを送って待つ」にすることで、次の動作まで待機できる
- メッセージは好きな名前でいくつでも作ることができる
今回はスプライト2つで簡単なやり取りをしましたが、慣れてくると背景や変数の操作とも組み合わせて、もっと複雑な動きも作れるようになります。
メッセージは送るだけでなく、受け取ることで連携を作れる便利な機能です。ぜひいろいろ試して、自分だけの動きのある作品を作ってみてください!




