中华MOD网

 找回密码
 立即加入

QQ登录

只需一步,快速开始

查看: 3788|回复: 5

[模型/地图/建筑] 旧话重提……建筑修改编

[复制链接]
发表于 2011-3-3 14:26:47 | 显示全部楼层 |阅读模式
本帖最后由 lanson 于 2011-3-3 15:39 编辑

前言:建筑增加和建筑修改不同,增加是件很麻烦的事,很佩服老外在建筑修改时不厌其烦地每个建筑都做了修改,因为增加建筑所涉及的文本太多了。增加建筑我只知道一些理论,而且没有经过实践验证。正所谓条条大路通罗马 ,既然有简单的为何要用复杂的呢? 以下我先来说说简单的建筑替换,主要用这类办法。

一些要点看2楼
3楼是关于建筑增加等的一些理论和猜想,爱看不看

正文:嘛,我也是从柱子组前辈那里学来的,寒奔大人的威名当年可是老外也要甘拜下风{:5_155:}

简单说说原理,先解释一个词:LOD

LOD技术  Levels of Detail,意为多细节层次,LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

明白这个后,原理就很好理解了,罗马的引擎就是采用这类多层次技术,不同距离所用的模型不同,把不同lod模型文件cas合成一类item的文件,便于游戏时统一运算。


这里先允许我引用寒大的关于建筑修改的一些话:

修改罗马的建筑的方法。


或许大家以前看过我发的帖子,关于三国mod的建筑预览。现就自己的心得和经验贡献出来,让大家分享,希望大家能发挥自己的特长,把更多的中华古典建筑加入到游戏中,共同营造更丰富的汉文化MOD。(希望版主加精加钱)

改建筑其实还是比较简单的,但增加建筑就比较麻烦了。现在只谈改建筑,因为罗马已有的建筑群足够多了,完全没有必要去增加。

1、安装3Dmax5.0或以上版本,然后运行插件,就是那个导入导出*.cas的插件。
2、用Xpak解压罗马packs文件夹下面的所有×.pak文件。这时就会在Rome - Total War\Data\ 下出现 “ITEMS”文件夹,里面全部是*.item文件。这个就是罗马所有的建筑模型。对应的贴图在Rome - Total War\Data\models_building\TEXTURES下,
3、用3dmax插件导入刚才的某个.item文件。我们可以在max中看见他是由一个组合的模型构成的。比如[LOD_1],[LOD_2],[LOD_3],[LOD_4]........这个就是说明该建筑是由4个lod级别的模型构成的。有些建筑是2个,有些是3个lod。
4、很重要的一点,建筑模型的item文件不是由3dmax插件导出的,是由游戏自动生成的。所以我们只需要设定好对应的几个同文件名的cas文件即可。比如由4个lod级别构成的建筑模型我们就应该在Rome - Total War\Data\models_building\文件夹中生成4个cas文件。
举例,“aaa.item” ,那么对应4个cas文件名应该为 aaa_high.cas,aaa_med.cas,aaa_low.cas,aaa_lowest.cas.
5、我们只要在3dmax中正确设置好了这4个模型,就可以导出了生成这4个cas文件了。注意:_high代表最精细的建筑模型。_lowest最粗造的。
6、建立好这4个文件以后,删除ITEMS”文件夹中的aaa.item.然后运行游戏,你就会发现战场或城市里面的建筑被替换成的你的模型。


以上是寒大的方法,其实已经说得很清楚了,以下我再用实例来说明:
最简单的我用游戏中的城里的罗马石像roman_statue,基本上根据英文意思都能了解到这个item是属于什么模型的
你可以用寒大的方法先找到这个文件roman_statue.item,(pack文件在三国mod已经解开了,不用自己解)用max导入打开item,
你可以看到这个石像是由4个lod组成的,现在教你用更加一目了然的方法:打开descr_items.txt这个我给附件,是属于罗马1.6的,在descr_items.txt里查找roman_statue,你会找到这类:


type        roman_statue
lod
max_distance    100.0
model_rigid    roman_statue_high.cas
lod
max_distance    200.0
model_rigid    roman_statue_med_high.cas
lod
max_distance    300.0
model_rigid    roman_statue_med.cas
lod
max_distance    4000.0
model_rigid    roman_statue_low.cas

看到这里你就知道这个石像分别由high、med_high、med、low,这4个cas组成
这里我先说说这里面词语的大致意思(按照我的理解)
type        roman_statue ………………   模型名字
lod………………可以无视
max_distance ……………… 就是在这个范围内的意思,数字100就是游戏用100个单位,我个人理解就是游戏的坐标单位
model_rigid………………模型路径

这里需要注意,如果如上述的没有路径就是默认在data/models_building里面比如bi新增加的有
model_rigid    ../../bi/data/models_building/BI_roman_governors_palace_high.cas

