こんにちは、パパコーダーです!
第8回では、主人公が避ける対象となる
ボール(敵キャラ) を作っていきます。
今回作るボールは、Scratch のプログラムと同じように…
- ゲームが続いている間だけ表示される(変数「あと」で制御)
- コスチュームを切り替えながら、ランダムな場所へ移動し続ける
- 時間が 0 になったら消える(当たり判定もなくなる)
という、“逃げる相手”としての基本的な動きを作ります。
この回は 変数「あと」判定の部分はいったん省略して、
「表示→ずっと→次のコスチューム→1秒でどこかへ」だけ確認します。
🎨 ボール(敵)の作り方(ランダムに動く敵キャラを作ろう!)
🎨 1. ボール Actor を作ろう
まずは「Ball」という Actor を新規作成します。
- FUnity → Create → FUnityActorData を選ぶ
- 名前を Ball にする
- Create ボタンを押す
見た目(Sprite)は丸い画像がオススメです。

準備できたら、BallAvoidance_ProjectData の Actors に Ball_Actor を追加しておきましょう。

🕹 2. ボールのスクリプトを開く
- Ball_ScriptGraph.asset を選択(
Assets/FUnity/Projects/.../Actors/Ball/の中) - Inspector の [Edit Graph] をクリック
これで、ボールの動きを Visual Scripting で作れる状態になりました。
⏰ 3. 「あと」が 0 になったらボールを消す
まずは、Scratch の左側のスクリプトにあたる部分から作ります。
やりたいことはとてもシンプルで、
- ゲーム中ずっと「変数『あと』の値」を監視する
- 「あと = 0」になったらボールを隠す
Scratch では次のようなブロックになっていました。


FUnity でも同じイメージで、
- 緑の旗が押されたとき
- ずっと
- 変数「あと」を取得して「0 と等しいか?」を判定する もし〇なら
- 等しければ 隠す
という流れで組んでみてください。
これで時間切れになったときにボールがちゃんと消えるようになります。
🏃♂️ 4. 残り時間がある間は動き続ける
次に、Scratch の右側のスクリプトを再現します。
こちらでは、
- ゲーム開始時に表示する
- 「あと」が 0 でない間は、コスチュームを変えながらランダムな場所へ移動する
- 「あと」が 0 になったら隠す
という動きを作っています。
Scratch 側のブロックはこんな感じです。


FUnity でも同じ構成で作ってみましょう。
- 緑の旗が押されたとき
- 表示する
- ずっと
- If(条件:変数「あと」 ≠ 0)
- True のとき:
- 次のコスチュームにする
- 1秒でどこかの場所へ行く
- False のとき:
- 隠す
これで、残り時間がある間だけボールが出現し、
アニメーションしながら画面のどこかへ移動し続ける動きになります。
「1秒」の部分を変えると、ボールの移動のテンポを調整できます。
速くしたいときは 0.5 秒、ゆっくりにしたいときは 1.5 秒など、いろいろ試してみてください。
🎉 5. 動きを確認しよう
Unity の 再生(▶)ボタン を押して、ボールの動きを確認します。
(変数「あと」が未定義なので、確認しやすいように調整しましょう)
次のようになっていれば成功です。
- ゲーム開始と同時にボールが表示される
- コスチュームがパタパタ切り替わり、アニメーションして見える
- 1秒ごとに画面のどこかへ移動する
- (カウントダウン処理で)変数「あと」が 0 になったタイミングでボールが消える
もしうまく動かない場合は、
- 緑の旗が押されたとき から ずっと まで正しくつながっているか
- If の条件が「= 0」か「≠ 0」か、間違えていないか
- 表示する / 隠す をそれぞれ正しい場所に置いているか
- Ball Actor がステージ上にちゃんと配置されているか
などをチェックしてみてください。
🌟 6. 応用編:ボールを増やして難易度アップ
今回作った Ball.actor を複製して、ステージ上に複数配置すると、
一気に難易度がアップします。
複数にするなら、判定が“名前一致”の場合は同名運用できる仕組み(クローン/複製方法)を使います。
それぞれのボールは同じスクリプトで動きますが、
初期位置をバラバラにしたり、コスチュームを変えたりすると、
より賑やかな画面になります。
また、〇秒でランダムな場所へ行く の秒数を変えて
- 速いボール(0.5 秒で移動)
- 遅いけれど大きいボール
といったバリエーションを作るのもおすすめです。
🔜 次回:第9回「60秒生存のクリア判定」
次回は、プレイヤーが60秒生き残ったら勝ち!
というクリア判定を作っていきます。
ボールの動きと「あと」の変化が、いよいよゲームのルールとしてつながってきますよ。


コメント