今回はScratch(スクラッチ)の拡張機能「音楽」やコスチュームを使って、ハッピーバースデーを歌うアニメ作りをご紹介します。
スプライトがハッピーバースデーを歌っているようなアニメと、歌の後に「ハッピーバースデー」の文字を表示するアニメを作りましょう。
スプライトとスクリプトの数が多めですが、考え方は簡単なのでやってみてください。
この記事のもくじ
ハッピーバースデーの歌を作る
まずはハッピーバースデーを歌うスプライトを選びます。
(ここでは例として"heart face"とします。)
"拡張機能を追加"から"音楽"を追加します。
音楽のスクリプトメニューから以下のスクリプトを組み立てましょう。
"64"などの数字は音符、"拍数"は音を鳴らす長さです。
0.25 , 0.5 , 0.75 , 1 , 1.25 , 1.5 , 1.75 , 2 ...のように0.25ずつ変えるのがやりやすいですヨ!
背景を選ぶ
ここで背景も決めておきましょう。
"背景を選ぶ"から好きなものを選んでください。
スプライトが歌うアニメを作る
次にスプライトが歌っているようなアニメを作ります。
これにはスプライトのコスチュームを編集するのが便利です。
コスチュームが2つできたら、"コード"タブをクリックしてスクリプトゾーンに戻ります。
スプライトの初期設定をする
ではこのスプライトの位置などを決めます。
ほぼステージの中央にくるように座標を設定し、コスチュームは1つめの歌っていない時のもの(heart face)にします。
クリックすると歌が始まるようにするので、"クリックしてねと2秒言う"を付けておきます。
このスクリプトができたら、さきほどのハッピーバースデーの歌の先頭に、以下のようにスクリプトを追加します。
そして歌の後にこのスクリプトを加えます。
コスチュームを歌っていない時の状態に戻すのと、"メッセージ1を送る"がポイントです。
ここまでできたらを押してからスプライトをクリックして、試してみましょう。
ハッピーバースデーの文字アニメを作る
次にハッピーバースデーの文字アニメを作ります!
これには、スプライトのアルファベットを使いましょう。
すべてのアルファベットにAのスクリプトをコピーできましたか?
ではここでニャアからの問題です!
・
・・
・・・
では答えです!
Hは"待つ"なし(=0秒)で表示され、Aは"0.25秒待つ"の後に表示されます。
ということは他のアルファベットも0.25秒ずつ待ち時間を増やしていけば、同じ間隔で順番に表示されることになります。
つまり…
- P:0.25+0.25=0.5 (秒)
- P:0.5+0.25=0.75 (秒)
- Y:0.75+0.25=1 (秒)
- B:1+0.25=1.25 (秒)
- I:1.25+0.25=1.5 (秒)
- R:1.5+0.25=1.75 (秒)
- T:1.75+0.25=2 (秒)
- H:2+0.25=2.25 (秒)
- D:2.25+0.25=2.5 (秒)
- A:2.5+0.25=2.75 (秒)
- Y:2.75+0.25=3 (秒)
ということになります!
それぞれのアルファベットの"○秒待つ"の秒数を上のように変更してみましょう。
背景が変わる設定
次に"HAPPY BIRTHDAY"が表示される時の背景も変わるようにしましょう。
例としてここでは"hearts"にしました。
おまけ:居眠りするアニメを追加
ここまででハッピーバースデーの歌とそれを歌うスクリプトのアニメ、歌の後に表示される"HAPPY BIRTHDAY" の文字アニメができたと思います。
でもこれだけだとちょっと物足りないので、もう一工夫してみましょう。
たとえば間奏部分でスプライトが居眠りしてしまうのはどうでしょう?
まずはheart faceのコスチュームをさらに4つ作り、繋げることでアニメのようにします。
そしてスクリプトはこのようにします。
- ①の部分はウトウトして眠ってしまうスクリプト
- ②の部分は"Snap"の音にびっくりして飛び起きるスクリプト
- 最後に歌っている時のコスチュームに戻すスクリプト
こうした工夫があるだけで、オリジナルの"ハッピーバースデー"になりますよね!
このスクリプトをハッピーバースデーの歌の"2秒待つ"を入れた場所に入れます。(その代わりに"2秒待つ"は取り除いてOK)
今回のスクリプトはScratchのプロジェクトページでも確認できます。
楽しいアニメを作って、お友達や家族のお誕生日をお祝いしてあげましょう。
もっとscratchを使いこなしたい人は…
今回のスクリプトは簡単なものでしたが、さらにScratchを深めたい!もっとスゴイのが作りたい!という場合は、ニャアの他のゲーム作りも参考にしてみてください。
それでは、また次回をおたのしみに!