「Scratchで、話しかけると返事をするキャラクターを作りたい!」と思ったことはありませんか?この記事では、入力した言葉に応じて返事が変わる、簡単な対話型ゲームの作り方を紹介します。
最初に作るのは、あらかじめ決めたルールに従って返事をする会話プログラムです。ChatGPTのように文章を生成するAIではありません。まずはScratchの基本ブロックで「質問する・答えを調べる・返事を変える」という仕組みを学びましょう。この記事の作例には、外部サービスのAPIキーは必要ありません。
1. 完成するとどんな会話ができる?
キャラクターに言葉を入力すると、次のように返事をします。
| 入力する言葉 | キャラクターの返事 |
|---|---|
| こんにちは | こんにちは!会えてうれしいよ。 |
| 名前は | ぼくはスクラッチねこだよ。 |
| 遊ぼう | いいよ!次はクイズゲームを作ってみよう。 |
| 上記以外の言葉 | その言葉はまだわからないよ。 |
| さようなら | また遊ぼうね! と言って会話を終える |
この作例では、入力した言葉が決めた言葉と一致するかを調べます。「こんにちは!」のように記号を付けると別の入力になるため、最初は表のとおりに入力してください。
2. 必要な準備
- キーボードで文字を入力できるパソコン
- ブラウザ版Scratchを使うためのインターネット接続
Scratch公式サイトを開き、「作る」から編集画面へ進みます。この記事では、日本語表示の編集画面を使います。英語で表示された場合は、地球のマークから日本語を選んでください。
ログインせずに作り始めることもできます。作成した作品は、ファイルメニューから「コンピューターに保存する」で保存できます。オンラインで保存・共有する場合は、アカウントにサインインして利用してください。
会話の動作確認には、本名・住所・学校名などの個人情報を入力する必要はありません。
3. キャラクターを選ぼう
最初から表示されているネコを使えば、キャラクターを追加する必要はありません。
- 画面右下のネコのスプライトをクリックします。
- 「コード」タブを開きます。
- 中央の広い場所に、これから説明するブロックを組みます。
スプライトとは、Scratchで動かしたり、せりふを言わせたりするキャラクターなどのことです。今回のプログラムは、すべて同じネコに作ります。
4. 使うブロックを確認しよう
| カテゴリ | 使うブロック | 役割 |
|---|---|---|
| イベント | 緑の旗が押されたとき | ゲームを始める |
| 調べる | 〜と聞いて待つ | 文字を入力してもらう |
| 調べる | 答え | 最後に入力された内容を取り出す |
| 演算 | = | 入力された内容を比較する |
| 制御 | もし〜なら/でなければ | 条件に応じて処理を分ける |
| 制御 | 〜まで繰り返す | 終了の条件を満たすまで会話を続ける |
| 見た目 | 〜と2秒言う | 返事を表示する |
ブロック内の数字や文章は、クリックして変更できます。以下の角括弧[ ]は入力欄、丸括弧(答え)は「調べる」カテゴリのブロック、山括弧〈 〉は条件を表しています。
以下の文字列を貼り付けても、Scratchのブロックには変換されません。組み方の見本として読み、Scratchの編集画面でブロックをドラッグして組み合わせてください。
5. まずは質問して、返事を表示しよう
最初に、次の3つを上から順につなぎます。
緑の旗が押されたとき [こんにちは、と入力してね]と聞いて待つ [こんにちは!会えてうれしいよ。]と[2]秒言う
- 「イベント」から「緑の旗が押されたとき」を置きます。
- 「調べる」から「〜と聞いて待つ」をつなぎ、質問の文章を入力します。
- 「見た目」から「〜と2秒言う」をつなぎ、返事の文章を入力します。
- ステージ上部の緑の旗を押します。
- 入力欄に「こんにちは」と入力し、Enterキーまたはチェックマークで確定します。
ネコが返事を表示すれば、質問と返事の基本ができました。ただし、この段階では何を入力しても同じ返事になります。
6. 入力した言葉で返事を変えよう
次に、入力された言葉が「こんにちは」かどうかを調べます。先ほどのプログラムを、次の形に組み替えてください。
緑の旗が押されたとき
[何か話しかけてね]と聞いて待つ
もし〈(答え)=[こんにちは]〉なら
[こんにちは!会えてうれしいよ。]と[2]秒言う
でなければ
[その言葉はまだわからないよ。]と[2]秒言う条件部分の作り方は次のとおりです。
- 「制御」の「もし〜なら/でなければ」を、質問ブロックの下につなぎます。
- 「演算」の「=」ブロックを、六角形の条件欄に入れます。
- 「=」の左側に、「調べる」の「答え」ブロックを入れます。
- 右側には「こんにちは」と入力します。
- 「なら」の内側と「でなければ」の内側に、それぞれ返事のブロックを入れます。
「こんにちは」と入力した場合と、「おはよう」と入力した場合で返事が変わるか確認しましょう。
7. 会話を繰り返す完成版を作ろう
最後に、返事の種類を増やし、「さようなら」と入力するまで会話を続けます。
練習用に作ったプログラムを、次の完成版に組み替えてください。同じネコに、緑の旗で始まる練習用プログラムを複数残すと、質問が重なることがあります。
緑の旗が押されたとき
[こんにちは・名前は・遊ぼう、のどれかを入力してね。終了は「さようなら」]と聞いて待つ
〈(答え)=[さようなら]〉まで繰り返す
もし〈(答え)=[こんにちは]〉なら
[こんにちは!会えてうれしいよ。]と[2]秒言う
でなければ
もし〈(答え)=[名前は]〉なら
[ぼくはスクラッチねこだよ。]と[2]秒言う
でなければ
もし〈(答え)=[遊ぼう]〉なら
[いいよ!次はクイズゲームを作ってみよう。]と[2]秒言う
でなければ
[その言葉はまだわからないよ。]と[2]秒言う
[次は何を話す? 終了するときは「さようなら」と入力してね]と聞いて待つ
[また遊ぼうね!]と[2]秒言う完成版を組むときのポイント
- 最初の質問は、「〜まで繰り返す」の外側、すぐ上に置きます。
- 「名前は」を調べる条件分岐は、「こんにちは」の「でなければ」の内側に入れます。
- 「遊ぼう」を調べる条件分岐は、「名前は」の「でなければ」の内側に入れます。
- 「次は何を話す?」という質問は、すべての条件分岐の下で、繰り返しブロックの内側に置きます。
- 最後の「また遊ぼうね!」は、繰り返しブロックの外側、下に置きます。
なぜ最初に質問するの?
「答え」ブロックには、最後の質問で入力された内容が入ります。最初に質問して今回の入力を受け取ってから、終了するかどうかを判断します。
最初から「さようなら」と入力した場合は、繰り返しの中に入らず、最後の挨拶を表示します。それ以外の言葉なら返事をし、次の入力を待ちます。
8. 動作確認をしよう
次の順に入力して、返事を確認してください。
| 操作・入力 | 確認すること |
|---|---|
| 緑の旗を押す | 最初の質問と入力欄が出る |
| こんにちは | 挨拶を返し、次の質問が出る |
| 名前は | ネコの名前を返す |
| 遊ぼう | クイズゲームを作る提案を返す |
| おはよう | まだわからない、と返す |
| さようなら | 最後の挨拶をして、次の質問は出ない |
| もう一度、緑の旗を押す | 最初から質問が始まる |
9. うまく動かないときの確認方法
入力しても先へ進まない
文字の入力後に、Enterキーまたは入力欄のチェックマークで確定してください。「〜と聞いて待つ」は、入力を確定するまで次の処理へ進みません。
決めた言葉を入力しても、違う返事になる
「こんにちは」と「こんにちは!」は別の入力です。余分な空白や記号がないか、条件に設定した文字と見比べてください。また、「答え」を文字で入力するのではなく、水色の「答え」ブロックを使っているか確認しましょう。
最初の1回しか会話できない
次の質問をするブロックが、「〜まで繰り返す」の内側に入っているか確認してください。
同じ返事を繰り返し続ける
繰り返しの最後に「次は何を話す?」という質問を置いてください。質問がなければ「答え」が更新されず、同じ内容を判定し続けます。
質問が重なったり、想定と違う順番で動いたりする
同じスプライトや別のスプライトに、練習用の質問プログラムが残っていないか確認してください。まずは、この完成版のプログラムだけで動かしてみましょう。
10. 会話ゲームと生成AIの違い
今回のプログラムは、人が用意した条件と返事を組み合わせる「ルールベース」の会話です。入力した内容を学習したり、自由に文章を作ったりする仕組みはありません。
一方、生成AIを使った会話では、モデルが入力に応じた文章を生成します。そのような会話をScratch系の環境で実現するには、利用する外部サービスや接続方法を別途選び、対応状況や費用を確認する必要があります。
APIキーを用意するだけで、今回のブロックが生成AIにつながるわけではありません。また、外部サービスの秘密のキーを、公開する作品や説明欄へ書き込まないでください。
11. 自分だけの会話に変えてみよう
基本が動いたら、条件の言葉と返事を変えてみましょう。
- 「好きな食べ物」と入力すると、「魚が好きだよ」と返す。
- 「ヒント」と入力すると、ゲーム攻略のヒントを返す。
- 「問題」と入力すると、「日本の首都は?」と質問を返す。
まずは条件を1つだけ追加し、動作確認してから次を増やすと、間違いを見つけやすくなります。新しい条件は、最後の「その言葉はまだわからないよ」と返す部分に、もう1つ「もし〜なら/でなければ」を入れて追加できます。
ただし、返事として質問文を表示するだけでは、クイズの正解判定までは行いません。クイズに発展させる場合は、回答を受け取る質問ブロックと、正解を調べる条件分岐も追加しましょう。
12. 作品を保存しよう
作品に分かりやすい名前を付け、ファイルメニューから「コンピューターに保存する」を選びます。保存したScratchの作品ファイルは、後から読み込んで続きを編集できます。
オンラインで共有する場合は、サインインし、アカウントの共有条件を満たしたうえで操作してください。公開前には、作品や説明文に個人情報が入っていないか確認しましょう。
まとめ
Scratchの「聞いて待つ」「答え」「もし〜なら/でなければ」を組み合わせると、入力した言葉で返事が変わる会話ゲームを作れます。「〜まで繰り返す」を使えば、終了の言葉を入力するまで会話を続けられます。
まずは3種類の言葉に返事をするところから始め、動作を確認しながら、好きな会話を追加してみてください。



コメント