お知らせ
【サマースクール2016レポート3】小学生がUnityで2Dと3Dのプログラミングに挑戦した話
こんにちは。
テックパークキッズではカリキュラムを担当している、Rockstar Engineerの花田です。
サマースクールでは小学校高学年を対象に、Unityプログラミングというテーマで、2Dゲームや3Dゲームを本気で作ってみました。
Pokemon GOなどの開発にも使われている「Unity」というツールを使って2Dや3Dのマップを作りながら「座標」の感覚を掴んだり、重力や反発力をなどを設定して物理的なものを扱ったり、 C#というプログラミング言語を体感してもらいました。
その一部をご紹介したいと思います。
2Dプログラミングでは、最初にマップを作りながらx座標・y座標に、ブロックを配置していくところから始めます。
このままだと、ブロックは落ちて決ません。重さや、重力の設定をしてないからです。ここから設定しましょう!
そうして、重力や反発力を設定することで、ピンボールのゲームを作ってみました。
他にも2Dでは、キャラクターを操作するようなプログラミングを先生の写経(プログラムをまる写しすること)してアクションゲームを作ったり、
好きな画像をダウンロードしてアニメーションを作ったりしました。
一方で、3Dプログラミングでは、まずマップを作りますが、
そもそも2次元とは違い「z軸」があることを教えます。
3次元(3D)のままではブロックを配置しにくいことを体感してもらいました。
画面が平面なので、ブロックを好きな場所に置きにくいですね。
そのため、3次元(3D)は2次元(2D)にして考えるように教えます。真正面から見るとZ軸が無視されX-Y軸だけで考えることができること、真横から見ると、X軸が無視されZ-Y軸で考えることができること、真上から見るとY軸が無視されX-Z軸が考えやすくなることを学びます。(下図)
例えば、この形があったとすると....
Z軸を無視することは、真正面から見るのと一緒で、
X軸を無視すると、真横になり、
Y軸を無視すれば、真上から見た図になります。
実は地図のように真上から見て作ってみると簡単、ということも教えました。
そうしながら、マップを作成しつつ、キャラクターを動かしてみて、自分達の作った世界で、動きまわったりして楽しんでました。
ここで覚えた内容をもとに、「3D迷路」を作っていた子もいましたね。
もちろん3DでもC#でのプログラミングの写経をしました。
また、先生のお手本はどこかにバグ(プログラムの間違い)があるため、それを探してもらったりしました。
ただ書くだけじゃなく、「ちゃんとプログラミングがどうなるかな?」と予想しながら書きましょうということです。
ちょっと課題が難しすぎてた様子で、質問の手がたくさん上がって大変でした。
次はもっと簡単にしようかな。それでも頑張って課題を解いた子もいました。
参加したお子さんから「ゲーム作るのってこんなに大変なんだ!」という感想をもらいました。
普段やっているゲームには、こんなにもテクノロジーが詰まっていること、
そして、それは日々学んでいる算数や数学、理科などの学習が元になっているということを少しでも感じでくれたらいいなと思います。