紫の背景の中を、ドット絵の馬が障害物を飛び越えていくゲーム画面Play ↗

HorseGame

Games / HorseGame

障害競技をモチーフにした、ドット絵の馬のジャンプゲーム。

Stack
Unity / C# / WebGL
Year
2025

Play HorseGame ↗

作成のきっかけ

乗馬が趣味の友人の「障害競技の馬ゲームがしたい」というリクエストから制作をスタート。見た目も可愛く、どこでも気軽に簡単に楽しめるゲームをコンセプトに、実際の馬の音や動きを再現しつつも、見た目はオモチャっぽいドット絵やポップなカラー使いにし、構成もシンプルに仕上げた。

操作方法

  • PC:スタートボタンをクリックで開始、スペースキーでジャンプ
  • スマートフォン:スタートもジャンプも、画面をタップするだけ

ゲームルール

  • 右から流れてくる障害物をジャンプで飛び越える
  • 障害にぶつかるとゲームオーバー
  • 障害は左まで到達すると自動で得点加算
  • アイテムはキャッチで得点加算
アイテム / 障害物 得点
🟦 青い障害物 +30
🟥 赤い障害物 +50
🥕 にんじん +100
🍎 りんご +50

ゲームのロジック構成

プレイヤー(馬)

  • スクリプト:HorseController.cs
  • 地面に着地している間は自動ジャンプ(アイドルジャンプ)
  • 空中ではスペースキーまたはタップで「ジャンプブースト」
  • アイテム取得時に「いななき」サウンド再生(自作ニーサウンド)

障害物

  • スクリプト:Spawner.cs / ObstacleMover.cs
  • 出現数は CanSpawn() で制御
  • 30秒ごとに5秒間だけ出現数が増加(通常5未満 → 最大10未満)
  • IEnumerator SpawnLoop() によって出現制御
  • Vector3.Distance を用いて縦の重なりを回避し、プレイヤーの通り道を確保
  • ポイント加算や移動処理は ObstacleMover.cs に記述

アイテム

  • スクリプト:Spawner.cs / ItemMover.cs(動きの制御は障害物と同じ構成)
  • アイテム取得処理は HorseController.cs の OnTriggerEnter2D() にて
    • ポイント加算
    • いななきサウンド再生
    • プレハブの非表示(消滅)

ゲーム全体の制御

  • スクリプト:GameManager.cs
メソッド名 機能内容
StartGame() 馬の状態・UI・音の初期化
AddScore() スコア加算処理
TriggerGameOver() 音・UI演出(アニメーション付き)
OnGoBackButtonClicked() ゲーム再スタート処理

こだわりポイント

足音やブルブル音は、友人の愛馬「レジャ」の動画音を抽出して使用

ブルブル音
足音

負荷を減らす為、短い音源をループ。

プレハブはレトロなドット絵

馬・青と赤の障害物・にんじん・りんごのドット絵

GameOver 音は自作のギター

GameOver 音

アコースティックギターで Gadd9、GarageBand で収録。

自作サイトに埋め込みやすい配色設計

旧サイトに埋め込んだ HorseGame のスタート画面

時間がかかったところ

  • アイドルジャンプの制御がうまくいかず、着地しないバグが続いた
  • スマホ対応のための Touch の制御が効かず、タッチに反応しないバグ
  • アイテムのサイズ調整
  • 障害物同士の間隔の調整
  • WebGL のビルド(画面のサイズなどの調整)

今後のアップデート予定

  • 一定スコアで馬に「羽」をつけて進化演出 🪽
  • スクリプトの整理(プレイヤーとアイテムの処理の分離)
  • アイテムの速度を遅くするタイミングを追加
  • スタート画面にアニメーション導入

Play HorseGame ↗