查看: 1578|回复: 7

osgAnimation::BasicAnimationManager播放多个动画

[复制链接]

该用户从未签到

发表于 2013-5-6 17:36:36 | 显示全部楼层 |阅读模式
趁着array在,赶快提问个问题。
--------------------------------------
我已经导出fbx并且在osg中运行了。
现在遇到个问题,当添加多个动画时,只有一个会动。
后来我把osgAnimation::BasicAnimationManager变成类变量。
找到每个动画的manager然后,找到animation
然后注册给m_manager.registr(anim);
root.setCallback(m_manager);
结果动画倒是全动了,但是动作乱了。

该用户从未签到

 楼主| 发表于 2013-5-6 17:38:24 | 显示全部楼层
我模仿osgAnimationViewer读入一个节点。
找到Manager,然后又读入一个,又找到个Manager
但是
root.setUpdateCallback(manager0);
root.setUpdateCallback(manager1);
这样是不行的吧,一个场景是不是只能有一个Manager?

该用户从未签到

 楼主| 发表于 2013-5-7 08:35:29 | 显示全部楼层
@liuzhiyu123
呼叫版主

该用户从未签到

发表于 2013-5-7 08:48:09 | 显示全部楼层
没看明白您说的是什么

该用户从未签到

 楼主| 发表于 2013-5-7 09:32:52 | 显示全部楼层
liuzhiyu123 发表于 2013-5-7 08:48
没看明白您说的是什么

osg::node node0=osgDB::readNode("000.fbx");
osg::node node1=osgDB::readNode("001.fbx");

node0.accept(finder);
manager0 = finder.manager;
root.setUpdateCallback(manager0);

node1.accept(finder);
manager1 = finder.manager;
root.setUpdateCallback(manager1);

两个动画管理器,这样的话只有一个动画会播放。

m_manager.registerAnimation(manager0.anim);
m_manager.registerAnimation(manager1.anim);
这样的话,动画都动了,但是动作乱了。

该用户从未签到

发表于 2013-5-7 09:43:11 | 显示全部楼层
  1. node0.accept(finder);
  2. manager0 = finder.manager;
  3. root.setUpdateCallback(manager0);

  4. node1.accept(finder);
  5. manager1 = finder.manager;
  6. root.setUpdateCallback(manager1);
复制代码
这个为什么要这样做? 这样肯定是一个在运行,至少也是addUpdateCallback

该用户从未签到

 楼主| 发表于 2013-5-7 09:53:56 | 显示全部楼层
liuzhiyu123 发表于 2013-5-7 09:43
这个为什么要这样做? 这样肯定是一个在运行,至少也是addUpdateCallback

呵呵,谢谢。
另外看到这个帖子:
http://bbs.osgchina.org/forum.php?mod=viewthread&tid=5881
提醒一下版主,以前我是做网站开发的。
咱们的url太不利搜索。
可以研究一下怎样改成:
http:://bbs.osgchina.org/thread_123_456.php
这样,叫路径定向吧。

该用户从未签到

发表于 2013-5-7 09:58:53 | 显示全部楼层
gisroad 发表于 2013-5-7 09:53
呵呵,谢谢。
另外看到这个帖子:
http://bbs.osgchina.org/forum.php?mod=viewthread&tid=5881

呵呵,这个建议可以跟杨仔提出,我对网站不太清楚,也没有那么大的权限
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表