クラス情報
学年: 8~12 (中 2~ 高 3) (このクラスに参加するには、生徒は 13 歳以上でなくてはなりません)
レッスン時間: 1 時間
対象ツール: フォートナイト クリエイティブ
クラス / 学習環境: フォートナイトがプレイ可能なデバイス。生徒 1 人につき 1 台で、インターネットに接続可能。 コンピューター室、またはノートパソコンを置ける移動式の台があることが理想的。
作成者の連絡先
著者: Steven Isaacs と Brian Dickman
Eメール: [email protected] | [email protected]
Twitter: @mr_isaacs | @cleverlike
LinkedIn: https://www.linkedin.com/in/steve-isaacs/ | https://www.linkedin.com/in/cleverlike
クラス/学習環境の説明
このレッスンは、コンピューター サイエンス教育週間の Hour of Code イベントで利用するためのものとしてデザインされています。
独立したレッスンとして利用することもできますし、他の活動と組み合わせて、より大きなプロジェクトの制作に利用することもできます。
著者の1人であるSteve Issacsは、Epic Gamesの教育プログラムマネージャーです。 その役職において、Unreal Engine、フォートナイト クリエイティブ、Twinmotionなどのツールを教室に導入する中等教育者や学生をサポートしています。 Epicでの役職に就く前は、選択ベースの学習環境でゲームデザインと開発について指導しており、内容だけでなくプロジェクトの選択肢の面でも、学生自身の興味に基づいて学習成果を満たすために異なるアプローチを取る機会を提供していました。
著者の 1 人である Brian Dickman はコンピューター サイエンスを学んだあと、フルタイムのゲーム開発スタジオを運営し、人気のビデオ ゲーム内で娯楽と教育のコンテンツを制作しています。
レッスンの概要
1800年代から、障害物コースは楽しんだり、能力を試したりするためのものとして利用されてきました。 一般的に、障害物コースは数多くの障害物が道中に配置されたコースを完走するまでの時間を争う競技です。 スピード、力の強さ、敏捷性が求められ、時には障害を賢く切り抜ける頭脳も必要となります。
家や野外、学校やキャンプで自分の障害物コースを作ったことはありますか? 人や動物が障害物コースに挑戦する番組や動画を観たことはありますか?
このレッスンでは、フォートナイト クリエイティブ使って楽しくてやりがいのある障害物コースを制作します。 コースの制作では、衝突(コリジョン)検出とイベント主導デザインというコンピュータプログラミングの概念を活用します。
さあ、建築を始めましょう。
理想の結果
生徒にとっての学習の成果は?
重要な疑問/意図
他の事柄と結びつきのないスキルとして単にプログラムの書き方を学ぶのではなく、意義のある活動の一環としてコンピューターサイエンスの概念を学べるのか?
フォートナイト クリエイティブでのアクティビティで関数などといったコンピューターサイエンスの概念を学ぶことで、プログラミング環境の概念を広く理解させられるのか?
ゲームの仕組みを通じ、コンピューターサイエンスの概念を学ぶことができるのか?
ゲームを使って概念を教えることで、コンピューターサイエンスを学ぶ意欲を高められるのか?
学習成果/目標
生徒は以下のことができるようになります:
コンピューター サイエンスの概念としてのコリジョン検出とイベントを理解する。
コリジョン、トリガー、イベントの知識をゲームの制作に活用する。
コリジョン検出、イベント、トリガーを用いたチャレンジが設置された障害物コースを作成する。
学習のアクティビティ
コリジョン検出とイベントへの導入
コンピューター サイエンス、特にゲームでは、物体 (オブジェクト) 間で発生するコリジョンがよく重要になります。 オブジェクトが他のアクションと衝突すると、たびたびイベントが発生します。 パックマンを例にしてみましょう。 パックマンがエサに衝突すると、プレイヤーはポイントを獲得します。 パックマンがモンスターと衝突すると、プレイヤーはライフを失います。 パワーアップによってモンスターが青色になっている時には、モンスターを食べることでポイントを獲得できます。 これで衝突については理解できましたね。
プログラミングにおけるイベントとは、マウスのクリック (あるいはコリジョン) など、ユーザーまたはその他の事の結果として発生するアクションのことです。 イベントハンドラは、イベントを処理するルーチンであり、これによってプログラマーはイベントが発生したときに実行されるコードを書くことができます。
– Computer Hope: Event から
MakeCode Arcade から、ブロック ベース型プログラミングの例を 1 つ紹介しましょう。 このゲームには、プレイヤー1人とアイスクリームのコーン1つが存在しています。 プレイヤーは画面内を動き回り、アイスクリームを食べようとします。
以下のコードは、プレイヤーがアイスクリーム (食べ物) と重なる コリジョンする) と、一連のイベントがトリガー (起動) されるということを示しています。 この場合、プレイヤーは1点を獲得(スコアが1変化)し、アイスクリームがゲームボード上のランダムな位置に移動し、カウントダウンが10秒に戻り、プレイヤーが次のアイスクリームを取れるようにします。
この例が実際に動作している様子は、Arcade MakeCode 内の CollisionEvent で見ることができます。
コネクション: 数学とコンピューター サイエンス
衝突検出はシンプルで簡単なプロセスのように思えるかもしれませんが、よく考えてみましょう。
コンピューターの画像は全て四角形です。 画像の見える部分が、四角形全体を占領していない場合、どうやって衝突を検出すればよいのでしょうか? 例Aでは、画像同士が衝突していますが、キャラクターと障害物は衝突していません。 例Bのような形が望ましいのですが、こちらは実現するのがより困難です。 衝突検出は、幾何学と三角測量の応用について考えてみる、他にはない機会を生み出します。
アクティビティ
生徒はフォートナイト クリエイティブで障害物コースを作成します。 障害物コースには、ゲーム内のイベントを起動するコリジョン イベントを取り入れさせるようにしてください。
アクティビティの詳細については、指導者用ガイドを参照してください。
生徒には生徒用ガイドにアクセスさせ、それに従って障害物コースを作成させましょう。
外部リソース
教育基準
1B-AP-10 シーケンス、イベント、ループ、条件記述を含むプログラムを作成する。
1B-AP-12 既存のプログラムの一部を変更、リミックス、あるいは自分の作品に組み込み、新しいものを開発、あるいはより高度な機能を追加する。
1B-AP-15 プログラムやアルゴリズムをテストしてデバッグ(エラーを特定して修正すること)を行い、意図したとおりに動作するようにする。
2-AP-10 フローチャートおよび/または疑似コードを使い、複雑な問題をアルゴリズムとして扱う。
2-AP-13 プログラムの設計、実装、レビューを容易にするため、問題と副問題を小さく分割する。
2-AP-17 様々なテストケースを用い、体系的にプログラムをテストして改良する。
3A-AP-13 生徒の予備知識や個人の興味を活用し、アルゴリズムを用いたプロトタイプを作って計算の問題を解決する。
3A-AP-16 命令を開始するイベントを使用し、実用的な目的や個人的な表現のため、あるいは社会的問題に対処するため、コンピューター使って何らかのものを設計し、試行錯誤しながら開発する。
3A-AP-17 プロシージャ、モジュール、および/またはオブジェクトなどの構成要素を使い、体系な分析を通じて問題を小さく分割する。
3A-AP-22 協業用ツールを使ってチームを組んで作業し、コンピューターを使って設計、開発をする。
学際および 21ST CENTURY CONNECTIONS
このレッスンでは、プログラミング/コンピューターサイエンスに関連する分野を扱います。
21世紀型スキル:
批判的思考
創造力
コラボレーション
コミュニケーション
情報リテラシー
柔軟性
リーダーシップ
主体性
社会技能
合理的配慮および合理的変更
生徒のニーズや教育プログラム(IEP、504など)に合わせ、適宜変更と調節を行ってください。
生徒にチームを組ませることで、ペアプログラミングの手法を取り入れることができます。
生徒が解体/変更できるサンプルマップを提供してみてもよいでしょう。
必要に応じてアダプティブコントローラー/ゲームコントローラーを提供しましょう。