3D模型文件fbx包含多个静态模型时cocos2dx貌似处理得不好?

我不知道其他如3dsMax导出来的模型是什么情况,我是用blender进行建模的,我看了下c3t文件里面,子节点的位置和blender里面的数据是一致的,都是相对于父节点的。可是放入cocos2dx以后发现子节点的位置变成不是相对父节点的了,这样显示出来就是模型子节点的位置乱了。

这应该不是模型本身的问题,因为这个模型放入unity是没有问题的。

我这个例子里的车子是由两个独立的静态模型组成,车身是子节点,轮胎是父亲节点。轮胎的位置无论是在blender还是在cocos2dx里面都是正常的,不正常的只是车身的位置在cocos2dx里往下移了一段距离,这跟在blender里面解除轮胎和车身的父子关系后的位置是一样,也就是说在cocos2dx里面作为子节点的车身参考的坐标系不是父节点的内部坐标系,而是和父节点(也就是轮胎)共用同一个坐标系的。

为什么是这样的呢,子节点不是应该使用父节点的坐标系更好吗?

还有个问题是:如果c3b模型文件包含两个静态模型的时候Sprite3D.getContentSize获取到的值是错误的,另外用getAABB获取到的值也是错误的。
AABB ab = car1->getAABB();
CCLOG(“car width:%f car height:%f”,ab._max.x - ab._min.x, ab._max.z - ab._min.z);
输出是:car width:199998.000000 car height:199998.000000 这么大的值,就算是场景里面最大的物体都没有这么大,这是什么情况?

今天是不是上班了?

你的用的哪个版本的cocos2d-x?

用的cocos2d-x 3.4 final

您好,我在3.7下帮您看了一下,AABB的计算是没有问题的,至于您的那个车轮上移的原因,你可以看看您的c3t文件末尾的node部分,您的两个子网格是通过一个transform来控制其偏移量的,但是这个transform目前而言并没有被引擎所支持,您需要对该子mesh(也就是那个轮子)进行变换的重置,具体的方法请您参照这篇教程的http://www.cocoachina.com/bbs/read.php?tid-236693.html 第十三条内容,来修改

谢谢帮助。
“这个transform目前而言并没有被引擎所支持”,未来有计划支持吗?感觉如果支持这个将方便很多。
还有,貌似贴图的混合模式目前也不支持。
感觉cocos2d-x 3D功能还有很长的路要走,加油!

有,正在改