游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3806|回复: 2

ogre实现换装的骨骼权重

[复制链接]

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2009-6-19 12:18:00 | 显示全部楼层 |阅读模式
请问ogre实现换装
   骨骼的权重要怎样设置
   最好能给点代码提示下
   非常谢谢!

6

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2009-6-27 16:34:00 | 显示全部楼层

Re:ogre实现换装的骨骼权重

为什么设置骨骼权重?在导出mesh的时候骨骼的权重已经由3d建模软件设置好了,为什么还要自己费力不讨好的去修改它呢。至于换装,只要把人体合理的分成几个部分,这几个部分有不同的几套模型,只要这几套模型相对于一套骨骼运行正确就可以了

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 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()共享骨骼,但是这样是不正确的!
貌似需要考虑手动设置骨骼权重!
希望高手指点下。不胜感激!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-21 05:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表