文明5mod吧 关注:2,318贴子:6,504
  • 28回复贴,共1

文明5单位模型导入教程

只看楼主收藏回复

需要的工具:
1. 旧版的SDK
2. NexusBuddy2.0
3. Blender 2.49和一堆脚本
4. 待导入的模型
下载地址我最后会贴出来
首先有这样的一个印象:
我们最终在游戏里用到的3D模型大概可以分成两个部分,骨骼(bone,armature, skeleton)和网格(mesh)。
能看到的模型外观,是由mesh决定的;而模型的运动,则是由armature决定的,或者说,armature带动mesh,形成各种各样的动作。那么通过记录armature的运动轨迹,就可以得到动画(animation)效果。
Blender的版本,2.49以前算一类,2.5以后算一类,两类之间基本不兼容。个人感觉2.5以后明显比2.4x用起来舒服。最典型的,2.4似乎不兼容非ascii字符。
Blender的脚本是用python写的,不同版本间的API有差异,这也是导致2.4x和2.6x之间无法兼容的一个原因(当然具体版本间的api也不尽相同)。同时由于NexusBuddy作者当初是用2.49版本写的导出脚本,所以这里也就只能用Blender 2.49了(3000多行的代码,看着就没改写的欲望。。。)
当然更不幸的是很多blender的模型导入脚本只有2.5以后的,所以这就是个悲剧。


IP属地:浙江1楼2014-06-09 23:45回复
    接着处理网格。C5的模型很小,而有时候你弄到的模型往往很大。就上面这个例子来说,长剑的模型仅有800多个顶点,而文有25000以上个顶点,所以需要减少顶点个数,最简单的方法是右键点击你的mesh,进入edit mode,mesh-scripts-poly reducer


    只关注poly reduce这个参数,它表示保留顶点的比率,可以按你喜欢的来。
    总的来说这么搞不是很平滑,凑合着用吧。如果对玩家的机器性能有信心,不这么搞也行。
    这个模型我导入的时候按材质(material)分成了很多份,为了方便,有些反正不会在游戏里显示出来的部分可以在object mode里直接删掉,比如:

    然后选择所有mesh,cirl+j合并

    就得到一个合并后的mesh。当然之后还是需要拆分material不同的mesh,这里先这样处理吧。


    IP属地:浙江3楼2014-06-09 23:46
    收起回复
      之前忘了说了,blender有这样几类窗口:

      其中scripts window是处理脚本用的,buttons window提供各种各样的panel来帮助处理,outliner是模型的框架,UV/Image Editor处理纹理,3Dview就是主显示界面了。
      在3DView中,选中mesh,有这样一些模式:

      Edit Mode一般用来处理mesh中的顶点(vertice),Object Mode大概是把选中的mesh当一个整体对待了。当然,选中骨骼后也有另外三种mode,之后会提到。
      右边那个是显示方式,看名字也知道是做什么的了


      IP属地:浙江4楼2014-06-09 23:46
      回复
        绑定所有顶点之后就可以导出了。在这里你需要把不同材质的mesh分开,否则后面没法绑定材质。当然也可以先合并材质,方法以后再说。
        先导出成fbx文件(file-export-fbx),不要勾选enable animation:

        再导出成br2文件(file-export-br2),得到两个文件(比如model.fbx和model.br2)
        打开NexusBuddy2.0,open fbx,打开model.fbx,大概是这样一个效果:

        切换到additional actions面板,overwrites meshes from br2(current model),选择刚才的model.br2文件,再点击右上角的view,就可以在grannyview里预览了:

        接着切换回edit mode面板,假设有n个mesh,它们有m个不同材质,对应m个dds文件,那么就在material下面添加m次材质,材质里面只要注意BaseTextureMap对应的dds文件,接着在最上面的窗口里绑定对应的材质即可。
        可能有些模型最初的纹理文件不是dds的,需要自己转一下。用photoshop或者gimp都行。

        点上面的save就可以保存了,保存后得到model.gr2。


        IP属地:浙江6楼2014-06-09 23:47
        收起回复
          为了正常显示,还需要搞一些动画文件。在blender里按ctrl+←,切换到动画编辑模式。这里随便搞搞了。。。
          在timeline里切到第一帧,按i插入关键帧LocRot;接着切到最后一帧,作同样的操作。

          接着file-export fbx,这次需要enable animation,保存成model_stay.fbx

          接着在NexusBuddy2.0里用之前的br2重写mesh,save anim,就得到动画文件model_stay_anim.gr2。
          最后需要做一个xml文件,不过后缀得是.fxsxml,这里是model.fxsxml,大概这么写就行了:

          需要注意的是前两行,mesh file=”model.gr2”表示你的模型文件是哪个,animation file=”model_stay_anim.gr2”表示你的动画文件是哪个,它后边还有个属性ec,是event code的缩写。
          可以看到ec对应了一堆数字,这些数字表示动画事件代码,比如跑步事件是1400,攻击事件是1100和2100等等,这里将所有事件都绑在一个动画上。
          下边还有一堆东西,什么意思我也不知道。。。
          将所有的fxsxml、dds、gr2文件扔到一个目录下,打开旧版的sdk下的Nexus/x86/nexus.exe,第一次进去要设置游戏目录和玩家数据目录,最蛋疼的是如果你第一次写错,后边要改还得进注册表改。进去之后是这个样子的:

          点asset viewer,open你刚才的fxsxml文件,就可以预览了,效果大概是这个样子:

          最后在你的单位里用这个fxsxml文件就可以了。


          IP属地:浙江7楼2014-06-09 23:47
          收起回复
            工具地址:http://pan.baidu.com/s/1ntt4KvZ
            当然blender 2.49就请自行去官网下吧。
            参考了很多CFC上模型制作的文章,不过度娘吞链接,就不贴出来了
            (完)


            IP属地:浙江8楼2014-06-09 23:48
            回复
              强烈给顶!


              IP属地:上海10楼2014-07-11 13:17
              回复
                外行表示根本看不懂。。。
                话说300逗比的模型都可以直接拿来用?
                记得以前魔兽一些RPG地图也有好多模型的样子。。


                11楼2014-07-11 20:02
                收起回复


                  IP属地:美国12楼2014-08-27 08:34
                  回复
                    我想问最后一句怎么弄?
                    就是我已经下有模型了,就是不懂怎么套进入,
                    比如我在mod里建了个新单位,但是我想让这个新单位用我下的新模型,该怎么改呢?


                    IP属地:广西来自手机贴吧13楼2014-09-06 21:53
                    收起回复
                      @far_away_land


                      IP属地:广西14楼2014-09-07 13:35
                      回复