创新互联MinecraftWiki教程:总指南[]

此特性为基岩版独有。

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了邵阳免费建站欢迎大家使用!

目录

  • 1 总指南
  • 2 定义文件
  • 3 函数
  • 4 命令
  • 5 模型
  • 6 声音
  • 7 UI
    • 7.1 修改UI示例
      • 7.1.1 示例1: 减少变量
      • 7.1.2 示例2: 继承
      • 7.1.3 示例3: 修改子控件
      • 7.1.4 示例4: 修改数组
  • 8 世界
    • 8.1 生物
    • 8.2 红石
    • 8.3 常加载区域
  • 9 参见

此处提供的指南是为了使创作者得到为Minecraft创作内容时的较好体验的一种最佳操作。它将有助于确保作品可以工作,并且在应对游戏中的变化时具有高效性和弹性。

总指南[ ]

  • 从世界和包的目录中移除所有与内容无关的文件。
    • 不要在包中存放包,或存放Windows或Photoshop文件。它们中的任意一种都会在读取、导入或加载内容时导致出错。
    • 在发布之前从内容中移除任何未使用的资源。
    • 这能够保证在将内容缩减到最小的同时减少内容验证失败的可能性。
  • 此外,如果原版文件被修改,这样做对你的内容来说不会造成意外的更改。
  • 不同的平台有不同的路径长度限制。算上包或世界的路径,平台会计算导入到Minecraft里的目录长度。如果长度超出限制,包会导入失败并且会变成无效状态。正因如此,我们建议:
    • 保持路径长度为70字符或更少,即从包或世界模板的根目录到一个文件的最长路径长度应该只能有70字符长。
    • 路径中的每一部分(目录或文件名)必须小于60字符。否则,一些平台将无法识别这一部分。
    • 资源包或行为包的目录名应该小于10字符长。这样可以使创作者可以写更长的文件或子目录名。例如, bp_mw 有如下目录:
      • MyWorld/behavior_packs/bp_mw

定义文件[ ]

  • 例如blocks.jsonmobs.jsonsound_definitions.json以及其他位置的定义文件包含了原版中所有元素的定义。请确保你的包只包含那些需要更改的元素和字段。这意味着:不要直接复制/粘贴所有原来的定义,然后只更改需要更改的那一段,而是仅需要保留文件中需要更改的那一段。游戏会自动将这些更改与原版的文件合并。
    • 如果需要更改的之外的某些部分也被留在了文件中,而原版的方块或生物在游戏版本更新时发生了更改,那么那一段就会造成内容里不必要的变更。

以下文件不应该改写,除非你有意更改此内容。它们还没有获得官方的支持,但是如果你的修改可行,也可以在至少同版本正常运行。 因此无法保证所做的更改会正常工作或在未来依旧能工作。

  • credits/end.txt
  • font/emoticons.json
  • texts/language_names.json
  • items_client.json
  • items_offsets_client.json
  • shaders目录里的任何文件

注:shaders文件夹内文件为HLSL或GLSL语言编写

函数[ ]

  • 使用子目录来创建命名空间,以避免多个行为包的函数文件之间的冲突。如果一个函数的路径(以/functions/subdirectory开头)与另一个包一个函数的路径完全吻合,那么在包栈中靠近顶部的包会覆盖其他的包。
  • 为了减少你的函数在特定平台上无法工作的概率,请用使用小写字母且不留空格的方式来命名你的目录和函数文件,例如/functions/awesome_pack/level1_function.mcfuntion。
  • 请谨慎地使用递归。尽管递归是支持的,当递归很深的时候它依旧会导致一些性能问题。
  • 在你行为包清单文件的“min_engine_version”之后输入你当前开发所处的游戏版本,例如"min_engine_version" : [1,8,0] 。
    • 这样你就可以控制使用哪个版本的命令来保证向后兼容性。
  • 如果你的命令方块只运行函数,那么修改他们就会变得简单很多。更重要的是,如果你发布了一个包含函数文件的新的行为包,那么使用那个行为包的世界也会在新包应用时立马得到更新。
  • 最后一个关键点是说明性的:当前的基岩版尚未支持条件分支(例如execute (if unless)),但是它可能会在未来加入到游戏中。

