UnityUnityメモ

Unityでキューブを上昇させよう!Rigidbodyと簡単スクリプトで学ぶ初心者向けチュートリアル

Unity

1. はじめに

こんにちは!今日は、Unityを使って簡単な物理挙動を学びながら、オブジェクトをジャンプさせる方法を一緒に見ていきましょう。Unity初心者の方でも分かりやすいように、基本的な操作からスクリプト作成まで丁寧に解説します。


この記事では、以下のことを学べます:

  • UnityのRigidbodyコンポーネントを使用して物理演算を追加する方法
  • オブジェクトにスクリプトをアタッチして動きを制御する方法
  • マウスのクリック操作を検出し、オブジェクトをジャンプさせる仕組み

今回はキューブ(Cube)を使ったシンプルな例で進めますが、ここで学んだ内容を応用すれば、他のオブジェクトやアクションにも使えますよ!

ゲーム開発を始めたばかりの方にとって、物理挙動を理解することはとても重要です。ぜひこの機会にUnityの基礎を一緒にマスターして、次のステップに進みましょう!

それでは、さっそく始めていきます!

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



2. Unityプロジェクトの準備

それでは、まずUnityプロジェクトを準備しましょう!以下の手順に沿って、新しいプロジェクトを作成していきます。


新しいUnityプロジェクトの作成

  1. Unity Hubを開きます
    Unityをインストールした際に一緒にインストールされるUnity Hubを起動してください。Unity Hubはプロジェクトを管理するツールで、簡単に新しいプロジェクトを作成できます。
  2. 「New Project」をクリック
    画面右上の「New Project」ボタンをクリックします。プロジェクトテンプレートを選ぶ画面が表示されます。
  3. テンプレートを選択
    初心者の方は「3D」を選択しましょう。これにより、3Dオブジェクトや物理演算を簡単に使える環境が用意されます。
  4. プロジェクト名を入力
    任意のプロジェクト名を入力します。例えば、「JumpingCube」と入力しておくと、後でわかりやすいです。
  5. 保存先を設定
    プロジェクトの保存先フォルダを選びます。わかりやすい場所(例えば、デスクトップやドキュメントフォルダ)に保存すると便利です。
  6. 「Create Project」をクリック
    全ての設定が終わったら、「Create Project」ボタンをクリックしてプロジェクトを作成します。Unityエディターが起動して新しいプロジェクトが開きます。

シーンのセットアップ

次に、プロジェクトをセットアップしていきます。

  1. シーンビューを確認
    Unityエディターが開くと、中央に「シーンビュー」というエリアが表示されています。ここが3Dオブジェクトを配置したり動きを確認したりする場所です。
  2. 保存しておく
    現在のシーンを保存しましょう。
    • 上部メニューの「File」→「Save As」をクリックします。
    • シーン名を「MainScene」として保存します。これで作業中にシーンが失われることを防げます。

これでUnityプロジェクトの準備が完了しました!次は、いよいよCubeを作成し、Rigidbodyを追加していきましょう!



3. Cubeの作成とRigidbodyの追加

それでは早速、UnityのシーンにCube(キューブ)を作成し、物理演算を適用するためにRigidbodyコンポーネントを追加していきましょう!このステップでは、オブジェクトがジャンプする準備を整えます。


Cubeの作成

  1. ヒエラルキーウィンドウを開く
    • Unityの画面左側にある「Hierarchy(ヒエラルキー)」ウィンドウを確認します。
  2. 右クリックでオブジェクトを追加
    • ヒエラルキーウィンドウ内で右クリックします。
    • メニューが表示されるので、「3D Object」→「Cube」を選択します。
  3. Cubeがシーンに追加される
    • シーンビューに真っ白な立方体(Cube)が現れます。ヒエラルキーウィンドウにも「Cube」という名前のオブジェクトが追加されていることを確認してください。
Cube

Rigidbodyの追加

  1. Cubeを選択する
    • ヒエラルキーウィンドウで「Cube」をクリックして選択します。
    • 選択すると、インスペクターウィンドウにCubeの詳細情報が表示されます。
  2. コンポーネントを追加
    • インスペクターウィンドウで「Add Component」ボタンをクリックします。
    • 検索バーが表示されるので、「Rigidbody」と入力します。
  3. Rigidbodyを選択して追加
    • 検索結果に表示される「Rigidbody」をクリックすると、Cubeに物理演算を適用するためのコンポーネントが追加されます。
  4. Rigidbodyの確認
    • Rigidbodyが追加されると、インスペクターウィンドウに「Rigidbody」というセクションが現れます。
    • このRigidbodyが、Cubeに重力や力を適用できるようにしてくれます。

補足:Rigidbodyの設定

Rigidbodyを追加した直後、特に変更しなくても動作しますが、必要に応じて設定を調整できます。

  • Mass(質量): オブジェクトの重さを設定します(デフォルトは1)。
  • Drag(抵抗): 空気抵抗などの力を調整します。
  • Use Gravity(重力を使用): これがオンになっていると、Cubeに重力が働きます。

これでCubeの作成とRigidbodyの追加が完了しました!次は、ジャンプするためのスクリプトを作成していきます。一緒に頑張りましょう!



4. スクリプトの作成

