Skip to content

可视化编程 ​

不会写代码也能做玩法?完全可以。 逻辑编辑器(也叫蓝图编辑器)是中国版为开发者打造的节点式可视化编程系统,通过"连连看"的方式构建完整的游戏逻辑。

概述 ​

逻辑编辑器以蓝图(Blueprint) 为载体,将中国版全套 SDK 接口和 Python 内置函数集成为可视化节点。你只需在编辑器中找到需要的节点,按逻辑顺序连接起来,逻辑就能在游戏中生效。

[事件: 玩家受伤] ──→ [获取实体速度] ──→ [设置速度 x2] ──→ [定时器: 3秒后恢复]

上面这条"被打后加速"的逻辑,在蓝图中只需要拖出四个节点并连线即可完成。

功能亮点 ​

特性说明
节点式编写通过添加节点和连线控制数据传递,无需写代码
即挂即用蓝图零件挂接到预设即生效,同一零件可复用到不同预设
SDK 全覆盖集成全套 ModSDK 接口,全部已汉化
智能搜索支持中文、英文、拼音搜索节点,支持分词
变量管理零件变量、自定义接口的创建和管理
UI 蓝图支持用蓝图编写 UI 界面逻辑

逻辑编辑器界面 ​

逻辑编辑器主要由以下区域组成:

区域用途
节点图表(中央)主编辑区域,在这里添加节点、连接引线
脚本元素窗口(左侧)管理零件变量和自定义接口
右键节点菜单搜索并添加节点,支持中文/英文/拼音搜索
属性面板(右侧)查看和修改选中节点的属性

基本操作 ​

  1. 添加节点:在图表空白处右键,输入关键词搜索,点击选中节点
  2. 连接引线:从节点的输出端口拖线到另一个节点的输入端口
  3. 删除节点:选中节点后按 Delete 键
  4. 调整视图:鼠标滚轮缩放,中键拖拽画布

引线类型

蓝图中有两种引线:执行引线(白色,控制执行顺序)和数据引线(彩色,传递数据值)。执行引线决定"先后",数据引线决定"输入输出"。

事件节点 ​

事件是蓝图逻辑的执行起点。当游戏中发生特定行为时,对应的事件节点会触发,后续连接的节点按顺序执行。

常用事件示例:

事件触发时机
玩家加入玩家进入游戏世界
实体受伤实体受到伤害
方块放置玩家放置方块
按键点击玩家按下指定按键
定时器到期计时器倒计时结束

你也可以使用自定义事件,在蓝图之间通过广播和监听进行通讯:

[广播自定义事件: "boss_defeated"] ──→ (其他蓝图)[监听自定义事件: "boss_defeated"]

动作节点 ​

动作节点用于调用游戏 API,执行具体操作。它们是蓝图中最丰富的节点类型,覆盖了 ModSDK 的全部接口。

常用动作节点:

动作说明
设置实体速度修改实体的移动速度
创建实体在指定位置生成实体
发送聊天消息向玩家发送文本
播放动画播放指定的动画资源
设置方块在指定坐标放置方块

条件与分支 ​

蓝图支持 if/else 逻辑。使用分支节点根据条件走不同的执行路径:

[获取玩家血量] ──→ [分支: 血量 < 5 ?]
                        │
                  ┌─ True ──→ [播放低血量警告]
                  └─ False ─→ [无操作]

常用条件节点:

  • 比较节点:等于、不等于、大于、小于
  • 逻辑运算:与、或、非
  • 类型判断:判断实体类型、方块类型等

变量与数据 ​

零件变量 ​

零件变量用于在蓝图中存储数据。通过获取变量和设置变量节点读写。

变量类型说明
整数 / 浮点数数值运算
字符串文本处理
布尔值逻辑判断
列表 / 字典存储集合数据
实体 ID引用游戏实体

变量作用域 ​

  • 零件变量:属于当前蓝图零件实例,不同实例各自独立
  • 预设属性:通过属性面板暴露,可在编辑器中直接修改
  • 全局变量:通过世界属性零件管理,所有蓝图共享

开放属性

将零件变量标记为"开放属性"后,可以在预设编辑器的属性面板中直接调整参数,无需修改蓝图内部逻辑。这是实现零件复用的关键。

与脚本的关系 ​

蓝图和 Python 脚本可以在同一个项目中共存,各有优劣:

维度蓝图(可视化)Python 脚本
上手难度低,无需编程基础中,需要 Python 基础
开发效率简单逻辑快,复杂逻辑慢复杂逻辑快,简单逻辑略慢
可读性直观,但节点多时杂乱代码整洁,可结构化
性能略低于脚本更高
调试可视化执行流,易追踪需要日志和断点
复用性蓝图零件可复用模块/类可复用
SDK 覆盖全部覆盖全部覆盖

混合使用:蓝图可以调用 Python 脚本中的函数,Python 也可以通过事件系统与蓝图通讯。在同一个预设上,你可以同时挂接蓝图零件和脚本零件。

适用场景 ​

推荐使用蓝图 ​

  • 简单的游戏玩法逻辑(触发器、计时器、条件判断)
  • 快速原型验证
  • UI 界面交互逻辑
  • 非程序员主导的开发团队

建议使用脚本 ​

  • 复杂的算法和数据处理
  • 性能敏感的高频逻辑
  • 大量重复模式的代码(循环、批处理)
  • 需要精细代码组织和版本管理的项目

蓝图的局限

蓝图节点数量过多时(数百个以上),图表会变得难以维护。建议将大型逻辑拆分为多个蓝图零件,或将核心计算逻辑用 Python 实现,用蓝图做流程编排。

快速上手 ​

第一个蓝图 Mod —"被打后加速的猪" ​

  1. 创建项目:在 MC Studio 中新建项目,准备好地图
  2. 创建蓝图零件:新建一个服务端蓝图零件,挂接到猪的实体预设上
  3. 编写逻辑:
    • 添加"受伤事件"监听节点
    • 连接"获取实体速度"节点
    • 连接"设置实体速度 × 2"节点
    • 添加定时器在 3 秒后恢复原速
  4. 测试:点击运行,进入游戏攻击猪,观察加速效果

客户端与服务端 ​

蓝图同样遵循 Client-Server 架构。创建蓝图零件时需要区分:

  • 服务端蓝图:处理游戏逻辑(伤害计算、物品操作、实体管理)
  • 客户端蓝图:处理 UI 显示、特效播放、音效等表现层逻辑

从蓝图到脚本

蓝图底层编译为 Python 代码。如果你的项目后期需要迁移到纯脚本方案,蓝图中的逻辑可以按节点逐一翻译为 Python 调用。