レッスン 53
スクラッチで簡単(かんたん)なピアノをつくろう⌗
準備(じゅんび)⌗
スクラッチを開いてサインインしたら、「作る」を押(お)します。 画面左下の「拡張機能(かくちょうきのう)」という「+」のマークのついた四角いボタンを押(お)します。 「拡張機能(かくちょうきのう)を選(えら)ぶ」という画面が出るので、 左上の「音楽」という楽器(がっき)が表示(ひょうじ)されている絵(え)を押(お)します。 「音楽ブロック」という音符(おんぷ)のマークのついたブロックが追加(ついか)されたら 準備完了(じゅんびかんりょう)です。
ピアノの鍵盤(けんばん)をえがく⌗
今回は「いつものねこ」は使わないので、右下の「ねこのスプライト」の右上の「ごみばこ」ボタンを押(お)して ねこを消します。 スプライト一覧(いちらん)の右下の丸い「ねこのマーク」にマウスの矢印(やじるし)をあわせ、 出てきた「描く(えがく、ふでのマーク)」をえらびます。
スプライトのコスチュームをえがく画面が出てくるので、左下の「□」をえらんで、 てきとうな大きさの鍵盤(けんばん、たてながのぼう)を描(えが)きましょう。
そのままでは、色がおかしいので「塗(ぬ)りつぶし」をえらんで、「鮮(あざ)やかさ」を0にして 鍵盤(けんばん)を「白」にします。
押(お)した鍵盤(けんばん)のキーがわかりやすいようにする⌗
今回はキーボードの左上の「2〜7」と「Q〜I」の部分をピアノに見立てます。 先ほどのコスチュームをえがく画面で左にある「Tのマーク」をえらんでから 「塗(ぬ)りつぶし」をえらんで「明るさ」を0にして「黒」にします。 そして、キーボードで「Q」とかいて、その文字を鍵盤(けんばん)の上までマウスで動かします。
どの鍵盤(けんばん)を押(お)したかわかりやすくする⌗
次に、描(えが)いた鍵盤(けんばん)を「複製(ふくせい)」して、鍵盤(けんばん)を押(お)したときの色をつけます。 これは、どの鍵盤(けんばん)を押(お)されているかわかりやすくするためです。
画面(がめん)左はしの「コスチューム1」を右クリックして「複製(ふくせい)」をえらびます。 「コスチューム1」と同じ内ようの「コスチューム2」が作られます。
コスチュームを描(えが)く画面(がめん)の左上にある矢印(やじるし↑)マークをえらび、鍵盤(けんばん)を えらびます。
「塗(ぬ)りつぶし」の「明るさ」を0にし、「鮮(あざ)やかさ」を中央(50)くらいにし、 色ですきな色をえらんで、鍵盤(けんばん)に色をつけます。
キーボードを押(お)したら音を鳴らす⌗
「ド」の音を鳴らす⌗
「コード」のタブをえらんで、「コード」の画面にします。 「イベント」⇒「「○○」キーが押(お)されたとき」ブロックを使い、 「〇〇」の部分を鍵盤(けんばん)に書いたキーの文字「q」に変更(へんこう)します。
「音楽」⇒「○の音符(おんぷ)を○拍(はく)鳴らす」を使います。 「ド」の音は「60」なので「○の音符(おんぷ)」の部分を「60」にします。 「○拍(はく)鳴らす」の部分は「音を鳴らす長さ」を入力しますが、今回はとりあえず元のままにしておきます。
音がなっているときに見た目を変(か)える⌗
「見た目」⇒「コスチュームを○にする」を使って、キーを押(お)した直後に「コスチューム2」に なるようにします。
音を鳴らし終えたら、同じブロックを使って、元の「コスチューム1」になるようにします。
ここまで作ったら、一度「q」キーを押(お)して鍵盤(けんばん)の色が変(か)わり、 「ド」の音が鳴って、元の鍵盤(けんばん)の色にもどるか、確(たし)かめてみましょう!
「レ」〜「↑ド」(1オクターブ上のド)まで複製(ふくせい)する⌗
右下のスプライト一覧(いちらん)から鍵盤(けんばん)のスプライトを選(えら)び、 右クリックして、「複製(ふくせい)」を選(えら)んで鍵盤(けんばん)をコピーします。
複製(ふくせい)した鍵盤(けんばん)の文字を書きかえる⌗
コピーした鍵盤(けんばん)のスプライトが選(えら)ばれているので、 「コスチューム」タブを選(えら)んで、「T」マークを選(えら)び、鍵盤(けんばん)上の文字 (たとえば「ド」なら「Q」)を新しい鍵盤(けんばん)に対応(たいおう)する文字 (たとえば「レ」なら「W」)に書きかえます。
このとき、「コスチューム1」だけでなく、「コスチューム2」の文字も書きかえてください。
コードの文字と音を書きかえる⌗
「コード」のタブを選(えら)んで、「「○○」キーが押(お)されたとき」ブロックの 「〇〇」の部分を新しい鍵盤(けんばん)に対応(たいおう)する文字(たとえば「レ」なら「w」)に 書きかえます。
「○の音符(おんぷ)を○拍(はく)鳴らす」の「○の音符(おんぷ)」の部分も 新しい鍵盤(けんばん)に対応(たいおう)する音(たとえば「レ」なら「62」)に 書きかえます。
鍵盤(けんばん)を整列する⌗
コスチュームとコードの書きかえが終わったら、右上の実行画面上で鍵盤(けんばん)を整列させます。 このとき、上下方向は「y」の数字に同じ数字を入力すれば、そろえることができます。
左右方向はマウスで動かしてそろえます。 そろえた後、「ド」の鍵盤(けんばん)の「x」の数字と「レ」の鍵盤(けんばん)の「x」の数字を メモしておいて、それらの数字の差(さ、大きい方から小さい方を引いた数)をメモしておきます。
そうすれば、次からは1つ前の鍵盤(けんばん)の「x」の数字にメモした差(さ)の数字を足した 数字を新しい鍵盤(けんばん)の「x」に入力することで、横方向もそろえることができます。
残(のこ)りの「ミ」から「↑ド」(1オクターブ上のド)まで複製(ふくせい)する⌗
上記の作業をくりかえして、「ミ」から「↑ド」(1オクターブ上のド)までを作ります。 その時、書きかえる文字、音は以下の通りです。
- 「ド」⇒「Q」⇒「60」
- 「レ」⇒「W」⇒「62」
- 「ミ」⇒「E」⇒「64」
- 「ファ」⇒「R」⇒「65」
- 「ソ」⇒「T」⇒「67」
- 「ラ」⇒「Y」⇒「69」
- 「シ」⇒「U」⇒「71」
- 「↑ド」⇒「I」⇒「72」
なお、音を書きかえる時、数字をクリックすると下にピアノのキーボードが表示(ひょうじ)されるので、 変(か)えたい音に対応(たいおう)するキーボードのキーをクリックすることで書きかえたい数字に 書きかえることもできます。
同じように黒い鍵盤(けんばん)も作る⌗
白い鍵盤(けんばん)で「ドレミファソラシド」ができたら、黒い鍵盤(けんばん)を作ります。
黒い鍵盤(けんばん)を描(えが)く⌗
スプライト一覧(いちらん)の右下の丸い「ねこのマーク」にマウスの矢印(やじるし)をあわせ、 出てきた「描く(えがく、ふでのマーク)」をえらびます。
スプライトのコスチュームをえがく画面が出てくるので、左下の「□」をえらんで、 てきとうな大きさの鍵盤(けんばん、たてながのぼう)を描(えが)きましょう。 先ほど作った白い鍵盤(けんばん)よりは幅(はば)を少し細めに、高さを少し低めにします。
そのままでは、色がおかしいので「塗(ぬ)りつぶし」をえらんで、「鮮(あざ)やかさ」を100にして 鍵盤(けんばん)を「黒」にします。
先ほどのコスチュームをえがく画面で左にある「Tのマーク」をえらんでから 「塗(ぬ)りつぶし」をえらんで「明るさ」を100にして「白」にします。 そして、キーボードで「2」とかいて、その文字を鍵盤(けんばん)の上までマウスで動かします。
白い鍵盤(けんばん)の時と同じようにコスチュームを複製(ふくせい)して、押(お)したときの コスチューム(コスチューム2)を作り、色を変(か)えます。
この時、「鮮(あざ)やかさ」は中央(50)くらいにすると良いでしょう。
キーボードを押(お)したら音を鳴らす⌗
白い鍵盤(けんばん)の時と同じようにコードを追加(ついか)します。
文字の部分は「2」に音は「61」(ドの#)にします。
ここまでできたら、「2」を押(お)したら、黒い鍵盤(けんばん)の色が変(か)わり、 「ドの#」の音が鳴って、元の黒い鍵盤(けんばん)にもどることを確(たし)かめましょう。
鍵盤(けんばん)を整列する⌗
作った黒い鍵盤(けんばん)を白い鍵盤(けんばん)の「ド(Q)」と「レ(W)」の間の 中央に部分に、上端(じょうたん、鍵盤(けんばん)の上の部分)をそろえるように配置(はいち)します。 そのときの「x」の数字と「y」の数字をメモしておきます。
「y」の数字はこの後作る黒い鍵盤(けんばん)の「y」に同じ数字を入力します。 「x」の数字は白い鍵盤(けんばん)を作ったときにメモした差(さ)の数字を使って 1つ前に作った黒い鍵盤(けんばん)の「x」の数字に差(さ)を足した数字を入力します。 (「ミ」と「ファ」の間には黒い鍵盤(けんばん」はないので、「ファ#(5)」の「x」には 1つ前の「レ#(3)」の「x」の数字に差を2倍した数字を足した数字を入力します。
「レ#」〜「ラ#」まで複製(ふくせい)する⌗
白い鍵盤(けんばん)を複製(ふくせい)したのと同じやり方で、黒い鍵盤(けんばん)を複製(ふくせい)します。 その時、書きかえる文字、音は以下の通りです。
- 「ド#」⇒「2」⇒「61」
- 「レ#」⇒「3」⇒「63」
- 「ファ#」⇒「5」⇒「66」
- 「ソ#」⇒「6」⇒「68」
- 「ラ#」⇒「7」⇒「70」
ここまで出来たら、右の実行画面で「緑の旗(はた)」を押し、キーボードでひいてみて、押(お)した鍵盤(けんばん)の色が変(か)わり、その鍵盤(けんばん)の音が出ることを確(たし)かめましょう。
録音(ろくおん)・再生(さいせい)機能(きのう)の追加(ついか)⌗
一度ひいた曲を覚(おぼ)えておいて、もう一度聞けるようにしてみましょう。
「曲」というリストを作り、それぞれの鍵盤(けんばん)から音を追加(ついか)する⌗
まず、「変数(へんすう)」⇒「リストを作る」をクリックし、「曲」という名前のリストを作ります。
作った「曲」というリストのチェックマークを外して、画面に出さないようにします。
次に、作った鍵盤(けんばん)のコードの後りに「○○を曲に追加(ついか)する」というブロックを追加し、 「〇〇」の部分に、それぞれの鍵盤(けんばん)で指定した音符(おんぷ)の数字(たとえば、「ド」の 音だったら「60」)を入力します。
これを全ての鍵盤(けんばん)に対して行います。
休符(きゅうふ)を入れたり、取り消したり、全部消したりできるようにする⌗
どれかの鍵盤(けんばん、たとえば「ド」)に休符(きゅうふ、音を休む記号)を入れたり、 ひいた音を取り消したり、ひいた音を全部取り消したりする機能(きのう)を追加(ついか)します。
それぞれ、以下のようにキーボードのキーに割付(わりつけ)ます。
休符(きゅうふ)⇒「S」 取り消し⇒「X」 全部消す⇒「C」
休符(きゅうふ)「S」⌗
「イベント」⇒「〇キーが押(お)されたとき」を選(えら)んで、「○キー」を「sキー」にします。 次に、「変数(へんすう)」⇒「○を曲に追加(ついか)する」というブロックを選(えら)んで、 「○」に「0」(ゼロ)を入力し、「sキーが押(お)されたとき」の後にくっつけます。
取り消し「X」⌗
「イベント」⇒「〇キーが押(お)されたとき」を選(えら)んで、「○キー」を「xキー」にします。 次に、「変数(へんすう)」⇒「曲の○番目を削除(さくじょ)する」ブロックを選(えら)んで、 「○番目」の部分を「曲の長さ」にして「xキーが押(お)されたとき」の後にくっつけます。
全部消す「C」⌗
「イベント」⇒「〇キーが押(お)されたとき」を選(えら)んで、「○キー」を「cキー」にします。 次に、「変数(へんすう)」⇒「曲のすべてを削除(さくじょ)する」ブロックを選(えら)んで、 「cキーが押(お)されたとき」の後にくっつけます。
「曲」に追加(ついか)された音をもう一度ひく⌗
「スペースキー」を押(お)したら、「曲」に追加(ついか)された今までひいた音をもう一度ひくようにします。
まず、「イベント」⇒「〇キーが押(お)されたとき」を選(えら)んで、「○キー」を「スペースキー」にします。
次に、「変数(へんすう)」⇒「変数(へんすう)を作る」をクリックして、「曲の場所」という名前の変数(へんすう)を作ります。作った「曲の場所」という変数(へんすう)のチェックマークを外して、画面に出さないようにします。
「変数(へんすう)」⇒「○を○にする」ブロックを選(えら)んで「「曲の場所」を「0」(ゼロ)にする」にして、 「スペースキーが押(お)されたとき」の後にくっつけます。
次に、「制御(せいぎょ)」⇒「〇〇まで繰(く)り返す」ブロックを選(えら)び、「〇〇」の部分に 「演算(えんざん)」⇒「○=○」ブロックを入れ、「○=○」に「変数(へんすう)」にある「曲の長さ」と「曲の場所」を入れ、「「「曲の長さ」=「曲の場所」」まで繰(く)り返す」にして、「「曲の場所」を「0」(ゼロ)にする」ブロックの後にくっつけます。
次に、「変数(へんすう)」⇒「○を○ずつ変(か)える」ブロックを選(えら)び、「「曲の場所」を「1」ずつ変(か)える」にして、「「「曲の長さ」=「曲の場所」」まで繰(く)り返す」の中に入れます。
次に、「制御(せいぎょ)」⇒「もし〇〇なら、でなければ」ブロックを選(えら)び、 「〇〇」の部分に「演算(えんざん)」⇒「○=○」ブロックを入れ、「○=○」の左側の○の部分に 「変数(へんすう)」⇒「曲の○番目」を入れて、さらに「曲の○番目」の「○番目」の部分に 「曲の場所」を入れます。「○=○」の右側の○の部分には「0」(ゼロ)を入れます。
「もし「「「曲」の「曲の場所」番目」=「0」」なら、でなければ」というブロックが出来るので、 「「曲の場所」を「1」ずつ変(か)える」の後のくっつけます。
次に、「もし」の部分に「音楽」⇒「○拍(はく)休む」を入れます。○の部分は元から入っている「0.25」のままにしておきます。
「でなければ」の部分に「音楽」⇒「○の音符(おんぷ)を○拍(はく)鳴らす」を入れて、「○の音符(おんぷ)」の部分に 「変数(へんすう)」⇒「曲の○番目」を入れ「○番目」の部分に、「曲の場所」を入れます。○拍(はく)鳴らすの部分は 元から入っている「0.25」のままにしておきます。 「「「曲」の「曲の場所」番目」の音符(おんぷ)を「0.25」拍(はく)鳴らす」というブロックになります。
曲をひいて、ひいた音をもう一度聞いてみる。⌗
ここまでできたら、右の実行画面の緑の旗(はた)をクリックし、キーボードでピアノをひいた後 スペースキーを押(お)すと、ひいた曲がもう一度演奏(えんそう)されます。
ひきまちがえたら、xキーを押(お)すたびに1つずつ取り消されます。 cキーを押(お)せば、ひいた音全てが取り消されます。 音がつながりすぎて、不自然(ふしぜん)なときには、sキーを使っててきとうに音と音の間に休符(きゅうふ)を入れてください。
いろいろな楽器(がっき)の音を出そう⌗
ピアノだけでなく、いろいろな楽器(がっき)の音を出せるようにしてみましょう。 どんな、音が出せるかは、「音楽」⇒「楽器(がっき)を○にする」の○の部分の▼マークをクリックすると 楽器(がっき)の一覧(いちらん)を見ることができます。 それぞれの楽器(がっき)名の左側の()の中の数字が、楽器(がっき)の番号になります。
楽器(がっき)番号の変数(へんすう)を作る⌗
楽器(がっき)番号の変数(へんすう)を作って、その番号を自由に指定できるようにします。 まず、「変数(へんすう)」⇒「変数(へんすう)を作る」をクリックし、「楽器(がっき)番号」という名前の変数(へんすう)を作ります。チェックマークはそのままにしておいて、右の画面で見えるようにしておきます。
右の画面に見える「楽器(がっき)番号」という変数(へんすう)の場所を左上に動かしてください。
次に、右の画面の「楽器(がっき)番号」という変数を右クリックして「スライダー」を選(えら)んでください。 変数(へんすう)の下に「スライダー」が追加(ついか)され、これを動かすことで「楽器(がっき)番号」の数字を 自由に指定できるようになります。
このままでは、指定できる範囲(はんい)が0〜100となって、楽器(がっき)番号にない番号まで指定できてしまうので、 もう一度「楽器(がっき)番号」という変数を右クリックして「スライダーの指定範囲(はんい)を変更(へんこう)」を選(えら)んで「最小値(さいしょうち)」を「1」に、「最大値(さいだいち)」を「21」にします。 これで、「楽器(がっき)番号」にある番号だけが指定できるようになりました。
楽器(がっき)を楽器(がっき)番号の楽器(がっき)にする⌗
楽器(がっき)番号」という変数(へんすう)の数字を変(か)えただけでは、楽器(がっき)の音は変(か)わらないので、 この変数(へんすう)の数字を使って楽器(がっき)を変(か)えるようにコードを書きます。
「ド」の鍵盤(けんばん)のコードで、 「イベント」⇒「緑の旗(はた)が押(お)されたとき」ブロックを選(えら)び、その後に「音楽」⇒「楽器(がっき)を○にする」をくっつけ、「○にする」の部分に「変数(へんすう)」⇒「楽器(がっき)番号」を入れます。
楽器(がっき)の音はそれぞれの鍵盤(けんばん)ごとに指定しなければいけないので、今作った2つのブロックを全ての鍵盤(けんばん)にコピペします。
楽器(がっき)の音を変(か)えてひいてみる⌗
ここまでできたら、右の実行画面で「楽器(がっき)番号」をすきな楽器(がっき)の番号にして、緑の旗(はた)を押(お)して、キーボードでひいてみましょう。指定した楽器(がっき)の音になっているはずです。
キーボードだけでなく、マウスでもひけるようにする⌗
せっかく鍵盤(けんばん)の絵がかかれているので、キーボードのキーだけでなく、マウスでも 鍵盤(けんばん)をたたけるようにしてみましょう。
一番簡単(かんたん)なやり方は、「○キーが押(お)されたら」につながるブロックをまとめてコピペして、 「○キーが押(お)されたら」を「このスプライトが押(お)されとき」に書きかえることです。
ただし、このやり方では「コスチュームを「コスチューム2」にする」より下の部分はダブってしまって、かっこ悪いし、 あとでこの部分を直すとき、2回直さなければならなくなり、直しわすれる心配もあります。
そこで、「ブロック定義(ていぎ)」を使って、この問題を解決(かいけつ)します。
音を出す部分を「ブロック定義(ていぎ)」する⌗
「ド」の鍵盤(けんばん)のスプライトを選(えら)び、コードタブを選(えら)びます。
「ブロック定義(定義)」⇒「ブロックを作る」を選(えら)びます。
「ブロック名」の部分を「鍵盤をひく」に書きかえます。(鍵盤は「けんばん」でもよいです) 後で他の鍵盤(けんばん)でも流用できるように、左下の「引数を追加(ついか)、数値(すうち)またはテキスト」を選(えら)びます。 そうすると、「number ot text」という部分がブロック名の後に追加(ついか)されるので、これを「音」に書きかえます。
ここまで、できたら右下の「OK」ボタンを押します。
定義の中身を作る⌗
「定義(ていぎ)「鍵盤をひく」「音」」というブロックが出来るので、「○キーが押(お)されたとき」につづくブロックを 「○キーが押(お)されたとき」から取り外し、「定義(ていぎ)「鍵盤をひく」「音」」の後にくっつけます。
これで音を作るというブロックを「定義(ていぎ)「鍵盤をひく」」にまとめることができました。
この定義を他の鍵盤(けんばん)でも使えるようにするため、「定義(ていぎ)「鍵盤をひく」「音」」の「音」の部分をマウスでドラッグして、ブロックの中の音を表す「60」という部分2か所を「音」に置(お)きかえます。
定義を使用する⌗
切りはなされた「○キーが押(お)されたとき」の後ろに「ブロック定義(ていぎ)」⇒「鍵盤をひく○」をくっつけます。そのとき「○」の部分に「60」を入れることで、60の音が作られます。
「イベント」⇒「このスプライトが押(お)されたとき」を選(えら)んで、同じように、「鍵盤をひく「60」」をくっつけます。
「ド」の鍵盤(けんばん)をキーボードの「Q」キーをたたいても、マウスでクリックしても同じように色が変(か)わって音が出ることを確(たし)かめてください。
他の鍵盤(けんばん)でも同じようなことができるようにする⌗
「ド」の鍵盤(けんばん)が出来たら、「レ」や「レ#」をはじめとする全ての鍵盤(けんばん)で同じことができるようにしましょう。
まず、定義(ていぎ)「鍵盤をひく」「音」」につながるブロックをまとめて他の鍵盤(けんばん)(たとえば「レ」)にコピペします。(コピペは、ただブロックをマウスでドラッグして、コピーしたい鍵盤(けんばん)のスプライトの上に置(お)くことで実行できます)
コピペしたら、見やすいように画面を整理(マウスを右ドラッグして「きれいにする」を選(えら)ぶ)します。
次に「○キーが押(お)されたとき」(たとえば、「レ」なら「wキーが押(お)されたとき」)の後のブロックをまとめて取り外し、代わりに「ブロック定義(ていぎ)」⇒「鍵盤をひく○」をくっつけ、○の部分に先ほど取り外した部分の音符(おんぷ)の音の数字(たとえば、「レ」なら「62」)を入れます。
取り外した部分はもういらないので、消します。
おしまいに、「イベント」⇒「このスプライトが押(お)されたとき」を選(えら)び、この後に鍵盤をひく○」をくっつけ、○の部分にさきほどと同じ数字を入力します。
キーボードのキーとマウスで色と音を確(たし)かめ、これを全部の鍵盤(けんばん)で実行します。
完成⌗
完成したピアノは以下のようになります。