Unityゲームの作り方メモ

【Unity】フラッピーバード風ゲームの作り方①~プレイヤーを作成する

Unity

1.はじめに

この記事では、Unity初心者でもわかりやすい手順で、フラッピーバード風ゲームの制作方法を解説します。ゲームの完成イメージとしては、プレイヤーが操作する鳥キャラクターがクリックやタップでジャンプし、障害物を避けながら進むというシンプルな仕組みです。

今回はシリーズの第1回目として、鳥キャラクター(プレイヤー)を作成し、物理的な挙動を追加する方法を学びます。Unityの基本操作をマスターしながら、少しずつゲームを形にしていきましょう。

準備するのは、Unityエディターといくつかの画像素材だけ。必要なアセットが手元にない場合でも、無料でダウンロードできる素材を活用できますのでご安心ください。

それでは、Unityのプロジェクトを作成しながら、フラッピーバード風ゲームの世界に一歩踏み出してみましょう!

Unityを触ったことがないという方はコチラの記事から見てみてください!



2. 必要な準備

フラッピーバード風ゲームを作るためには、まずいくつかの準備を行う必要があります。このセクションでは、Unityのインストールからプロジェクト設定、必要なアセットの準備方法までを詳しく解説します。初心者の方でも安心して進められるよう、わかりやすく説明しますね!


プロジェクトの作成と設定

  1. 新しいプロジェクトを作成
    Unity Hubの「プロジェクト」タブを開き、「新規プロジェクト」をクリックします。
    • テンプレートは「2D」を選択しましょう(フラッピーバード風ゲームは2Dゲームです)。
    • プロジェクト名を「FlappyBirdClone」などに設定します。
    • 保存場所を選択し、「作成」ボタンをクリックします。
  2. プロジェクト設定の確認
    Unityエディターが開いたら、以下の設定を確認・変更します。
    • 解像度の設定
      「File」→「Build Settings」→「Player Settings」から、解像度をゲームに合わせて設定します(例えば、800×600)。
    • カメラ設定
      「Main Camera」を選択し、Inspectorウィンドウで背景色を空の色に変更します(薄い青色など)。

必要なアセットの準備方法

ゲーム内で使用する素材(アセット)を用意しましょう。今回は以下の素材を使います:

  • 鳥キャラクター(プレイヤー)
  • 背景(空や地面)
  • 障害物(パイプ)
  1. アセットを探す方法
    • インターネットからダウンロード
      フリー素材サイト(例:PixabayやイラストAC)から画像をダウンロードします。商用利用可能な素材を選びましょう。
    • Unity Asset Storeを活用
      Unityエディター内の「Window」→「Asset Store」から無料アセットを検索・インポートできます。
  2. アセットのインポート
    • ダウンロードした画像をプロジェクトウィンドウにドラッグ&ドロップしてインポートします。
    • 必要に応じて、画像の「Sprite」設定を確認し、タイプを「2D and UI」に変更します(Inspectorウィンドウで設定可能)。

この記事ではこちらのアセットを使用しました。


これで、ゲームを作成する準備は整いました!次は、プレイヤーキャラクターを作成していきましょう。引き続き楽しみながら進めていきましょう!



3. プレイヤー(鳥キャラクター)の作成

フラッピーバード風ゲームのメインキャラクターは鳥です。このセクションでは、鳥キャラクターをゲーム画面に表示する方法を詳しく説明します。以下の手順に沿って進めてみましょう!


1. 鳥キャラクターのオブジェクトを作成

  1. ヒエラルキーウィンドウでオブジェクトを追加
    • 手順
      1. ヒエラルキーウィンドウで右クリックします。
      2. メニューから「2D Object」→「Sprite」→「Square」を選択します。
    • これで、ゲーム画面に四角形のオブジェクトが表示されます。この四角形が鳥キャラクターのベースになります。
  2. オブジェクト名を変更
    ヒエラルキーウィンドウで新しく作成された「Square」を選択し、「Bird」という名前に変更します。

