UnityUnityメモ

Unityでオブジェクトの回転軸を変更する方法!

Unity

1. はじめに

Unityでゲームを作るとき、オブジェクトの回転軸を調整することで、より自由でリアルな動きを実現することができます。たとえば、バットを振る動きを作りたい場合、中心を回転軸にするのではなく、端を軸にして動かす必要があります。この記事では、Unity初心者でも簡単に実践できるよう、回転軸をずらす方法をステップごとに詳しく解説します。

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



2. 棒のベースとなるキューブを作成

まず、バットの元となる棒状のオブジェクトを作りましょう。Unityでキューブを作成して棒の形に変更します。

ステップ1: キューブを作成

  1. ヒエラルキー(Hierarchy)ウィンドウを右クリックします。
  2. 表示されたメニューから「3D Object」→「Cube」を選択します。
  3. ヒエラルキーに「Cube」という名前のオブジェクトが追加されます。

ステップ2: キューブの名前を変更

  1. 作成したキューブを選択します。
  2. Inspector(インスペクター)ウィンドウの一番上にある「Name」フィールドに「Bat」と入力して名前を変更します。

ステップ3: 棒の形状に変更

  1. 「Inspector」ウィンドウで、「Transform」セクションにある「Scale」を以下のように設定します:
    • X: 5
    • Y: 0.5
    • Z: 0.5
  2. これで、キューブが細長い棒状に変わります。
Cube

ステップ4: 棒の位置を確認

  1. 「Position」フィールドで位置を確認してください。通常は (0, 0, 0) のままで問題ありませんが、必要に応じて調整してください。



3. 棒の形状を設定

ここでは、作成したキューブを棒の形に変えていきます。具体的には、細長い形状にスケールを変更します。

ステップ1: 棒のスケールを設定

  1. ヒエラルキー(Hierarchy)ウィンドウで作成した「Bat」を選択します。
  2. Inspector(インスペクター)ウィンドウの「Transform」セクションを見つけてください。
  3. 「Scale」の値を以下のように変更します:
    • X: 5
    • Y: 0.5
    • Z: 0.5

ステップ2: 棒の見た目を確認

  • スケールを設定すると、キューブが細長い棒状に変わります。これが、バットのベース部分となります。

ステップ3: 棒の色を変更(オプション)

  • デザインをわかりやすくするため、以下の手順で色を変更できます:
    1. プロジェクトウィンドウで右クリックし、「Create」→「Material」を選択して新しいマテリアルを作成します。
    2. 作成したマテリアルを選択し、「Inspector」で色を設定します。
    3. 「Bat」にマテリアルをドラッグ&ドロップして適用します。

棒が完成しました!次に、この棒を回転させるための軸となるオブジェクトを作成しましょう。



4. 回転軸を設定する空のゲームオブジェクトを作成

棒を端を中心に回転させるために、回転軸として使う「空のゲームオブジェクト」を作成します。この空のゲームオブジェクトが、棒の回転の中心点になります。

ステップ1: 空のゲームオブジェクトを作成

  1. ヒエラルキー(Hierarchy)ウィンドウを右クリックします。
  2. メニューから「Create Empty」を選択します。
  3. ヒエラルキーに新しい「Empty GameObject」が追加されます。

ステップ2: 名前を変更

  1. 作成した空のゲームオブジェクトを選択します。
  2. Inspector(インスペクター)ウィンドウで名前を「RotationPivot」に変更します。

ステップ3: 回転軸の位置を設定

  1. 「RotationPivot」を選択した状態で、「Inspector」ウィンドウの「Transform」を確認します。
  2. 「Position」を以下のように設定します:
    • X: -2.5
    • Y: 0
    • Z: 0
  3. これにより、棒の端に回転軸が移動します。(棒の長さが5なので、中心から-2.5の位置が端になります。)

