まえがき

おしゃべりチャットボットをつくってみましょう!

ステップ1:チャットボット

チェックリスト

  • まずはじめに、チャットボットのキャラクターを決めましょう。
    • 名前は?
    • 住んでいる場所は?
    • 明るい?まじめ?楽しい?おとなしい?やさしい?
  • 新しいスクラッチのプロジェクトを開いたら、まずネコのキャラクターを消してプロジェクトをからっぽにしましょう。オンラインのエディターはここから開きます: jumpto.cc/scratch-new

  • キャラクターの絵をえらんで、プロジェクト内におきましょう。

    screenshot

  • キャラクターにあう背景(はいけい)をえらびましょう。こういう感じにしても良いですし、ちがう背景(はいけい)にすることもできます。

    screenshot

プロジェクトを保存してください

ステップ2:おしゃべりチャットボット

さてチャットボットのキャラクターが決まったので、おしゃべりができるようにプログラムしましょう。

チェックリスト

  • チャットボットのキャラクターをクリックして、このコードを入れてみましょう。

        このスプライトがクリックされたとき
    [ねえ、きみのなまえは?] と聞いて待つ
    [すてきな名前ですね!] と (2) 秒言う

  • チャットボットをクリックして、プログラムをテストします。名前を聞かれたら、下のところに自分の名前を入力しましょう。

    screenshot

  • チャットボットは何回でもすてきな名前ですね! と答えます。他の言葉にかえれば、チャットボットをちがう感じにすることができます。 コードをこのようにかえます。

        このスプライトがクリックされたとき
    [ねえ、きみのなまえは?] と聞いて待つ
    <[こんにちは] と (答え)> と (2) 秒言う

    図の3つ目のブロックを作るには、2つの言葉をつなげるhelloとworldのブロックをドラッグして、言うのブロックの上にドラッグします。

    screenshot

    helloのところをこんにちはにかえて、答えブロック(「調べる」というカテゴリーの中にありますをドラッグして worldのところにおきます。

    screenshot

  • 新しいプログラムを動かしてみましょう。思いどおりに動きましたか? おかしなところがあれば直せるでしょうか?

  • ユーザーの名前を変数(へんすう)に入れておけば、 その名前をあとで他のところにも使うことができます。名前(name)という変数(へんすう)を新しく作りましょう。 もし作り方をわすれてしまった場合は、 「ゴーストバスター」のプロジェクトを見てみましょう。

  • 入力した言葉は、答えという変数(へんすう)に入ります。「調べる」のカテゴリーから、答えのところにあるチェックをクリックしましょう。答えに入っているものが左上に見えるようになります。

  • チャットボットのコードがこのようになっているか、たしかめてみましょう。

        このスプライトがクリックされたとき
    [ねえ、きみのなまえは?] と聞いて待つ
    [name v] を (答え) にする
    <[こんにちは] と (name)> と (2) 秒言う

  • もう一回テストしたら、こんどは答えが名前(name)の中に入っていて、左上に出てきます。名前(name)には、答えと同じものが入っているはずです。

    screenshot

    もし変数(へんすう)をわざわざ見なくてもよい場合は、 スクリプトの「データ」や「調べる」のカテゴリーにある変数(へんすう)のチェックをクリックすれば、かくすことができます。

プロジェクトを保存してください

チャレンジ:質問(しつもん)をふやす

チャットボットがもう一つ他のことを聞いてくるようにプログラムしてみましょう。 答えを変数(へんすう)に入れられるでしょうか?

screenshot

プロジェクトを保存してください

ステップ3:いろいろな答え方

ユーザーの入力によって、チャットボットがちがう答え方をするようにプログラムすることができます。

チェックリスト

  • はいいいえで答えられることを聞くようにしてみましょう。この図のようにしてもよいですし、すきな言葉にかえてもかまいません。

        このスプライトがクリックされたとき
    [ねえ、きみのなまえは?] と聞いて待つ
    [name v] を (答え) にする
    <[こんにちは] と (name)> と (2) 秒言う
    <(name) と [は元気ですか?]> と聞いて待つ
    もし ((答え) = [はい]) なら
        [それはよかった!] と (2) 秒言う
    end

    ここで名前が変数(へんすう)に入っていることに気がつきましたか?変数(へんすう)にすることで何回も使うことができます。

  • このプログラムがうまく動くかをたしかめるには2回テストします。1回目はいいえと入力し、2回目ははいと入力します。はいと入力したときだけチャットボットが答えます。

  • ここで問題は、答えがいいえのときチャットボットが何も言ってくれないことです。うまく直すにはもし…ならのブロックをもし…なら/でなければブロックにかえればいいのです。こんなふうに直してみましょう。

        このスプライトがクリックされたとき
    [ねえ、きみのなまえは?] と聞いて待つ
    [name v] を (答え) にする
    <[こんにちは] と (name)> と (2) 秒言う
    <(name) と [は元気ですか?]> と聞いて待つ
    もし ((答え) = [はい]) なら
        [それはよかった!] と (2) 秒言う
    でなければ
        [それはこまったね。。。] と (2) 秒言う
    end

  • このプログラムをテストすると、こんどははいでもいいえでも答えが返ってきましたね。答えがはいならそれはよかった!と言いますが、はい以外のときにはそれはこまったね。。。と言うはずです。

    screenshot

  • もし…なら/でなければのブロックには、チャットボットの言葉だけではなく、いろいろなコードを入れることができます。たとえば、答えに合わせてコスチュームをかえることもできます。


    チャットボットのコスチュームを見てみると、いくつかあるのがわかると思います。(もしない場合は自分で足すこともできます!)

    screenshot

    コードを次のようにすることで、コスチュームをかえることができます。

    screenshot

  • プログラムをテストしてみましょう。答えによってチャットボットの顔がかわるはずです。

    screenshot

プロジェクトを保存してください

チャレンジ:もっといろいろな答え

チャットボットが他のことも聞くようにプログラムしてみましょう。はいいいえで答えられるようにしましょう。あなたのチャットボットはきちんと答えられるでしょうか?

screenshot

プロジェクトを保存してください

ステップ4:背景(はいけい)をかえる

チャットボットのいるところの背景(はいけい)をかえることができます。

チェックリスト

  • ステージに他の背景(はいけい)、たとえば「moon(月)」にしてみましょう。

    screenshot

  • コードを次のようにして、チャットボットのいる場所をかえてみましょう。

        [今から月に行くんだけど、きみもいっしょに来る?] と聞いて待つ
    もし ((答え) = [yes]) なら
        背景を [moon v] にする
    end

  • チャットボットが話しはじめるときはきちんと外にいるようにするために、このようなブロックを入れておきましょう。

    screenshot

  • テストしてみましょう。チャットボットに月に行きたいかを聞かれたらはいと答えましょう。チャットボットのいる場所がかわったはずです。

    screenshot

  • チャットボットにいいえと答えたら、いる場所はかわりましたか。わからないと答えた場合はどうでしょうか。

  • もし…ならのブロックの中にこのようにコードを入れると、はいと答えたときにチャットボットを4回ジャンプさせることができます。

    (4) 回繰り返す
    y座標を (10) ずつ変える
    (0.1) 秒待つ
    y座標を (-10) ずつ変える
    (0.1) 秒待つ
end

    screenshot

  • テストしてみましょう。チャットボットにはいと答えたら4回ジャンプしましたか?

プロジェクトを保存してください

チャレンジ:自分のチャットボット

これまでに学んだことを使って、おしゃべりチャットボットを作り上げましょう。ここにいくつかのアイデアがあります。

screenshot

チャットボットができあがったら、友だちにためしてもらいましょう!気に入ってもらえましたか?おかしなところが見つかったりしましたか?

プロジェクトを保存してください