这里其实不用改,(给你个descr_items.txt也就是方面查找而已,真正用的我后面说说。)cas命名时按照这几个名字,比如我现在要把石像改成水井,需要做4个对应的cas
roman_statue_high.cas
roman_statue_med_high.cas
roman_statue_med.cas
roman_statue_low.cas
按照石像命名就可以了


我以alex作为引擎为例子
然后把cas放在descr_items.txt指引的目录下,比如默认的data/models_building,如果你查到的是bi新增的bi/data/models_building/

记得贴图要放3处,(其实是两处,不过为了以后修改方便)
第一处data/models_building/textures或者bi/data/models_building/textures
第二处alexander/data/models_building/textures
第三处alexander/data/items/textures

就是说你用什么引擎,就必须在这个引擎下的models_building和items文件夹下有相应的贴图

然后把旧有的alexander/data/items/roman_statue.item删去,然后入游戏进入过去有石像的城市,你会发现items文件夹下生成一个新的roman_statue.item,城里的石像被封印在井里了!





descr_items_1_6.txt

253.01 KB, 下载次数: 157

发帖求助前要善用【网站搜索】功能,那里可能会有你要找的答案

中华MOD网推荐搜索:https://kan.1mod.org/

中华MOD网新浪微博:https://weibo.com/1mod

中华MOD网推荐浏览器点击我下载

中华MOD网腾讯微信:All1mod 或首页左边

中华MOD网游戏帮助Q群:218311682

 楼主| 发表于 2011-3-3 14:36:46 | 显示全部楼层
本帖最后由 lanson 于 2011-3-3 14:56 编辑

这里我说几个要点:
1、做建筑时最好按照原版建筑的大小来做,特别是它的高形状,因为上面那类建筑替换没有对建筑的隐形部分修改,这个隐形部分(我这么称呼的)作用就是你拉近镜头时遇到这个部分会避开,不至于插入建筑内部,还有就是人物行走路径,建筑动作等。我自己做时也就是大约就可以了,毕竟懒得做的这么精细,所以镜头插入建筑那是常有的事,{:5_133:}说白了就是只是改了外形{:5_140:}

2、可能有部分童鞋想直接用修改item来做cas,如果成功了,恭喜你,反正我是用了item做成的cas,最后再生成item时变色了,原因不明~~~

3、不能导出cas,和树模一样,建筑只需要scene root,其他不用,不能带group,每个对象都要静态连接上,贴图可以多张,但一定要设置好。

4、假如uv乱了,和兵模一样方法,分离乱了的部分,把它打散

5、游戏生成的item最大约为2.1m,超出这个就错误了

6、模型里面不能有中文~~~

7、item生成要在游戏载入这个场景才能生成

8,城墙cas放置位置是data/models_building/models_walls

发帖求助前要善用【网站搜索】功能,那里可能会有你要找的答案

中华MOD网推荐搜索:https://kan.1mod.org/

中华MOD网新浪微博:https://weibo.com/1mod

中华MOD网推荐浏览器点击我下载

中华MOD网腾讯微信:All1mod 或首页左边

中华MOD网游戏帮助Q群:218311682

 楼主| 发表于 2011-3-3 15:33:44 | 显示全部楼层
本帖最后由 lanson 于 2011-3-3 15:35 编辑

关于新建筑的添加方法,先说说原理,和树模一样,需要把原来的descr_items.db文件删去,根据descr_items.txt来生成,但是要是txt错误了,你就悲剧了,所以我很佩服老外~~~
我们先看看原版的descr_items.txt文件,打开它,有

;   
;    This file contains the item model linkages; it gets parsed on application
;    startup but is not otherwise referred to. The data format is thus:
;
;    ;                        indicates a comment ;-)
;                           
;    type                    indicates a new model type, must be followed by id name string (phrase)
;    model_rigid                indicates a new model in the lod series, must be followed by file name with path and lod
;                                range in m (no range supplied means maximum range - last mode including sprite)
;
;                                all mesh model lods must be supplied in order, smallest distance (highest detail) first
;

; spot items
include di_spot_items.txt

include di_slot_fillers.txt

include di_wooden_walls.txt
include di_walls_roman.txt
include di_walls_greek.txt
include di_walls_eastern.txt
include di_walls_egyptian.txt
include di_walls_barbarian.txt

include di_nicks_roman_buildings.txt
include di_nicks_egyptian_buildings.txt
include di_nicks_greek_buildings.txt
include di_nicks_eastern_buildings.txt

include di_barbarian_buildings.txt

include di_wonders.txt
include di_foliage.txt

include di_kevins_buildings.txt
include di_bens_buildings.txt
include di_andrews_buildings.txt
include di_pauls_buildings.txt
include di_johns_buildings.txt
include di_joss_buildings.txt

include di_roads.txt

include di_animals.txt

include di_gates.txt

include di_ambient.txt


type            scale_soldier
lod
max_distance    200
model_rigid        scale_soldier_high.cas


