Android 三维父子关系libgdx
我在3d(Android 三维父子关系libgdx,android,3d,libgdx,Android,3d,Libgdx,我在3d(.g3dj文件)中有两条手臂彼此相连,就像父子关系一样。我的要求是,当父手臂旋转/移动时,子手臂也应旋转/移动,同时在一个点连接到父手臂。我能够做到这一点 在给定点连接到其父手臂时,子手臂也可以独立旋转,在这种情况下,父手臂本身不应移动。我被困在下面的情况中: 当父对象移动/旋转时,子对象也移动/旋转。在 如果子对象旋转360度,则父对象移动/旋转的特定角度 度,则看不到变形 如果子对象旋转/移动,则其角度和方向将更改。在这种情况下,当进一步旋转/移动父对象时,子对象的位置会从父对象扭
.g3dj文件
)中有两条手臂彼此相连,就像父子关系一样。我的要求是,当父手臂旋转/移动时,子手臂也应旋转/移动,同时在一个点连接到父手臂。我能够做到这一点
在给定点连接到其父手臂时,子手臂也可以独立旋转,在这种情况下,父手臂本身不应移动。我被困在下面的情况中:
如果子对象旋转360度,则父对象移动/旋转的特定角度 度,则看不到变形
private void createBaseArm1(){
// Now load the model by name from asset folder
baseArm1 = modelLoader.loadModel(Gdx.files.getFileHandle(armPathWithName + ".g3dj", Files.FileType.Internal));
//getting boundingBox for model to retrieve its co-ordinates
baseArm1.calculateBoundingBox(baseBoundingBox);
baseArm1PositionX = 0f;
baseArm1PositionY = -3.0f;
baseArm1PositionZ = 1.0f;
baseArm1PositionVector = new Vector3(baseArm1PositionX, baseArm1PositionY, baseArm1PositionZ);
baseArm1Instance = new ModelInstance(baseArm1, baseArm1PositionVector);
baseArm1Instance.transform.set(baseArm1PositionVector, baseArm1Rotation);
baseArm1TopPositionY = baseArm1PositionY + baseBoundingBox.getHeight();
}
private void createArm2(){
arm2Vector = new Vector3(baseArm1PositionX,baseArm1TopPositionY ,baseArm1PositionZ);
armModel2 = modelLoader.loadModel(Gdx.files.getFileHandle("arm2.g3dj", Files.FileType.Internal));
arm2Instance = new ModelInstance(armModel2, arm2Vector);
arm2Instance.transform.set(arm2Vector, arm2Rotation);
}
public void moveBaseArm1() {
baseArm1Instance.transform.translate(0, 0, 0).rotate(0, 0, 1, 10).translate(0, 0, 0);
arm2Instance.transform
.translate(-0, -baseBoundingBox.getHeight(), -baseBoundingBox.getDepth())
.rotate(0, 0, 1, 10)
.translate(0, baseBoundingBox.getHeight(), baseBoundingBox.getDepth());
}
public void moveArm2() {
arm2Instance.transform.translate(0,0,0).rotate(0, 0, 1, 10).translate(0, 0, 0);
}
这是两个
.g3dj文件
->为什么要使用两个独立的模型而不是一个?您使用哪个建模应用程序创建模型?每个模型中的节点结构如何?也许考虑考虑G3DJ文件的内容。@ Xoppa,我几乎不知道如何使用一个模型而不是两个模型。我已经阅读了libgdx教程中的一个模型,但无法正确理解它。根据我的分析,我使用了两个模型。我还使用blender.exe
导出.g3dj
文件。请指定什么是节点结构
。我已经给出了g3dj文件的url。节点结构允许您在模型中创建父子关系。您可以在单个模型中拥有任意多个节点,并且每个节点都可以独立变换,从而也可以变换其所有子节点。另见:。另外,请务必阅读我的3D教程:,它们还介绍了节点以及它们在libgdx中的工作方式。我不知道blender,但它是一个基本的建模概念,所以在blender中使用它应该不难。谢谢。我会调查的,Xoppa是个传奇。你应该知道。