乐于分享
好东西不私藏

AI 战场编辑器:用一份数据包,重现历史经典战役!

AI 战场编辑器:用一份数据包,重现历史经典战役!

大家好,今天分享一个非常有特色且极具潜力的开源项目 —— yazelin/battlefield-editor。这不是普通的游戏引擎,而是一个数据驱动的单文件 3D 战场景演出引擎,专注于用 AI 协助创作者快速重现历史战役(如赤壁之战、官渡之战等)。

项目核心理念:引擎只管“怎么演”,数据决定“演什么”

这是这个项目最聪明的地方:

每一场战役都是一份独立的 package,引擎只负责加载和演出。换一份 package,就换一场完全不同的战役,完全不用修改引擎代码。

  • 零构建(zero-build):单文件 HTML + Three.js(r160,通过 CDN importmap),直接在浏览器运行。
  • 高度数据化:阵营、地形、单位、结构、场景时间轴(多幕 + 运镜)、特效、音频(配乐、旁白、字幕、音效)全部写在 JSON 中。
  • 参数化地形:用 Catmull 曲线定义河道、丘陵、区块、色带,生成平滑高度场。
  • 声明式特效:如 volley(箭雨)、flood(水攻,可指定区域、决堤口,让水从缺口推进)、ignite(燃烧)等,由引擎 dispatcher 统一执行。

目前仓库内置多个经典三国/历史战役示例包:

  • 赤壁之战(水战,9 幕)
  • 官渡之战(陆战)
  • 垓下之战(四面楚歌、霸王别姬)
  • 淝水之战(风声鹤唳)
  • 水淹七军、水淹下邳(精彩的水攻演示)

在线直接体验(GitHub Pages):

  • https://yazelin.github.io/battlefield-editor
  • 点击任意战役即可观看带旁白、音乐、特效的 3D 重现。

项目架构亮点

  • schema/:严格的 JSON Schema 定义数据契约。
  • tools/:丰富的开发工具,包括数据验证器、残留扫描、渲染检查、音频检查、自动生成新 package 等。
  • docs/authoring/:详细的 AI 编辑 SOP(标准作业流程),让 AI 能一步步生成战役数据。
  • skills/author-battlefield/:专门给 AI 使用的可执行编写指南。
  • 编辑模式:本地启动 editor-server 后,可在浏览器内直接拖拽单位、修改地形、调整路径、即时预览洪水、替换 glTF 模型等,大幅提升迭代效率。

所有修改后的数据仍需通过多道机器验证关卡,确保结构合法和加载稳定,最后由人工验收画面、时序与史实细节。这种“AI 写初稿 + 机器把关 + 人工审核”的流程非常高效。

如何开始?

  1. Clone 仓库。
  2. 用 python3 -m http.server 8080 启动本地服务器。
  3. 访问 http://localhost:8080/ 查看战役列表,或直接加载特定 package。
  4. 新建战役:运行 node tools/new-package.mjs <slug> "战役名称" 快速生成骨架,然后按照 SOP 填充数据。

详细教程与编辑指南都在仓库的 README 和 docs 目录中。

总结

battlefield-editor 展现了“数据驱动 + AI 协作 + 极简引擎”的强大组合。它把复杂的 3D 历史战役重现,降低到了“主要写 JSON + AI 辅助”的门槛,同时保留了高品质的视听体验。无论是个人兴趣、教学用途还是内容创作,都非常值得尝试。

快去 GitHub 点个 Star,支持作者继续开发吧!https://github.com/yazelin/battlefield-editor

如果你已经试玩过,欢迎分享你的体验~ 你最想重现哪一场战役呢?(淝水之战的“风声鹤唳”还是赤壁的火烧连环船?)