通过替换 SubMesh 和 SubEntity 实现人物装备系统(翻译自OGRE论坛)
来源:互联网 发布:海天考研网络课程 编辑:程序博客网 时间:2024/04/29 21:51
原文链接:http://www.ogre3d.org/forums/viewtopic.php?f=5&t=7928&p=56299&hilit=equip#p56299
本人翻译水平很臭,本文仅供参考,建议查看原文.
Nauk: Bren:
是否有可能加载多个 mesh在一个submesh里,如果可以,它要如何实现?我是否应该在一开始就加载所有的装备,并且在需 要的时候显示出来.或者有谁有更好的方法来更换游戏装备.
感谢你的建议.
附加到骨头不是作用于衣服之类的装备的.它可以很好地用于装备(枪,剑等),或许有些饰 品(帽子,皮套等),但无法很好的工作于盔甲之类的装备.
这里有一个好方法是建立模型的时候,把所有能想 象到的几何体(皮革,金属,长袍)分开在不同的subEntities里面,这样就可以在需要的时候显示或者隐藏掉.很多游戏都是这样实现的.
你也可以分开建立以上这些 组件,然后在需要的时候拼接在一起.同样有很多游戏采取这种方法,可能比上面那种还 要多.
两种方法各有利弊。第一种方法要多付出一些开销在模型动画和多边形 数量方面 不知道OGRE是如何“智能”的屏蔽/优化隐藏的SubEntities的(但我估计相当聪明)。
第二种方式在动画管理方面要难一些(如多边形崩 溃,接缝等),但在以下方面增加了一些好处:能够很容易地分离组件(即斩首和肢解^_^),再加上可以更容易的实现可定制功能。
如果你想要更加快速,那就 采用第一种方法,如果 你想要拥有健壮性/可扩展性,那就用第二种方法
Falagard:
如果你的模型数目不多,可以使用以上方法,但如 果你有上百件装备, it’s a bad idea.对于少量的模型这还是个不错的方法.
如果你有很多的模型组件, 我认为你最好的创建一个基础的角色模型,它拥有完整的骨骼和动画等,然后让它共享骨骼给附加的装备模型.
例如,如果可以使用一个赤裸的角色来作为基础的 Mesh,那就使用它.假设你希望给你的角色穿上盔甲,你可以在你的程序里建立盔甲模型,并且绑定到你 的基础模型上,让它们使用相同的骨骼结构.所有的骨头都存在相同的姓名,位置和方向。
然后,在OGRE您可以使 用:entity->shareSkeletonInstanceWith(otherEntity);
这意味着在模型动画的相同时间里,它们会拥有同 样的动作.我在 使用这个方法时遇到了一些问题,不过已经不记得了,因为都是一些很小的问题.
最后,一个完整的系统,你可能需 要下列组合:
1、附加一些模型到某块骨头
2.在不同模型之间共享骨骼
3.附加装备到和基础模型相同的节点里, 然后播放同样的动画.例如,假设你有一个长袍,长袍拥有一个特殊动 画,您不能使用#2,因为它们拥有不同的骨骼和动画
无论如何,祝好运.您也应该看看自己的OGRE的文件, 可以找到有关SubEntity->setVisible 问题的答案.
- 通过替换 SubMesh 和 SubEntity 实现人物装备系统(翻译自OGRE论坛)
- OGRE+CEGUI游戏教程(5)--物品/装备和技能系统
- OGRE+CEGUI游戏教程(5)--物品/装备和技能系统
- OGRE+CEGUI游戏教程(5)--物品/装备和技能系统
- 使用OGRE打造装备系统 一。截图
- mesh和submesh
- 使用OGRE打造装备系统 二。UML类图
- 【转自论坛】系统API中如何实现hotpatching。。。
- ogre一些代码(人物 动作 地形 粒子系统)ogre例子的改写
- Ogre中实现换装系统
- Ogre中实现换装系统
- OGRE实现纸娃娃系统
- Ogre中实现换装系统
- Ogre中实现换装系统
- 通过正则实现Java记事本中查找和替换功能
- 通过excel自带的VLOOKUP函数实现字符串自动查找替换
- Flash之装备 人物+马 显示器
- OGRE 中通过 TheoraVideoPlugin 实现视频播放
- input type=file 没有runat=server 服务器端上传文件
- WAMP向LAMP搬家小记
- 万能的apt-get insatll xxx
- pop3 install on fedora12
- input type=file的清空
- 通过替换 SubMesh 和 SubEntity 实现人物装备系统(翻译自OGRE论坛)
- css中的垂直居中,不同于在Table中
- Android中文联系人排序及检索补丁的原理(090819更新)
- input file响应选择文件后的处理
- 在GridView中使用公有变量和脚本
- 4.1--如何设置一个对话的起始位置?
- 关于OracleDBConsole服务启动问题
- 解决虚拟机下centos时间不正确的方法
- 上传图片预览