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

Unity ヒンジジョイントを使った振り子の作り方

Unity

はじめに

こんにちは!今回は、Unityでヒンジジョイントを使って振り子のように動くオブジェクトを作る方法を紹介します。初心者の方でも簡単にできるので、一緒にやってみましょう!

ステップ1: 新しいプロジェクトを作成

  1. Unityを起動して、新しい3Dプロジェクトを作成します。

ステップ2: オブジェクトを作成

  1. ヒエラルキー(Hierarchy)ウィンドウで右クリックします。
  2. 「3D Object」→「Cube」を選びます。これが上のオブジェクトになります。名前を「TopCube」などに変更しましょう。
  3. 同じようにして、「Sphere」を作成します。これが下のオブジェクトになります。名前を「PendulumSphere」などに変更しましょう。
  4. 「PendulumSphere」を選択し、インスペクター(Inspector)ウィンドウで「Transform」コンポーネントの「Position」を調整して、TopCubeの真下に配置します。

ステップ3:Rigidbodyを追加

「PendulumSphere」にRigidbodyを追加します。

  • inspector画面の「AddComponent」からRigidbodyを検索して追加します。

ステップ4: ヒンジジョイントを追加

  1. 「TopCube」を選択したまま、インスペクター(Inspector)ウィンドウの「Add Component」ボタンをクリックします。
  2. 「Hinge Joint」と検索して追加します。自動的にRigidbodyも追加されます。
  3. 「Hinge Joint」の「Axis」の項目のZを1に変更します。
  4. Rigidbodyの「Mass」を100にして「UseGravity」のチェックを外し「FreezeRotation」「FreezePosition.Y」にチェックを入れます。
  5. ConnectedBodyに「PendulumSphere」を設定します。

ステップ5: プレイモードでテスト

  1. シーンを保存して、Unityエディタの上部にある「Play」ボタンをクリックします。
  2. inspector画面から「TopCube」を位置を移動させると、「PendulumSphere」が揺れ始めるはずです!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class CubeMove : MonoBehaviour
{
    void Update()
    {
        float dx = Input.GetAxis("Horizontal") * Time.deltaTime * 3;
        float dz = Input.GetAxis("Vertical") * Time.deltaTime * 3;
        transform.position = new Vector3 (
        transform.position.x + dx, 4, transform.position.z + dz
        );
    }
}

まとめ

これで、振り子のように動くオブジェクトが完成しました。振り子の動きが思った通りでない場合は、ヒンジジョイントの設定やRigidbodyのパラメータを調整してみてください。ヒンジジョイントの設定やスクリプトの調整を行うことで、さらに面白い動きを作り出せます。楽しいUnity開発をお楽しみください!

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