今天去ogre官网赚了一圈,看到了一款用Ogre做的游戏TorchLight,不妨下下来玩玩。
游戏做的很好,说明ogre的强大。
在安装目录里看到了ogreMain.dll OIS.dll等熟悉的dll,忽然看到了resources.cfg文件,里面定义了一个pak/zip文件路径。
好了找到了zip,600M,里面装了啥?ogre资源!模型,骨骼,贴图。天!!!!。
但是里面的模型,骨骼动画并不能直接用,要使贴图起作用要把material里的texture_unit里的png改为dds,要用skeleton的话,就得用OgreXMLconvert将.skeleton文件转换回xml文件,在Animation里添加link的动作文件。
以dog.mesh为例,不知道大家研究过ogre的mesh文件没有,还有skeleton文件,自己转化成xml文件看看吧。
把dog.skeleton转化为xml文件后(用OgreXmlConverter,源码tools注意不是SDK里自己编译一下,这个工具就出来了),发现animation里没有链接skeleton,自己添加skeleton link吧。
</bonehierarchy>
<animations>
<animation name="bind" length="0">
<tracks />
</animation>
</animations>
<animationlinks>
<animationlink skeletonName="attack1.SKELETON" scale="1" />
<animationlink skeletonName="attack2.SKELETON" scale="1" />
<animationlink skeletonName="attack3.SKELETON" scale="1" />
<animationlink skeletonName="bark.SKELETON" scale="1" />
<animationlink skeletonName="fidget_alert.SKELETON" scale="1" />
<animationlink skeletonName="fidget_shake.SKELETON" scale="1" />
<animationlink skeletonName="get_hit.SKELETON" scale="1" />
<animationlink skeletonName="hit.SKELETON" scale="1" />
<animationlink skeletonName="idle.SKELETON" scale="1" />
<animationlink skeletonName="run.SKELETON" scale="1" />
<animationlink skeletonName="walk.SKELETON" scale="1" />
</animationlinks>
</skeleton>
注意灰色的部分,就是添加的link,skeletonName是动作文件。
再用OgreXmlConvert将skeleton转化回二进制文件。大功告成。好了,可以自己使用这些资源了。真是踏破铁鞋无觅处,得来全不费工夫。
600M的模型资源啊(其中有些是音乐),还有动画!天!发了。世界上顶级的美工做得东西就可以用了。
其中我还发现一个CEGUI自定义的类型,那UI也挺漂亮。
这就是那个主人公携带的宠物狗了,以后用它在自己游戏里当小怪!
补充:
1.将.skeleton文件直接拖入OgreXmlConverter.exe生成.xml文件,之后进行修改后再拖入OgreXmlConverter.exe后又重新生成.skeleton文件。
2.ogre能直接读取dds格式,torchlight中都是使用dds图片格式,要想在ogre中直接使用其模型,在.material(如dog模型)中,直接将png给为dds
即可。
material pet
{
technique
{
pass
{
ambient 0.588 0.588 0.588
diffuse 0.588 0.588 0.588
specular 0 0 0 0
emissive .2 .2 .2
scene_blend alpha_blend
alpha_rejection greater 128
texture_unit
{
texture dog_pet.dds
}
}
}
}