|
发表于 2009-8-28 10:10:00
|
显示全部楼层
Re:ogre实现换装的骨骼权重
偶也有这样的疑问
偶是这样想的 一个模型分成N个部分
比如 头部,身体 胳膊 腿
头部是主体模型 其他部分是可以换的模型
3D美工做出来的都是单独的.mesh 都带有.skeleton动画文件,但是只有头部(主体模型)才真正的带有动画
在绑定的时候分开导入,比如
//创建主模型节点
SceneNode* mainFrameNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("MainFrame");
//创建主模型实体
Entity* mainFrameEntity = mSceneMgr->createEntity("MainFrame","Object10.mesh");
mainFrameNode->attachObject(mainFrameEntity);
Entity* chiledEntity = mSceneMgr->createEntity("chiledFrame","Object03.mesh");
Entity* chiledEntity2 = mSceneMgr->createEntity("chiledFrame2","Object07.mesh");
//获得主题模型的骨骼
SkeletonPtr skptr = mainframeEntity->getMesh()->getSkeleton();
////将挂接模型的骨骼设置成主题模型的
chiledEntity->getMesh()->_notifySkeleton(skptr);
chiledEntity2->getMesh()->_notifySkeleton(skptr);
//这个就是挂接代码
chiledEntity->shareSkeletonInstanceWith(mainframeEntity);
chiledEntity2->shareSkeletonInstanceWith(mainframeEntity);
//将这个物体绑定到主题模型挂接的节点上
mainframeNode->attachObject(chiledEntity);
mainframeNode->attachObject(chiledEntity2);
这样使用_notifySkeleton()共享骨骼,但是这样是不正确的!
貌似需要考虑手动设置骨骼权重!
希望高手指点下。不胜感激! |
|