Bedrock Wiki
  • QQ
  • 原站
新手入门指南
  • Guide
    • 1. 简介
      指南
    • 2. 附加组件详解
    • 3. 软件与准备工作
    • 4. 项目设置
    • 5. 创建自定义物品
    • 6. 创建自定义实体
    • 7. Blockbench:建模、贴图与动画制作
    • 8. 添加战利品表、生成规则与合成配方
  • Extra
    • a. 理解JSON
    • b. 下载示例包
    • c. 故障排除
      帮助
    • d. 高级清单文件指南
    • e. 格式版本
    • f. Android 项目设置
JSON UI
  • General
    • JSON UI 入门指南
      指南
    • 最佳实践
      指南
  • Tutorials
    • Aseprite 动画
    • 保留标题文本
      中级
    • 修改服务器表单
      中级
    • 字符串与数字转换
      中级
    • 按钮与开关
      新手
    • 添加HUD界面元素
      新手
  • Documentation
    • JSON UI 文档
Meta
  • Style Guide
  • 使用JSON模式(Schemas)
  • 实用链接
  • 版本控制
  • 附加包性能优化
  • Q&A
    • GameTest 问答集 2021/08/06
    • 世界生成问答 2024/11/15
    • 延迟渲染技术预览问答 2024/02/23
    • 方块与物品问答 2024/08/30
    • 脚本与编辑器问答 2023/09/22
NBT
  • General
    • .mcstructure
  • Tutorials
    • 扩展结构限制
      简单
    • 教育版中的实验功能
      简单
  • NBT in Depth
    • NBT 库列表
      专家
    • NBT读取示例
      专家
    • 关于NBT(命名二进制标签)
      专家
世界生成
  • General
    • 世界生成入门
      指南
      实验性
    • 特性类型
      实验性
    • 生物群系
      指南
      实验性
  • Tutorials
    • 特征(Feature)的方块条件
      实验性
    • 生成地表区块
      实验性
    • 生成自定义矿石
      实验性
    • 生成自定义结构
      实验性
    • 高度图噪声地形
      实验性
  • Documentation
    • 生物群系标签
动画控制器
  • 动画控制器入门指南
    指南
  • 实体命令
    中级
  • AFK检测器
  • 将Molang变量转换为计分板数值
  • 死亡指令
  • 重生指令
命令
  • General
    • 命令方块入门指南
    • 函数
    • NBT 命令
    • 坐标系
    • 方块状态
    • 理解目标选择器
    • 记分板操作
  • Commands
    • Execute
      简单
    • Playanimation
    • 伤害
    • 播放音效
  • On Event Systems
    • 玩家首次加入时
    • On Player Join
    • 玩家离开时触发
    • 玩家死亡事件
    • 玩家重生事件系统
    • 首次加载世界时
  • Scoreboard Systems
    • 实体计数器
    • 计分板计时器
    • 比较与获取分数
  • Techniques
    • 执行逻辑门
    • MBE - Max的方块实体
    • FMBE - 创建显示实体的新方法
    • 视线检测
    • 移动状态检测
    • 轨道摄像机
  • Useful Creations
    • 多人位置重排系统
      函数
    • 自定义合成台
      简单
实体
  • General
    • Intro to Entities BP
      指南
      新手
    • 实体资源包入门
      指南
      新手
    • 实体问题排查指南
      帮助
    • NPC对话系统
      中级
    • 实体事件
      新手
    • 实体属性
    • 渲染控制器
      新手
    • 生成规则
  • Tutorials
    • 任意坐标系间的坐标转换(世界、实体、骨骼)
      中级
    • 创建船只
      中级
    • 实体手持物品
      中级
    • 实体攻击机制
      中级
    • 实体睡眠机制
      中级
    • 实体碰撞体
      中级
    • 实体移动
    • 实体计时器
      中级
    • 无敌实体
      新手
    • 村庄机制实现指南
    • 检测其他实体
      中级
    • 生成已驯服的实体
      脚本
      中级
    • 视线检测实体
      中级
    • 禁用队友伤害
      中级
    • 范围效果云入门指南
      中级
    • 虚拟实体
      新手
    • 飞行实体控制
      中级
  • Documentation
    • Vanilla Usage Spawn Rules
    • 原版使用组件
    • 抛射物
    • 虚拟组件
    • 运行时标识符
    • 非生物实体运行时标识符