命令[ ]

  • 请避免每刻都执行命令。尤其重要的是不要每刻都执行大量的命令。
    • 尽量不要在每刻执行超过30条命令。
    • 如果需要频繁执行命令,可以考虑把它们放到一个时钟循环里,这样它们可以每5+刻执行一次。
    • 如上面所说,如果你设置了偏置时钟使得命令在不同的刻上执行,那么就可以平衡你的工作并获得更佳的性能。
    • 获知你内容的性能是否是由于命令过多而表现不佳的一个简单方法就是使用commandblocksenabled游戏规则来关闭所有命令方块的执行。
  • 请尽可能地不要使用长时命令(例如覆盖区域很大的/clone或/fill)。如果可以的话,请把它分开并在不同的刻执行。
  • 不要在目标选择器中使用物品的本地化名字,例如/testfor @e[name=beacon]。
    • 如果玩家来自不同语言区,那么物品的名字可能会改变而后命令将无法工作。

模型[ ]

  • 具有许多微小部件的模型在低端设备和某些GPU上性能可能会很差。请在细节与性能之间推敲出适当的平衡。

声音[ ]

  • 在流上只播放长时声音,例如背景音乐。
    • 可以获得游戏内更佳的性能。
    • 一些平台在同一时间只能打开一定数目的文件,在流上播放所有的声音可能会因内容过多而导致游戏崩溃。
  • 短时声音(例如音效)在内存上加载会有最佳性能。
  • 使用一些小技巧来缩小你的文件,例如从开头和结尾移出所有的静音部分
  • 有一个标识load_on_low_memory可以用于声音的定义里。这个标识默认设为false,这意味着如果此时计算机内存较低,它就不会再载入任何声音。如果对于某个特定的声音来说,它必须得到载入,那么就把这个标识设为true。请权衡利用这一特性。
  • 基岩版音效文件为FSB格式,如果条件有限,可以转码成OGG格式后直接重命名成FSB文件。

UI[ ]

  • 所有UI的修改都是有风险的。如果原版的界面以某种形式被修改,那么使用这个界面的内容就有可能崩溃。UI系统是以一种有助于我们能灵活地通过JSON文件修改界面的方式设计的。任何对UI的JSON文件的更改(在一个自定义的资源包里)都会和原版的文件合并。如果合并过程不正确则游戏可能会进入一种不佳状态。
  • 重新绘制UI贴图,即修改他们所使用的纹理,这样风险就会小很多,并且能做出一些更漂亮的元素。
  • 重新编辑元素的尺寸以及移动它们风险更大,但是在大多数情况下还是可行的。
  • 改变一个界面中的元素本身具有破坏性的高度风险。

修改UI示例[ ]

下面是一些示例,它们介绍了如何在不完全复制整个界面的前提下修改一个UI定义文件。下面以附魔台界面文件(enchanting_screen_pocket.json)的一部分为例。

示例1: 减少变量[ ]

不要包含那些无需更改的变量。例如,如果"color"和"shadow"是要更改的,那么就不要把其他的变量复制/粘贴到这里。只需要声明那些需要替换的变量就可以完成简单的所需要的更改。

不佳的复制/粘贴法:

   "generic_label": {
       "type": "label",
       "color": "$pocket_title_text_color",
       "anchor_from": "center",
       "anchor_to": "center",
       "shadow": false
   },

更好的例子:

   "generic_label": {
       "color": "$pocket_title_text_color",
       "shadow": false
   },

示例2: 继承[ ]

无需重新声明正在修改的控件所继承自的控件。仅声明正在修改的控件名即可。在下面的代码中,"common.button"就可以跳过不写:

不佳的例子:

   "enchanting_confirm_button@common.button": {

较好的例子:

   "enchanting_confirm_button": {

示例3: 修改子控件[ ]

以同一个按钮为例,如果只需要修改该控件的子控件中的一些特定的变量,例如,default控件。仅修改一个控件的子控件请使用control_name/child_name语法。所以与之这样写:

   "enchanting_confirm_button@common.button": {
       "controls": [
         { 
           "default@enchanting_pocket.confirm_default_control": {
             "type": "image",
             "texture": "textures/ui/button_borderless_light" //Added fancy button texture to default control
           }
         }
       ]
   },

不如这样写:

   "enchanting_confirm_button/default": {
       "texture": "textures/ui/button_borderless_light" //Added fancy button texture to default control     
   },

示例4: 修改数组[ ]

这个示例将展示如何修改一个控件中的数组。例如:添加一个新的控件作为子控件或从一个控件的绑定中移除一个绑定。就该例来说,有一个叫"modifications"特殊的变量。对modifications数组里的每一条记录,可以指定一个特定的数组去修改、操作并输出结果。

以"enchanting_book_panel"为例,如果需要在"controls"数组里添加一个控件,就可以添加一个modifications数组,数组中指定了"array_name": "controls"、"operation": "insert_front"和"value",其中最后一个中可以填入新的控件,新控件就会如同被放到了controls 数组里一样。下面的例子展示了上面所说的内容以及偏移量的更改。

   "enchanting_book_panel": {
       "offset": [ -4, 1],
       "modifications": [
       {
           "array_name": "controls",
           "operation": "insert_front",
           "value": [
           "panel_outline@beacon_pocket.panel_outline": { "layer": 0 }
           ]
       }
       ]
   }

要从"player_level_label"子控件中移除"#player_level_color"绑定,可以进行如下操作:

   "enchanting_book_panel/player_level_label": {
       "offset": [ 0, 10 ],
       "layer": 3,
       "color": "$experience_text_color"
       "modifications": [
       {
           "array_name": "bindings",
           "operation": "remove",
           "where": {
           "binding_name": "#player_level_color"
           }
       }
       ]
   }

世界[ ]

生物[ ]

  • 不要一次生成过多的实体。根据设备的不同,如果在同一时间有过多的实体更新,性能可能会很差。

红石[ ]

只要有可能,就一定不要让红石元件在区块边界处交互。

  • 游戏是有能力处理大部分这种情况的,然而,的确有些例子表明当区块的加载和红石元件更新发生矛盾时,的确会引起一些元件失去它们状态并破坏电路直到它们被重新放置。
  • 红石元件包括所有可以产生、传递或消耗红石信号的方块,例如:
    • 按钮
    • 命令方块
    • 比较器
    • 发射器
    • 漏斗
    • 拉杆
    • 侦测器
    • 活塞
    • 铁轨:激活型、探测型和充能型
    • 红石线
    • 中继器
    • 以及其他

常加载区域[ ]

  • 不要过度使用常加载区域。
    • 这对低内存设备尤其重要。
  • 如果可以,在不使用常加载区域时请卸载它们。
    • 这可以使得设备回收一些内存,也可以为所需要的新的常加载区域腾出空间。

参见[ ]

  • 附加包
  • 基岩版附加包文档
  • 基岩版实体文档
  • 基岩版动画文档
  • 基岩版粒子文档
  • 基岩版Molang文档
  • 基岩版模式文档

教程(作下划线标记的教程为中文独有教程)

新手教程
  • 菜单屏幕
  • 游戏术语
  • 下载、安装与购买
新手生存
  • 新手指南
  • 第一天
  • 第二天
  • 第三天
  • 提示与技巧
  • 饥饿管理
  • 不该做的事
  • 生存注意事项
庇护所
  • 庇护所
    • 沙漠
  • 最佳居住生物群系
  • 最佳建筑材料
  • 建筑与结构
  • 房屋类型
  • 导航
综合
  • 无聊的时候做什么
  • 村庄生存
  • 跑酷
  • 空置域
  • 伪和平
  • 节省时间的小窍门
  • 在水下利用TNT破坏方块
  • 成就指南
  • 进度指南
  • 拓殖
  • 战斗
  • 完成冒险
  • 创建一个村庄
  • 双持
  • 沙漠生存
  • 雷暴生存
  • 下界生存
  • 从零开始下界生存
  • 末地生存
  • 探索洞穴
  • 家具
  • 在和平难度中收集资源
  • 利用碰撞箱
  • 测量单位
  • 使用地图
  • 测量距离和角度
  • 采矿技术
    • 钻石
    • 化石
    • 远古残骸
  • 下界快速旅行
  • 下界传送门
  • 支柱跳跃
  • PvP
    • Java版1.9前、基岩版
    • 基地
  • 穿越和破坏基岩
  • 村庄机制
  • 考古
  • Minecraft和教育
  • 不可破坏的末地水晶
  • 使用更少的末地水晶重生末影龙
  • 透视镜
  • 挂机池
  • 光速船[仅基岩版]
  • 无材料消耗转换药水类型[仅基岩版]
  • 汇报漏洞
  • 在超平坦地图中管理史莱姆
建筑
  • 给工程添加美感
  • 空气闸
  • 建筑术语
  • 建造游轮
  • 建造大都市
  • 建造过山车
  • 建造安全的家园
  • 建造水建筑
  • 建造几何体
  • 防御
  • 电梯
  • 带釉陶瓦的图案
  • 建造更好的地板
  • 像素艺术
  • 牧场
  • 屋顶类型
    • 弧形屋顶
    • 屋顶建造指南
    • 装饰屋顶
  • 暗门
  • 建造居住地
  • 水下之家
  • 墙壁和桥墩
  • 水闸
  • 调色板
存储方案
  • 整理物品
  • 潜影盒储存
  • 矿车储存
  • 物品运输
附魔与烧炼
  • 附魔台机制
  • 铁砧机制
  • 自动化烧炼
  • 燃料选择
破坏方块
  • 爆炸室
  • 凋灵笼
挑战
  • 获得潮涌核心
  • 冒险模式生存
  • 挑战自定义地图
  • 制作自定义地图
  • 治愈僵尸村民
  • 征服神殿和神庙
  • 触发及战胜袭击
  • 征服掠夺者前哨站
  • 征服堡垒遗迹
  • 征服林地府邸
  • 征服海底神殿
  • 打败末影龙
  • 征服末地城
  • 打败凋灵
  • 极限模式
  • 超极限模式
  • 在一个地区中长期生存下去
  • 在无限沙漠中生存
  • 超平坦世界生存[仅Java版]
  • 岛屿生存
  • 空岛生存
  • 速通
  • 猎人游戏
  • 放牧心得
  • 探索深暗之域和远古城市
  • 愚人节版本生存
    • 22w13oneBlockAtATime
农场
方块和物品
  • 骨粉
  • 仙人掌
  • 圆石或石头
  • 可可豆
  • 农作物(甜菜、胡萝卜、马铃薯和小麦)
  • 紫颂果
  • 鸡蛋
  • 蛙明灯
  • 蜂蜜
  • 花朵
  • 海带
    • 零刻作物催熟技术
  • 蘑菇
  • 唱片
  • 下界疣
  • 黑曜石
  • 西瓜、南瓜
  • 鳞甲
  • 羊毛
  • 海泡菜
  • 甘蔗
  • 树木
  • 藤蔓
  • 药水
  • 经验
  • 基岩
  • 方块和物品复制
  • 铁轨复制机[仅Java版]
  • TNT复制[仅Java版]
生物
  • 刷怪塔
  • 怪物磨床
  • 刷怪笼陷阱
  • 动物(猪、牛、羊)
  • 烈焰人
  • 洞穴蜘蛛
  • 闪电苦力怕
  • 溺尸/僵尸
  • 末影人
  • 守卫者
  • 铁傀儡
  • 岩浆怪
  • 以物易物
  • 袭击
    • 无限触发袭击
  • 潜影贝
  • 史莱姆
  • 鱿鱼
  • 海龟
  • 村民
  • 女巫
  • 流浪商人
  • 凋灵骷髅
  • 僵尸猪灵
红石
基础红石
  • 基本逻辑门
  • 高频电路
  • 计时器
  • 通用物品分类器
  • 抽奖箱
  • 飞行器
  • 漏斗
  • 机械
  • 侦测器稳定器
  • 密码锁
  • 随机发生器
  • 红石机械
  • 红石音乐
  • 红石技巧
  • 鲁布·戈德堡机械
  • 村民交易所
探测器
  • 方块更新感应器
  • 比较器更新感应器
  • 阳光探测器
  • 昼夜探测器
矿车
  • 火车站
  • 矿车
    • 储存
    • 存储系统
陷阱
  • 雪傀儡防御炮
  • TNT大炮
  • 活板门利用
  • 陷阱设计
  • 陷阱
活塞
  • 活塞使用
  • 活塞电路
  • 半连接性
  • 零刻活塞
  • 无延迟中继器
  • 无头活塞
高级红石
  • 高级红石电路
  • 算术逻辑
  • 计算器
  • 时钟
  • 摩斯密码
  • 打印机
  • 红石计算机
  • 红石电报机
服务器
使用服务器
  • 在服务器上游玩
  • 服务器监狱
  • 防止恶意破坏
  • 服务器商店
  • 起床战争
  • 空岛战争
架设服务器
  • 架设服务器
    • 架设基岩版服务器
  • 服务器架设脚本
  • 服务器启动脚本
  • FreeBSD启动脚本
  • OpenBSD启动脚本
  • Ubuntu启动脚本
  • WebSocket服务器[仅基岩版]
  • 架设Mod服务器[仅Java版]
  • 架设Hamachi服务器
  • 架设Spigot服务器
  • 虚拟硬盘服务器
  • 使用ngrok搭建服务器
  • 架设ZeroTier服务器
技术性
  • 结构方块
  • 命令方块
  • 命令统计值
  • 使用命令操控实体
  • 提高帧率
  • Minecraft帮助FAQ(IRC频道)
  • NBT与JSON
  • Minecraft URL Scheme[仅基岩版]
  • 更新Java
  • 运行数据生成器
地图
  • 自定义地图
  • 下载地图
  • 生成下落的方块[仅Java版]
  • 使用MCEdit在1.13中刷新旧版海洋[仅Java版]
  • 强制打开存档[仅Java版]
资源包
  • 制作资源包
  • 加载资源包
  • 声音目录
数据包
  • 制作数据包
    • 实例:蜜蜂助手
    • 消除视线
  • 安装数据包
  • 自定义世界生成
附加包
  • 基岩版开发指南
  • 制作资源附加包
    • 高级
    • 基岩版实体文档
    • 修改实体模型
  • 制作行为包
  • 自定义实体
制作游戏视频
  • 视频
游戏安装
  • 快照版本安装
  • 获取崩溃报告
  • 在U盘中使用旧版启动器运行及保存Minecraft
  • 恢复损坏的地图数据
  • 在Google Drive上运行Minecraft
  • 将游戏数据保存到Dropbox云端(仅限地图数据)
  • 将游戏数据保存到Dropbox云端
  • 在Chrome OS上游玩Minecraft
仅Java版
  • 修复Apache Log4j2漏洞
  • 自定义命令触发
  • 原始JSON文本
  • NBT命令标签
  • 编写启动器
    • 版本清单文件下载
    • 版本json文件下载
过时教程
  • 建造微型庇护所
  • 自定义纹理包
  • 基于门的铁傀儡陷阱
  • 到达边境之地
  • 获取崩溃报告(旧版)
  • 人工湖
  • 矿车加速器
  • 中继器重启系统
  • 无数据包生存
  • 升级LWJGL
  • 更新Minecraft
  • 村庄链
  • 水梯
  • 水道
  • 游戏直播
教程
  • 新手手册
  • 高难度通关配装总结
  • 成就指南
  • 高塔指南

名称栏目:创新互联MinecraftWiki教程:总指南[]
转载来源:http://www.shufengxianlan.com/qtweb/news32/57582.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联