凌果 发表于 2019-11-16 21:58:06

地形分层初探、解析,随机地图制作地形分层

本帖最后由 凌果 于 2020-3-13 17:58 编辑

DE版加入了地形层叠的功能,两种不同的地形可以混合制作出多种多样复杂、美观或者奇葩的地形。
地形可以分两层,一层为实际层,包含地形基本的功能,例如能否建筑,能否通船等;一层为装饰层,只起改变外观作用。
可将实际层称为上层,装饰层称为下层。(下文中我都会这样称,不过直观来看,很多装饰层更像是在上面,你们如果觉得反过来更好也可以自己那样去理解,我是做随机地图写脚本的时候觉得实际层为上,装饰层为下更符合写脚本时的逻辑。)
当地形选项卡中的分层模式开启时,是对当前地形下方添加一层。


这张截图里,靠上者是在道路的下方添加了泥地,靠右者是泥地的下方添加了道路,这样做出了两种不同外观的泥路;靠左者是在道路下方添加水域,靠下者是在水域下方添加了道路。

这个功能在随机地图里也可以使用。
RMS文件里可以在<TERRAIN_GENERATION>中用terrain_mask 1和terrain_mask 2这两个指令来做地形分层。
terrain_mask 1是在base_terrain的下方做一层
terrain_mask 2是在base_terrain的上方做一层
最终只保留最上方的两层,例如在水域上加道路,然后在道路上加草地,则最终是上草地下道路;在水域下方加道路,再在道路下方加草地,则是上水域下道路,草地无效。
已有两层的时候,层次有冲突时,后面添加的不会覆盖前面已经添加的,无冲突时取最上方两层。例如水下加路,路上加草,则最终为上水下路,草无效。又例如水下加路,再水下加草,则仍为上水下路。再例如水下加路,水上加草,则为上草下水。

具体的代码大概类似这样,例如在路上加水可以是:
create_terrain WATER
{
      base_terrain ROAD
      land_percent 100
      number_of_clumps 999
      terrain_mask 2
}
路下加水可以是:
create_terrain WATER
{
      base_terrain ROAD
      land_percent 100
      number_of_clumps 999
      terrain_mask 1
}

典型应用,过渡,过渡区为上草下雪:
create_terrain SNOW
{
      base_terrain GRASS
      land_percent 100
      number_of_clumps 999
      spacing_to_other_terrain_types 7
      terrain_mask 1
}

create_terrain ROAD
{
      base_terrain GRASS
      land_percent 100
      number_of_clumps 999
      spacing_to_other_terrain_types 9
}

create_terrain SNOW
{
      base_terrain ROAD
      land_percent 100
      number_of_clumps 999
      spacing_to_other_terrain_types 0
}
效果:

过渡区为上雪下草:
create_terrain SNOW
{
      base_terrain GRASS
      land_percent 100
      number_of_clumps 999
      spacing_to_other_terrain_types 7
      terrain_mask 2
}

create_terrain ROAD
{
      base_terrain SNOW
      land_percent 100
      number_of_clumps 999
      spacing_to_other_terrain_types 2
}

create_terrain SNOW
{
      base_terrain ROAD
      land_percent 100
      number_of_clumps 999
      spacing_to_other_terrain_types 0
}
效果:

刚刚试做的一张随机地图,迟点做好可能会发布到模组里。


好的分层方案可以提高地图的美观度,差的就,额...大概会变丑吧。

另外提一些做随机地图的小提示,
1.如果用地图编辑器查看随机地图,在生成地图前,注意地形选项卡里的分层模式别开启,不然会无法生成树林。
2.每个玩家的画质开得可能都不同,我不怎么在乎画面一般都开得很低。但是高低画质差别巨大,有时一些在低画质里好看的分层方案在高画质里难看,有时则反之,在高画质好看的方案在低画质难看。所以在做分层方案的时候要多考虑一点,一般最影响分层方案观感的是渲染3D水域、启用全屏泛光两项。

3.决定版似乎多了不少新命令可以用,
<LAND_GENERATION>里:
enable_waves 0可以无效化沙滩海浪
circle_placement
circle_radius 数字范围 变化幅度——这两条要一起用,在create_player_lands中加入这两条后,玩家的位置分布会更平均更像一个圆,数字越大距离中央越远;次级参数,用于定义圆的变化幅度

<TERRAIN_GENERATION>里:
color_correction 后面可接CC_DESERT、CC_JUNGLE、CC_AUTUMN、CC_WINTER,控制地图的整体色调,选项里打开地图光照才能显示出区别

<OBJECTS_GENERATION>里:
actor_area 数字编号——设定该物品为一个编号区域
actor_area_radius 数字范围——配合上一条使用,设定区域范围
avoid_actor_area 数字编号——配合上面使用,不允许放在该编号区域内
actor_area_to_place_in 数字编号——配合上面使用,必须放在该编号区域内
force_placement——强制放置,可以重叠放置多个单位
find_closest——配合set_place_for_every_player和actor_area使用,在符合条件的最靠近玩家基地的地方放置
avoid_forest_zone——不放置在森林区,避免放置在猴面包树林、红树林、洋槐林等空洞处
avoid_cliff_zone——不放置在悬崖区


各处都可能有的:
#include_drs XXX.inc,把一些重复使用的脚本加进来,决定版自带的随机地图全都会用到各种兼用卡。

我暂时只注意到这些,不知道有没有煋,也不知道是不是决定版才加的新功能,反正我才注意到。

戴子玲 发表于 2019-11-16 22:00:47

不错,不知道后期能不能把旧版的那些熔岩地形也加进去

cxt 发表于 2019-11-16 22:55:53

{:155:}膜拜大佬,撅腚版有新的随机地图文档吗

凌果 发表于 2019-11-16 23:01:20

cxt 发表于 2019-11-16 22:55
膜拜大佬,撅腚版有新的随机地图文档吗

暂时还没发现,我也想看看

newtonerdai 发表于 2019-11-16 23:20:48

好快的探索速度!
赞一个!
膜拜大佬,撅腚版有新的随机地图文档吗
@cxt 【\Game\Docs】里有指南文件,不过好像是征服者那个时代的,你可以去检查一下。

猪娃娃 发表于 2019-11-17 10:26:52

佩服,希望多多分析研究

goodluo 发表于 2022-2-18 10:39:03

好东西,支持?
页: [1]
查看完整版本: 地形分层初探、解析,随机地图制作地形分层