战利品、配方与交易
  • General
    • 交易行为
  • Documentation
    • 战利品表
    • 交易表
    • 合成配方
    • 物品函数
  • Tutorials
    • 随机化结构战利品
      简单
文档
  • Shared Constructs
  • Molang 查询详解
  • Vanilla Materials
    专家
  • 声音定义
  • 文件类型
  • 材质配置文件说明
    专家
  • 菜单分类
  • 资源包文件夹结构
  • 雾效ID
  • 高级Molang指南
方块
  • General
    • 方块入门指南
      指南
      新手
    • 方块组件
    • Block Tags
    • 方块状态
    • Block Traits
    • 方块排列组合
    • 方块事件
      脚本
    • 方块事件迁移指南
      帮助
    • 方块物品化
      中级
    • 方块问题排查指南
      帮助
  • Visuals
    • 方块剔除
      中级
    • 方块模型
      指南
      新手
      简单
    • 方块着色
      简单
    • 方块纹理动画
      中级
    • 方块纹理变体
      中级
  • Tutorials
    • Precise Interaction
      专家
      脚本
    • Precise Rotation
      专家
      脚本
    • 伪方块
      中级
    • 可旋转方块
    • 应用持续效果
      简单
      脚本
    • 矿石战利品表
      简单
      脚本
    • 规避状态值限制
      专家
  • Vanilla Re-Creations
    • 自定义作物
      中级
      脚本
    • 自定义活板门
      中级
      脚本
    • 自定义玻璃
      新手
      简单
      已弃用
    • 自定义釉面陶瓦
      简单
  • Documentation
    • 原版方块模型
      新手
    • 方块形状
    • 方块格式历史
    • 方块音效
服务器
  • Software
    • Bedrock Server Software
  • Protocols
    • Bedrock Protocol
    • NetherNet 协议
    • RakNet 协议
概念
  • contents.json
  • Molang
    中级
  • Rawtext
  • textures_list.json
  • 命名空间
  • 子包
  • 文本与本地化
  • 着色器
  • 纹理图集
    中级
  • 表情符号与特殊字符
  • 覆盖资源
    中级
  • 音效
    中级
物品
  • General
    • 物品入门指南
      指南
      新手
    • 物品组件
    • 物品标签
    • 物品事件
      脚本
    • Item Event Migration
      帮助
    • 物品问题排查指南
      帮助
  • Tutorials
    • Custom Pottery Sherds
    • 可投掷物品
      中级
    • 生成物品
      中级
    • 自定义武器
      简单
    • 自定义盔甲
    • 自定义食物
      简单
      脚本
    • 通过装备物品执行命令
      实验性
      中级
    • 高分辨率物品
  • Documentation
    • 附魔
    • Numerical Item IDs
    • Vanilla Usage Components
    • 原版物品标识符
      已弃用
    • 可附着物
      新手
    • 物品格式历史记录
视觉效果
  • General
    • 实体视觉效果简介
      指南
    • 基岩版建模指南
    • 动画中的特效
    • 基于数学的动画
      中级
    • 材质
      专家
    • 材质创作
      专家
    • 皮肤包制作指南
    • 自定义死亡动画
      中级
  • Tutorials
    • Glowing Entity Texture
    • 受伤动画
      中级
    • 实体纹理动画
      中级
    • 栓绳位置调整
      简单
    • 玩家几何模型
      新手
    • 移除实体阴影
      中级
    • 重绘生成蛋纹理
      新手
  • Ideas
    • 结构展示技巧
粒子效果
  • General
    • 粒子效果入门
      指南
  • Tutorials
    • 禁用粒子效果
      新手
  • Documentation
    • 原版粒子效果
