2024.11.30ブログ
小学生のプログラミング作品をご紹介!(ジュニアコースPart1)
こんにちは!タイムレスエデュケーションの鈴木です。前回から時間が空いてしまいましたが、今月は小学生の受講生が作ったプログラミング作品をいくつかピックアップして紹介させて頂こうと思います!当教室では、受講生が作った作品をYouTubeに投稿しております。どれも紹介したい作品ですが、今回は一部とさせて頂きます。他にもたくさんのプログラミング作品がありますので、ぜひチェンネルをチェックしてください。よろしくお願いします。
ジュニアコースの作品紹介
今回の記事ではジュニアコースで作成したプログラムをいくつか紹介させて頂きます。ジュニアコースでは、小学校2年生から6年生くらいを対象にパソコンを使ってプログラミングを学習しています。スクラッチというビジュアルプログラミング言語を使った内容とレゴブロックを使ったロボットプログラミングの2つのカリキュラムがあります。どちらもビジュアルでプログラムを作ることができるので、小学生でも簡単にプログラミングをすることができるのが特徴です。今回はその中のスクラッチで作成したプログラムを3つご紹介致します!当教室のジュニアコースの詳細についてはリンクをご参照ください。
細かくメロディをプログラム!のど自慢大会に参加したおばけシンガー。演目は『さらばシベリア鉄道』(楽器演奏)
1つ目は小学4年生が作成した楽器の音のプログラムを使った作品「のど自慢大会『さらばシベリア鉄道』」です。このプログラムは楽器の音符を鳴らす命令を使って音楽を作っています。以下の画像のように、テンポを決め、楽器の種類を選んで音色を決めます。そして、音符の命令を使い、鍵盤から音符を選んで拍の長さを決めます。もちろん楽譜通りに命令を正しく並べることができれば、その音楽を再現することができます。今回は「さらばシベリア鉄道」という曲の楽譜を参考に作っていました。
さらに、ここで使っているのが並列処理という考え方です。並列処理とは同時に命令を動かすことで、プログラムを動かすきっかけのイベントを同じものにすることで、下記の画像のように3つのプログラムを同時に動かすことができます。今回の作品ではメロディは同じものをコピーし、音色だけ変えることで複数の音が同時になるので音に厚みが生まれました。実際に動画をご確認いただければ分かるかと思いますので、ぜひ御覧ください。
この作品のもう一つの特徴は、のど自慢大会を再現した点ですね。テレビなどで見た内容を自分の作品に落とし込み、さらに自分なりのアレンジを加えて作品を作っています。アイディアを出すというのは、何かのオマージュになっていることがほとんで、それを自分でどのように変えていくかが重要です。アイディアが出ずに悩む人が多いですが、そういう時は自分の興味のあるものをまずはコピーするところから始めてみると良いかもしれません。
丁寧に作り上げたアニメーションで臨場感あるバトルシーンに注目!「魔王を倒す!」(物語)
2つ目の作品は小学4年生が作成した「魔王を倒す」という物語のプログラムです。小学生の頃、絵本や物語を作った経験はなかったでしょうか?スクラッチでプログラミングを学習すると自分でキャラクタを動かしてアニメを自作することも可能です。この物語の構成は受講生が自分で考えました。工夫ポイントはなんといってもアニメーションの多様さですね。以下の画像のように、一つのキャラクタに複数の絵を用意し、それを切り替えることでアニメーションを作ることができます。装備変更前と変更後で剣を振り下ろす絵やケガをした絵など追加していました。スクラッチには絵をコピーする機能があるので、一つ絵が完成すれば、それをコピーしてパーツを付け足すだけなので、簡単にアニメーションを作ることができます。この作品の中では、動きに合わせて効果音も入れていて、よりリアルさを再現できていました。
また、スクラッチではブロック定義という機能があり、自分で命令のブロックを作ることができます。Pythonなどのテキストプログラミングでいう関数の機能です。同じプログラムは二度書かず、関数として定義しておけば、それを呼び出すだけで同じ動きをさせることができます。こういったプログラミングの考え方を取り入れながら今回の作品ではキャラクタがジャンプする動きを作っていました。小学生のお子様でも本格的なプログラミングの考え方をしっかり身につけながら、楽しんで学習することができます。
動作、音、キャラクタのセリフなど、複数のプログラムを動かしたい場合には、メッセージと言われる同期通信を使っています。下記の画像のように、魔王のセリフの後に雷の魔法やメテオの魔法にメッセージを送ることで攻撃するプログラムを動かしています。タイミングを合わせるために時間を測るのは大変ですが、同期通信(メッセージ機能)を使えば、自分の好きなタイミングで他のキャラクタに指示を出すことができます。同期通信は少し難しい内容ですが、この辺りもよく理解してプログラムを作ることができていますね。
巧みなアニメーションでスリル満載なバトル・アクション!「ねこのアクションゲーム」
3つ目の作品は小学6年生の受講生が作った「スリル満載なねこアクションゲーム」です。この作品もまた巧みなアニメーションを使っていますね。なんとも驚きなのが、この作品の絵はすべて自作です。スクラッチのキャラクタを参考に描いていますが、キャラクタの表情やドット絵のようにアレンジしたキャラクタや背景はすべて自分で考えて作っています。
ゲームを作る上で必要なプログラミングの知識としては、条件分岐と変数を理解することです。まず条件分岐ですが、これはある条件によって処理を切り替える構造のことを言います。例えば、スコアを100点以上取ったらゲームクリア、アイテムを取ったら体力が回復するなど、「ある条件を達した時に〇〇をする」という構造です。今回の小学6年生が作ったこのアクションゲームを例に少し紹介させて頂きます。下記の画像のように、プレイヤの残りHPを条件にハートを表示させるかどうかを決めています。また、プレイヤが敵の攻撃(タル)に触れたかどうかを条件に、HPを減らす処理を作っています。こういった構造を条件分岐と言います。
次に変数について説明します。変数とはコンピュータに情報を記録させる機能です。さきほどの例であげた「HP」という情報は、変数を使って値を記録、管理しています。変数の使い方は様々で、今回の作品ではラスボスとの戦いでラスボスの体力に応じて、ミサイルの攻撃回数と頻度を増やして少しずつ難しくなるような調整をしています。下記の画像のプログラムを見ると、「回数」と「秒数」という変数を用意しています。そして、ボスの体力に応じて「回数」が増え、「秒数」が減っています。一度に発射するミサイルの回数が増えて、発射される間隔が短くなるので、回避するタイミングがずれるので、簡単にはクリアできません。動画は実際に私がプレイしたものですが、何度も挑戦することでやっとクリアできました。小学生の策略に翻弄されまくっています。ゲームのアレンジはもちろんですが、ブロックの量を減らし効率的なプログラムを作ることができている点も良かったです。
まとめ
以上、小学生が作成した3つのプログラミング作品について紹介させて頂きました。今後またエントリーコースやハイレベルコースでの作品について紹介させて頂けばと思います。その他の記事では、Scratchの始め方と簡単なアプリケーションの作成を解説しています。「新しいことを始めてみたい!」「プログラミングってどうやって始めるの?」とお思いの方々へ向けて、Scratchの始め方と簡単なアプリケーションの作成を解説しています。ぜひお子様と一緒に取り組んでみて下さい。また、無料体験会も実施しておりますので、ご興味のある方はお気軽にいつでもお問い合わせください。最後までご覧いただきありがとうございました。