剛体の中心 (原点) は質量の中心と同じであるため、物理シミュレーションにとって重要な特性です。必要に応じてを使用してこの中心を「移動」することもできbtCompoundShape
ますが、これは物理シミュレーションにも影響を与えるため、満足のいく結果が得られない可能性があります。
または、物理的起源と視覚的起源の違いを で補正することもできますbtMotionState
。たとえば、指定された値にオフセットを含むインスタンスを掛けて設定ModelInstance#transform
します (例を使用)。worldTransform
Matrix4
Matrix4#translate
ただし、これはおそらく必要以上に複雑になっているだけです。本当の問題は、なぜボディと比較してモデルの中心をオフセットしたいのかということです。たとえば、2 番目の画像では、モデルの中心が最初の画像と同じように見えます。を移動しただけで、基本的にメンバーNode
に初期値を提供することを示しています。これは、次ModelInstance#transform
のようにインスタンス化することで実現できます。ModelInstance
modelInstance = new ModelInstance(model, "coneNode", true);
"coneNode"
モデリング アプリケーションで作成したノードの名前に置き換えます。最後の ( ) 引数は、モデリング アプリケーションで指定した変換にメンバーをtrue
設定するように ModelInstance に指示します。transform
必要に応じて、modelInstance.transform.translate(x, y, z);
またはを呼び出して、この変換に対してmodelInstance.transform.trn(x, y, z);
modelInstance を移動できます。
これに関するより詳細な説明は、http: //blog.xoppa.com/loading-a-scene-with-libgdx/にあります。
これは、ノード変換をサポートするファイル形式 (ではなくなど)から作成された.g3db
または.g3dj
ファイル (たとえば を使用) を使用している場合にのみ機能することに注意してください。fbx-conv
.fbx
.obj