'09/05/31

┼ 物と物を接続する ( Constraint )

概要

  • Constraint のパラメータについて記述し、使い方も提案します。


◇ 始めに

Constraint の使い方の説明は既にCrysis Sandbox2 In-Deep [翻訳+解説] : S2E-021_[Video] Constraint Entitiesで必要充分になされています。

なのでここでは、その他の事をメモ代わりに記述しておきます。

※ Constraint の場所 : Entity > Physics > Constraint


◇ パラメータについて


■ damping
運動エネルギーの減衰量です。
オブジェクトの回転に粘りがでます。

■ max_bend_torque
Limits で設定した値以上に回転させようとした場合の耐久力です。
360°回転する様に設定している場合は壊れない事になります。

■ max_pull_force
遠心力などの引っ張りに対する耐久力です。
基本的に回転軸に垂直な力にしか影響しない様ですが、例外として下方向 ( World 座標軸の -Z 方向 ) にも影響している様子です。

■ NoSelfCollisions
Constraint で接続する2つのオブジェクトがぶつかり合うかどうかの設定です。

■ UseEntityFrame
XYZ の軸を Constraint の物を使うか、オブジェクトの物を使うかの設定です。

通常はチェックを Off にして Constraint の X 軸を使用すると思います。
では 「 オブジェクトの X 軸 」 を使うとすると、接続されるオブジェクト双方に軸が有る訳ですが、2つとも異なる方向へ向いている時はどうなるか…。
  • どちらかが固定されていれば、自由な方の軸が使用される。
  • どちらも自由であれば、重さのある方の軸が使用される。
  • どちらも重さがあれば、より軽いオブジェクトの軸が使用される。
  • どちらも同じ重さであれば、より若いオブジェクトの軸が使用される。
みたいです。

■ Limits
回転可能な角度を入力します。
  • 現在のオブジェクトの位置が 0°で、回転軸に向かって左回転が正の角度、右回転が負の角度になります。(下の図参照)
  • 現在のオブジェクトの位置が 0°ですので、必然的に max ( 最大値 ) に 0°以上、 min ( 最小値 ) に 0°以下の値を入れる事になります。
    ( これを前提とした例外が既成オブジェクトの中に存在する様子です。 )
  • max と min が同じ値にならない様にしましょう。次の項目の使い方の様に、回転させたくない場合でも max に 0.01 などの何らかの値を入れておく様にします。

さらに注意点として、以下が挙げられます。
  • X 軸を 180°に設定すると、設定した角度を超えて 360°回転してしまいます。正確に 180°が欲しい場合は、175°と -5°を設定すると良いかもしれません。
  • yz_max の最大値は 90°です。それ以上に上げると逆に範囲が狭まります。
  • yz_min はほとんど意味が無い様子です。


◇ その他の使い方について

Constraint の使い道は回転軸だけではありません。
XSI Mod Tool で言う所の Joint Node 的な役割を果たします。つまり、Sandbox2 上で、破壊可能オブジェクトを手軽に作成する事が出来るのです。

鉄骨どうしを Constraint でつないで Sidewalk の支柱にしてみました。



■ 材料など

根元の鉄骨
  • Brush オブジェクトの smallbeam_i_notrim_100x
先の方の鉄骨
  • BasicEntitysmallbeam_i_notrim_200x の Model を適用。
サイドウォーク

その他は下の画像から

※ sidewalk が Constraint に触れない様にして下さい。
※ Constraint の軸の向きに注意して下さい。( Local 表示です。 )
※グリッドを使うと綺麗に仕上がります。


◇ 最後に

まだまだ面白い事が出来そうですので、出来ましたら随時報告します。


◇ 関連項目

■ 使用例について

■ BasicEntityについて


◇ 参考資料

■ Constraint に関して







┼ ┼ 











記事メニュー
目安箱バナー