写AI游戏Demo

林一二2025年03月09日 15:59

先用PCG绘制基本的六边形和家具

  • 苦恼没法把边长参数统一传给几何脚本画出的六边形和PCG图
    • 发现PCG图主要是从样条线读数据,所以通过蓝图的构建脚本为几何脚本和样条线设置同样的点列表,然后PCG再根据样条线生成
  • 画摆满书的书架,再用书架摆两层楼高
    • 采样书架几何体,获得向上的面,先摆一本书看看,然后动态画样条线摆多本书
      • 手动限制生成的点在几何体视觉范围内很麻烦,之后试试创建一些 Volume 然后在PCG里取了作为筛选器
    • 在父蓝图生成的子蓝图中包含的PCG组件未能执行
      • 其实执行了,但是被「属性过滤范围」的绝对位置过滤给过滤掉了。需要换种过滤方式
      • PCG图里应该先在原点处处理平移和筛选等,这时候的值都比较小,也好肉眼处理。处理好了再用「获取Actor数据+复制点」挪到实际位置
    • 生成楼板、墙板和楼梯
      • 地面的阴影一直有Preview
        • 开启Lumen,并去掉关卡的有向光即可
    • 之后把书静态网格体改为可互动蓝图就能看书了
    • 需要多加一些装饰元素,不然看起来像毛坯房比较简陋

让建筑系统能放置建筑计划,让AI来建设

  • 已经在建造轮盘里添加了计划块,现在应该让NPC能在看到计划块的时候过来转换块
    • 用一个C++函数来消耗资源和时间转换建筑块,每0.5s检查操作者是否在附近并增加进度之类的

感受到UE编辑器的作用:方便在视口里录入数据,例如画样条线、添加组件、用哪个模型。有了数据之后再基于它们写各种数据驱动的逻辑,例如PCG和构建脚本。如果直接用Bevy之类的引擎写纯代码的话,录入数据就得手写JSON或TOML,而且不一定有这么快的预览。

AI沙盒世界MMO RTS游戏 开发游戏

Undefined widget 'supertag-form'