スクラッチで、あつ森みたいにセリフをしゃべらせるブロック定義

2022-04-25

Scratchでスプライトにセリフをしゃべらせたい時、あつ森みたいに、一文字ずつ増えながら音がなったらいいなと思ってブロックをつくってみました。

ふつうに「こんにちは」と一文字ずつしゃばらせると、こんなふうになります。

音を鳴らすようにすると、ブロックの数は倍に。長いセリフを喋らせようとすると、ブロックも長~くなってしまいます。

そこでブロック定義。

一文字ずつしゃべらせる

まず、単純に一文字ずつ喋らせるブロックを作ってみます。

重要なのは、「○の○文字目」のブロック。↓のように1つずつ文字を増やしています。

しゃべるセリフ[]セリフ[こんにちは]
しゃべるセリフ[こ]           ←  セリフ[(こ)んにちは]の1文字目
しゃべるセリフ[こん]         ←  セリフ[こ(ん)にちは]の2文字目
しゃべるセリフ[こんに]       ←  セリフ[こん(に)ちは]の3文字目
しゃべるセリフ[こんにち]     ←  セリフ[こんに(ち)は]の4文字目
しゃべるセリフ[こんにちは]   ←  セリフ[こんにち(は)]の5文字目

「○と言う」と「秒待つ」のブロックの代わりに、「○と○秒言う」を使うと、しゃべり終わったら、セリフが消えるようになります。

応用

セリフのスピードを調整できるようにする

引数を増やして、セリフのスピードを指定できるようにしてみました。

音を鳴らす

ランダムでピッチを変えて、よりしゃべっているっぽくしてみます。

早口のときは高い音、ゆっくりのときは低い音を出すようにしても、いいかもしれません。