デフォルトでは、Panda3DのBulletGenericConstraintは正のX軸に沿って配置されています。setAngularLimitメソッドは、X、Y、またはZ軸に沿ってのみ設定するために使用できます。BulletGenericConstraintによってどの軸にも直交していない2つのボディを結合するにはどうすればよいですか?
つまり、BulletGenericConstraintを、X、Y、またはZ軸に沿っていない任意のベクトルに沿った方向に向けるにはどうすればよいですか?
デフォルトでは、Panda3DのBulletGenericConstraintは正のX軸に沿って配置されています。setAngularLimitメソッドは、X、Y、またはZ軸に沿ってのみ設定するために使用できます。BulletGenericConstraintによってどの軸にも直交していない2つのボディを結合するにはどうすればよいですか?
つまり、BulletGenericConstraintを、X、Y、またはZ軸に沿っていない任意のベクトルに沿った方向に向けるにはどうすればよいですか?
BulletGenericConstraintは、それぞれTransformStateオブジェクトである2つの「frame」引数を取ります。これらを使用して、拘束の影響を受ける2つのボディ間の相対回転を指定できると思います。
TransformStateインターフェースは扱いが少し難しいですが、慣れれば簡単に使用できます。変換状態は、それらを不変にする特別な種類のキャッシュを使用します。実行するすべてのsetX操作はオブジェクトを変更しませんが、代わりに、要求された操作が適用された新しいTransformStateオブジェクトを返します。
getTransform()
、、、getNetTransform()
またはを使用して、ノードにすでに適用されているTransformStateオブジェクトを使用するのがおそらく最も簡単getTransform(otherNode)
です。または、平行移動と一連のHPR角度からTransformStateオブジェクトを作成できます。
ts = TransformState.makePosHpr(pos, hpr)