はじめに
こんにちは!今日は、Unityを使ってヒンジジョイントで押し開けるタイプの扉を作る方法を説明します。Unity初心者でも簡単に作れるように、ステップバイステップで解説しますね。
1. プロジェクトの準備
まずは、新しいUnityプロジェクトを作成しましょう。プロジェクトの名前は「HingeDoor」とでもしておきます。
2. シーンの設定
新しいプロジェクトができたら、シーンビューに移動して以下のオブジェクトを追加します。
- 床の作成
- ヒエラルキーウィンドウで右クリックし、「3D Object」→「Plane」を選びます。
- 名前を「Floor」に変更し、位置を(0, 0, 0)に設定します。
- 扉のオブジェクトを作成
- ヒエラルキーウィンドウで右クリックし、「3D Object」→「Cube」を選びます。
- 名前を「Door」に変更し、サイズを(0, 1.5, 1.5)に設定します。
- 位置を(2, 3, 0.1)に設定して、配置します。
![](https://cbagames.jp/wp-content/uploads/2024/06/2024-06-10_001231.png)
4. ヒンジジョイントの追加
ここからが本番です。ヒンジジョイントを使って扉が開閉できるようにします。
- ヒンジジョイントの追加
- ヒエラルキーウィンドウで「Door」を選択します。
- インスペクターウィンドウの「Add Component」ボタンをクリックし、「Hinge Joint」を追加します。
- ヒンジジョイントの設定
- 「Hinge Joint」の「Anchor」を(-0.5, 0, 0)「Axis」を(0,1,0)に設定します。これにより、扉の左側にヒンジが設定されます。
5. 動きをスムーズにする
扉が自然に動くように、少し設定を調整しましょう。
- Rigidbodyの追加
- 「Door」に「Rigidbody」コンポーネントを追加します。「Add Component」ボタンをクリックして「Rigidbody」を選びます。
- 「Mass」を1に設定して、扉が軽く動くようにします。
- Springの設定
- 「UseSpring」の項目にチェックを入れて、「Spring」を5に、「Damper」を3に設定します。これで、扉が自然なスピードで閉じるようになります。
6.プレイヤーを配置
- キューブの作成
- ヒエラルキーウィンドウで右クリックし、「3D Object」→「Cube」を選びます。
- 名前を「PlayerCube」に変更し、位置を(0, 0.5, 0)に設定します。
- スクリプトファイルの作成
- プロジェクトウィンドウで右クリックし、「Create」→「C# Script」を選びます。
- スクリプトの名前を「CubeMove」に変更します。
- スクリプトの内容を入力
- 作成した「CubeMove」スクリプトをダブルクリックして開きます。
- 以下のコードを入力します。
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, transform.position.y, transform.position.z + dz);
}
}
- スクリプトをアタッチ
- ヒエラルキーウィンドウで「PlayerCube」を選択します。
- インスペクターウィンドウで「Add Component」ボタンをクリックし、「CubeMove」スクリプトを追加します。
7. 動作確認
最後に、プレイボタンを押して、プレイヤーを操作し、扉がちゃんと動くか確認しましょう。プレイヤーが扉を押すと、ヒンジジョイントでスムーズに開くはずです。
これで、Unityでヒンジジョイントを使った押し開けるタイプの扉の完成です!
おすすめのアセット
「Any Doors System」は、Unityでドアの開閉機能を簡単に追加できるテンプレートです。初心者にも使いやすく、複雑なコーディングは必要ありません。ドアの種類も多彩で、回転式ドア、スライド式ドア、ハッチなど、さまざまなドアを設定できます。使い方は簡単で、ドアの種類を選んで設定するだけ。これにより、ゲームやシミュレーションにリアルなドアの動きを簡単に追加できます。ドアを動かすエフェクトや音も含まれており、よりリアルな演出が可能です。