如何运用JSONUI心得1【整合版我的世界】

2023年4月12日进行更新。

“JSON UI是指什么?”

Minecraft的JSONUI是一种强大的工具,用于定义游戏内的用户界面(UI)。使用此功能,可以在游戏内显示文本、图像、按钮等元素。

通过将JSON文件放置在Minecraft资源包中,JSONUI被定义出来。这些文件包含了UI元素的布局、文本、图片、动画、音频等详细信息。

使用JSONUI可以为玩家提供额外信息或创建交互性用户界面以执行特定功能。例如,通过使用JSONUI,可以为自定义地图或MOD添加新的界面元素。

Minecraft的主菜单也是通过使用JSONUI进行定义的。该菜单为玩家提供了各种选项。

JSONUI是广泛用于Minecraft Modding社区的一种非常灵活且功能强大的工具。如果要扩展或自定义Minecraft的用户界面,使用JSONUI将非常有帮助。

通过使用JSONUI,您可以向Minecraft的用户界面添加新元素或自定义。为了为玩家提供更好的游戏体验,为什么不尝试利用JSONUI呢?

我写这篇文章的原因

在修改整合版Minecraft的资源包时,我突然想起其他人的世界中游戏内的用户界面(UI)非常独特,于是我试着自己修改,但我遇到了一些困难。

用JSON方式来描述UI时,它与XML类型相似,但更加复杂且不易阅读。

另外,还有一些父元素以及按条件指定的显示,我也打算将它们一起整理好。

首先准备原始文件

您可以从这里下载综合版Minecraft的原版资源包。

UI文件的位置在resource_pack\ui目录下。

这次我们将对 hud_screen.json 进行修改,以使其更易理解。

这个是正常的游戏画面。
首先我们尝试添加一个用来显示文字的标签(label)。
在最底部有一个叫camera_renderer的项目,我们在它的旁边添加一个名为Infobar的hud.Infobar。
前面的Infobar是名称,后面的Infobar是ID。为了方便理解,让我们统一它们。

      {
        "camera_renderer@camera_renderer": {}
      },
      {
        "Infobar@hud.Infobar": {}
      }

この項目はゲーム画面に表示する要素の中でもその他に分類するものを追加する場所っぽいです。
cameraとか普通使わないですから。
それでは一番下の}を改行して中に実際の要素の中身を書いていきましょう。
あんまり難しいことをごちゃごちゃ書くよりコードを貼ってそれについて詳しく解説するほうがいいと思うので貼ります。

  "Infobar": {
    "type": "panel",
    "size": [ "100% - 10px", "100%-30px" ],
    "controls": [
      {
        "InfobarBG": {
          "type": "image",
          "anchor_to": "top_right",
          "anchor_from": "top_right",
          "size": [ "100%c + 12px", "100%c + 12px"],
          "color": [0.1,0.1,0.1],
          "texture": "textures/ui/menubackground",
          "layer": -1,
          "controls": [
            {
              "titlepanel": {
              "type": "label",
              "size": [ "default", "default" ],
              "text": "    §lサーバー情報§r\n§4鯖主§r\n   ADMIN\n§4副鯖主§r\n   Null\n\n§6モデレーター§r\n   Null",
              "color": [1,1,1],
              "font_scale_factor": 1.2,
              "shadow": false,
              "layer": 3
              }
            }
          ]
        }
      }
    ]
  }

“type”: “面板”

要素の種類のこと このコードの場合、画像と文字列を大きさをそろえて一緒に表示したいため、親要素はpanelで、そこにimageやlabelを貼っていく

“size”: [ “百分之百减去10像素”, “百分之百减去30像素” ]

根据其名称,表示元素的大小。(宽度、高度)
大小的写法有多种。

int,fill,default,%c,%y,px,%cm,%sm,+,-

由于可以使用%和px以及运算符符号,所以似乎可以精确地指定以适应不同的机型,这样即使机型变了也能够正确地显示出来。

“控制”: []

我们可以在其中添加子元素。
还可以添加标签,图片和按钮。

bannerAds