python实现红警三录像文件读取与自动分析生成流程图信息——一、简介

    科技2024-07-23  110

    之前做了一个红警三的建造出兵流程图绘制工具 有评论建议说能不能够自动读取录像。 同时自己使用的时候,也感觉确实一点点手动绘制太过麻烦。 所以专门为该工具做了个自动录像读取分析工具。 技术路线:python3,未使用第三方库 github地址:https://github.com/BigShuang/Red-Alert-3-Battle-Flow-Chart

    总目录

    一、简介

    二、项目结构与代码初步介绍

    三、拓展给mod使用

    ======================= 大爽歌作,made by big shuang =======================

    一、简介

    1 - 工具使用介绍,

    为了方便没有编程基础的朋友使用,我专门做了gui(可视化程序界面)并且打包成了exe,主程序.exe是中文版,main.exe是英文版 如果不喜欢运行陌生的exe,建议安装python3,命令行运行main.py/main_zh/py即可, 界面效果如图 选择录像文件后,界面效果如下图 此时在左侧玩家列表选择一名玩家,点击右边的按钮,即可导出对应信息 其中

    导出流程图信息按钮,用于导出流程图信息json文件(复制该json文件到之前的流程图绘制页面的加载页面,即可自动生成流程图)导出所有命令信息,用于导出录像本身解析出来的所有命令json文件,给文件主要是方便对录像文件解码感兴趣的人研究使用。

    2 - 工具使用限制

    以下问题不是短时间能够解决的,所以只能先避免这些情况了

    1 - 不支持帝国阵营2 - 不支持地图自带多基地或者除基地外有其他出兵建筑的录像。3 - 不支持玩家占领敌人建筑出兵的录像4 - 不能保证流程图信息导出完全准确

    原因说明:红警三录像文件其实基本只保存玩家的操作,而基本不保存状态, 很多信息里面是没有的, 比如单位什么时候建好,建好后的单位的id是多少,玩家什么时候卡钱,什么时候卡电。 所以流程图里面的一些信息,是我在代码里根据一定的规则来猜的。 目前只能说大体上没有什么问题,八九不离十。 但如果对准确度要求很高,只能后期手动矫正。

    3 - 特别鸣谢

    首先感谢岚依老哥评论推荐的 KWReplayAutoSaver

    同时也非常感谢KWReplayAutoSaver的作者forcecore。这好像还是个韩国老哥。 KWReplayAutoSaver的github页面:https://github.com/forcecore/KWReplayAutoSaver 这个刚好是用我熟悉的python写的,所以研究起来也比较顺手。 这里面实现了红警三录像的读取和一些基本的命令的解析, 极大的节省了我的时间。

    最后感谢远古大佬R Schneider KWReplayAutoSaver里的录像格式解码,也是归功于gamereplays.org社区的一个远古大佬R Schneider的作品 其对应的github是 https://github.com/louisdx/cnc-replayreaders 这个可以说是目前大多数红警三录像解析工具的源头了 虽然这个使用c语言写的,但是这位远古老哥为这个工具写了一个详细的文档。html格式的,用浏览器打开即可

    Processed: 0.013, SQL: 8