查看: 1731|回复: 10

osgAnimation的变动问题

[复制链接]

该用户从未签到

发表于 2010-12-6 11:35:35 | 显示全部楼层 |阅读模式
原来osgAnimation中的UpdateCallback头文件没有了;因此,osgAnimation::UpateTransform();这个函数也不能使用。

在新版本中是用什么文件和函数来代替的呢?

该用户从未签到

 楼主| 发表于 2010-12-6 11:49:37 | 显示全部楼层
我用UpdateMatrixTransform来替换了一下,编译是通过了,但是看不到动画效果!

该用户从未签到

发表于 2010-12-6 12:50:31 | 显示全部楼层
我前几天刚刚回答完一个类似的问题,并给出了相应的代码,您可以在版内搜索一下

该用户从未签到

 楼主| 发表于 2010-12-6 15:51:05 | 显示全部楼层
多谢,找到了!
  1. osg::ref_ptr<osgAnimation::Vec3LinearChannel> ch1 = new osgAnimation::Vec3LinearChannel;
  2. ch1->setName( "position" );
  3. ch1->setTargetName( "PathCallback" );

  4. osg::ref_ptr<osgAnimation:: QuatSphericalLinearChannel> ch2 = new osgAnimation:: QuatSphericalLinearChannel;
  5. ch2->setName( "quat" );
  6. ch2->setTargetName( "PathCallback" );

  7. ...

  8. osg::ref_ptr<osgAnimation::UpdateMatrixTransform> updater =  new osgAnimation::UpdateMatrixTransform("PathCallback");
  9. updater->getStackedTransforms().push_back( new osgAnimation::StackedTranslateElement("position") );
  10. updater->getStackedTransforms().push_back( new osgAnimation::StackedQuaternionElement("quat") );

  11. osg::ref_ptr<osg::MatrixTransform> animModel = new osg::MatrixTransform;
  12. ...
  13. animModel ->setUpdateCallback( updater.get() );
  14.    
复制代码

该用户从未签到

 楼主| 发表于 2010-12-6 16:02:40 | 显示全部楼层
array把ch2的类型换了,是不是说明同一个动画体不能包含两个同样类型的channel?

该用户从未签到

发表于 2010-12-6 16:16:09 | 显示全部楼层
当然可以

该用户从未签到

 楼主| 发表于 2010-12-6 16:43:44 | 显示全部楼层
本帖最后由 aaa696 于 2010-12-6 16:51 编辑

参照osganimationviewer的方式,已经能够实现对FBX动画的控制,但是目前max只能导出一套动作的FBX,不知道能用什么方式得到包含多套动画的FBX文件?

或者换一种方式,使用一个动画管理器同时控制多个单套动画的FBX文件(模型是一样的)?

该用户从未签到

 楼主| 发表于 2010-12-7 10:00:52 | 显示全部楼层
各位朋友给点意见吧。希望这个思考方向是正确的!

该用户从未签到

 楼主| 发表于 2010-12-7 11:20:47 | 显示全部楼层
有朋友用过这种方式吗?

该用户从未签到

发表于 2013-10-6 21:07:42 | 显示全部楼层
aaa696 发表于 2010-12-6 15:51
多谢,找到了!

请问这个是需要放到.h文件里面,还是放到源代码里面。我刚刚接触,希望多多指点,谢谢诶。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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