脚本编写
  • General
    • 脚本编程入门
    • 什么是Script API?
    • API 模块
  • Tutorials
    • GameTests
      实验性
    • 简易聊天命令
      实验性
    • 脚本核心功能
    • 脚本表单
      实验性
    • 脚本请求API
      实验性
    • 阻止方块放置
  • Documentation
    • JavaScript 问题排查指南
    • Script Resources
    • Script Watchdog
      实验性
    • TypeScript
    • 引擎环境
虚拟现实
  • General
    • 启用VR模式
      指南
    • 配置资源包
      专家
  • Tutorials
    • 编辑你的第一个模型
      专家

方块与物品问答 2024/08/30

方块与物品问答 2024/08/30
  • HCF废弃/移除功能的替代方案?
  • 近期改动的设计思路?
  • 自定义方块实体
  • 物品描述组件
  • 自定义组件优化
  • 脚本API工作流优化
  • 文档改进
  • 自定义音乐唱片
  • 流体渗透组件
  • 物品属性系统
  • 多帧动画物品
  • 水流接触破坏机制
  • 红石功能扩展
  • blocks.json的未来
  • 方块更新/破坏事件
  • 自定义色彩映射
  • 存储物品的脚本访问
  • 自定义创造分类
  • 物品旋转组件
  • 方块几何体增强
  • 可上锁的存储方块
  • 不可移动方块
  • 多面体模型支持
  • 自定义盔甲纹饰
  • 物品存储实体
  • 装备/卸装事件
  • 物品自定义按键绑定
  • 方块渲染优化
  • 玩家交互方块事件
  • 方块阵列召唤实体
  • 方块标签Java版 parity
  • 任意角度旋转支持
  • 多纹理方块支持
  • 完整方块的环境光遮蔽
  • 相机碰撞组件
  • 自定义音效系统
  • 多重碰撞箱
  • 禁用精准采集
  • 方块环境光遮蔽

本次问答活动在Bedrock附加包Discord举行。九位Mojang/Microsoft员工参与解答了关于自定义方块与物品API的社区提问。

WARNING

并非所有对话记录都被完整保存,部分内容经过编辑。如需查看完整记录,请加入上述Discord服务器并获取"活动档案"身份组。

HCF废弃/移除功能的替代方案? ​

  • 问:是否有计划重新引入HCF实验中全部或部分已废弃/移除的功能?例如物品的minecraft:knockback_resistance和方块的minecraft:unwalkable组件。
  • 答:我们在开发时优先保留了被广泛使用的HCF功能,未被采用的功能暂未纳入当前版本。不过这些建议已加入待办清单(若原先不在清单中,本次问答后也会加入),感谢反馈!

近期改动的设计思路? ​

  • 问:近期创新性改动的设计灵感来源是什么?为何认为用自定义组件替代HCF是更好的方案?
  • 答:HCF事件系统存在稳定性差、扩展性弱、操作繁琐等问题。我们认为需要构建一个更具长期支持价值的新方案。脚本系统不仅更稳定、易扩展,还能与其他现有功能无缝衔接且功能更强大。经过多次迭代后,最终形成了当前的自定义组件体系。预计明年还将推出组件系统的改进功能!总体而言,自定义组件为创作者提供了更强能力,也比HCF更符合Bedrock平台的长期发展规划。

自定义方块实体 ​

  • 问:未来会开放创建类似箱子的功能性方块吗?
  • 答:近期暂无计划,但我们正在研究所有无法通过数据实现的方块行为!
  • 问:是否有添加方块实体或方块动画的计划?
  • 答:这是个有趣的探索方向。通过脚本组件已能较好"模拟"多数方块实体特性,但类似箱子库存的专属存储功能仍需原生支持。

物品描述组件 ​

  • 问:是否考虑为物品添加描述组件?类似原版音乐唱片和山羊角的说明文本,这对自定义唱片、使用说明类物品或自定义药水效果列表都很有用。
  • 答:有趣的建议!虽然当前未列入近期计划,但脚本API的getLore方法可临时实现类似效果(创意菜单中不可用)。