2. 鳥キャラクターの見た目を設定

  1. アセット画像をインポート
    鳥の画像が準備できている場合は、以下の手順でUnityにインポートしましょう。
    • プロジェクトウィンドウ内で右クリックし、「Import New Asset」を選択します。
    • パソコンに保存している鳥キャラクターの画像ファイルを選択してインポートします。
  2. 画像を鳥キャラクターに適用
    • プロジェクトウィンドウでインポートした画像を見つけます。
    • その画像をヒエラルキーウィンドウ内の「Bird」にドラッグ&ドロップします。
    • ゲーム画面に鳥の画像が表示され、キャラクターの見た目が完成します。

3. 鳥キャラクターのタグを設定

  1. タグの設定方法
    • ヒエラルキーウィンドウで「Bird」を選択します。
    • インスペクターウィンドウの「Tag」セクションをクリックし、「Player」を選択します。
  2. タグを使う理由
    タグを設定することで、スクリプト内で簡単にプレイヤーキャラクターを識別できるようになります。

これで鳥キャラクターの基本的な設定が完了しました!次は、このキャラクターに物理的な動きを追加していきます。それでは続けて進めましょう!



4. 物理挙動を追加する

鳥キャラクターに物理的な動きを追加することで、重力による落下や衝突判定を実現できます。このセクションでは、Unityのコンポーネントを活用して、キャラクターに物理挙動を設定する方法を解説します。


4-1. Rigidbody2Dを追加して重力を適用する

  1. 鳥キャラクターを選択
    • ヒエラルキーウィンドウで「Bird」をクリックします。
  2. Rigidbody2Dを追加
    • インスペクターウィンドウにある 「Add Component」 ボタンをクリックします。
    • 検索バーに「Rigidbody2D」と入力し、表示された「Rigidbody2D」を選択して追加します。
  3. Rigidbody2Dの設定
    • 重力の影響を受けるように、デフォルトのままで設定します。
    • 必要に応じて、「Gravity Scale」 の値を調整して、落下速度を変更できます(例: 1.5や2.0に設定すると落下が早くなります)。

4-2. BoxCollider2Dを追加して衝突判定を設定する

  1. BoxCollider2Dを追加
    • 同じくインスペクターウィンドウで 「Add Component」 をクリックします。
    • 今度は「BoxCollider2D」と検索し、表示された「BoxCollider2D」を選択して追加します。
  2. Colliderのサイズ調整
    • インスペクターウィンドウの「Edit Collider」ボタンをクリックします。
    • 緑色の枠が表示されるので、鳥の画像に合わせてサイズを調整します。

4-3. 動作確認

  1. 再生ボタンをクリック
    • Unityの上部にある 再生ボタン(▶) をクリックしてゲームを実行します。
  2. 確認ポイント
    • 鳥キャラクターが重力で落下するか確認してください。
    • 他のオブジェクトに衝突した際に、適切に反応しているかチェックしましょう。

4-4. 注意点とトラブルシューティング

  • 鳥が動かない場合
    • 「Rigidbody2D」が正常にアタッチされているか確認します。
    • ヒエラルキーウィンドウで「Bird」を選択し、インスペクター内に「Rigidbody2D」が表示されているかチェックしてください。
  • 衝突判定がうまくいかない場合
    • 「BoxCollider2D」のサイズが正しく設定されているか確認してください。
    • 他のオブジェクトにも適切なColliderが設定されているか確認しましょう。

これで、鳥キャラクターに重力や衝突判定といった物理挙動が設定できました!次のステップでは、スクリプトを使ってクリックやタップ時にジャンプする動きを追加していきます。楽しみにしていてください!



5. スクリプトで動きを作る

ここでは、プレイヤーキャラクター(鳥)がジャンプする動きをスクリプトで作成していきます。Unityではスクリプトを使ってキャラクターの動作を細かく制御できます。この記事では、C#スクリプトを使った基本的な動きを実装する方法を解説します。


① 新しいスクリプトを作成する

まずは、スクリプトを作成して鳥キャラクターにアタッチしましょう。

  1. プロジェクトウィンドウを右クリックします。
  2. 「Create」 → 「C# Script」を選びます。
  3. 作成したスクリプトの名前を PlayerController に変更します。
  4. スクリプトをダブルクリックして開きます。

② ジャンプ機能を実装する

次に、スクリプト内にジャンプ機能を追加します。以下のコードを入力してください。

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    // 上昇する速度
    [SerializeField] private float upSpeed = 5f;

    // Rigidbody2D コンポーネント
    private Rigidbody2D rb;

    private void Start()
    {
        // Rigidbody2D を取得
        rb = GetComponent<Rigidbody2D>();
    }

    private void Update()
    {
        // スペースキーを押すと上昇する
        if (Input.GetKeyDown(KeyCode.Space))
        {
            rb.velocity = new Vector2(0, upSpeed);
        }
    }
}

