1. はじめに
こんにちは!Unityを使った3Dオブジェクトの動きの作成に挑戦してみませんか?今回のテーマは「Cubeを自転させながら、Sphereを中心に公転させる方法」です。
「自転」とは、オブジェクト自身が回転する動きで、「公転」は他のオブジェクトを中心に回転する動きです。この2つの動きを組み合わせることで、惑星のようなダイナミックなアニメーションを作成できます。
難しそうに聞こえるかもしれませんが、スクリプトを使えば意外と簡単!Unity初心者の方でもステップバイステップで進められるように、分かりやすく解説します。それでは始めましょう!
Unityを触ったことがないという方はコチラの記事から見てみてください!
2. プロジェクトの準備
さあ、まずはUnityで必要な設定を整えていきましょう!ここでは、新しい3Dオブジェクトを作成し、それぞれを正しい位置に配置していきます。
ステップ1: 新しい3Dオブジェクトを作成する
- Unityを開く
プロジェクトを作成、または既存のプロジェクトを開いてください。 - Cubeを作成する
- Hierarchyウィンドウで右クリックし、「3D Object」→「Cube」を選びます。
- これでシーンにCubeが作成されます。
- Sphereを作成する
- 同じように「3D Object」→「Sphere」を選び、シーンにSphereを作成します。
ステップ2: オブジェクトの位置を調整する
- Sphereの位置を設定
- InspectorウィンドウでSphereの「Transform」の「Position」を設定します。
X: 0, Y: 0, Z: 0 と入力して、Sphereをシーンの中心に配置します。
- InspectorウィンドウでSphereの「Transform」の「Position」を設定します。
- Cubeの位置を設定
- CubeをSphereから少し離れた位置に移動しましょう。例えば:
X: 3, Y: 0, Z: 0 と入力します。
- CubeをSphereから少し離れた位置に移動しましょう。例えば:
ステップ3: シーンの確認
- シーンビューを確認して、CubeがSphereと離れて配置されているかチェックしてください。
- 両方のオブジェクトが見やすいように、カメラの位置を調整しておくと便利です。


これでプロジェクトの準備は完了です!次は、Cubeを動かすためのスクリプトを作成していきましょう!
3. スクリプトの作成
それでは、Cubeを自転させながらSphereを中心に公転させるためのスクリプトを作成しましょう!スクリプトはUnityの動きの基本を学ぶのにピッタリです。
ステップ1: スクリプトファイルの作成
- Scriptsフォルダを作成
- Projectウィンドウで右クリックして「Create」→「Folder」を選び、「Scripts」という名前のフォルダを作成します。
- 新しいスクリプトを作成
- Scriptsフォルダを右クリックして「Create」→「C# Script」を選択します。
- スクリプトの名前を
RotateAndOrbitにします。
ステップ2: スクリプトを記述
- 作成した
RotateAndOrbitスクリプトをダブルクリックして開きます(通常、Visual StudioやRiderが開きます)。 - 以下のコードをスクリプトに入力します。
using UnityEngine;
public class RotateAndOrbit : MonoBehaviour
{
public Transform orbitCenter; // 公転の中心となるオブジェクト
public float orbitSpeed = 30.0f; // 公転速度
public float rotationSpeed = 80.0f; // 自転速度
void Update()
{
OrbitAround(); // 公転処理を実行
SelfRotate(); // 自転処理を実行
}
// 公転の処理
void OrbitAround()
{
transform.RotateAround(orbitCenter.position, Vector3.up, orbitSpeed * Time.deltaTime);
}
// 自転の処理
void SelfRotate()
{
transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime);
}
}
ステップ3: コードの解説
orbitCenter
公転の中心となるオブジェクト(ここではSphere)を指定します。orbitSpeed
CubeがSphereを中心に回る速度を調整できます。rotationSpeed
Cubeが自身を回転する(自転)速度を設定します。RotateAroundメソッド
オブジェクトを指定された点(ここではSphere)を中心に回転させるUnityの便利なメソッドです。Rotateメソッド
オブジェクト自身を指定した軸(ここではY軸)に沿って回転させます。
ステップ4: スクリプトの保存
- コードを書き終えたら、「Ctrl + S」(Macなら「Cmd + S」)でスクリプトを保存します。

