绿色的糖果 发表于 2026-5-8 21:18:00

[技术路线打通] CTF→Godot 跑路可能性微存

本帖最后由 绿色的糖果 于 2026-8-29 15:48 编辑

0.
先上结论,真实有CTF→Godot跑路需求的人应该不是很多,并因项目而异技术上具问具析,故本文不提供成套的工具链以及完整的跑路技术解决方案,旨在解决CTF中的tile数据提取、以及提供导入至Godot的插件。

1.
CTF的关卡里的“地形”本质为backdrop,官方并没有直接给出获取backdrop坐标、对应图像等信息的事件,我自己搜了一下,也没有对应的扩展。
但幸运的是,经CTF群群友提醒理论上有方法通过extension来获取backdrop(backdrop可视作一种特殊的active)、加上有AI加持,虽然我并不懂扩展开发、编译等一系列操作,我把Fusion25SDK(CTF的SDK)和OpenFusionExamples(开源扩展项目示例)喂给AI进行仿写,反复调试后成功了。
虽然仍然有点小问题(事件编辑器里不显示,但是可以正常设置参数),但是做出来已经是胜利了。

2.
TileExporter
开源地址:https://github.com/GreenSweet233/ctf-TileExporter
扩展下载(见附件)


3.
从TXT文本导入至Godot
扩展见附件,用法如dock所示


附张图


4.
最后给Godot的TileSetHelper插件打个广告,这个是不同tileset资源用于添加图集同步tile数据用的
当然这是fork链接,因为Godot在4.6版本底部dock重构了,导致原插件不能用
https://github.com/knochenhans/TileSetHelper

无视我233 发表于 2026-5-17 15:31:47

!!!

绿色的糖果 发表于 2026-8-23 23:42:40

TileExporter 扩展、Tile Converter 插件、github repo 已同步更新,本帖下载位置不变。

【更新内容】
TileExporter:
· 事件列表的 action 可以正确显示
· 默认分图层导出
Tile Converter:
· 优化 img 映射图块显示、文字 id 显示
· 增强在非首次 Convert 的情况下、已有 cell 的显示
· 修复预览窗口尺寸 y 为 0 的问题
· 预览窗口适配 Godot 移动操作逻辑(中键拖动移动视角、滚轮缩放)
· 支持映射 tileset 的 pattern
· 调整绘制顺序,符合 tile(backdrop)原先在 CTF 中的顺序关系

绿色的糖果 发表于 2026-8-29 15:53:37

绿色的糖果 发表于 2026-8-23 23:42
TileExporter 扩展、Tile Converter 插件、github repo 已同步更新,本帖下载位置不变。

【更新内容】


Tile Converter 0829 更新:
Pattern窗口支持缩放、候选项铺满排列
nearest放大;调整排版

绿色的糖果 发表于 昨天 22:48

本帖最后由 绿色的糖果 于 2026-9-16 22:50 编辑

CTF → Godot 跑路工具链
从 Clickteam Fusion 跑路到 Godot:两种导出方式 + 两个 Godot 导入插件。

跑路对象
1. backdrop —— 对应 Godot 的 TileMapLayer
2. active —— 对应 Godot 的自制场景(本工具链仅支持坐标)

导出(CTF 侧)
① 魔改版 Nebula(批量,MFSPL 功能)
把 .mfa(或整个目录)一次反编译成 IR + 素材,可选直接生成 Godot 资源。
• backdrop → tiles.json / tileset.tres / 烘焙好的 tilemap.tscn
• active → objects.json(每帧实例坐标);active 动画也能导出(SpriteFrames .tres)
• 素材:按内容哈希去重、跨关合并同名
仓库:https://github.com/GreenSweet233/NebulaFD(.NET 6+,图像导出仅 Windows)
dotnet build Nebula.Tools/MFSPLCli/MFSPLCli.csproj -c Release
mfspL-cli <mfa 或目录> -o <IR 目录> [--godot …] [--tiles-godot …]

② TileExporter 扩展 + 特制事件(轻量)
• TileExporter.mfx:CTF 里装上,跑一次游戏就吐文本,只要 CTF 本体、零依赖
◦ backdrop:Iterate backdrop + Export tiles,按图层分文件 <名>_layer_<N>.txt
• CTF paolu active group events.mfa:给待跑路物品加组,特制事件在运行时导出 active 位置
两种方式产的是同一套 Tile 行格式(Tile 0: x=96 y=64 w=32 h=32 obstacle=1 image=965)。

导入(Godot 侧)
两个插件,两种导出格式都支持:


插件

作用

仓库


Tile Converter

导入 backdrop 数据:图块铺进选中的 TileMapLayer;IR 模式带 Frame/Layer 筛选、贴图缩略图

https://github.com/GreenSweet233/ctf-to-godot-tile-converter


Active Converter

导入 active 位置数据(仅位置):按位置实例化自制场景(对象名 → 场景 + offset);16px 去重防重复

https://github.com/GreenSweet233/ctf-to-godot-active-converter


安装方法:clone 到工程 addons/ 下(目录名保持 addons/tile_converter、addons/active_converter),在「项目设置 → 插件」启用。
• Tile:选中 TileMapLayer → 打开 txt / tiles.json → 载入你的 TileSet → 左选 image id、右点图块 → Generate
• Active:选中父容器 → 打开 txt / objects.json → 场景池加 .tscn → 对象名 ↔ 场景映射(可调 offset)→ Generate;Ctrl+Z 整批撤销
文本解析:裸列表、UTF-8 / UTF-16 编码均可读。

省流介绍(((
1. TileMap:CTF 项目里不太可能有一套整齐的 TileSet——要 Autotile 的话,需要自己去拼图。
2. Active:推荐 AI + 魔改版 Nebula 组合——Nebula 导出 active 数据(含动画素材),再配合插件/AI 导入复刻。
3. 这些导出导入工作可以让 AI 帮忙来做(

许可
• TileExporter:MIT
• Nebula 魔改版:仅对新增文件 MIT;上游 AITYunivers/NebulaFD 无许可证、未改动其源码,整体再分发需上游授权


开发全程依靠 DeepSeek V4 Pro / DeepSeek V4.1-Flash。



页: [1]
查看完整版本: [技术路线打通] CTF→Godot 跑路可能性微存