|
做了一个场景,用osgCal加了一个骨骼动画,由于模型较大,所以在PAT节点中缩小了,代码如下:-
- osg::ref_ptr<osg::Node> human=makeModel(coreModel.get(),meshAdder.get(),animNum);
- humanPat->addChild(human);
- humanPat->setPosition(osg::Vec3(-5.0,380.0,0.0));
- humanPat->setScale(osg::Vec3(0.01,0.01,0.01));
- humanPat->setAttitude(osg:uat(osg:I_2,osg::Vec3(0.0,0.0,1.0)));
复制代码 骨骼动画不能光有动作,不移动,所以设置了一个固定路径的动画,这样问题就出来了,前面的PAT中的转向、缩小、移动都没了。-
- std::string filename("walk.path");
- //申请一个输入流
- std::ifstream in(filename.c_str ()) ;
- //申请一个AnimationPath
- osg::AnimationPath* walkPath= new osg::AnimationPath();
- //从文件中读入到AnimaitonPath中
- walkPath->read(in);
- //关闭流
- in.close () ;
-
- //设置角色动画路径
- humanPat->setUpdateCallback(new osg::AnimationPathCallback(walkPath));
复制代码 不知道我这个思路对不对,请指教? |
|