コネクタ

コネクタを用いると、リジッドボディソフトボディの移動/回転を制限できます。したがって、コネクタは、ダイナミクスボディタグを割り当て済みのオブジェクトにしか用いることができません。

もしコネクタがないと、リジッドボディ/ソフトボディには、力や衝突によってしか影響を及ぼすことができなくなります。たとえば、ヒンジコネクタを用いれば難なく処理できるであろう、単純なヒンジ機能のシミュレーションが非常に困難になります。

使用可能なコネクタの例。矢印は、オブジェクトの移動/回転可能な方向を示します。この図に示されていない動作タイプ (平面ボックス、およびホイールサスペンション) は、基本的にはここに示した動作を組み合わせたものです。

各コネクタは、その移動/回転動作が簡単に識別できるような状態でビューポートに表示されます。機能しないコネクタ (ダイナミクスオプションがオフの場合、ダイナミクスボディタグが、最低1つのオブジェクトに割り当てられていない場合やオブジェクトが影響受けているか怪しい場合) は、赤色で表示されます。

コネクタの作成方法

  1. メインメニュー (シミュレート | ダイナミクス | コネクタ) からコネクタを選択します。
  2. ビューポートで目的の位置にコネクタを移動/回転させます。(ここでヒンジをスライダの軸に載せるか、またはそれと平行に配置します。)
  3. コネクタのパラメータ設定画面 (オブジェクトタブ) のオブジェクトAおよびオブジェクトBの各フィールドを通じて、各オブジェクトにダイナミクスボディタグを割り当てます。

コネクタの位置

コネクタの位置および方向は重要です。

これらの設定内容により、移動/回転軸が決まります。たとえば、上図のうちヒンジコネクタに取り付けられた各球体の回転方向は、ヒンジの位置によって決まります。これと同様のことは、スライダコネクタにも当てはまります。その位置により、球体の移動方向が決まるからです。

ヒンジは、たいてい回転軸に沿って配置されます。下図に示す単純なシーンには、円柱および立方体が2つずつ含まれており、いずれにもダイナミクスボディタグが割り当てられています。

これら4つのプリミティブを基に、機能する車を作成します。

コネクタがないと、これらのエレメントは (たまたま衝突でも起こらない限り) 相互に作用することがなく、車はばらばらになってしまいます。機能する車を作成するには、ヒンジコネクタが4つ必要です。これにより、2つの円柱内にある各回転軸に2つの立方体を接続します。そこで、4つのヒンジコネクタを作成します。うち2つは一方の円柱の回転軸に、残りの2つはもう一方の円柱の回転軸にそれぞれ取り付けます。(このとき、転写機能を用いると大変便利です。) コネクタは、回転軸沿いのどこに配置しても構いません。(軸に応じて動きますが、機能自体には影響しません。) ただし、構成のためには、目的の位置に配置する方が良いでしょう。ここでは、立方体と円柱とを接続する位置に配置します。その後、コネクタの設定画面 (オブジェクトタブ) を通じ、回転に対応する箇所で立方体と円柱とを関連付ける必要があります (下図)。

以上で、(傾斜面を下ったりすることのできる) 機能する車はほぼ完成しました。この車は回転する円柱を伴い、全体を1つのオブジェクトとして、4つのオブジェクトで構成されています。これでこの車は、駆動部 (モーターなど) と組み合わせれば、傾斜面を上ることができます。

コネクタの組み合わせ

2つのコネクタ同士を組み合わせることもできます。下図の例は、ヒンジコネクタとスライダコネクタとを組み合わせたものです。

ヒンジコネクタスライダコネクタとの組み合わせ

この例では、下にあるスプリング (この静止状態はランダムに変化します) によって、さおが空中に投げ上げられます。スライダコネクタの働きにより、さおは必ず垂直方向に動きます。さらに、このさおを回転させるために、ヒンジコネクタ (コネクタ.1) とも関連付けました。以上の操作だけで、この永久機関を作成できます。

計算上の制約により、2つの直線型コネクタ (スライダなど) 同士、または2つの回転型コネクタ (ヒンジ、カルダン、ラグドール、ボールとソケットなど) 同士を直接組み合わせることはできません。

通常は、あまり多くのコネクタを組み合わせないようにしてください。でないと、組み上がった構造が非常に複雑なものになりかねません。通常のシーンにおいては、可動部は全てモデル化されるので、個々のコネクタは目的の動作の作成に用いれば事足ります。たとえば車のホイールは、車軸に取り付けられ、これを中心に回転します。この動作を実現するには、単純なヒンジコネクタさえあれば十分です。

コネクタに関連するオブジェクトのコピー

ダイナミクスシステム一式(コネクタ、スプリング、モーター、およびこれらに関連するエレメントを含む)は、コピーできます。そのためには、同じヌルオブジェクトの中に全てのエレメントを配置し、これをジェネレータの子オブジェクトにしてください。

上図のうち左側の例は、モーターを備えたです。この構造全体は、エミッタの子オブジェクトとなっています。このエミッタの下で、これらの車は解放されており、それぞれ別々に動かすことができます。一方、上図のうち右側の例は作業コンベアです。これは、クローナーオブジェクトを用いて、上記と同じくモーター駆動式の単純な円柱のクローンを作成し、全体的に湾曲した状態に並べたものです。

ダイナミクスの影響を受けない衝突オブジェクト(左の例における平面、右の例における軌道など)は、簡略化された形状ではなく実際の形状が衝突に用いられるよう、必ず適切な形状(たいていは形状 固定メッシュ)にしてください。

コネクタによって得られる結果が不正確?

コネクタによって得られる結果が不正確と感じられる場合は、精度を制御するためのダイナミクス計算パラメータをチェックしてください。うち、最も重要なのは、フレームあたりのステップ数ステップにおけるソルバーの最大くり返し数およびエラーしきい値です。

不正確な結果をもたらす原因としては、オブジェクト同士の質量の差が大きいことも考えられます。(これは、ダイナミクスボディタグの衝突判定タブで形状の値がオフに設定されている場合にも起こります。)これは、物理的シミュレーションでは通常好ましくありません。