ニュース
» 2015年12月24日 20時00分 UPDATE

「あそぶ!ゲーム展」体験レポ その2:小学生からのプログラミング――Scratchでゲーム作りを楽しんだ週末 (1/2)

「あそぶ!ゲーム展」で子ども向けプログラミング教室を体験。脱レトロゲー初心者を目指すテクニックも紹介しよう。

[瓜生聖,ITmedia]

Scratchで学ぶゲームプログラミング

 前回は遠藤雅伸氏を講師に迎えたワークショップ「作って遊ぼう! 対戦カードゲーム」を紹介した。今回は12月20日に開催された、Scratchを使ったゲームプログラミングワークショップ「自分だけのゲームをプログラミング!」を紹介する。

 Scratchはマサチューセッツ工科大学で開発された教育用のプログラム開発・実行環境だ。ブラウザ上のGUIのみでプログラムを作成、実行するため、OSを問わずに手軽に楽しむことができる。

og_scratch_001.jpg Scratchのサイト

 Scratchではプログラムのソースを打ち込んでいく代わりに、PAD図やフローチャートのようなブロックを組み合わせてプログラミングしていく。そのため、プログラムの構造が一目で把握できる、プログラム言語の文法をほとんど意識しなくてよい、という利点がある。また、プログラムは即時実行される(実行中にも編集できる)ので、修正結果がダイレクトに反映されることも理解の手助けとなっている。

 プログラム言語として見た場合には、非常に分かりやすいオブジェクト指向であることが大きな特徴だ。Scratchでのプログラミングは基本的にスプライト単位で行う。例えば、シューティングゲームであれば登場するキャラクターは自機、敵機、自弾、敵弾などだが、これらをスプライトとして作成し、それぞれのスプライトにブロックと呼ばれるプログラム部品をフローチャートのように組み合わせて動きを定義していく。各スプライトはそのスクリプトに従って個々に動作することになる。

og_scratch_002.jpg Scratchの編集・実行画面。左の猫のキャラクタが表示されているエリアが実行画面。右側にブロックを置いてプログラミングしていく

 今回のワークショップはこのScratchを使って「ボールはじきゲーム」を作成するというもの。講師は多彩な肩書を持つ赤川智洋氏だ。

 赤川氏は芸術家集団アトリエオモヤのメンバーとして活躍するアーティストであり、そして東京大学大学院情報学環、九州大学芸術工学部で非常勤講師を務める博士(映像)、さらにPSP用ゲーム「勇者のくせになまいきだ。」のプログラマを務めたほか、「あそぶ! ゲーム展」で展示されている「テニス・フォー・ツー」(1958年/ブルックヘブン国立研究所)のエミュレータプログラム開発およびコントローラメカニズム製作、「スペースウォー!」(1962年/マサチューセッツ工科大学)のプログラム調整/コントローラメカニズム制作も担当している現役のエンジニアでもある。

og_scratch_003.jpg 今回のワークショップの対象は小学3年〜中学3年。英語を必要としないプログラミング言語なので小学生中学年からOK

og_scratch_004.jpg ワークショップは映像ミュージアム3Fのマルチメディアコーナーで行われた。子どもの目線だとモニタが大きくてプロジェクタが見えにくかったかも

og_scratch_005.jpg 講師の赤川智洋氏。アーティスト/エンジニア/博士(映像)とマルチに活躍中

og_scratch_006.jpg 今回の題材である「ブロックゲーム」を紹介。飛んでくるボールを撃ち返してブロックを崩す、いわゆるブロック崩し

og_scratch_007.jpg こちらは「あそぶ! ゲーム展」展示のブロック崩し「ブレイクアウト」。2人用の「ポン」から1人でも楽しめるように進化した

og_scratch_008.jpg 「テニス・フォー・ツー」のエミュレータ・プログラミング/コントローラメカニズム製作は赤川氏が担当

 プログラミングはまず、ボールとなるグラフィックを選ぶところから始まった。各自Scratchに用意されている素材の中から、丸いボール状のものを選ぶ。そのボールのスクリプトに「動き」カテゴリにある「10歩動かす」ブロックを置いてクリックすると、ボールが少しずつ右に移動していく。Scratchではブロックをクリックすることで、その内容をコマンドとして実行することができる。

 次に「制御」カテゴリの中にある「ずっと」ブロックを取り出し、その中に先ほどの「10歩動かす」ブロックを置く。ブロックをクリックすると、今度はボールは10歩で止まらず、画面右端まで移動して停止するようになる。先ほどの「コマンド」が「プログラム」に進化した瞬間だ。

 とはいうものの、クリックしたら10歩だけ動いた自機が止まらないようになった、というだけで参加者の反応は薄い。しかし、さらに修正を加え、旗アイコン(実行ボタン)を押すことでボールが自動的に動くようになると、参加者たちに笑顔がこぼれた。「事前に決められたように」動くことを目の当たりにして、それがゲームに発展していくビジョンが見えたのだろう。そのあと角度を調整したり、新たに自機となる板を作成したり、と、少しずつプログラムに修正が加えられ、次第にゲームの形になっていく。

 興味深かったのは自機が自分の思う通りに操作できるようになったあと、「ボールがなぜか自機をすり抜けてしまう」と質問があがったことだ。プログラムしていないことは実行されないのだからこれは当然だ。だが、それはプログラムの本質を突く質問だったように思う。

 赤川氏は、参加者には「自分が組み立てたものが、組んだとおりに動く」ということ、そしてそれがうまくいかないこともある、ということを体験してもらいたかった、と語る。

 それは逆に言えば「組んでいないものは動かない」ということでもある。なぜボールは自機に当たっても跳ね返らないのか――それはそのような処理を書いていないから。だから、「ボールが自機に当たったときに跳ね返る」という処理を追加しましょう、そんなふうに赤川氏は参加者たちの疑問、希望を引き出し、そして明確な目的を提示しながら次のステップへと進めていった。

og_scratch_009.jpg Scratchに用意されているグラフィックから自分の好きなボールを選ぶことからプログラミングが始まった

og_scratch_010.jpg 真ん中のパレットにあるブロックを右のスクリプトエリアにドラッグ&ドロップしてプログラミングしていく

og_scratch_011.jpg たくさんのブロックを配置してブロック崩しらしい形に

 ワークショップは14時から16時までの2時間だったが、参加者たちは時間いっぱいまで夢中になってScratchに取り組んだ。自身で満足のいくところまで仕上げられた人もいれば、バグが取りきれず、それを「仕様」として楽しんだ人もいる。

 もちろん、自分だけのゲームだからどこで完成とするかは個人の自由でもあるが、赤川氏は、今回の参加者たちには次のステップとしてオープニング画面、そしてゲーム、クリアやゲームオーバのエンディング画面といった、一連のゲームの流れを作ってほしい、という。そうすることでゲームの「世界」が完成するのだと。

 このワークショップは「あそぶ! ゲーム展」の企画だ。本展はゲームを映像コンテンツとしてとらえたものであることは前回も述べたとおり。澤柳氏は「ゲームはあそぶことで映像コンテンツとして完成する」と語っていたが、赤川氏は作り手としての視点で、「コンテンツとして完成させるためにゲームに必要なもの」を語っていたのが印象的だった。

       1|2 次のページへ

Copyright© 2016 ITmedia, Inc. All Rights Reserved.