これでスクリプトの準備が完了です!次は、スクリプトをUnityシーンに適用して動きを確認してみましょう!
4. スクリプトの設定
スクリプトが完成したら、Unityでスクリプトを設定して動作させる準備をしましょう!ここでは、Cubeにスクリプトをアタッチし、必要な設定を行います。
ステップ1: Cubeにスクリプトをアタッチ
- HierarchyウィンドウでCubeを選択
- Cubeが選択されていることを確認します。
- スクリプトをアタッチ
- Projectウィンドウの
RotateAndOrbitスクリプトを、Cubeにドラッグ&ドロップします。
- Projectウィンドウの
- 確認
- Inspectorウィンドウを見て、Cubeに
RotateAndOrbitスクリプトが追加されていることを確認します。
- Inspectorウィンドウを見て、Cubeに
ステップ2: 公転の中心(Orbit Center)の設定
- Orbit CenterにSphereを設定
- Inspectorウィンドウで、
RotateAndOrbitスクリプト内のOrbit Centerフィールドに、HierarchyウィンドウのSphereをドラッグ&ドロップします。
- Inspectorウィンドウで、
- 確認
Orbit CenterフィールドにSphereが設定されていることを確認します。
ステップ3: パラメータの調整(任意)
- Orbit Speed: Cubeの公転速度(デフォルトは30.0)。好みに応じて数値を変更してください。
- Rotation Speed: Cubeの自転速度(デフォルトは80.0)。速さを調整したい場合に変更します。

5. 実行して確認
これまでの準備が整ったら、実際にスクリプトを実行して動きを確認してみましょう!簡単な手順でチェックできます。
ステップ1: 再生ボタンをクリック
- Unityエディター上部にある「▶」(再生ボタン)をクリックします。
- シーンが再生モードに切り替わり、設定した動きを確認できます。
ステップ2: Cubeの動きを観察
- Cubeが自転:Cube自体がY軸(上下方向)を中心に回転しているか確認してください。
- Cubeが公転:CubeがSphereを中心に回り続けているかチェックしましょう。

ここまでの手順で、Cubeが自転しながらSphereを中心に公転する動きを実現できたはずです。うまく動作したら、その動きを楽しみながら、自分のプロジェクトにどのように応用できるかを考えてみましょう!
次は、さらに複雑な動きを加える方法やカスタマイズのヒントを学んでみるのもおすすめです!
🌍 視点操作をもっと自由に!
公転・回転・ズームまで全部これ1つ!
▶︎ Orbit Camera Controller は、ターゲットを中心に自由な視点移動を実現できるカメラコントローラーです。
初心者でもすぐに使えるシンプルな構成ながら、
ズームイン・アウト、角度制御、回転ロックなど高機能も網羅!
天体の自転・公転システムや、キャラクターの周囲を回るカメラ演出にぴったりです。
🎮 チュートリアルと組み合わせるだけで、プロっぽい視点切り替えが一瞬で完成!
Unityでのカメラ制御に困っているなら、まずはこれをチェック👇
👉 Orbit Camera Controllerを今すぐ見る
あわせて読みたい
Unityでオブジェクトの回転やカメラの動きを扱う際に参考になる記事をまとめました。Orbitスクリプトと組み合わせて、よりリッチな演出や操作性の向上を目指しましょう!
- Unityでマウスカーソルの方向にオブジェクトを回転!簡単チュートリアル
⇒ マウス操作と連動した回転処理の基本を解説。インタラクティブな演出に便利! - Unityで2つのオブジェクトを同時に回転!初心者向け左右キー連動スクリプトの作り方
⇒ 公転+自転のような組み合わせが可能に。キーボード入力で制御する方法を紹介! - Unityで簡単!オブジェクト衝突で親子関係を作る方法
⇒ Orbit演出に親子関係を使いたい人向け。階層構造を活用する方法が学べます。 - Unityでオブジェクトをスライドさせて切り替える方法!【初心者向け】
⇒ 回転や移動を使ったUIやシーン演出に活用できるスライド切り替え演出の作り方。 - UnityでCubeを十字キーで転がそう!Rigidbodyを使った簡単チュートリアル
⇒ 公転だけでなく、自ら移動する動きも加えたいときに参考になる内容です。
よくある質問(Q&A)
- QCubeが動かない場合はどうすればいいですか?
- A
スクリプトがCubeに正しくアタッチされているか確認してください。また、Sphereが
OrbitCenterに設定されているかもチェックしましょう。
- QCubeの速度を変えたいです。
- A
スクリプト内の
orbitSpeedやrotationSpeedの値を変更することで調整できます。
- Q他のオブジェクトでも使えますか?
- A
はい、Cube以外のオブジェクトでも同じスクリプトを使えます。お好みの3Dオブジェクトで試してみてください!







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。