【脑洞】 地形重现技术。
本帖最后由 Nostalie 于 2020-12-20 21:09 编辑鉴于最近水论坛有点多。准备挖个坑。没填完就不回来哩。
类似于blz防卫局内置的nanakey terrain editor地形编辑器。能动态实现地形改变。
只不过我决定用的是所有作者都很熟悉的原有编辑器来编辑地形。保存之后。将预置地形装饰物的xml。文件。通过外部程序转化成galaxy 代码。比如create(装饰物类型id,x,y,z,比例x,比例y,比例z,旋转……)
然后一张光秃秃的地图中运行这些galaxy就可以重新创建之前我们编辑器的地形。当然会提供一个触发器库来解释这些galaxy代码。
至于纹理。悬崖啥的其实只需要模型就好了。同样都可以用装饰物做。也会提供一个拥有纹理悬崖装饰物什么的的数据空间。(如果得到授权的话。能直接用froggycatty团队的就好了。)
最终成品将包含一个数据空间。一个触发器库。(不做成mod方便大家按具体需要改。想要移除也很方便)和一个外部程序。给大家参考使用。
这种感觉逆天 动态地形技术其实不是很难,只是很繁琐。这里边最大的问题在于悬崖不是真的悬崖,在游戏逻辑上绕不过去,第二就是足印不好屏蔽掉。其他还好。 本帖最后由 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触发器里建一个自定义脚本动作,复制进去就可以使用了。前提是前缀没问题。。。
如果要发布的请留意发布之后会不会变前缀,,,我自己也没试过。
最后感谢七键和青蛙的启发。
包含一个库和一个python源码。
突然发现talv已经做过类似的https://github.com/Talv/sc2-dood 不明觉厉,先插个眼
页:
[1]