それでは、Cubeがクリックされたときにジャンプするためのスクリプトを作成していきましょう!スクリプトを書くのが初めてでも大丈夫ですよ。手順通りに進めていけば問題ありません。


スクリプトを作成する手順

  1. プロジェクトウィンドウを開く
    Unityの下部にあるプロジェクトウィンドウを確認してください。ここでは、プロジェクト内の全てのファイルやフォルダーを管理します。
  2. 右クリックメニューからスクリプトを作成
    プロジェクトウィンドウ内の空いている場所で右クリックし、「Create」→「C# Script」を選びます。
  3. スクリプトに名前を付ける
    新しく作成されたスクリプトの名前を「JumpScript」に変更します。名前はわかりやすいものにするのがポイントです。
  4. スクリプトを開く
    作成した「JumpScript」をダブルクリックすると、Visual Studioや他のコードエディターが開きます。この中でスクリプトを編集していきます。

スクリプトの内容を書く

以下のコードをエディターにコピーして貼り付けてください。

using UnityEngine;

public class JumpScript : MonoBehaviour
{
    // ジャンプ力を設定する変数
    public float jumpForce = 5f;
    private Rigidbody rb;

    // 初期設定を行うStartメソッド
    void Start()
    {
        // Rigidbodyコンポーネントを取得
        rb = GetComponent<Rigidbody>();
    }

    // 毎フレーム呼び出されるUpdateメソッド
    void Update()
    {
        // 左クリックが押されたときにジャンプする
        if (Input.GetMouseButtonDown(0))
        {
            rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
        }
    }
}

コードのポイント解説

  1. public float jumpForce = 5f;
    • ジャンプの強さを決める変数です。5fは初期値ですが、インスペクターで変更可能です。
  2. rb = GetComponent<Rigidbody>();
    • この行でCubeのRigidbodyコンポーネントを取得しています。このRigidbodyに力を加えてジャンプさせます。
  3. if (Input.GetMouseButtonDown(0))
    • マウスの左クリックが押されたときの条件です。0は左クリックを表しています。
  4. rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
    • Rigidbodyに上方向(Vector3.up)の力を加えています。ForceMode.Impulseは瞬間的な力を適用するモードです。

スクリプトが完成しました!次に、このスクリプトをCubeにアタッチして、実際に動作を確認してみましょう。



5. 実行と確認

では、スクリプトをCubeにアタッチして、実際にジャンプする動きを確認してみましょう!


① スクリプトをCubeにアタッチする

作成したJumpScriptを、Cubeに適用する手順を解説します。

  1. プロジェクトウィンドウを確認する
    先ほど作成したJumpScriptが、プロジェクトウィンドウに表示されているはずです。
  2. スクリプトをCubeにドラッグ&ドロップする
    プロジェクトウィンドウにあるJumpScriptを、ヒエラルキーウィンドウのCubeにドラッグしてドロップします。
    ドロップ後、Cubeを選択すると、インスペクターウィンドウの下部にJumpScriptが追加されているのが確認できます。

② シーンを再生する

  1. Playボタンを押す
    Unityエディターの上部にある再生ボタン(Playボタン)をクリックします。シーンが再生され、Cubeが重力に従って少し沈むのが確認できるでしょう。
  2. Cubeをクリックしてみる
    シーンビュー内でCubeを左クリックしてください。クリックするたびに、Cubeが上方向にジャンプするはずです。

③ 動作を確認するポイント

  • ジャンプの挙動
    Cubeがクリックするたびにスムーズに上方向に跳ね上がることを確認してください。
  • 連続クリック
    連続してクリックした場合、クリックのたびに追加の力が加わり、より高く跳ぶ動きを見ることができます。
  • エラーの有無
    再生中にConsoleウィンドウを確認し、エラーが表示されていないかチェックしましょう。エラーがある場合は、スクリプトや設定に間違いがある可能性があります。

これで、Cubeがクリックでジャンプする動作が実装できました!
お疲れ様でした!次は、このスクリプトを使って他のオブジェクトにも動きを追加してみたり、ジャンプ力を調整したりして、さらに楽しいシーンを作ってみましょう!



よくある質問

Q
Rigidbodyとは何ですか?
A

RigidbodyはUnityでオブジェクトに物理演算を適用するためのコンポーネントです。重力や力、摩擦などをシミュレートできます。

Q
ジャンプ力を調整するにはどうすればいいですか?
A

スクリプト内のjumpForce変数の値を変更してください。値を大きくするとジャンプ力が強くなり、小さくすると弱くなります。

Q
オブジェクトがジャンプしない場合はどうすればいいですか?
A

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

  • Rigidbodyが正しくアタッチされているか
  • スクリプトがCubeにアタッチされているか
  • コンソールにエラーが出ていないか

おすすめのアセット

「Kara: Water Hop」は、初心者にも簡単に使えるUnity用のゲームテンプレートです。このアセットを使えば、水面を跳びながらゴールを目指すアクションゲームを手軽に作ることができます。美しいグラフィックとシンプルな操作性が特徴で、プレイヤーはタップするだけでキャラクターを操作できます。

このアセットには、完成度の高いプレハブやスクリプトが含まれており、自分のゲームアイデアに合わせてカスタマイズが可能です。