こんにちは、パパコーダーです!
第7回ではいよいよ、主人公キャラクター(フーニー)に
上下左右の移動 と、歩いているアニメーション、クリア/ゲームオーバーの判定 を実装していきます。
必須:移動まで
おまけ:歩きアニメ/クリア・ゲームオーバー枠
ここができると、一気に“ゲームっぽさ”が生まれます。
60秒逃げ切るゲームのプレイヤー操作の核となる部分です!
🎮 主人公の動きを作る(上下左右に自由に動かそう!)
🎮 1. Player のスクリプトを開こう
まずは主人公 Actor(Player)のプログラム画面を開きます。
Assets/FUnity/Projects/(プロジェクト名)/Actors/Player/
内にあるPlayer.assetをクリック- Inspector にある[Edit Graph]を押す
- Visual Scripting の画面が開きます
これで“主人公のプログラムを書く場所”が準備できました。
🟢 2. ゲーム開始時の初期設定を作る
Scratch でおなじみの 緑の旗が押されたとき を使います。
これは「ゲーム開始時に動く合図」です。
▼ 追加方法
- 右クリック → 検索欄を開く
- 「押された」で検索
- 緑の旗が押されたとき を選ぶ
- 緑の旗が押されたとき の Graph Inspector で Coroutine にチェックを付ける

このイベントの直後に、Scratch のプログラムと同じように次の3つをつなげます。
- 表示する … ゲーム開始時に主人公を表示
- 回転方法を左右のみにする … 左右を向き替えてもひっくり返らないようにする
- x:〇 y:〇 へ行く … 主人公の座標を設定する
ここまでで、ゲーム開始時に主人公が正しく表示され、向きの設定も完了です。
🔁 3. 「ずっと」でずっと動かそう
キャラクターを動かし続けるには、ずっと が必要です。
Scratch と同じように「常にチェックし続ける」仕組みを作ります。
- 緑の旗が押されたとき → 表示する → 回転方法を左右のみにする → ずっと

この ずっと の中に「キー入力を見て動かす処理」を入れていきます。
➡ 4. 左右キーで動かす(向きも変える)
まずは左右移動から作ります。
Scratch のプログラムでは、右・左キーで向きを変えてから前進しています。
使う Unit(ブロック)はこの4つです。
- ○キーが押された
- もし○なら
- ○度に向ける
- ○歩動かす
▼ 右キーで右へ進む
ずっと の中に、次のような流れで組み立てます。

「右向き(90度)」に向けてから、10 歩進むことで
右キーを押している間だけ右にスイスイ動くようになります。
▼ 左キーで左へ進む
こちらは「左向き(-90度)」に向けてから、10 歩進むだけです。
右と左でやっていることは同じで、向きだけが違います。

ここまでで、主人公が左右キーでくるっと向きを変えながら左右に動くようになります。
↕ 5. 上下移動を追加する
次に、上キーと下キーで上下に動かせるようにします。
こちらは向きを変えずに、Y座標だけを変える形で実装します。
- 上キー → y座標を〇ずつ変える(+10)
- 下キー → y座標を〇ずつ変える(-10)

これで、左右は「向きを変えて前進」、上下は「Y座標だけ移動」という
Scratch の主人公プログラムと同じ動きになります。
移動量の「10」はスピードです。
速すぎる/遅すぎると感じたら、あとから 5 や 8 などに調整してみてください。
▼ 完成イメージ(移動部分)


ここまでで、Scratch の画像と同じ「上下左右に自由に動ける主人公」が完成です!
👣 6. 歩いているように見せる(コスチューム切り替え)
次は、左右に動いたときに歩いているアニメーションが出るようにします。
Scratch の主人公プログラムでは、次のような別スクリプトになっています。


これで、左右どちらかのキーを押している間、
主人公のコスチュームが順番に切り替わり、歩いているように見えるようになります。
左右キーが押されている間、次のコスチュームにするを繰り返します。
🏁 7. クリアとゲームオーバーの判定
Scratch の主人公には、クリアとゲームオーバーに関するスクリプトも入っています。
これも同じように FUnity で用意しておきましょう。
① 残り時間が 0 になったらクリア
変数 「あと」 が 0 になったら、主人公を隠して
「クリア」メッセージ を送ります。


「あと」のカウントダウン処理は別の回で作りますが、
主人公側では「0 になったらクリア」という役割を持たせています。
② Ball に触れたらゲームオーバー
敵キャラ(ボール)に触れたらゲームオーバーにするスクリプトです。
Scratch のプログラムでは、主人公側に次のように書かれています。


ここで出てくる Ball が、次回作る敵キャラ(ボール)です。
今はまだ登場していませんが、先に「触れたらゲームオーバー」という
枠組みだけ作っておきます。
「クリア」「ゲームオーバー」のメッセージを受け取って
画面を切り替えたり、文字を表示したりする処理は、別の回で作っていきます。
🎉 8. 実行して確認しよう!
Unity の上部にある ▶(再生)ボタン を押して、
矢印キーでキャラが動くか確認しましょう。
今はまだ変数『あと』を作っていないので、この部分は次回以降に配線します(枠だけ確認できればOK)。
チェックポイントは次の通りです。
- 右キーで右へ、左キーで左へ動く(向きも変わる)
- 上キーで上へ、下キーで下へ動く
- 左右キーを押すとコスチュームが切り替わり、歩いているように見える
- (あとで実装予定の)変数「あと」や敵 Ball と連動できるように、
クリア/ゲームオーバーのメッセージ送信スクリプトが用意されている
もし動かない場合は👇を確認してください。
- 緑の旗が押されたとき から ずっと まで正しくつながっているか
- もし〇なら の中に 〇歩動かす / y座標を〇ずつ変える の処理が入っているか
- 〇キーが押された? のキー設定が正しいか(←→↑↓)
- Player がステージに配置されているか
一つずつチェックすると、大体の問題は解決できます。
🌟 今回できたこと
- 主人公 Actor のスクリプトを開けるようになった
- ゲーム開始時に「表示する」「回転方法を左右のみにする」を設定できた
- ずっとの中でキー入力をチェックする形が分かった
- 左右キーで向きを変えて移動、上下キーでY座標を変える動きを作れた
- 左右キーでコスチュームを切り替え、歩いているアニメーションを付けられた
- クリア/ゲームオーバー用のメッセージを送る仕組みを用意できた
これで「60秒間、ボールから逃げるゲーム」の中で、
主人公の役割がかなりしっかりしてきました。
次回はついに敵キャラ(ボール)を登場させます。
🔜 次回:第8回「ボール(敵)の作り方」
ランダムに動くボールを作って、主人公が避けるゲームらしく進化させていきます。
お楽しみに!


コメント