type            rubble_20x20
lod
max_distance    2000
model_rigid        rubble.cas


type            construction_site_48x32
lod
max_distance    4000
model_rigid        construction_48x32_high.CAS

type            construction_site_112x64
lod
max_distance    4000
model_rigid        construction_112x64_high.CAS

type            construction_site_160x128
lod
max_distance    4000
model_rigid        construction_160x128_high.CAS

你会发现红字的部分你怎么找也找不到,因为ca保密了~~~~~~~~txt生成db后这些文件就没用了,所以~~~~~
这些di开头的文件位置就是data/descr_items文件夹下,因为删了~所以没有,所以要想增加建筑,你就需要补上di开头的这类txt,当然你可以改个名字,但是需要注意的是,当你决定改动文件名字时,那么对应的data/descr_building_battle里面的txt也就作废了,你得自己去做一个txt,比如我把descr_items.txt里面改成


include di_wall_sangguo.txt


type            scale_soldier
lod
max_distance    200
model_rigid        scale_soldier_high.cas


type            rubble_20x20
lod
max_distance    2000
model_rigid        rubble.cas


type            construction_site_48x32
lod
max_distance    4000
model_rigid        construction_48x32_high.CAS

type            construction_site_112x64
lod
max_distance    4000
model_rigid        construction_112x64_high.CAS

type            construction_site_160x128
lod
max_distance    4000
model_rigid        construction_160x128_high.CAS

那么在data/descr_building_battle里面就必须有dd_wall_sangguo.txt这个对应文件,dd文件就是修改战役建筑的属性,比如生命值什么的,我抽一段城墙文本

; Eastern town walls

    eastern_town_gateway………………城镇的门
    {
        full_health 500……………………生命
        localised_name gateway…………布局时的名字
        level
        {
            min_health 1
            battle_stats flammability_none impact_damage_low
            item        eastern_town_gateway………………引用的item
            physical_info    info_walls/eastern_town_gate_info.CAS…………
            spot_fx        eastern_town_gate_spot_fx.CAS…………………………嘛,这两个cas貌似就是它的实际作用模型,就是那些动作什么的,和item的外表不同
        }
        transition ; undamaged to collapsed………………倒塌时的模型参数设置,下面不是很懂了~~~~~~
        {
            duration 120
            physical_switch 0
            item eastern_town_gateway_collapse
            {
                0 enable
                0 dust_anim 90 4 2 2 0 3
                120 disable
            }
            item eastern_town_gateway_collapse_anim
            {
                0 enable
                0 anim 0 0 6
                120 disable
            }
        }


所以说,很麻烦,这个方法被我抛弃了~~~~~~~有简单的为何要用复杂的呢~~~~~~

或许护城河可以在这里实现~~~~~~~~~~~不过你们自己搞了~~~~~~~~{:5_136:}

发帖求助前要善用【网站搜索】功能,那里可能会有你要找的答案

中华MOD网推荐搜索:https://kan.1mod.org/

中华MOD网新浪微博:https://weibo.com/1mod

中华MOD网推荐浏览器点击我下载

中华MOD网腾讯微信:All1mod 或首页左边

中华MOD网游戏帮助Q群:218311682

发表于 2011-3-3 19:53:27 | 显示全部楼层
继续保存到word,继续支持lanson造福群众

发帖求助前要善用【网站搜索】功能,那里可能会有你要找的答案

中华MOD网推荐搜索:https://kan.1mod.org/

中华MOD网新浪微博:https://weibo.com/1mod

中华MOD网推荐浏览器点击我下载

中华MOD网腾讯微信:All1mod 或首页左边

中华MOD网游戏帮助Q群:218311682

发表于 2011-3-3 23:06:55 | 显示全部楼层
本帖最后由 cinyokun 于 2011-3-3 23:08 编辑

大部分暂时没看懂。先顶礼膜拜!兰松大神先!兰松万岁!大神万岁!

发帖求助前要善用【网站搜索】功能,那里可能会有你要找的答案

中华MOD网推荐搜索:https://kan.1mod.org/

中华MOD网新浪微博:https://weibo.com/1mod

中华MOD网推荐浏览器点击我下载

中华MOD网腾讯微信:All1mod 或首页左边

中华MOD网游戏帮助Q群:218311682

发表于 2012-3-19 22:05:28 | 显示全部楼层
{:5_131:}先顶一下~顶完再细看!!!

发帖求助前要善用【网站搜索】功能,那里可能会有你要找的答案

中华MOD网推荐搜索:https://kan.1mod.org/

中华MOD网新浪微博:https://weibo.com/1mod

中华MOD网推荐浏览器点击我下载

中华MOD网腾讯微信:All1mod 或首页左边

中华MOD网游戏帮助Q群:218311682

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

关闭

站长推荐上一条 /2 下一条

QQ|Archiver|手机版|手机专用客户端|中华MOD官网

GMT+8, 2024-11-24 06:14

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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