自定义组件优化 ​

  • 问:是否计划改进自定义组件的数据绑定方式?当前"全有或全无"的接口较为局限。
  • 答:这正是我们明年将推出的改进功能之一,目标是让自定义组件的使用体验与其他组件保持一致。
  • 问:会包含参数支持吗?参数化能极大提升组件在不同项目和物品间的复用性。
  • 答:组件扁平化与参数功能预计将同步推出,可能需要搭配脚本API 2.0.0版本。具体时间预计在明年。

脚本API工作流优化 ​

  • 问:作为有JavaScript网页开发/Discord机器人开发背景的创作者,当前需要同时处理大量JSON文件的工作流显得不够高效。是否考虑将视觉属性保留在JSON中,而将事件/功能逻辑移至脚本API?
  • 答:我们正逐步向"JSON定义结构,脚本处理逻辑"的方向发展,这与你的构想基本一致(不过会采用更自动化的连接方式,无需手动导入JSON)。

文档改进 ​

  • 问:是否有计划在MS Learn或Bedrock Wiki中添加JavaScript示例?
  • 答:我们已意识到文档缺口,后续新API发布时将同步添加TypeScript使用示例。考虑到TypeScript的学习曲线,我们也在评估是否同时提供JavaScript版本(尚未最终确定)。另外下周起文档中的脚本示例将更易获取和使用!
  • 问:请说明下落方块(如沙子)的工作原理,当前尝试复现原版行为未果。
  • 答:已记录为文档补充需求。

自定义音乐唱片 ​

  • 问:当前"minecraft:record"组件能否支持自定义音乐?
  • **答:很遗憾近期没有开发计划 😦

流体渗透组件 ​

  • 问:会为自定义方块添加水流/积雪渗透组件吗?
  • 答:水流渗透已列入短期计划(约6个月内),积雪渗透属于长期规划。熔岩渗透也同样在长期计划中 <:bao_doggo_happy:939767354261372978>

物品属性系统 ​

  • 问:未来会考虑实现物品属性吗?客户端可查询的每物品数据存储将非常实用,即使仅限不可堆叠物品(类似脚本API中的动态属性)也很棒。
  • 答:感谢建议!我们需要先完善物品的基础架构(当前物品堆叠缺乏像方块/实体那样的独立标识),这些前置工作完成后才会考虑添加属性系统。

多帧动画物品 ​

  • 问:能否实现类似指南针的翻页动画物品或多纹理物品?
  • 答:已记录为功能请求。由于动画系统与方块深度绑定,适配物品存在技术难度。此外物品系统需要中期强化后才能支持此类扩展。

水流接触破坏机制 ​

  • 问:希望实现类似地毯/农作物接触水流后破坏的特性。曾尝试用脚本API模拟,但因水流复杂形态难以全面检测。
  • 答:这将作为方块组件在短期计划(约6个月内)实现!

红石功能扩展 ​

  • 问:当前redstone_conductivity只是基础,真正的红石设备需要响应信号能力。虽然可通过脚本检测红石信号,但轮询方式效率低下,且无法主动输出信号(如阳光传感器)。
  • 答:感谢建议!将评估该功能与现有规划的契合度。

blocks.json的未来 ​

  • 问:blocks.json的未来发展计划?当前与自定义几何体不兼容等问题显著,会升级还是替换?最初设计目的是什么?
  • 答:简短回答是我们计划移除该文件。原始设计意图已不可考 😆 不过移除后相关问题都将解决。

方块更新/破坏事件 ​

  • 问:希望添加这两个关键事件: onBlockUpdate - 便于制作连接型方块(如门) beforeBlockBroken - 捕获包括生物/命令在内的所有破坏方式
  • 答:邻接方块更新因技术复杂暂未列入计划,但onBlockDestroyed前置事件是个优秀建议,将纳入评估。

自定义色彩映射 ​

  • 问:自定义方块能否使用类似草方块/树叶的色彩映射?
  • 答:已列入中长期路线图,预计明年某个时间点推出(具体时间暂未确定)。