③ スクリプトをキャラクターにアタッチする

  1. ヒエラルキーウィンドウで「Bird」を選択します。
  2. インスペクターウィンドウの「Add Component」ボタンをクリックし、作成したスクリプト(PlayerController)を検索して追加します。

これでスクリプトが鳥キャラクターに適用されました。


これでジャンプ機能の実装は完了です!次は、ゲームを実行して、動作を確認しましょう!



6. テストプレイをしよう

ここまでで、鳥キャラクターがゲーム画面に表示され、クリックやスペースキーでジャンプする機能を実装しました。次は、実際にプレイして動作を確認してみましょう。


テストプレイの手順

  1. Unityエディターでプレイモードを起動
    • Unityエディターの上部にある「▶」(再生ボタン)をクリックします。
    • ゲーム画面がアクティブになり、作成した鳥キャラクターが表示されます。
  2. スペースキーでジャンプをテスト
    • キーボードのスペースキーを押してみてください。
    • 鳥キャラクターが上昇し、離すと重力で自然に下に落ちるはずです。
  3. ゲーム画面の確認
    • 鳥の動きがスムーズかを確認します。
    • 画面の端でキャラクターが見切れていないかをチェックしてください。

トラブルシューティング

テストプレイ中に何か問題があった場合、以下を確認してみましょう。

  • 鳥がジャンプしない
    • スクリプトが正しくアタッチされているか確認しましょう。
      • ヒエラルキーウィンドウで「Bird」を選択し、インスペクターで「PlayerController」スクリプトが表示されているかチェック。
    • スペースキーの入力コードが正しいか再確認してください。csharpコードをコピーするif (Input.GetKeyDown(KeyCode.Space)) { rb.velocity = new Vector3(0, upSpeed, 0); }
  • 鳥が画面外に消える
    • Rigidbody2Dの設定を確認しましょう。
      • ヒエラルキーウィンドウで「Bird」を選択し、インスペクターのRigidbody2Dの「Gravity Scale」値を小さくして調整します。
      • 必要に応じて「Constraints」で位置の制限を設定します。
  • エラーが表示される
    • コンソールウィンドウを開き、エラーメッセージを確認しましょう。
    • エラー箇所がハイライトされるので、その部分を修正します。

これで、テストプレイのステップは完了です!動きを確認するだけでなく、アイデア次第でゲームを改良するポイントも見つけられるので、ぜひ試してみてください。



よくある質問(FAQ)

Q
鳥が動かないのですが、どうすればいいですか?
A

まずは以下の項目を確認してください。

  • Rigidbody2Dが正しく設定されているか:インスペクターウィンドウで「Bird」オブジェクトを選択し、Rigidbody2Dコンポーネントが追加されているか確認してください。
  • スクリプトが正しくアタッチされているか:作成した「PlayerController」スクリプトが「Bird」オブジェクトにドラッグ&ドロップされていることを確認してください。
  • コードにエラーがないか:スクリプトエディタでエラーがないか確認し、必要であれば修正してください。
Q
画像のインポート方法がわかりません。
A

以下の手順で画像をインポートできます:

  1. プロジェクトウィンドウの空白部分で右クリックし、「Import New Asset」を選択します。
  2. ファイル選択ダイアログが表示されるので、インポートしたい画像ファイルを選び、「インポート」をクリックします。
  3. インポートした画像はプロジェクトウィンドウに表示されます。そこからゲームオブジェクトの「Sprite」にドラッグ&ドロップしてください。
Q
スペースキーを押してもジャンプしない場合は?
A

以下を確認してください:

  • キー入力の設定:コードで「Input.GetKeyDown(KeyCode.Space)」が正しく記述されているか確認してください。
  • Rigidbody2Dが有効かどうか:Rigidbody2Dコンポーネントの「Simulated」プロパティがチェックされているか確認してください。
  • ジャンプの速度(upSpeed)の値:スクリプト内で設定した「upSpeed」の値が適切であるか確認してください。値が小さすぎるとジャンプが目立たない場合があります。

おすすめのアセット