🎯 このレッスンで学ぶこと
このレッスンでは、Scratch(スクラッチ)というプログラミングツールを使って、AIが敵の動きを予測して追いかけてくる「AIおにごっこゲーム」を作ります。
- プログラミングの基本:順次、反復、条件分岐を学びます
- 座標の概念:X座標とY座標を使った位置の管理
- 変数の使い方:データを記憶してゲームに活用
- AIの基礎:敵キャラクターが自動で追いかけてくる仕組み
🚀 準備するもの
- パソコンまたはタブレット(インターネット接続必須)
- Scratchアカウント(無料で作成できます)
- Webブラウザ(Chrome、Edge、Firefox、Safari など)
💡 Scratchとは?
Scratchは、MITメディアラボが開発した無料のプログラミング学習ツールです。ブロックを組み合わせるだけでプログラムが作れるので、初心者でも簡単に始められます。
公式サイト: https://scratch.mit.edu/
🎮 作るゲームの説明
ゲームのルール
- プレイヤー(ネコ)をマウスや矢印キーで動かします
- AIキャラクター(コウモリ)がプレイヤーを追いかけてきます
- AIはプレイヤーの動きを見て、自動的に方向を変えて追ってきます
- AIに捕まったらゲームオーバー!
- 30秒逃げきれたらクリア!
AIの仕組み
このゲームのAIは、「プレイヤーの位置を常に計算して、その方向に向かって動く」というシンプルなアルゴリズム(計算手順)を使っています。
プレイヤーのX座標とY座標を読み取り、自分との距離を計算して、プレイヤーの方向を向いて近づいていきます。これが、AIが「追いかけてくる」仕組みです。
1プロジェクトの準備
- Scratchにアクセス:https://scratch.mit.edu/ を開きます
- 「作る」をクリック:新しいプロジェクトを開始します
- プロジェクト名を設定:「AIおにごっこ」と名前をつけましょう
💡 ヒント: 初めてScratchを使う場合は、保護者の方と一緒にアカウントを作成しましょう。メールアドレスが必要です。
2プレイヤー(ネコ)のプログラム
まずは、プレイヤーを動かすプログラムを作ります。デフォルトで表示されているネコのスプライトを使います。
📝 プログラムの内容
⚑ 緑の旗がクリックされたとき
ずっと
もし <マウスのポインターまで移動する> なら
マウスのポインターへ向ける
3歩動かす
でなければ
もし <上向き矢印キーが押された> なら
y座標を5ずつ変える
もし <下向き矢印キーが押された> なら
y座標を-5ずつ変える
もし <右向き矢印キーが押された> なら
x座標を5ずつ変える
もし <左向き矢印キーが押された> なら
x座標を-5ずつ変える
もし <端に触れた> なら
跳ね返る
🔧 作り方の手順
- イベントブロックから「緑の旗がクリックされたとき」を配置
- 制御ブロックから「ずっと」を配置
- 制御ブロックから「もし○○なら、でなければ」を配置
- 動きブロックから「マウスのポインターへ向ける」と「○歩動かす」を配置
- 矢印キーの判定を追加(4つの「もし○○なら」ブロック)
- 動きブロックから「x座標を○ずつ変える」「y座標を○ずつ変える」を配置
💡 動作確認: 緑の旗をクリックして、ネコがマウスや矢印キーで動くか確認しましょう!
3AIキャラクター(コウモリ)を追加
次に、プレイヤーを追いかけてくるAIキャラクターを作ります。
📝 準備
- 画面右下の「スプライトを選ぶ」ボタンをクリック
- 「Bat(コウモリ)」を選択(または好きなキャラクター)
- コウモリのスプライトをクリックして選択
📝 AIプログラムの内容
⚑ 緑の旗がクリックされたとき
x座標を -150 、y座標を 120 にする
ずっと
もし <Sprite1(ネコ)まで の距離 < 10> なら
すべてを止める
「つかまえた!」と2秒言う
でなければ
Sprite1(ネコ)へ向ける
2歩動かす
🔧 作り方の手順
- イベントから「緑の旗がクリックされたとき」を配置
- 動きから「x座標を○、y座標を○にする」を配置(開始位置の設定)
- 制御から「ずっと」を配置
- 制御から「もし○○なら、でなければ」を配置
- 調べるから「○までの距離」を配置し、「Sprite1」(ネコ)を選択
- 距離が10より小さければ「つかまえた!」と言う処理を追加
- そうでなければ、ネコの方向を向いて2歩動かす処理を追加
🤖 これがAI! 「Sprite1へ向ける」→「歩動かす」の組み合わせが、AIがプレイヤーを追いかける仕組みです。常にプレイヤーの位置を計算して、その方向に動いています。
4タイマー機能を追加
30秒逃げきったらクリアという仕組みを作ります。
📝 変数を作る
- 変数カテゴリーを選択
- 「変数を作る」をクリック
- 変数名を「残り時間」として作成
📝 タイマープログラム(ネコに追加)
⚑ 緑の旗がクリックされたとき
残り時間を 30 にする
30回繰り返す
1秒待つ
残り時間を -1ずつ変える
すべてを止める
「クリア!逃げ切った!」と2秒言う
🔧 作り方の手順
- ネコのスプライトを選択
- 新しく「緑の旗がクリックされたとき」ブロックを追加(2つ目)
- 変数から「残り時間を○にする」を配置し、30に設定
- 制御から「○回繰り返す」を配置し、30に設定
- 制御から「○秒待つ」を配置し、1秒に設定
- 変数から「残り時間を○ずつ変える」を配置し、-1に設定
- 繰り返しの後に「すべてを止める」を配置
- 「クリア!逃げ切った!」と2秒言うブロックを追加
5背景とサウンドを追加(オプション)
ゲームをもっと面白くするために、背景と音を追加しましょう。
🎨 背景を追加
- 画面右下の「背景を選ぶ」をクリック
- 好きな背景を選択(例:「Rays」「Grid」など)
🎵 サウンドを追加
- コウモリのスプライトを選択
- 「音」タブをクリック
- 「音を選ぶ」で「Bite」などの効果音を追加
- 「つかまえた!」と言う前に「○の音を鳴らす」ブロックを追加
📝 ワークシート:完成チェックリスト
以下の項目ができているか確認しましょう!
- ネコ(プレイヤー)がマウスまたは矢印キーで動く
- コウモリ(AI)がネコを追いかけてくる
- コウモリがネコに触れたら「つかまえた!」と表示される
- 画面に「残り時間」が表示されている
- 30秒経過したら「クリア!逃げ切った!」と表示される
- 背景とサウンドが追加されている(オプション)
🎓 チャレンジ課題
基本のゲームができたら、以下の改造にチャレンジしてみましょう!
レベル1:初級
- AIの速度を変えてみよう(「2歩動かす」の数字を変更)
- AIの開始位置を変えてみよう
- 制限時間を変更してみよう(30秒→60秒など)
レベル2:中級
- AIを2体に増やしてみよう(コウモリをコピー)
- スコア機能を追加しよう(逃げた秒数 × 10点など)
- パワーアップアイテムを追加しよう(スピードアップなど)
レベル3:上級
- AIの動きをランダムにしてみよう(たまに違う方向に動く)
- レベル選択機能を追加しよう(簡単・普通・難しい)
- AIが障害物を避けるプログラムを追加しよう
💡 プログラミングのポイント
順次処理
プログラムは上から順番に実行されます。ブロックを並べる順番がとても重要です。
反復処理(ループ)
「ずっと」や「○回繰り返す」を使うと、同じ処理を何度も実行できます。ゲームでは常に動き続ける必要があるので、「ずっと」をよく使います。
条件分岐
「もし○○なら」を使うと、条件によって違う処理ができます。「距離が10より小さい」という条件で「つかまえた」と判定しています。
変数
データを記憶する箱のようなものです。「残り時間」という変数を使って、経過時間を管理しています。
座標
画面上の位置をx座標(横)とy座標(縦)の数字で表します。中心が(0, 0)で、右がプラス、左がマイナス、上がプラス、下がマイナスです。
🚀 まとめと次のステップ
お疲れさまでした!あなたは今、AI技術の基礎を使ったゲームを作ることができました。この「追跡アルゴリズム」は、実際のゲーム開発やロボット工学でも使われている技術です。
学んだこと
- プログラミングの3つの基本構造(順次・反復・条件分岐)
- 座標を使った位置の管理
- 変数を使ったデータの記憶
- AIの基本的な考え方(目標に向かって動く)
次に学びたい人へ
- Scratchで他のゲームやアニメーションを作ってみよう
- Pythonなどのテキストベースのプログラミング言語にチャレンジ
- 機械学習について学んで、もっと高度なAIを作ってみよう
- EDUTECのAI研修プログラムで本格的なAI学習にチャレンジ!
🎉 作品を共有しよう!
Scratchには作品を公開して世界中の人と共有できる機能があります。完成したら「共有する」ボタンを押して、みんなに見てもらいましょう!