存储物品的脚本访问 ​

  • 问:能否像实体那样通过脚本API操作minecraft:storage_item组件的物品库存?
  • 答:已在待办清单!理想情况下未来会与相关功能同步推出 😄

自定义创造分类 ​

  • 问:能否将物品/方块添加至现有或新建的创造模式分类?
  • 答:当前可创建自定义物品分组(相同名称物品会自动归类),但无法实现原版分类的折叠图标效果。使自定义分组达到原版分类体验是短期目标!自定义大类功能暂未规划。

物品旋转组件 ​

  • 问:无需附着物即可自由设置物品手持时的XYZ旋转角度。
  • 答:方块物品可通过物品展示变换实现,其他3D物品建议使用附着物系统。

方块几何体增强 ​

  • 问:关于方块几何体:
    • 能否通过minecraft:transformation或minecraft:geometry独立旋转骨骼/纹理?
    • 是否有类似item_display_transforms的改进计划?
    • 未来支持脚本修改几何体吗?
  • 答:数据驱动几何体改进正在进行,部分物品变换功能已进入预览阶段。但脚本修改几何体暂无计划。
  • 问:除full_block和cross外,能否添加更多原版几何体(如台阶/楼梯)?
  • 答:当前未开放其他原版几何体,但实现数据驱动等效功能是长期目标。你认为哪些原版几何体最应优先支持?

可上锁的存储方块 ​

  • 问:物品锁定模式对存储方块无效,会改进吗?
  • 答:建议使用block_placer组件制作可放置方块,配合附着物实现手持显示。

不可移动方块 ​

  • 问:希望恢复通过组件/事件取消方块移动的功能。
  • 答:已在待办清单,但优先级未定。

多面体模型支持 ​

  • 问:当前多面体模型仅限实体使用,方块会支持吗?
  • 答:多面体模型存在技术隐患,暂无扩展计划。

自定义盔甲纹饰 ​

  • 问:能否创建自定义纹饰模板与配色方案?
  • 答:盔甲纹饰扩展正在构思中,但近期无具体计划。"自定义物品作为图案颜色"具体指?

物品存储实体 ​

  • 问:希望实现存储实体数据的物品/方块(如自定义生物桶/蜂箱),建议语法:
    json
    "minecraft:entity_storage": {
        "release_on_destroyed": true,
        "max_entities": 1
    }
    1
    2
    3
    4
    脚本调用示例:
    js
    const storage = block.getComponent("minecraft:entity_storage");
    dimension.spawnEntity(block.location, storage.entities[0]);
    1
    2
  • 答:精彩创意!我们设想允许"不透明"地快照方块/物品/实体数据以实现持久化,但会限制数据解析以防异常行为。

装备/卸装事件 ​

  • 问:是否计划添加onEquip/onUnequip事件?当前需用轮询检测装备栏效率低下。
  • 答:虽然当前未开发,但中长期计划中会考虑在自定义物品组件或world.afterEvents中添加装备事件。

物品自定义按键绑定 ​

  • 问:能否使物品在特定按键时触发脚本?对地图/战斗类附加包极有帮助。
  • 答:我们正在研究基础移动输入API。自定义绑定(需兼容触屏操作)已在考虑中,但尚未排期。

方块渲染优化 ​

  • 问:当前四种渲染方法(alpha_test/opaque/blend/double_sided)各有缺陷:
    • alpha_test在70格外消失
    • blend存在已知问题
    • 都无法实现原版玻璃的面剔除 是否计划添加:
    1. 根据距离动态切换渲染方法(如原版树叶)?
    2. 支持非完整方块遮挡时的面剔除?
  • 答:将很快发布新文档说明各渲染方法的可视距离。使用alpha_test_single_side*可复现玻璃效果(会剔除与完整方块相邻的面)。 *编者注:此处Mojang笔误,应为alpha_test_single_sided
  • 追问:
    1. 能否根据邻接情况动态切换渲染方法?
    2. 考虑添加屏障/结构空位等特殊渲染方法吗?
  • 答:邻接相关功能正在调研中。特殊渲染方法需求已记录。

