使用火炬之光资源(转)

今天去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
    }
   }
}
}

posted @ 2010-12-12 08:58  oayx  阅读(893)  评论(0编辑  收藏  举报