【已解决】嵌套动画的设置不保存到csd中?

我在场景csd文件里嵌入了一个node类型的csd,并设置了嵌套动画,但我保存重新打开设置就消失了。
我希望在游戏里加载场景时知道美术编辑时设置的动画,并自动播放,现在搞不了了。

你的studio版本多少?
每次都重新吗?
我使用2.2.8从没出现过这个情况,求详情。

我的是2.2.9的

选择的文件Node.csd是会保存的,但下面的两个参数 嵌套动画 类型、名称不会保存

你好,我在Win7上用v2.2.9版本测试没有出现此问题。
请问,你进行了什么特殊的操作吗?
你的系统版本是多少呢?

你好,我是Studio编辑器的测试人员,可不可以给一下QQ或者微信之类的联系方式?谢谢

私信你了,请查收

我知道问题在哪里了
参数数据是保存在父csd的InnerActionFrame里
如果父csd本身没有动画,然后加了一个嵌套动画,那么就不会保存它的参数

也就是如果使用了嵌入动画,要想时嵌入动画的数据得到保存,父csd必须至少有一帧
我觉得如果父csd没有动画(或者并没有制作涉及嵌入动画播放参数的关键帧)的时候应该直接将参数保存在AbstractNodeData 结点下啊

像现在明明设置了,却丢失了,好莫名其妙

别纠结这个了,你就是设置了也不会生效的,解析的时候压根没管这两参数。
if (classname == “ProjectNode”)
{
auto reader = ProjectNodeReader::getInstance();
auto projectNodeOptions = (ProjectNodeOptions*)options->data();
std::string filePath = projectNodeOptions->fileName()->c_str();
CCLOG(“filePath = %s”, filePath.c_str());

        cocostudio::timeline::ActionTimeline* action = nullptr;
        if (filePath != "" && FileUtils::getInstance()->isFileExist(filePath))
        {
            node = createNodeWithFlatBuffersFile(filePath, callback);
            action = cocostudio::timeline::ActionTimelineCache::getInstance()->createActionWithFlatBuffersFile(filePath);
        }
        else
        {
            node = Node::create();
        }
        reader->setPropsWithFlatBuffers(node, options->data());
        if (action)
        {
            action->setTimeSpeed(projectNodeOptions->innerActionSpeed());
            node->runAction(action);
            action->gotoFrameAndPause(0);      //循环神马的这里压根没管你,最后还是得自己手动播动画
        }
    }

我不会改代码啊,我现在是自己开发的导出插件在quick 2.2上用

楼主,最后是如何解决的,求告知,我也碰到这个问题…

你看的那块的代码仅仅是加载的代码, 嵌套动画帧是在播放的时候生效的, 具体可查看 CCFrame.h InnerActionFrame类。

楼主说的这个问题请参考一下一下几条规则:

  1. 子动画的播放仅仅通过嵌套动画帧触发。
  2. 嵌套的子文件的所有动画的生命周期不超过主动画的生命周期。
  3. 嵌套的子文件的动画的速率在嵌套式被同步为主动画的速率。