with one click
netease-mc-ui
网易我的世界 JSON UI 和 Python 制作指南,包含基础知识、控件、属性动画、数据绑定、事件、原生UI修改及接口参考。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
网易我的世界 JSON UI 和 Python 制作指南,包含基础知识、控件、属性动画、数据绑定、事件、原生UI修改及接口参考。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| 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 等。