メインコンテンツまでスキップ

Joint

Jointコンポーネントは、2つのリジッドボディを拘束します。または、1つのリジッドボディをワールド空間上の固定点に拘束します。

Alpha

Jointコンポーネントはアルファ版のため、その挙動やAPIは変わる可能性があります。エディターのインスペクターはEditor 2.32以降で利用できます。

前提条件

JointコンポーネントはAmmo物理バックエンドで動作するため、機能させるには次の2つを用意しておく必要があります。

  • プロジェクトにAmmoをインポートしておく必要があります。 インポートするまで、コンポーネントパネルには Ammo module not found という警告とインポートボタンが表示されます。追加方法は物理演算を参照してください。
  • 参照する両方のエンティティにRigid Bodyコンポーネントが必要です。 さらに、それぞれに形状を与えるCollisionコンポーネントも必要です。

Entity B を空のままにすると、Entity A を2つ目のボディではなく、ワールド空間上の固定点に拘束します。

ジョイントのタイプ

Type では、fixed、ball、hinge、slider、6自由度のいずれかのジョイントを選択します。インスペクターのオプションは FixedBallHingeSlider6DoF です。

タイプによってインスペクターに表示される残りのフィールドが決まるため、タイプを切り替えるとパネルの内容が変わります。

タイプ追加で表示されるフィールド
Fixedなし — 常に表示されるプロパティのみです。
BallEnable Limits、および有効な場合はスイングとツイストの制限。
HingeEnable Limits、Limits、Motor Speed、Max Motor Force。
SliderEnable Limits、Limits、Motor Speed、Max Motor Force。
6DoF軸ごとのLinearおよびAngularのモーション、制限、スプリングのフィールド。

板をジョイントで次々につないだ連鎖を、Editorから起動したものです。

プロパティ

常に表示されるプロパティ

プロパティ説明
Typefixed、ball、hinge、slider、6自由度のいずれかのジョイントを選択します。
Entity A1つ目の拘束対象のエンティティ。Rigid Bodyコンポーネントが必要です。
Entity B2つ目の拘束対象のエンティティ。空のままにすると、Entity Aをワールド空間に拘束します。
Enable Collision拘束された2つのボディが互いに衝突することを許可します。
Break Impulseジョイントが壊れるインパルスのしきい値。空のままにすると壊れないジョイントになります。

Limits

Enable Limits は、Ball、Hinge、Sliderのタイプで表示されます。

プロパティ説明
Enable Limits設定済みのhinge、slider、ballジョイントの制限を有効にします。

HingeとSlider

Motor SpeedMax Motor ForceEnable Limits に依存しません。

プロパティ説明
Limitshingeの角度、またはsliderの直線移動の下限と上限。Enable Limitsが有効な場合のみ表示されます。
Motor Speedhingeの目標角速度、またはsliderの目標速度。
Max Motor Forceモーターの最大の力またはトルク。0に設定するとモーターが無効になります。

Ball

Enable Limits が有効な場合のみ表示されます。

プロパティ説明
Swing Limit YballジョイントのY軸方向への最大スイング角度(度)。
Swing Limit ZballジョイントのZ軸方向への最大スイング角度(度)。
Twist LimitballジョイントのX軸まわりの最大ツイスト角度(度)。

6DoF

6自由度のタイプでは、上記のフィールドが軸ごとのグリッド、つまりLinearとAngularそれぞれのX、Y、Zに置き換わります。

プロパティ説明
Linear Motion X / Y / Zその軸の直線運動をlocked、limited、freeのいずれにするかを選択します。
Linear Limits X / Y / Zその軸の直線運動をlimitedにした場合に使用する下限と上限。
Linear StiffnessX、Y、Z軸の直線スプリングの剛性。
Linear DampingX、Y、Z軸の直線スプリングの減衰。
Linear EquilibriumX、Y、Z軸の直線スプリングの静止位置。
Angular Motion X / Y / Zその軸の回転運動をlocked、limited、freeのいずれにするかを選択します。
Angular Limits X / Y / Zその軸の回転運動をlimitedにした場合に使用する下限と上限。
Angular StiffnessX、Y、Z軸まわりの回転スプリングの剛性。
Angular DampingX、Y、Z軸まわりの回転スプリングの減衰。
Angular EquilibriumX、Y、Z軸まわりの回転スプリングの静止角度。

Limits フィールドは、対応する Motion フィールドが Limited に設定されたときにのみ表示されます。

関連項目

スクリプトインターフェース

Scriptコンポーネントを使用してJointコンポーネントのプロパティを制御できます。Jointコンポーネントのスクリプトインターフェースはこちらです。

スクリプトからジョイントを変更する際に知っておくとよい動作が2つあります。

  • type を設定すると、拘束が破棄されて再作成され、破損フラグもクリアされます。ただし、すでに離れてしまったボディを引き戻すわけではありません。
  • swingLimitY などの制限を設定すると、拘束の制限更新が呼び出されます。そのため、アプリケーションの実行中でも制限をライブで編集できます。