【第7回】主人公の動きを作る(上下左右に自由に動かそう!)

FUnity Unity
FUnity

こんにちは、パパコーダーです!

第7回ではいよいよ、主人公キャラクター(フーニー)に
上下左右の移動 と、歩いているアニメーションクリア/ゲームオーバーの判定 を実装していきます。

必須:移動まで
おまけ:歩きアニメ/クリア・ゲームオーバー枠

ここができると、一気に“ゲームっぽさ”が生まれます。
60秒逃げ切るゲームのプレイヤー操作の核となる部分です!

🎮 主人公の動きを作る(上下左右に自由に動かそう!)


🎮 1. Player のスクリプトを開こう

まずは主人公 Actor(Player)のプログラム画面を開きます。

  1. Assets/FUnity/Projects/(プロジェクト名)/Actors/Player/
    内にあるPlayer.assetをクリック
  2. Inspector にある[Edit Graph]を押す
  3. Visual Scripting の画面が開きます

これで“主人公のプログラムを書く場所”が準備できました。


🟢 2. ゲーム開始時の初期設定を作る

Scratch でおなじみの 緑の旗が押されたとき を使います。
これは「ゲーム開始時に動く合図」です。

▼ 追加方法

  1. 右クリック → 検索欄を開く
  2. 「押された」で検索
  3. 緑の旗が押されたとき を選ぶ
  4. 緑の旗が押されたとき の Graph Inspector で Coroutine にチェックを付ける
Coroutine にチェックを付ける
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 のプログラム
Scratch のプログラム
上下左右に移動する
上下左右に移動する

ここまでで、Scratch の画像と同じ「上下左右に自由に動ける主人公」が完成です!


👣 6. 歩いているように見せる(コスチューム切り替え)

次は、左右に動いたときに歩いているアニメーションが出るようにします。

Scratch の主人公プログラムでは、次のような別スクリプトになっています。

Scratch のプログラム
Scratch のプログラム
歩いているアニメーション
歩いているアニメーション

これで、左右どちらかのキーを押している間、
主人公のコスチュームが順番に切り替わり、歩いているように見えるようになります。
左右キーが押されている間、次のコスチュームにするを繰り返します。


🏁 7. クリアとゲームオーバーの判定

Scratch の主人公には、クリアゲームオーバーに関するスクリプトも入っています。
これも同じように FUnity で用意しておきましょう。

① 残り時間が 0 になったらクリア

変数 「あと」 が 0 になったら、主人公を隠して
「クリア」メッセージ を送ります。

Scratch のプログラム
Scratch のプログラム
残り時間が0になったらクリア
残り時間が0になったらクリア

「あと」のカウントダウン処理は別の回で作りますが、
主人公側では「0 になったらクリア」という役割を持たせています。

② Ball に触れたらゲームオーバー

敵キャラ(ボール)に触れたらゲームオーバーにするスクリプトです。
Scratch のプログラムでは、主人公側に次のように書かれています。

Scratch のプログラム
Scratch のプログラム
ボールに触れたらゲームオーバー
ボールに触れたらゲームオーバー

ここで出てくる Ball が、次回作る敵キャラ(ボール)です。
今はまだ登場していませんが、先に「触れたらゲームオーバー」という
枠組みだけ作っておきます。

「クリア」「ゲームオーバー」のメッセージを受け取って
画面を切り替えたり、文字を表示したりする処理は、別の回で作っていきます。


🎉 8. 実行して確認しよう!

Unity の上部にある ▶(再生)ボタン を押して、
矢印キーでキャラが動くか確認しましょう。
今はまだ変数『あと』を作っていないので、この部分は次回以降に配線します(枠だけ確認できればOK)。

チェックポイントは次の通りです。

  • 右キーで右へ、左キーで左へ動く(向きも変わる)
  • 上キーで上へ、下キーで下へ動く
  • 左右キーを押すとコスチュームが切り替わり、歩いているように見える
  • (あとで実装予定の)変数「あと」や敵 Ball と連動できるように、
    クリア/ゲームオーバーのメッセージ送信スクリプトが用意されている

もし動かない場合は👇を確認してください。

  • 緑の旗が押されたとき から ずっと まで正しくつながっているか
  • もし〇なら の中に 〇歩動かす / y座標を〇ずつ変える の処理が入っているか
  • 〇キーが押された? のキー設定が正しいか(←→↑↓)
  • Player がステージに配置されているか

一つずつチェックすると、大体の問題は解決できます。


🌟 今回できたこと

  • 主人公 Actor のスクリプトを開けるようになった
  • ゲーム開始時に「表示する」「回転方法を左右のみにする」を設定できた
  • ずっとの中でキー入力をチェックする形が分かった
  • 左右キーで向きを変えて移動、上下キーでY座標を変える動きを作れた
  • 左右キーでコスチュームを切り替え、歩いているアニメーションを付けられた
  • クリア/ゲームオーバー用のメッセージを送る仕組みを用意できた

これで「60秒間、ボールから逃げるゲーム」の中で、
主人公の役割がかなりしっかりしてきました。

次回はついに敵キャラ(ボール)を登場させます。


🔜 次回:第8回「ボール(敵)の作り方」

ランダムに動くボールを作って、主人公が避けるゲームらしく進化させていきます。
お楽しみに!

コメント

タイトルとURLをコピーしました