Nostalie 发表于 2020-12-20 20:56:46

【脑洞】 地形重现技术。

本帖最后由 Nostalie 于 2020-12-20 21:09 编辑

鉴于最近水论坛有点多。准备挖个坑。没填完就不回来哩。

类似于blz防卫局内置的nanakey terrain editor地形编辑器。能动态实现地形改变。
只不过我决定用的是所有作者都很熟悉的原有编辑器来编辑地形。保存之后。将预置地形装饰物的xml。文件。通过外部程序转化成galaxy 代码。比如create(装饰物类型id,x,y,z,比例x,比例y,比例z,旋转……)
然后一张光秃秃的地图中运行这些galaxy就可以重新创建之前我们编辑器的地形。当然会提供一个触发器库来解释这些galaxy代码。

至于纹理。悬崖啥的其实只需要模型就好了。同样都可以用装饰物做。也会提供一个拥有纹理悬崖装饰物什么的的数据空间。(如果得到授权的话。能直接用froggycatty团队的就好了。)

最终成品将包含一个数据空间。一个触发器库。(不做成mod方便大家按具体需要改。想要移除也很方便)和一个外部程序。给大家参考使用。

954701850 发表于 2020-12-21 14:01:09

这种感觉逆天

yxxiaobin 发表于 2020-12-21 19:53:09

动态地形技术其实不是很难,只是很繁琐。这里边最大的问题在于悬崖不是真的悬崖,在游戏逻辑上绕不过去,第二就是足印不好屏蔽掉。其他还好。

Nostalie 发表于 2020-12-26 03:11:33

本帖最后由 Nostalie 于 2020-12-26 03:30 编辑

由于水平精力有限。做不到很傻瓜化。
不过这样其实参考起来更清晰。也方便大家了解原理。根据自己的需要改进。

目前实现的是装饰物重现。至于纹理悬崖路径,都可以做成装饰物。这里不讨论了。

其实也没啥难点。对于不熟悉的演算体消息的可以看看怎么换变种。旋转。缩放之类。
另外比较繁琐的地方是。Objects文件和地形窗口和演算体消息这三个的旋转记法都不同。

使用方法
需要在python设置中心点默认是最大的地图128,128。初始高度默认是8。和前缀。默认是lib2_gf_。不知道前缀的请先用gui打个CreateDoodad保存之后自己看看Mapscripts.galaxy里CreateDoodad前面的前缀是啥。
编辑器导入库并设置好原点。默认还是最大的地图128,128。
自己手动用mpq提取objects文件和.py放在一起执行。之后得到galaxy.txt

在GUI触发器里建一个自定义脚本动作,复制进去就可以使用了。前提是前缀没问题。。。
如果要发布的请留意发布之后会不会变前缀,,,我自己也没试过。

最后感谢七键和青蛙的启发。


Nostalie 发表于 2020-12-26 03:19:17

包含一个库和一个python源码。

Nostalie 发表于 2020-12-26 16:43:25

突然发现talv已经做过类似的https://github.com/Talv/sc2-dood

ddffrrff 发表于 2021-1-2 18:50:46

不明觉厉,先插个眼
页: [1]
查看完整版本: 【脑洞】 地形重现技术。