查看: 4522|回复: 9

关于多个fbx模型在osg中的控制

[复制链接]

该用户从未签到

发表于 2011-7-9 12:42:03 | 显示全部楼层 |阅读模式
各位大牛~

最近,小弟在各位的帮助下实现了,在osg场景中添加显示单一个fbx模型,并使其运动。
(得益于对osganimationviewer)

但是我现在遇到的问题是:当加载多个fbx文件时时,只能是一个fbx运动,而其他的没有反应。
其实,我想实现,多个fbx在场景中同时运动。
所以这里恳请各位大牛给些指导意见,先行谢过~

该用户从未签到

发表于 2011-7-11 08:29:38 | 显示全部楼层
我想不会有这个问题,可能是您自己的某些代码有问题

该用户从未签到

 楼主| 发表于 2011-7-11 09:43:55 | 显示全部楼层
回复 2# array

谢谢锐哥的回复。


您说的意思是指:

1.用3dmax做成多个人物的动画,来导出一个fbx文件,加入osg中。

2.还是,每个人物动画分别导出一个fbx文件,分别加入在osg中。

这两种方法都可行么?
我想使用第二种方法,但是没有控制成功,但是没有试验成功。
还请您跟大牛们给些指导~

该用户从未签到

 楼主| 发表于 2011-7-11 11:18:05 | 显示全部楼层
我想不会有这个问题,可能是您自己的某些代码有问题
array 发表于 2011-7-11 08:29



锐哥,这是我参考osganimationviewer,写的一些代码。我的想法是让两个人物play各自的动作。
但是,运行后只有一个人物在运动。还请您指教:
  1.         osg::Group * walkInSitMale = dynamic_cast<osg::Group*>(osgDB::readNodeFile("f:\\fbxmodels\\m_fight.fbx"));
  2.         root->addChild(setModleWorldPosition(walkInSitMale,16.5,1.7,0.2,0.01,90.0,0.0,-135.0));
  3.         osg::Group * danceFemale = dynamic_cast<osg::Group*>(osgDB::readNodeFile("f:\\fbxmodels\\w_dance.fbx"));
  4.         root->addChild(setModleWorldPosition(danceFemale,10.0,1.5,0.2,0.01,90.0,0.0,0.0));
  5.         AnimationManagerFinder finder,finder1;
  6.         walkInSitMale->accept(finder);
  7.         danceFemale->accept(finder1);
  8.         if (finder._am.valid()) {
  9.                 walkInSitMale->setUpdateCallback(finder._am.get());
  10.                 //AnimtkViewerModelController::setModel(finder._am.get());
  11.                 AnimtkViewerModelController &controller1 = AnimtkViewerModelController::instance();
  12.                 controller1.setModel(finder._am.get());
  13.                 controller1.play();
  14.         }
  15.         if (finder1._am.valid())
  16.         {
  17.                 danceFemale->setUpdateCallback(finder1._am.get());
  18.                 AnimtkViewerModelController &controller2 = AnimtkViewerModelController::instance();
  19.                 controller2.setModel(finder1._am.get());
  20.                 controller2.play();
  21.         }
复制代码

该用户从未签到

发表于 2011-7-11 12:46:49 | 显示全部楼层
还是,每个人物动画分别导出一个fbx文件,分别加入在osg中。
我想这不会有什么问题,看看您自己写的Finder类会不会有逻辑错误

该用户从未签到

 楼主| 发表于 2011-7-11 16:46:25 | 显示全部楼层
回复 5# array


谢谢锐哥的提醒,我已经找到错误的地方,是那个Controller中使用了static的缘故。
再次对您的帮助表示感谢。


将简陋的代码给大家分享下。 code.rar (1.68 KB, 下载次数: 377)

该用户从未签到

发表于 2013-5-7 09:51:09 | 显示全部楼层
非常感谢这位朋友,我也遇到同样的问题,晕。

该用户从未签到

发表于 2015-1-13 20:41:07 | 显示全部楼层
感谢前辈的指教
  • TA的每日心情
    开心
    2020-1-14 14:24
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-3-12 13:58:02 | 显示全部楼层
    受启发了  谢谢

    该用户从未签到

    发表于 2016-4-12 09:45:11 | 显示全部楼层
    谢谢各位版主及楼主!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

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

    联系我们

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