ステップ4: 棒をドラッグして親子関係を設定

  1. ヒエラルキー(Hierarchy)ウィンドウで「Bat」をクリックして選択します。
  2. 「Bat」をマウスでドラッグし、「RotationPivot」の上にドロップします。
  3. これで「Bat」が「RotationPivot」の子オブジェクトになります。
子オブジェクト

これで、回転軸が設定されました!次は、この回転軸に棒を子オブジェクトとして紐付けて、回転の動きを実現します。



5. スクリプトを作成してアタッチ

次に、棒が回転する動きを実現するためのスクリプトを作成し、それを「RotationPivot」にアタッチします。


ステップ1: スクリプトを作成

  1. プロジェクトウィンドウを右クリックします。
  2. メニューから「Create」→「C# Script」を選択します。
  3. スクリプトの名前を「BatController」に変更します。

ステップ2: スクリプトを編集

  1. 作成したスクリプトをダブルクリックして、コードエディタ(例:Visual Studio)で開きます。
  2. 以下のコードを貼り付けます:
using UnityEngine;

public class BatController : MonoBehaviour
{
    public float rotationSpeed = 100f; // 回転速度

    void Update()
    {
        if (Input.GetMouseButton(0)) // 左クリックで回転
        {
            transform.Rotate(0, rotationSpeed * Time.deltaTime, 0);
        }
        else if (Input.GetMouseButton(1)) // 右クリックで逆回転
        {
            transform.Rotate(0, -rotationSpeed * Time.deltaTime, 0);
        }
    }
}

ステップ3: スクリプトをアタッチ

  1. ヒエラルキー(Hierarchy)ウィンドウで「RotationPivot」を選択します。
  2. 作成した「BatController」スクリプトを「RotationPivot」にドラッグ&ドロップします。

ステップ4: 回転速度を調整(オプション)

  1. 「RotationPivot」を選択した状態で、「Inspector」ウィンドウにある「BatController」スクリプトを確認します。
  2. 「Rotation Speed」の値を変更して回転速度を調整できます(例:50~200の範囲で試してみましょう)。

これでスクリプトがアタッチされ、棒を回転させる準備が整いました!次は、実行して動作を確認してみましょう。



6. 実行して確認

最後に、作成した回転機能を動かしてみましょう!Unityエディターを使って、棒が正しく回転するか確認します。


ステップ1: プレイモードで実行

  1. Unityエディターの上部にある「Play」ボタンをクリックして、プレイモードに切り替えます。

ステップ2: 回転の動作を確認

  1. マウスの左クリックを押し続けると、棒が右方向に回転します。
  2. マウスの右クリックを押し続けると、棒が左方向に回転します。

これで、回転機能が完成です!バットが端を軸に回転する動きを確認できたでしょうか?必要に応じてスクリプトや設定を調整してみてください。



よくある質問(Q&A)

Q
回転が中心から動いてしまいます。なぜですか?
A

回転軸を移動した空のゲームオブジェクト(RotationPivot)を正しい位置に設定してください。棒の端 (-2.5) に移動させるのを忘れないでください。

Q
スクリプトが機能しません。どうすればいいですか?
A

スクリプトが正しくアタッチされていることと、タイピングミスがないことを確認してください。

Q
回転速度を調整したい場合は?
A

「Inspector」ウィンドウで「Rotation Speed」の値を変更することで調整できます。

おすすめのアセット

「Flippy Platforms」は、ユニティ用のゲームテンプレートです。このアセットを使えば、簡単にプラットフォームを回転させる楽しいゲームを作ることができます。ゲーム内のプラットフォームを回転させてキャラクターを移動させ、ゴールを目指します。

主な特徴

  • 直感的な操作:ホイールを回転させてプラットフォームを動かすだけで簡単に遊べます。
  • カスタマイズ可能:プラットフォームやキャラクターのデザインを自由に変更可能。
  • スムーズな動き:スムーズでリアルな動きが楽しめる設計。