- 用3dmax制作一个带模型动作的文件,然后导出带动作的fbx文件。
- 用fbx-convert转换成c3t和c3b文件(分别为1.c3t和1.c3b)。
- 将该俩文件和贴图文件都放到资源目录下。
- 程序中调用
// std::string fileName = “Sprite3DTest/tortoise.c3b”;
std::string fileName = “Sprite3DTest/1.c3t”;
auto sprite = Sprite3D::create(fileName);
sprite->setScale(0.1f);
auto s = Director::getInstance()->getWinSize();
sprite->setPosition(Vec2(s.width * 4.f / 5.f, s.height / 2.f));
addChild(sprite);
_sprite = sprite;
auto animation = Animation3D::create(fileName);
if (animation)
{
//auto animate = Animate3D::create(animation, 0.f, 1.933f);
auto animate = Animate3D::create(animation, 0.f, 0.48f);
sprite->runAction(RepeatForever::create(animate));
在runAction出错,具体出错在CCAnimate3D.cpp 文件中,第92行, CCASSERT(sprite && sprite->getSkin() && _animation, “Animate3D apply to Sprite3D only”); 跟踪了原因skin为空。
请问一下,是什么原因,是3dmax那里设置有问题,还是导出fbx设置有问题,还是程序的问题?求解。