用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/xiaobo121388/netease_mc-ui-skill --skill netease-mc-ui命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | netease-mc-ui |
| description | 网易我的世界 JSON UI 和 Python 制作指南,包含基础知识、控件、属性动画、数据绑定、事件、原生UI修改及接口参考。 |
| license | Complete terms in LICENSE.txt |
本 Skill 提供了在网易我的世界中开发自定义 UI 和修改原生 UI 的全面指南。内容基于官方文档整理,涵盖了从 JSON 编写到 Python 逻辑绑定的完整工作流。
在开始编写 UI 之前,必须了解 JSON 文件的组织结构和基本概念。
namespace 字段。namespace,都应该有一个screen控件。@ 符号继承模板控件,使用 $ 定义和引用控件变量。_global_variables.json中定义全局变量, 在 _ui_defs.json 中定义全局可用的模板和变量。use_anchored_offset、property_bag、variables等。UiInitFinished 事件后开始,涉及注册、实例化、获取实例和生命周期方法(Create, OnActive, OnDeactive, Destroy)。销毁 UI 可以通过调用 SetRemove 或 PopScreen 实现。详细内容请参考:基础知识
JSON UI 提供了丰富的控件类型,用于构建各种界面元素。
screen (画布), panel (面板), label (文本), image (图片), button (按钮), switch_toggle (开关), slider (滑动条), progress_bar (进度条), text_edit_box (输入框)。stack_panel (栈式面板), grid (网格), scroll_view (滚动视图), input_panel (输入面板,支持拖拽和模态)。paper_doll / netease_paper_doll (纸娃娃模型), item_renderer (物品渲染), selection_wheel (轮盘), netease_combo_box (下拉框), mini_map (小地图)。详细内容请参考:UI 控件,并且大部分控件都有Python接口调整对应的值或者回调,具体在全部自定义UI接口通过搜索控件名称可以找到对应的接口。
MC 为部分 UI 控件属性提供了属性动画机制,使属性值随时间变化产生动画效果。
alpha)、裁剪 (clip)、颜色 (color)、序列帧 (flip_book)、位移 (offset)、尺寸 (size)、UV (uv)。"@动画名" 引用写法实现复用。next 属性将多段动画串联顺次播放,末段 next 指回链中某段可实现循环。RegisterUIAnimations、PlayAnimation、PauseAnimation、StopAnimation、SetAnimation、RemoveAnimation、SetAnimEndCallback 等接口动态控制动画。详细内容请参考:控件属性动画
数据绑定是连接 JSON 视图和 Python 逻辑的核心机制。
@ViewBinder.binding 装饰器将 Python 函数绑定到 JSON 中的变量。@ViewBinder.binding_collection 为 Grid 等列表容器中的元素绑定数据。InputPanel 拖拽或自定义按钮点击。详细内容请参考:数据绑定与按钮映射
通过监听客户端事件,可以在合适的时机创建 UI 或响应全局交互。
UiInitFinished (UI 系统初始化完成,适合注册和创建 UI), PushScreenEvent (界面入栈), PopScreenEvent (界面出栈)。GridComponentSizeChangedClientEvent,用于处理滚动列表中的网格复用。ClientJumpButtonPressDownEvent,用于拦截或响应底层输入。详细内容请参考:UI 事件
除了自定义 UI,开发者经常需要修改游戏原生的界面。
modifications 数组,通过 insert_front, insert_back, replace, remove 等操作增删改原生控件。PushScreenEvent 中获取原生 UI 的 ScreenNode 实例,通过代理类动态修改控件属性或绑定新事件。Python API 提供了操作 UI 的各种方法。
RegisterUI, CreateUI, GetUI, PushScreen, PopScreen。GetBaseUIControl, GetAllChildrenPath, SetVisible, SetPosition, AddTouchEventHandler, SetUiItem, RenderPaperDoll 等。