lanson 发表于 2011-1-16 23:26:30

关于如何添加树模的经验之谈

本帖最后由 lanson 于 2011-3-3 15:09 编辑

需要准备:
1、已做好的cas树模,这个只说要点见 2楼
2、dds_converter_v21.exe 批量转换dds
开始:

(1)把做好的树模cas和对应贴图dds放在相应的data\models_vegetation和data\models_vegetation\textures下
(2)同时需要把该树模的贴图多放一份在data\vegetation\textures下
(3)打开data下的descr_vegetation.txt你会看到这类格式
(4) 这个很重要,要在1024*768*16的无抗锯齿环境下进行

比如增加一个树模sanguo_tree.cas ,在文本上方

model almond_tree …………模型名字
{
    level models_vegetation/sanguo_tree.cas…………路径
}
(具体解释看解读罗马地图气候植被和地表文件)
然后在文本后半部分(一定要根据这些前后顺序,不能乱,就是模型路径在文本上方,参数设置在文本下方)


vegetation 111111…………这个就是在descr_climates.txt调用的战场树模名字
{
    layout 512 scrub_layout.tga…………貌似是分布方式图,可能也不是,在battlefield\vegetation,貌似自己作也行
    radius 0
    height_range 0.2 1.2
    aspect_range 0.7 1.3
    lod shrubs
    model almond_tree ……………………………………………………注意,对应的就是上面模型浅绿色部分
    model rd_foliage_02……………………………………
    model rd_rock_03
    model rd_rock_04
}

其他的参数也就是字面意思

然后在descr_climates.txt中调用该类文件比如

climate test_climate         ;;done
{
    colour    236 0 140
    heat    3
    winter

    strategy    summer    sparse_tree    ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a.cas                        2
    strategy    summer    dense_tree    ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_impassable.cas            3
    strategy    summer    canopy      ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_canopy.cas                14

    strategy    winter    sparse_tree    ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_winter.cas                7
    strategy    winter    dense_tree    ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_impassable_winter.cas      6
    strategy    winter    canopy      ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_canopy_winter.cas            15

    battle_vegetation
    dense_forest      rs_forest_deep
    dense_scrub      rs_arid_shrub_win

    battle_winter_vegetation
    dense_forest      rs_forest_deep_win
    dense_scrub      rs_sparse_forest_deep_win
    env_map            data/battlefield/envmaps/grass.dds
}


红字部分改成刚才添加的树模型rocky_desert_scrub,当然你也可以自己起个名字.
climate test_climate         ;;done
{
    colour    236 0 140
    heat    3
    winter

    strategy    summer    sparse_tree    ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a.cas                        2
    strategy    summer    dense_tree    ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_impassable.cas            3
    strategy    summer    canopy      ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_canopy.cas                14

    strategy    winter    sparse_tree    ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_winter.cas                7
    strategy    winter    dense_tree    ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_impassable_winter.cas      6
    strategy    winter    canopy      ../../../../data/ebterrain/aerial_map/tree_models/eb_conifer_a_canopy_winter.cas            15

    battle_vegetation
    dense_forest      111111
    dense_scrub       111111
    battle_winter_vegetation
    dense_forest      111111
    dense_scrub       111111
    env_map            data/battlefield/envmaps/grass.dds
}


做好这些,你就可以把旧有vege,dds,spr等删去,如果是新增加的,你就无视吧,最重要的把descr_vegetation.db删了,进入游戏,找到 test_climate 这个气候区的战场,进入就可以生成了


退出来后,你会发现vegetation文件夹下和其目录下的sprites,textures会有新的vege,tga文件生成,注意,这里不会有dds生成,需要你自己去转换

需要注意的是,转换dds时,记得保留.tga   就是说XXX.tga.dds这类
还有一点,在生成tga时,在对应vegetation/textures会有两类tga生成,比如winter_dense_pine_edging.tga和winter_dense_pine_canopy.tga就是以edging和canopy这类了
原位置保留对应dds,同时在相应的battlefield\vegetation目录下得重新做一份edging和canopy的tga文件,其实这个可能就是远景黑化的原因~~~~给个对比图吧,

附上一个添加视频以作参考:http://u.115.com/file/f577eb3f66#
树模操作.avi

附上

附件如果下载时大小符合但不能用的请改名字


lanson 发表于 2011-3-3 13:11:57

本帖最后由 lanson 于 2011-6-7 10:40 编辑

关于树模问题需要注意的几点:
1,树的大小问题,比如
;rocky desert scrub areas -- uses scrub
vegetation rocky_desert_scrub…………这个就是在descr_climates.txt调用的战场树模名字
{
    layout 512 scrub_layout.tga…………貌似是分布方式图,可能也不是,在battlefield\vegetation,貌似自己作也行
    radius 0
    height_range 0.2 1.2
    aspect_range 0.7 1.3……………………………………该部分就是字面意思,注意要适度
    lod shrubs
    model rd_foliage_01
    model rd_foliage_02
    model rd_rock_03
    model rd_rock_04
}

以上模型要适度,不然很容易由于太大引起出现穿墙现象
出现这种现象很普遍,主要是因为3d引擎的一类“特性”,其实很多3d游戏都有这类穿墙现象,归根到底是因为模型的碰撞是因为只有模型的线才能发生碰撞,而面不能,当模型接触时没遇上线时就会有穿墙现象了

2.需要注意,树的模型一般可以只有一个骨骼就可以了就是scene root,我们称之为中心骨,只要连接这个就可以了,但是如果你想做得更好,当然可以根据原版的cas那类骨骼去做,如果你细心留意一下,就会发现城市内的树是会摆动的,你可以根据原版的模型去绑这个骨骼~~~~~~有好几个的{:5_130:}

3.关于模型cas不能导出问题
树的模型不能导出,不外乎这几点,
(1)贴图问题,没有设置好,和兵模一样,只能一张(额,这个貌似是一张过,因为我不知道能不能添加其他特效)
(2)对象,导出cas时不能存在“组”即group,就是说每个对象都要连上scenc root


没解决的问题:植被远景黑化,应该不是spr问题,不是贴图问题,因为我都添加好了,看过以上视频的会留意到,虽然我猜测了一些原因,但是由于时间等各方面问题,所以没有解决

附:其实在添加树模时还是有很多问题没有处理好的,最大问题就是远景黑化问题,只是知道大概问题所在,没有实践过


感谢老马兄的技术支持~~~~~~~没有他就没有这个经验之谈了


附上外文参考
Creating new vegetation for battlemaps(基本,主要)
http://forums.totalwar.org/vb/sh ... tion-for-battlemaps

How do you create or modify vege files (简单)
http://www.twcenter.net/forums/s ... descr_vegetation.db

notdiebird 发表于 2011-6-7 10:27:27

多谢lanson兄!有空搞个温带季风性气候
页: [1]
查看完整版本: 关于如何添加树模的经验之谈