Constraint COMP

概要

Constraint COMPは、Actor COMPのセット内のボディの動きをコンストレイントするために使用されます。現在、これはいくつかの方法で行うことができます:point to point、hinge、slider。コンストレイント は、1つのボディにも、2つのボディの間にも適用できます。コンストレイントは、ボディ間のコネクティビティを生み出すため、または、動くことはできるがその動きを何らかの方法で制限する必要があるボディを生み出すために使用することができます。現実世界でのコンストレイントの例としては、電車、ドア、腕などがあります。
point to point コンストレイントが1つのボディに適用された場合、そのボディは3自由度(DOF)に制限されます。回転に関する3つの自由度(すなわち、3軸すべて)は維持されますが、移動に関する3つの自由度はすべて制約されます。もし、2つのボディの間に点から点へのコンストレイントが適用されると、2つのボディは同様に3自由度に拘束されます。ただし、3軸すべての移動(平行移動)が可能ですが、それはピボットポイントで連結された状態で行われます。この拘束方法を使うことで、ボディの連鎖を作ることができます。例えば、point to point コンストレイントを利用して、列車の車両が互いに接続されている状態をシミュレートすることができます。
hingeコンストレイントが1つのボディに適用された場合、そのボディは他のボディに対して1DOFに制限されます。その軸はConstraint COMPのAxisパラメータを使って定義されています。Point to Pointコンストレイントと同様に、ヒンジもまた、回転するピボットポイントとして機能します。2つのボディの間にhingeコンストレイントが適用されると、2つのボディは3自由度で動くことができますが、ピボットポイントで互いに接続された状態で動くことになります。しかし、2つのボディはそれぞれの軸の周りを回転することしかできません。hingeコンストレイントの最も簡単な例はドアです。
sliderコンストレイントが1つのボディに適用された場合、そのボディの移動/回転はその軸だけに制約されます。言い換えれば、ボディはその軸に沿って(どちらの方向にも)しか移動できず、その軸に沿って(どちらの方向にも)しか回転できません。
Bullet Dynamics、Bullet Solver COMP、Actor COMP、Force COMP、Impulse Force COMP、Bullet Solver CHOPの各章も参照して下さい。

パラメータ – Constraint ページ
Active / active

シミュレーションでの拘束のオン/オフを切り替えます。

Type / type

作成するコンストレイントのタイプを設定します。

  • Point To Point / p2p
  • Hinge / hinge
  • Slider / slider
Body to Body / bodytobody

Body to Bodyモードのオン/オフを切り替えます。Body to Bodyモードは、2つのボディ(Actor 1 BodiesとActor 2 Bodies)の間にコンストレイントを作成します。オフにすると、ボディを個別に拘束します。Actor 1 BodiesとActor 2 Bodiesに同じ数の参照ボディがある場合、このモードはそれぞれのペアの間にコンストレイントを作成します。
例えば、Actor 1 Bodiesに文字列「0 1 2」が含まれており、Actor 2 Bodiesに文字列「3 4 5」が含まれている場合、3つのコンストレイントが発生します。0->3, 1->4, 2->5.この2つのパラメータの間には1対1の関係があります。しかし、Actor 1 BodiesがActor 2 Bodiesよりも多くのボディを持っている場合、Actor 1 Bodiesの残りのマッチしていないボディは、代わりに個別にコンストレイントを受けることになります。例えば、Actor 1 Bodiesが文字列「0 1 2」を含み、Actor 2 Bodiesが文字列「3 4」を含む場合、ボディ間に2つのコンストレイントが作られます。ボディ2は個別にコンストレイントされます。Actor 2 BodiesがActor 1 Bodiesよりも多くのボディを含む場合、Actor 2 Bodies内のマッチしないボディは単に無視されます(それらに対してコンストレイントは作成されません)。

Collisions between Bodies / collisions

ボディとボディの間のコリジョン(衝突)をオン/オフします。

Display Constraint / dispcom

ビューアでのコンストレイントガイドの表示をオン・オフします。

Actor COMP / actor1

Actor COMPへの参照です。コンストレイントしたいActor COMPを指定します。

Actor Bodies / bodies1

コンストレイントするアクター1のボディのIDのリスト(正規表現)です。Actor COMPにN体のボディが含まれている場合、ボディIDはそのActor COMPの0からN-1までとなります。ボディの数はBullet Solver のCHOPを使って確認できます。

Pivot / pivot1

コンストレイントするピボット・ポイントを設定します。

  • X / pivot1x
  • Y / pivot1y
  • Z / pivot1z
Hinge Axis / axis1

ヒンジとなる軸を設定します。各値は通常、0から1の間の数値です。例えば、Z軸を中心に回転させたい場合は、0、0、1を設定します。

  • X / axis1x
  • Y / axis1y
  • Z / axis1z
Slider Rotation / sliderrot1

sliderコンストレイントの軸の回転を設定します。デフォルトでは、sliderコンストレイントはX軸に適用されます。

  • X / sliderrot1x
  • Y / sliderrot1y
  • Z / sliderrot1z
Actor COMP / actor2

Actor COMPへの参照です。コンストレイントしたいActor COMPを指定します。このActor COMPは、body to bodyモードがトグルされているときにのみ使用されます。

Actor Bodies / bodies2

コンストレイントするアクター2のボディのIDのリスト(正規表現)です。Actor COMPにN体のボディが含まれている場合、ボディIDはそのActor COMPの0からN-1までとなります。ボディの数はBullet Solver HOPを使って確認できます。

Pivot** / pivot2

コンストレイントするピボット・ポイントを設定します。

  • X / pivot2x
  • Y / pivot2y
  • Z / pivot2z
Hinge Axis / axis2

ヒンジとなる軸を設定します。各値は通常、0から1の間の数値です。例えば、Z軸を中心に回転させたい場合は、0、0、1を設定します。

  • X / axis2x
  • Y / axis2y
  • Z / axis2z
Slider Rotation / sliderrot2

sliderコンストレイントの軸の回転を設定します。デフォルトでは、sliderコンストレイントはX軸に適用されます。

  • X / sliderrot2x
  • Y / sliderrot2y
  • Z / sliderrot2z
パラメータ – Limits ページ
Enable Limits / enablelimits

コンストレイントの制限を有効にします。制限がなければ、ボディは360度フル回転したり、任意の距離を移動することができます。

Lower Linear Limit / lowerlinlim

制約に沿ったボディの移動の下限値を設定します。sliderコンストレイントでのみ使用されます。

Upper Linear Limit / upperlinlim

制約に沿ったボディの移動の上限値を設定します。sliderコンストレイントでのみ使用されます。

Lower Angular Limit / loweranglim

ボディの軸周りの回転の下限値を設定します。sliderコンストレイントやhingeコンストレイントで使用される。

Upper Angular Limit / upperanglim

ボディの軸周りの回転の上限値を設定します。sliderコンストレイントやhingeコンストレイントで使用される。

パラメータ – Extensions ページ

COMP共通- Extensions ページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Common ページの章を参照して下さい。