方块与物品问答 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 }jsconst storage = block.getComponent("minecraft:entity_storage"); dimension.spawnEntity(block.location, storage.entities[0]); - 答:精彩创意!我们设想允许"不透明"地快照方块/物品/实体数据以实现持久化,但会限制数据解析以防异常行为。
装备/卸装事件
- 问:是否计划添加
onEquip/onUnequip事件?当前需用轮询检测装备栏效率低下。 - 答:虽然当前未开发,但中长期计划中会考虑在自定义物品组件或
world.afterEvents中添加装备事件。
物品自定义按键绑定
- 问:能否使物品在特定按键时触发脚本?对地图/战斗类附加包极有帮助。
- 答:我们正在研究基础移动输入API。自定义绑定(需兼容触屏操作)已在考虑中,但尚未排期。
方块渲染优化
- 问:当前四种渲染方法(
alpha_test/opaque/blend/double_sided)各有缺陷:alpha_test在70格外消失blend存在已知问题- 都无法实现原版玻璃的面剔除 是否计划添加:
- 根据距离动态切换渲染方法(如原版树叶)?
- 支持非完整方块遮挡时的面剔除?
- 答:将很快发布新文档说明各渲染方法的可视距离。使用
alpha_test_single_side*可复现玻璃效果(会剔除与完整方块相邻的面)。 *编者注:此处Mojang笔误,应为alpha_test_single_sided - 追问:
- 能否根据邻接情况动态切换渲染方法?
- 考虑添加屏障/结构空位等特殊渲染方法吗?
- 答:邻接相关功能正在调研中。特殊渲染方法需求已记录。
玩家交互方块事件
问:
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 - 答:有趣的想法!你希望完全禁用碰撞,还是实现特定行为?
自定义音效系统
- 问:当前
blocks.json无法定义自定义音效类型,能否:- 为方块添加自定义音效事件(行走/破坏/放置等)
- 扩展以下组件的音效支持:
minecraft:record的音效事件minecraft:shooter的完成音效minecraft:food的使用音效minecraft:wearable的装备音效
- 通过脚本API播放自定义音效
- 答:这需要建立自定义音效事件体系。虽然未列入短期计划,但已记录需求+1。
多重碰撞箱
- 问:未来会优化碰撞箱系统吗?当前难以实现类似楼梯的复杂碰撞。
- 答:支持复杂碰撞形状的功能已列入长期路线图。
禁用精准采集
- 问:虽然可通过脚本实现,但不够原生。能否原生控制方块被精准采集时的掉落?
- 答:自定义方块可通过战利品表的
match_tool条件实现(需包含精准采集附魔)。修改原版方块战利品表的功能正在开发中。
方块环境光遮蔽
- 问:使用完整方块几何体时,环境光遮蔽表现异常(如自定义原木不像原版那样产生遮蔽)。 示例:https://media.discordapp.net/attachments/1215333861362237470/1278887412747079722/Kaleidoscope_003041.gif
- 答:这似乎是bug?请提供相关JSON。我们正在重构"实体性"相关行为模块。
