この記事は、こどもとプログラミング Advent Calendar 2018 の 3 日目 の記事です。
最近になって、急に、子どもとプログラミングの掛け合わせに強い興味を抱くようになりました。理由は色々とありまして・・・
- 子どもと一緒にプログラミングしたら、純粋に楽しそう
- ゲームが大好きな子どもたちが、もし、自分でゲームを作れることを知ったらどうなるかな
- 2020年から始まるプログラミング教育に先駆けて少しでも学んでおけるといいかもね
- 自分自身がプログラマーということもあって、パパってこういう仕事をしてるんだね〜!と理解してもらえるかもしれない
っていう感じです。
物は試しだっ!まずは、やってみよう!ということで、子どもたちと一緒に Unity をしてみた一部始終を書いて行こうと思います。
🤔 どんなゲームを作りたい?
とは言え、本人たちに興味がないことを無理やりやらせるほど、無意味なことはありません。
そこで、まずは、ゲームを自分で作りたい!と考えたことがあるのかどうか、もし、自分でゲームが作れるとしたら、どんなゲームを作りたいと思うか、を子どもたちに率直に聞いてみることにしました。
子どもたちから返って来た言葉は、意外な言葉でした。
👨 < もし、自分でゲームを作れるとしたら、どんなゲームを作りたい?
👧 < マイクラの Mod が作りたい!
👨 < え、マイクラの Mod が作りたい?(オウム返し)
なるほど? 🤔
子どもたちはマイクラが大好きで、YouTube でよくマイクラの実況動画を観ています。その中で Mod というマイクラの機能を拡張出来る仕組みがあることを知り、色んな Mod の実況動画を観ては、楽しそう楽しそう!と言っているんですよね。しかし、うちは Switch でマイクラをしているため、残念ながら Mod は遊べなくてですね・・・だからこそ、余計に試してみたい!という気持ちが強いのかもしれません。
なるほどですね。
とにかく、何か面白い Mod を考えて、それを作りたいってことだね?という話しをすると、いやいや、そうではないと言う。マイクラの実況動画で出ていたあの Mod と全く同じものを作りたい!と言うんですよ。自分で考えた面白い Mod とか作りたくないの?と聞き返すと、いや、あの Mod が面白いからあの Mod を作りたいんだ!と。
🎮 ゲームはやるもので作るものではない
👨 < マイクラじゃなくてさ、自分の好きなようにゲームが作れるとしたら、どんなゲームを作ってみたい?
👧 < スプラトゥーンが作りたい!
👨 < え、スプラトゥーンが作りたい?(オウム返し)
👦 < マリオが作りたい!
👨 < え、マリオが作りたい?(オウム返し)
なるほど? 🤔
どうやら、子どもたちの中では、ゲームは「やるもの」であって、「作るもの」ではないのかもしれません。そりゃ、そうですよね、まさか、自分でゲームが作れるとは思わないですもんね。
私も子どものころは、自分でゲームが作れるなんてこれっぽっちも思っていなかったんですけど、シューティングゲームが作れる デザエモン や RPG が作れる RPG ツクール の登場によって、自分でもゲームが作れることを知り、一気に世界が広がった気がするし、やはり、まずは、出会うこと、知ることこそが出発点だよな〜!と。
🤩 なんと、ゲームは作れるんです!
とりあえず、こういうオリジナルゲームを作りたいっ!という強い欲求(反応)はなかったので、一緒にプログラミングしてみるのは、ちょっと難しそうかな〜?とも思いましたが、最後に一言、こう言ってみました。
👨 < ゲームってさ、実は、自分で作れるんだよね!
👧 < え?
👦 < ほんと?
子どもたちは、とてもビックリした様子でした。ゲームを自分で作れるはずがない、そんな、まさか!という感じです。まぁ、そうですよね、信じられないのも無理はないと思います。ただ、このとき、子どもたちが頭の中に思い浮かべていたゲームはスプラトゥーンやマリオのようなハイクオリティなものだとは思いますが、思いのほか、悪くない反応をしてくれたので、今度、ちょっと一緒に遊んでみようか〜!と軽く子どもたちを誘い、プログラミングの準備をすることにしました。
💪 よーし!まずは、Unity だっ!
仕事で Unity を使っていることもあって使い慣れていることと、ちょうど、このころ、LITALICO ワンダー の加藤さん / @tomotomospot と知り合い、Unity ゲーム開発スターターキット なるものがあることを教えて頂いたこともあり、この教材を試してみることにしました。
🤔 Unity ゲーム開発スターターキットとは?
ゲーム開発に初めて取り組む子どもたちに向けて Unity が企画・開発しているキットのことです。最近では、記事冒頭に上げていた写真にあるような、中高生向けの「まんがでわかる Unity」という冊子を無料配布していて、その中のページにも記載がされています。
Web サイト にアクセスすると、以下のリソースを無料で入手することが出来ます。一式入手することが出来るのは、とても安心感がありますね!
- Unity ゲーム開発スターターキット
- Unity 2018.2.6f1
- UnityHub
- 3D フライトゲームのサンプルプロジェクト
- 3Dフライトゲームのチュートリアルマニュアル
- Unity 日本語化マニュアル
🛩 さて、どんな感じで進めようかな
スターターキットの中には、3Dフライトゲームのチュートリアルマニュアルが同梱されているので、このマニュアルに沿って進める感じがヨサソウです。
チュートリアルマニュアルでは、3D フライトゲームのサンプルプロジェクトに少しずつ手を加えたり、Prefab を Scene に自由に配置したりしながら、Unity の基本的な操作方法を覚えつつ、最終的には、自分好みのコースを作成してフライトするゲームを完成させる、というストーリーになっていたので、難易度としても低めだし、なんとかこなせるレベルかな、と思いました。
よーし!早速、やってみるぞ〜!ということで、まずは、娘と一緒に Unity してみました。
👧 娘と一緒に Unity をしてみたよ!
☝️ 娘 is 小学4年生
まずは、娘の簡単な特徴を共有しておきますね。
- ゲーム
- ほぼ、毎日、スプラトゥーンをやっている
- しかし、バリバリ得意というわけではない
- でも、ゲームは大好きっ!
- スプラトゥーン以外だと、マイクラをやっている
- 今回のようなシューティングゲームは、あまり、やったことがない
- ほぼ、毎日、スプラトゥーンをやっている
- PC
- 検索した画像を自分でプリントアウトするときくらいしか、PC は使わない
- 小学校でローマ字を習ったものの、まだ理解は不完全で、音声入力やサジェストに頼ることが多い
- トラックパッドの操作やブラウザの操作も、完全には理解しておらず、雰囲気で触っている
- Unity
- もちろん、何なのか全く理解はしていない
- ただ、私が仕事でよく開いている画面なので、見覚えはありそう
- プログラミング的なことも一切やったことはない
😙 よーし!やるぞっ!
- 最初は、面白そう!楽しそう!と思ってもらえるように(苦手意識を作らせないように)、早速、3D フライトゲームのサンプルプロジェクトを開いて実行して、動いているところを見せてあげたところ、早くやりたいやりたい〜!とテンションが上っていた
- しかし・・・3D フライトゲームをプレイさせてあげたところ、難易度が高過ぎて、すぐ、コースの壁面にぶつかって死んでしまった
- 何度やっても、ゲーム開始直後にすぐに死んでしまう
- なぜ、死んでしまったのか、いまいち理解が出来なかったことから、納得感が得られずにイライラし始めてしまった
- まずは、先へ進めてみよう!ということで、マニュアルを見てみると、飛行機の速度を遅くする方法が書いてあったので、それを、娘にやってもらうことにした
- インスペクタに表示されている数値をちょこちょこ変えるだけだったので、娘一人でも、簡単に飛行機の速度を遅くすることが出来た
- 飛行機の速度が遅くなったことには感動していたが、難易度は高いままなので、また、すぐに死んでしまい、モチベーションが下がって来た
- このままでは、ここから先をやるの、ただつらいだけで楽しくないと思い、急遽、飛行機の大きさを小さくすることを提案してみた
- すると、「えっ?そんなこと出来るの?」とビックリしていた
- 何が出来て、何が出来ないか、の境界線が曖昧で、想像が出来ないのかもしれない
- 小数点の概念を知らなかったので、1.0 以下の Scale にするときに、「こんな風にね、小さい数字を入れてあげると飛行機が小さくなるんだよ!」と見本を見せながら、数値を変えてあげた
- 小さくなった飛行機を見て娘は大喜びしていた
- もう一度、3D フライトゲームをやりたい気持ちが戻って来たっぽい
- 次は、マニュアルを先へ進めて、草の Prefab を Scene 上にポイッと配置していくところをやってみることにした
- 最初に、「こうやって掴んでポイッと置くんだよ〜!」という見本を見せてあげたあと、マネするように操作して、草を Scene 上に配置することは出来ていた
- すると、今度は欲が出てきて、もっと、遠くに置きたい!この辺に置きたい!と画面を指差しながら、どうすればいいかを聞いてくれたので教えてあげた
- 草をたくさん置いているときに、手元に注目して見ていたら、PC の設定でトラックパッドの右下を副ボタンクリックに割り当てていたため、クリックしようとして間違えて右クリックになってしまって、コンテキストメニューが開いてしまう、というアクシデントが何回もあった
- 子どもから見たら、トラックパッドのどこをタップしても同じだよね?という感じに見えるっぽい
- クリックするときは、右下をクリックしないように注意しようとアドバイスするものの、これがなかなかに難しい
- トラックパッドではなく、マウスの方がいいかもしれない
- 草をたくさん配置したあと、実際にゲームをプレイしてみて、草がたくさん生えているところを見て「あっ!ほんとだ!生えてる〜!」と感動している様子だった
- そのあとは、Prefab から色んなパーツをコース上に自由に配置していた
- 後半になるにつれ、トラックパッドの誤クリック以外は、大体、自分一人で操作出来るようになっていた
👦 息子と一緒に Unity してみたよ!
☝️ 息子 is 小学1年生
次に、息子の簡単な特徴を共有しておきます。
- ゲーム
- 毎日のようにマイクラをやっている
- しかし、娘同様、そこまで、ゲームがバリバリ得意というわけではない
- でも、ゲームは大好きっ!
- 最近は、スプラトゥーンもやり始めている
- 毎日のようにマイクラをやっている
- PC
- たまに、音声による画像検索をするくらいで、ローマ字は打てない
- トラックパッドの操作やブラウザの操作も、ほぼ、理解していない
- Unity
- もちろん、何なのか全く理解はしていない
- ただ、パパが仕事でよく開いている画面なので、見覚えはありそう
- 私がリモートワークしているとき、離席中に勝手に Unity の再生ボタンを押して遊んでいたこともあるので、存在は知っていそうな気がする
- プログラミング的なことも一切やったことはない
😙 よーし!やるぞっ!
- 娘と一緒に Unity したあとだったので、やりたいやりたいっ!と前のめりな感じだった
- 娘同様、3D フライトゲームが難しすぎて、ほぼ、プレイ出来ていなかった
- すぐに、Scale をいじって飛行機を小さくしたところ、小さくなったことに驚いて喜んでいた
- 草を生やしてみよう!のところで、Prefab のディレクトリの中に飛行機の Prefab があることに気が付き、いきなり、飛行機を生やし始めてしまった(自由)
- 本人は楽しくて仕方ないみたいで、飛行機をたくさん画面上に配置していた
- ゲームを再生して、飛行機が転がっていくさまを見て笑っていた(楽しんでいる)
- この時点では、もうマニュアル通り進めるという目的は失われてしまっているんだけど、本人がそこに興味を持って取り組んでいるので、無理せず、それでヨシ!としていた
- Unity の簡単な操作方法を理解したところで、今度は、何も置かれていない真っ白なコースに変えて、自由に Prefab を置いてもらうことにした
- 黙々と色んな Prefab を配置していた
- 3D 空間の認識が難しいのか、どこにどう置けばいいんだろう?という感じで迷いが見られた
- 性格的に適当に置くというよりもキレイに並べて置きたいが、3D 空間上にキレイに置く is どうすればいいんだろう?という迷いがあったっぽい
- マイクラだったら、全部四角くて、どこに置かれるかのターゲットも表示されるから分かりやすいんだけど、Unity はそうはいかない
- 娘のときはやれなかったけど、Material を貼り付けるところもやってみた
- 簡単に色が変えられることを知り「なにこれっ!」と驚いている様子だった
- コースの壁面を色んな色に変えたりしていた
- ネオンっぽく光るやつにして、ギンギラギンにしていた(目が痛い)
- 突然「宇宙にしたい!」と言い始めて、空を青じゃなくて真っ黒にしたいと言い始めた
- この辺から、この画面に表示されているものなら、自分の思うものに全て差し替えられるのかもしれない?という思いが働いていそうだった
- 空を真っ黒にしてあげたところ「宇宙だ宇宙だ〜!」と言って喜んでいた
- Unity のプレイボタンを押下してから、しばらく、反応がないと、すぐに、もう一回押下したりして、せっかくの再生を停止してしまう、みたいなことが何回もあった
- 押してすぐ再生が始まらなかったので、自分がタップしたにも関わらず、何もフィードバックがないことに不安を覚えての行動だったと思う
💭 子どもたちと Unity をしてみて感じたこと
😋 初めての体験作りの大切さと危うさ
今回の 3D フライトゲームという題材は、とてもゲームらしさがあり、インパクトもあり、かつ、パラメータを変える、コースを作る、という点においては、非常に分かりやすく取っつきやすかったと思います。しかし、ゲームの難易度が高かったことで、子どもたちのモチベーションが下がってしまいました。特に、今回のような初めての体験作りの中では、躓きポイントを出来るだけ減らしてあげることと、やはり、スゴイ!楽しい!面白い!自分もやってみたい!と思わせるようなポジティブな気持ちに向かわせる工夫が必要そうですね。
一度でもネガティブな評価を受けてしまうと、それがそのまま、Unity の評価だったり、ものづくりの評価、プログラミングの評価にまで繋がってしまいそうな気がしました。まだ何も教えてないっすよ、本当の楽しみはこれからなんだよ〜!ってところを伝える前に、なんだ、全然面白くないじゃ〜ん?と判断されてしまう(シャットアウトされてしまう)のは、本当に勿体無いし、危ういことだと思います。題材側だけではなく、それを教える側にも、それなりの対応力が必要とされそうですね。はい、問題を解きましょう!みたいなただの押し付けではなく、子どもの気持ちに寄り添ったり、一緒に悩んで考えたりしてあげられるとヨサソウですね。
💻 PC 操作に対する慣れが必要そう
普段から、そんなに頻繁に PC を触るような動機もなかったため、そもそも、PC 操作に慣れていませんでした。PC 操作に慣れていない状態で Unity をやろう!と言った場合は、Unity を教えつつ、PC 操作も同時に教えてあげないといけないので、結構、難しいなぁ〜という印象を受けました。
実際の操作としては、左クリック、右クリック、ドラッグ & ドロップくらいなので、Unity をしばらく触っているうちに慣れるっちゃ慣れるんですが、最初から、PC 操作に慣れている方がスムーズに Unity を教えられたかなと思いました。
あと、左クリックと右クリックも、左右の概念がまだ曖昧で、えーと、どっちが左で・・・どっちが右だっけな?と頭を悩ませたりもしてましたね。トラックパッドによる操作は難しそうだった(直感的ではない?)ので、やはり、マウスがあった方がヨサソウですね。
ただ、終盤になってくると、PC 操作も少しずつ慣れていたので、やりたいっ!と思う強い気持ちさえあれば、簡単に越えられるくらいのものかな?という感じですね。
😙 伝わる長嶋茂雄メソッド
LITALICO ワンダー の加藤さん / @tomotomospot も仰っていましたが、下手に詳細な説明をしてあげるよりも、長嶋茂雄氏のように、分かりやすく見本を示しながら、バッ!とザッ!と説明してあげる方がよく伝わる感じがありました。例えば、ドラッグ & ドロップってどういう操作なのかを説明してあげるときに「まず、掴みたい対象物を左クリックして、そして、押しっぱなしにした状態のまま、マウスを動かして、置きたい場所に着いたら左クリックを離すんだよ!」と長々と真面目に説明してあげるよりも、「ガッと掴んでスイーッとポイッ!だよ!」と言ってあげた方が分かりやすかったりします。おお、なるほどな、確かに、子どもに説明するときに、なぜか、そういう雑っぽさのある説明の仕方をしていたわ〜という感じです。これは、長嶋茂雄らしい振る舞いということで Shigerable
と呼び、このスキルのことを Shigerability
と呼びます。(うそ)
真面目な話し、子どもたちはまだ、難しい言葉を知らないので、子どもたちにも伝わる分かりやすい簡単な言葉に置き換えて説明するスキルは、とても大事なスキルだと思います。あくまでも、相手に伝わるように説明するという意味なので、雑に適当に教えてあげることとはまた別の話しですね。
❤️ 心が動いて手を動かす
草をただ Scene に置くだけでも、どこに置こうかな、縦に並べて置いてみようかな、それとも、敷き詰めてみようかな、あっちに置こうかな、こっちに置こうかな、と色んなことをぐるぐると頭の中で考えては、心の中でワクワクして、手を動かして、草を置いていました。自分の頭の中に思い描いたイメージを作り出せるツール = Unity であり、心が動けば、自然と手も動いてゲームが作り上がっていく、という感じで、これはもう、大人も子どもも変わりないな、という感じがしました。
😎 まとめ
娘も息子も Unity に触ることは初めての体験だったけど、想像以上に楽しんでいたのではないかと思います。私自身も子どもに Unity を教えるのは初めての経験だったため、色んな学びがありましたね。それと同時に、色んな課題も見つかったため、それについては、また、別の記事で言及出来たらいいな、と思います。
Unity を小学生が使う、ということは一見すると、とても敷居が高いことのように思えますが、実際にやってみると、Prefab を Scene に配置しながら、自分らしさのあるゲームを作り上げることも全然可能だな、という感触がありました。いきなり、プログラミングだ!コードを書くぞ!というストーリーに乗せるよりは、全然イイカンジがしました。ただ、ゲームを作りたい!という気持ちや、楽しい!面白い!という気持ちがあってこそのものだと思うので、そういう意味では、最初の体験をどう作り上げてあげるか、は大事な役割だな〜と思いました。特に、中途半端に始めて、本質を知る前に挫折してしまったり、嫌いになってしまったりしてしまわないように、教育する側は配慮する必要がありそうですね。教材がそこにポンッとあれば誰でも出来るのかっていうと、それはまた、別の話だと思いました。