玩家交互方块事件 ​

  • 问:PlayerInteractWithBlock在稳定版仍不可用,未来会推出吗?

  • 答:该功能在测试版滞留过久 😕 预计将在近期版本转入稳定版。主要难点在于交互事件的触发频率难以预测(甚至因设备而异),我们最终通过添加isFirst属性来辅助判断(创作者可能仍需自行跟踪首次事件)。

  • 问:若取消事件,能否实现特定条件下才允许交互(如仅限方块南面可交互)?

  • 答:当前onPlayerInteract是后置事件,若改为前置事件则可取消交互。虽未列入计划,但值得考虑。

方块阵列召唤实体 ​

  • 问:能否添加类似凋灵/铁傀儡的方块阵列召唤机制?
  • 答:建议使用playerPlaceBlockBeforeEvent配合周边方块模式匹配来实现,近期暂无原生支持计划。

方块标签Java版 parity ​

  • 问:能否添加更多标签来简化方块筛选?这对自定义工具等开发很有帮助。
  • 答:相关领域即将启动调研™️。

任意角度旋转支持 ​

  • 问:当前旋转仅支持90度倍数,能否开放任意角度(如45度)?
  • 答:这不符合Minecraft视觉设计规范,暂无技术支持计划。

多纹理方块支持 ​

  • 问:自定义方块会支持多纹理变体吗?
  • 答:基于material_instances的多纹理功能已列入长期计划。

完整方块的环境光遮蔽 ​

  • 问:使用full_block几何体的方块不会产生/接收环境光遮蔽,影响视觉效果(如自定义原木)。 示例对比:https://media.discordapp.net/attachments/1215333861362237470/1278887412747079722/Kaleidoscope_003041.gif
  • 答:这疑似是bug?能否提供相关JSON?我们正在研究将"实体性"拆分为更可定制的行为模块。

相机碰撞组件 ​

  • 问:能否添加类似玻璃的相机碰撞规则组件?
    json
    "minecraft:camera_collision": false
    1
  • 答:有趣的想法!你希望完全禁用碰撞,还是实现特定行为?

自定义音效系统 ​

  • 问:当前blocks.json无法定义自定义音效类型,能否:
    1. 为方块添加自定义音效事件(行走/破坏/放置等)
    2. 扩展以下组件的音效支持:
      • minecraft:record的音效事件
      • minecraft:shooter的完成音效
      • minecraft:food的使用音效
      • minecraft:wearable的装备音效
    3. 通过脚本API播放自定义音效
  • 答:这需要建立自定义音效事件体系。虽然未列入短期计划,但已记录需求+1。

多重碰撞箱 ​

  • 问:未来会优化碰撞箱系统吗?当前难以实现类似楼梯的复杂碰撞。
  • 答:支持复杂碰撞形状的功能已列入长期路线图。

禁用精准采集 ​

  • 问:虽然可通过脚本实现,但不够原生。能否原生控制方块被精准采集时的掉落?
  • 答:自定义方块可通过战利品表的match_tool条件实现(需包含精准采集附魔)。修改原版方块战利品表的功能正在开发中。

方块环境光遮蔽 ​

  • 问:使用完整方块几何体时,环境光遮蔽表现异常(如自定义原木不像原版那样产生遮蔽)。 示例:https://media.discordapp.net/attachments/1215333861362237470/1278887412747079722/Kaleidoscope_003041.gif
  • 答:这似乎是bug?请提供相关JSON。我们正在重构"实体性"相关行为模块。

贡献者

编辑 方块与物品问答 2024/08/30

Bedrock Wiki by Bedrock OSS ,Translate by 8aka-Team

"Minecraft"是Mojang AB的注册商标。

Bedrock OSS、Bedrock Wiki以及 bedrock.dev 与Microsoft及Mojang AB不存在任何隶属关系。

  • 隐私政策
  • 加入QQ社区
  • 参与贡献指南
  • 访问代码仓库