スポンサーリンク
スポンサーリンク
UnityUnityメモ

Unityで軸をずらしてオブジェクトを回転させる方法

Unity

はじめに

Unityでは、オブジェクトの回転は一見単純な操作に思えるかもしれません。通常、オブジェクトはその中心を軸にして回転します。しかし、特定のシチュエーションでは、軸をオブジェクトの中心からずらして回転させたい時があります。

このような技術は、ゲーム内でドアが開くアニメーションを作る時や、物体が特定の軸周りで回転する様子を表現したい時などに非常に役立ちます。この記事では、Unityでオブジェクトの回転軸をずらして回転させる方法を、初心者にもわかりやすく解説します。

1. 基本的なオブジェクトの回転

Unityでオブジェクトを回転させる基本は非常に簡単です。Transformコンポーネントを使用して、オブジェクトに回転を適用します。しかし、この方法ではオブジェクトは常にその中心点を軸に回転します。ここでは、Transform.Rotateを使った基本的な回転のコード例を見てみましょう。

void Update() {
    // オブジェクトをY軸を中心に毎秒45度回転させる
    transform.Rotate(0, 45 * Time.deltaTime, 0);
}

2. 回転軸をずらして回転させる

では、回転軸をオブジェクトの中心からずらしてみましょう。これを実現するには、少し工夫が必要です。基本的なアイデアは、オブジェクトを親子関係にある別のオブジェクト(空のGameObjectを作成してそれを使うのが一般的です)の子にすることです。そして、親オブジェクトを回転させることで、子オブジェクトの回転軸をずらすことができます。

ステップ1: 空のGameObjectの作成

Unityエディタで、Hierarchyビューにて右クリックし、「Create Empty」を選択して空のGameObjectを作成します。これが、回転させたいオブジェクトの親になります。

ステップ2: オブジェクトを子にする

作成した空のGameObjectを選択し、Hierarchyビューで回転させたいオブジェクトをこの空のGameObjectの下にドラッグ&ドロップして、子オブジェクトとして設定します。

ステップ3: 軸の位置を調整する

親オブジェクトのTransformコンポーネントで、Position値を調整して、回転軸をずらしたい位置に設定します。これは、回転させたいオブジェクトに対して、どの位置から回転を開始させたいかによって異なります。

ステップ4: 親オブジェクトを回転させる

最後に、親オブジェクトに回転を適用します。このとき、子オブジェクトも一緒に回転し、その結果として回転軸がずらされたように見えるのです。

void Update() {
    // 親オブジェクトをY軸を中心に毎秒45度回転させる
    parentObject.transform.Rotate(0, 45 * Time.deltaTime, 0);
}

3. 実用例

この方法は、例えば扉が開くアニメーションを作る場合に非常に役立ちます。扉は一方の端が軸であり、もう一方の端が開くように回転させたい場合、扉を子オブジェクトとし、親オブジェクトを扉の軸に近い位置に設定することで、リアルな扉の動きを簡単に実現できます。

まとめ

Unityでオブジェクトの回転軸をずらして回転させる方法は、ゲームデザインにおいて多くの可能性を開きます。この記事で紹介した手順に従えば、初心者でも簡単に軸をずらした回転を実現できるはずです。Unityでのゲーム開発がこれまで以上に楽しくなることを願っています。

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました