シンプルなマルチサイクリンダースネークボディを作りました。各ボディ間に6DOFConstraintがあり、回転の上限と下限を増減して角度を変更することで角度を制御します。
水平軸を中心とした回転は問題なく機能しますが、垂直軸を中心に回転するときに約1.05radの角度に達すると、2つの物体が激しく振動します。
画面キャプチャはここにあります。その説明では、私が行っていることを詳しく説明しています。
http://www.youtube.com/watch?v=OQu-YyxLvbw
次のスクリーンキャプチャは、衝突の問題が発生する可能性を排除するために、制約が設定されたまま直線的に分離されたヘビの「頭」を示しています。
http://www.youtube.com/watch?v=6wso6HDjqXA
私は問題を解決するために次のテクニックを試しましたが、どれもうまくいきませんでした:
- 反発力(弾力性)を非常に低く設定する–同じことが起こります
- 線形減衰と角度減衰の両方を0〜1の値の範囲に設定します
–同じことが発生します - 1.05より大きい角度から開始するように設定します–同じことが起こります。
- 角度を1.05を超えて増やし続けて、落ち着くかどうかを確認します。反対のことが起こり、さらに激しくなります。
- シングルジョイントで試してください–同じことが起こります
- 深い浸透をチェックします–存在しません
- 衝突の問題を除外するために2つのボディを直線的に分離しますが、ジョイントは同じままにします。同じことが発生します。
- 地面の相互作用を取り除くために、ヘビ(頭以外のすべての部分の質量= 0f)を地面に浮かせます-同じことが起こります
- ロック位置にある間、重力をオフにします–動作は1.43radまで遅れます
- jBulletでは小さなアイテムでレンダリングの問題が発生することが知られているため、ヘビのサイズ(スケール)を大きくします。変更はありません。
- 体をカプセルの形に変えてみました–変化なし