Joint (ジョイント) は、Rigidbody (リジッドボディ) を他の Rigidbody または空間の固定点に接続します。ジョイントはリジッドボディを動かす力を加え、ジョイントの制限はその動きを制限します。ジョイントはリジッドボディに以下の自由度を与えます。
Unity では以下のジョイントのコンポーネントが用意されており、Rigidbody コンポーネントにさまざまな力と制限を加えることで、それらのボディにさまざまな動きを与えます。
プロパティ | 機能 |
---|---|
Character Joint | 股関節や肩のようなボールとソケットの関節を模倣します。リジッドボディの動きをすべての直線の自由度に沿って拘束し、すべての角度の自由度を可能にします。Character Joint に取り付けられた Rigidbody は、各軸を中心に動き、共通の原点を中心にピボットします。 |
Configurable Joint | ラグドールのような、あらゆる骨格のジョイントを模倣します。このジョイントを設定することで、任意の自由度でリジッドボディの動きを強制したり制限したりすることができます。 |
Fixed Joint | アタッチ先のリジッドボディの動きに追従するように、リジッドボディの動きを制限します。これは、互いに簡単に分離するリジッドボディが必要な場合や、Transform の階層で親子化せずに 2 つのリジッドボディの動きを連結したい場合に便利です。 |
Hinge Joint | リジッドボディを、他のリジッドボディや空間上の点に、共有された原点で取り付け、その原点の特定の軸を中心に回転させることができます。ドアや指の関節を模倣するのに便利です。 |
Spring Joint | リジッドボディを互いに離しておき、その間の距離をわずかに引き伸ばします。スプリングは、2 つのアンカーポイントを正確に同じ位置に引き寄せようとする弾性体 (バネ) のような役割を果たします。 |
2D のジョイントには、名前に 2D が付いています (例えば、Hinge Joint 2D)。2D ジョイントの概要については、Joints 2D のドキュメントを参照してください。
ジョイントにも特定のエフェクトで利用可能なオプションがあります。例えば、Rigidbody に一定限度以上の力が加わることでジョイントが壊れるようにも設定することができます。ジョイントの中には、接続する リジッドボディの間に発生する 駆動力 で、リジッドボディを自動的に動かすものもあります。
ノート: 産業用アプリケーションを念頭にキネマティックチェーンを構築したい場合、例えば、リアルな物理挙動を持つロボットアームをシミュレートしたい場合は、ここで説明する通常のジョイントの代わりに、物理的連結 を使用する必要があります。