资源包

来自Minecraft Wiki
跳转至: 导航搜索
Clock JE2 BE2.gif
此条目需要更新。

条目中某些信息已经不符合当前版本情况。

默认材质与Soartex Fanver材质的对比。

资源包(Resource Pack)系统为材质包系统的API替代品,允许玩家更深度地自定义自己的Minecraft体验。资源包允许玩家自定义材质、模型音乐声音语言文件、终末之诗、菜单界面UI、闪烁标语的显示文本和字体,而不用修改任何代码。

Java版[编辑 | 编辑源代码]

行为[编辑 | 编辑源代码]

Java版1.14起默认的资源包配置。
资源包的选择菜单,展示了两个已选的资源包(不包括默认资源包),一个不支持的资源包和其他各种可用的资源包。

资源包可以放置在.minecraft里面的resourcepacks文件夹。每个资源包都是一个子文件夹或一个.zip文件,这个文件里面有resourcepacks文件夹。它被放置在文件夹里面后,就可以从选项菜单中添加资源包,这个资源包可以从“可用的资源包”移动到“已选的资源包”。“已选的资源包”下面的默认资源会始终存在,并且不能被移除。

资源包会按照列表上的顺序加载它们的资源。最下面的资源包(总是“默认”的那个)将会首先加载,然后每个资源包会代替上一个相同名称的资源。

默认资源包[编辑 | 编辑源代码]

首先将资源包打包为resources.zip,然后将这个zip文件放入地图文件夹里就可以与地图捆绑在一起了。当游玩这个地图时,资源包会自动出现在默认资源包的右上方。

通过向服务器属性文件里面resource-pack=一行更改为一个.zip文件的下载链接就能在服务器上设置默认资源包了。用户仍然可以选择使用或者选择不下载这个资源包。

旧材质(材质更新前的)在名为“Programmer Art”的资源包中可用。

文件结构[编辑 | 编辑源代码]

  • (资源包名称)
    • pack.mcmeta
    • pack.png
    • assets
      • icons
        • icon_16x16.png
        • icon_32x32.png
        • minecraft.icns
      • (命名空间)
        • sounds.json
        • blockstates
          • (blockstate).json
        • font
          • (字体)
        • icons
          • icon_16x16.png
          • icon_32x32.png
          • minecraft.icns
        • lang
          • (语言).json
        • models
          • block
            • (模型).json
          • item
            • (模型).json
        • particles
          • (粒子).json
        • sounds
          • (声音).ogg
        • shaders
          • post
            • (post).json
          • program
            • (fragment shader).fsh
            • (program).json
            • (vertex shader).vsh
        • texts
          • (文本).txt
        • textures
          • block
            • (材质).png
          • colormap
            • (材质).png
          • effect
            • (材质).png
          • entity
            • (材质).png
            • (实体种类)
              • (材质).png
          • environment
            • (材质).png
          • font
            • (材质).png
          • gui
            • (材质).png
            • advancements
              • (材质).png
              • backgrounds
                • (材质).png
            • container
              • (材质).png
              • creative_inventory
                • (材质).png
            • presets
              • (材质).png
            • title
              • (材质).png
              • background
                • (材质).png
          • item
            • (材质).png
          • map
            • (材质).png
          • misc
            • (材质).png
          • mob_effect
            • (材质).png
          • models
            • armor
              • (材质).png
          • painting
            • (材质).png
          • particle
            • (材质).png

assets目录下也可以有多个不同的(命名空间)目录。

内容[编辑 | 编辑源代码]

Minecraft是通过根目录里的pack.mcmeta来识别一个资源包的,这个文件的格式为JSON格式。

  • 根标签
    •  pack:保存资源包的信息
      •  pack_format:资源包版本。如果这个数值与当前需要的数值不匹配,则资源包就会显示一个错误,进行附加确认后才能加载资源包。在1.6.113w24a)至1.8.9中需要的数值为1,在1.915w31a)至1.10.2中为2,在1.1116w32a)至1.12.2(1.13:17w47b)中为3,在1.1317w48a)至1.14.4(1.15:19w46b)中为4,在1.151.15-pre1)至1.16.1(1.16.2:1.16.2-pre3)中为5,在1.16.21.16.2-rc1)至1.16.56,在1.1720w45a以上)则为7
      •  description:在资源包菜单里要显示的资源包名称。该文字将会显示为2行。如果文字太长,那么超长的部分就会被砍掉。
      •  description: 包含一个原始JSON文本对象,它将在资源包菜单中显示为包描述。与string标签description具有相同的行为,但是它们不能一起存在。
    •  language:包含了要向语言菜单里添加的附加语言。
      •  A language 一个语言的语言代码,其与文件夹里.lang的名字相同assets/minecraft/lang
        •  name:语言的完整名称。
        •  region:国家或地区名称。
        •  bidirectional:若为true,语言将会从右到左显示。

根目录也包含一个叫作pack.png的可选图像,这个图像将会在资源包选择菜单中作为资源包的缩略图显示。

语言[编辑 | 编辑源代码]

可以在资源包的assets/<命名空间>/lang文件夹内创建.json类型的语言文件。每个文件可以取代优先级低的或默认的同名文件,或者创建由pack.mcmeta定义的新语言。

.json文件里的每一行都是标准的JSON格式"标识符":"名称",其后紧接一个逗号。标识符是游戏寻找的某个特性的名称,它不应该被更改。名称是显示的名称内容。例如,默认语言文件里的石头是"block.minecraft.stone":"Stone",其中block.minecraft.stone是标识符,Stone是显示的名称。空行会被忽略。文件必须是正确的JSON语法,这意味着它以一个{开始,在每个键值对(最后一个除外)后有一个逗号,并以一个}结束。

语言文件只需要添加资源包确实要修改的内容。任何不在资源包内的名称都会从下面的包中加载,或者如果没有包修改了名称,则从默认资源中加载。

模型[编辑 | 编辑源代码]

模型是一些以JSON格式储存的,扩展名为.json的文件,这些文件决定了方块和物品的形状和材质。

方块使用assets/minecraft/blockstates的一个方块状态文件,来决定每个变种要从中加载的模型。同时,每个物品都有一个物品模型来决定它的模型,这个模型会从一个方块模型里加载,包含了它自己自定义的模型,或者使用默认的“平面”或“实体”模型。

如果没有被覆盖,那么在下面的资源包所使用的模型和方块状态仍然会被加载,这可能会导致一些材质和模型被上方的资源包使用,而没有被再次加载。

音效[编辑 | 编辑源代码]

资源包加载文件格式为.ogg.fsb的附加音效。每个在资源包里面的音效都会覆盖下面的资源包。资源包包含一个sounds.json文件,其位置在assets/minecraft里。与资源包其他的文件不同,sounds.json会合并其上一个资源包的音效,而不是完全覆盖每个sounds.json文件。

材质[编辑 | 编辑源代码]

无效或材质丢失时使用的“丢失的材质”。

要让方块或物品材质正常显示,那么它们的宽度和高度必须相等(如果是动态材质,那么高度要是宽度的倍数);否则,只会显示黑紫方格交错的材质。对于其他多数材质,文件会被简单的拉伸,以符合所需的尺寸。

多数固体方块会把任何透明的地方变成完全不透明的。一些拥有类似于拼贴的透明区域方块(类似于草),会把所有不透明度低于10%的像素变成全透明像素,其他像素变成完全不透明像素。其他方块渲染材质会保留半透明区域。所有的半透明的物品和任何方块/实体,都会默认支持半透明。

如果一个材质文件不存在于任何的资源包(包括默认资源包)中,那么这个材质将会显示为一个黑紫方格交错的材质。(
 #f800f8和
 #000000)

动态材质[编辑 | 编辑源代码]

方块和物品材质支持动态材质,在图片的每一帧的下面放置另外一帧就能做成动态材质了。动态材质是被一个在相同目录,相同名称,以JSON格式存储的.mcmeta文件进行控制。例如,stone.png.mcmeta文件的文件名是stone.png.mcmeta

  • 根标签
    •  animation:包含了动态材质的数据的标签
      •  interpolate:若为 true,Minecraft 将会在帧与帧之间生成一张间隔时间大于1的帧。默认为false
      •  width:方块的宽度,以直接比例而不是像素为单位。这在原版中没有使用,但是可以被mod使用以具有不是完整正方形的帧。
      •  height:方块的高度度,以直接比例而不是像素为单位。这在原版中没有使用,但是可以被mod使用以具有不是完整正方形的帧。
      •  frametime:设置在每个游戏刻内每一帧的时间增量。默认为1
      •  frames:一个帧列表。帧的显示顺序默认为从上至下。
        • 指定开始播放的帧的位置,最上面的一帧为 0
        •  A frame 为每一帧指定附加数据
          •  index:指定开始播放的帧的位置,最上面的一帧为 0
          •  time:这一帧的显示时间(单位:刻),覆盖上面的“frametime”。

如果资源包里没有.mcmeta文件,并且材质是动态的,那么游戏将会认为这个材质不是动态材质,不会从下一个包继续加载.mcmeta文件。如果一个维度不相同的材质没有其对应的.mcmeta文件,那么这个材质将会显示为黑紫方格交错的材质。

村民[编辑 | 编辑源代码]

其材质assets/minecraft/textures/entity/villagerassets/minecraft/textures/entity/zombie_villager里。支持后缀名为.mcmeta的JSON格式文件用于指明可应用于帽子层的附加效果,位于相同目录,与对应材质文件有相同名称。例如,文件profession/farmer.png可以附带具有一个名为profession/farmer.png.mcmeta的文件。

  • 根标签
    •  villager:包含材质数据。
      •  hat:村民种类的帽子图层是否完整渲染(默认为full),或者不(partial)。

如果文件夹中不存在对应的.mcmeta文件,而材质文件中存在材质,则游戏将加载默认设置,而不是从下方的资源包里加载.mcmeta文件。

颜色图[编辑 | 编辑源代码]

颜色图是一个 256×256 像素的图片,用于告诉游戏在每个生物群系要使用的颜色。它们的位置在assets/minecraft/textures/colormap里。游戏包含2张颜色图,一张是foliage.png,指定植物如树叶(除了桦木和云杉木)和藤蔓的颜色;还有一张是grass.png,指定草方块的颜色。颜色图可以通过移除个别方块上的tintindex标签而被禁用。

杂项[编辑 | 编辑源代码]

assets/minecraft/textures/misc里的材质支持用一个以JSON格式储存的.mcmeta文件来向材质应用附加效果。文件的位置与材质的位置处于同一目录,与材质的文件名也一样,除了.mcmeta后缀。例如,文件pumpkinblur.png对应的属性文件的文件名为pumpkinblur.png.mcmeta

  • 根标签
    •  texture:包含了材质的数据
      •  blur:指定从近距离观察时是否导致材质模糊。默认为false
      •  clamp:指定是否在原来的情况下以伸展材质代替平铺材质。默认为false
      •  mipmaps:材质的自定义mipmap值。

如果资源包里材质文件对应的.mcmeta文件缺失,那么游戏将会加载默认设置,而不是从下一个资源包中继续加载.mcmeta文件。

文本[编辑 | 编辑源代码]

assets/minecraft/texts里的3个 UTF-8 格式的.txt文件储存了游戏要用来显示的文本。

文件end.txt含有终末之诗的文本,使用了样式代码的颜色代码来区分2个讲话人,文本PLAYERNAME将会被玩家名称代替。在展示完了这个文件的内容后,接着就会显示credits.txt的内容。

文件splashes.txt含有使用了换行符分隔的游戏闪烁标语。每个闪烁标语都可以用不同的文本代替,而这些闪烁标语将会代替默认的闪烁标语。

字体[编辑 | 编辑源代码]

字体文件指位于资源包中assets/<namespace>/font目录下的JSON文件。该文件内含提供每个字符对应的资源位置和额外信息的列表。minecraft:default给出了默认字体,而minecraft:alt给出了附魔台所用的默认字体。 提供字体时的资源位置应当包含文件扩展名。

  • 根标签
    •  providers: 提供加入该字体的信息的列表。
      • 提供字体的信息。内容取决于“type”标签的值。
        •  type: 该字体提供者的信息,可为以下选项之一。
          • bitmap: 位图字体
            •  file: 欲使用文件的资源位置,以assets/<namespace>/textures开始。
            •  height: 可选。该字符的高度,以像素为单位。可以为负。该标签与源材质中使用的区域不相关,仅用于重新调整显示结果。
            •  ascent: 该字体的上伸高度(基线至最高点的距离),以像素为单位。 这个值会使得字体的显示结果出现垂直偏移。
            •  chars: 一个字符串列表,包含该字体替换的字符及其在材质中的位置。列表所有元素的字符数必须相同。该列表中的一项元素对应材质等距分割的一行,每一个元素中的字符对应等距的一列。
          • legacy_unicode: 旧版Unicode字体。该字体格式已废弃且仅在“强制Unicode字体”选项打开时才会优先使用。
            •  sizes: assets/<namespace>/font目录下的资源位置,给出一个描述每个字符的水平起讫位置(从0至15)的二进制文件。目标文件的拓展名必须为.bin
            •  template: assets/<namespace>/textures目录下的资源位置,给出该字体应当使用的材质文件。游戏会将该标签中的%s 替换为被替换字符的十六进制代码的前两个字符,因此单个此种类的字体提供者可以指向多个贴图文件。
          • ttf: TrueType字体.‌[需要更多信息]
            •  file: assets/<namespace>/font目录下的TrueType字体文件的资源位置。
            •  shift: 该字体提供者的字体偏移。
              • 左侧偏移
              • 下方偏移
            •  size: 欲渲染的字体大小。
            •  oversample: 欲渲染的分辨率。
            •  skip: 欲排除的字符串或字符串数组。

字体材质表会基于每行中的字符个数自动缩放。为了与Unicode块保持一致,部分材质表可能为16个字符宽。

默认材质[编辑 | 编辑源代码]

默认材质的字体文件包含一个白色字符的网格,这些字符会在游戏需要时自动被游戏上色。字符大小会根据含有Alpha值的最后一行像素自动决定。由于字体的检测方式,因此用含有5% Alpha颜色填充字符的背景部分将会导致把字符渲染为全宽度,字符也没有可见的背景。默认字体的大小为8×8像素,而accented.png为18×18像素。

  • 字形0x20(空格)到0x7E(波浪号)显示标准ASCII字符。
  • 字形0x7F(<控制字符>)到0xFF(带分音符的y)显示Codepage 437字符。

默认字体文件位于assets/minecraft/textures/font/ascii.png。其中包含如下非字母字符:

░ ▒ ▓ │ ┤  ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐ └ ┴ ┬ ├ ─ ┼ ╞ ╟  ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄  ▌▐▀ ≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙ · √ ⁿ ² ■

assets/minecraft/textures/nonlatin_european.png中的材质表包含了许多带重音号的字符和绝大多数Minecraft支持的符号。其中包含以下非字母字符:

⧈ ⚔ ☠ ¢ ¤ ¥ © ® µ ¶ ¼ ½ ¾ · ‐ ‚ †  ‡ • ‱ ′ ″ ‴ ‵ ‶ ‷ ‹ › ※ ‼ ‽ ⁂ ⁈ ⁉  ⁋ ⁎ ⁏ ⁑ ⁒ ⁗ ℗ − ∓ ∞ ☀ ☁ ☈ Є ☲ ☵ ☽ ♀ ♂ ⚥ ♠ ♣ ♥ ♦ ♩ ♪ ♫ ♬ ♭ ♮ ♯ ⚀ ⚁ ⚂ ⚃ ⚄ ⚅ ʬ ⚡ ⛏ ✔ ❄ ❌ ❤ ⭐ ⸘ ⸮ ⸵ ⸸ ⹁ ⹋ ⥝ ᘔ Ɛ ⅋ ⏏ ⏩ ⏪ ⏭ ⏮ ⏯ ⏴ ⏵ ⏶ ⏷ ⏸ ⏹ ⏺ ⏻ ⏼ ⏽ ⭘ ▲ ▶ ▼ ◀ ● ◦ ◘  ⚓ ⛨ � ☺ ☻ ¦ ☹ ⅔ ✉ ☂ ☔ ☄ ⛄ ☃ ⌛ ⌚ ⚐ ✎ ❣ ♤ ♧ ♡ ♢ ⛈ ☰ ☱ ☳ ☴ ☶ ☷ ↔ ⇒ ⇏ ⇔ ⇵ ∀ ∃ ∄ ∉ ∋ ∌ ⊂ ⊃ ⊄ ⊅ ∧ ∨ ⊻ ⊼ ⊽ ∥ ≢ ⋆ ∑ ⊤ ⊥ ⊢ ⊨ ≔ ∁ ∴ ∵ ∛ ∜ ∂ ⋃ ⊆ ⊇ □ △ ▷ ▽ ◁ ◆ ◇ ○ ◎ ☆ ★ ✘ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎ ∫ ∮ ∝ ⌀ ⌂ ⌘ 〒 ɼ

assets/minecraft/textures/font/accented.png中包含一份备用材质。其支持绝大多数基础重音号字符、希腊字母和西里尔字母,还包含一些封闭的数字字母及其他符号。除了非符号之外,还包含以下字符:

⚠ ⓪ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ☯ ☐ ☑ ☒ ⅒ ⅘

显示附魔时使用的字体文件是assets/minecraft/textures/font/ascii_sga.png

旧版Unicode[编辑 | 编辑源代码]

Minecraft使用GNU Unifont字体作为未提供材质的字符的备选字体。每张字符表都按照unicode_page_##(##是从00FF的十六进制数字)的格式存储。这些页面均为16×16像素,且在游戏中显得小而粗糙。这些字符并未正确地向左对齐。使用的Unifont字体版本为v8.0,在游戏版本1.16.5时即已经过时。这个字体支持对中文、日文和韩文字符和其他文字。

Emoji表情字符[编辑 | 编辑源代码]
Dark Oak Sapling JE2 BE2.png
该页面仍需完善。

你可以帮助我们扩充关于该主题的更多信息。

阴影[编辑 | 编辑源代码]

材质表[编辑 | 编辑源代码]

通常情况下,Minecraft将多个材质单独储存而非储存在材质表中。当前仅有的例外是地图图标[1]经验球和矿车[2]

着色器[编辑 | 编辑源代码]

着色器是在加载时编译的GLSL文件。这些文件能够以顶点着色器(Vertex shaders)和片元着色器(Fragment shaders,亦称像素着色器)两种形式修改游戏画面。顶点着色器修改各个顶点的位置,大多数情况下用于创建晃动的枝叶和波动的水。片元着色器应用于每个像素,能用来提供诸如泛光(Bloom)、云隙光(God rays)和模糊(Blur)的效果。该文件夹包含用于链接至顶点和片元着色器并提供相关信息的JSON文件。注意,在不安装Mod的情况下,您通常不能选择加载指定的着色器。如果加载着色器时发生错误,则该资源包会被卸载,且华丽的画面会被关闭。

在中国大陆互联网上,着色器也被通称为“光影”。

在游戏中使用着色器的过程如下:首先,着色器使用适当的宽度和高度初始化“targets”列表中指定的所有渲染目标。此后,着色器按从前至后的顺序通过“passes”列表中指定的所有渲染通道(Render pass)。每一个渲染通道都会将着色器程序(Program shader)应用于“intarget”(包含所有由副渲染目标指定的附加数据)指定的渲染目标中并且将最终结果输出至由“outtarget”指定的渲染目标。minecraft:main渲染目标会将最终结果输出至屏幕。

"Post" JSON文件[编辑 | 编辑源代码]
  • 根标签
    •  targets:渲染目标的列表。您指定的名称并不重要,但是渲染通道的intargetoutarget必须给出。
      • : 渲染目标的名称。大小默认为屏幕分辨率。
      • : 将要添加的渲染目标。
        •  name: 将添加的渲染目标的名称。
        •  width: 渲染目标的宽度。
        •  height: 渲染目标的高度。
    •  passes: 渲染通道列表。
      • : 渲染通道。
        •  name: 将应用于输入并产生输出的着色器程序的名称。使用“blit”(位块复制)来将数据从“intarget”复制至“outtarget”。
        •  intarget: 作为输入的渲染目标的名称。使用 minecraft:main来指定为主屏幕。
        •  outtarget: 作为输出的渲染目标的名称。不应与“intarget”相同。 使用 minecraft:main来指定为主屏幕。
        •  auxtargets: 副渲染目标列表。
          • 一个副渲染目标。
            •  name: 用于传递至“Program”JSON文件的副渲染目标的名称。
            •  id: 副渲染目标的标识符。 指向由targets定义的缓冲区或是指向assets/<namespace>/textures/effect (使用命名空间ID来引用)中的材质位置。
            •  width:如果id引用材质则必须。以像素为单位给出材质的宽度。
            •  height: 如果id引用材质则必须。以像素为单位给出材质的高度。
            •  bilinear: 如果id引用材质则必须。指定该图像使用的缩放算法为双线性或最近邻。
        •  uniforms: 用于重写“Program”JSON文件中uniforms列表的值。
          • : 一个统一变量(Uniform)参数。
            •  name: 欲修改的域的名称。
            •  values: 欲修改的域的新值。
"Program" JSON文件[编辑 | 编辑源代码]
  • 根标签
    •   blend: OpenGL混合设置。
      •   func: 混合时使用的算子。可为addsubtractreversesubtractreverse_subtractminmax之一。大小写不敏感。默认为add。作为glBlendEquationmode参数。
      •   srcrgb: 作为glBlendFuncsfactor参数或是glBlendFuncSeparatesrcRGB参数。可为01srccolor1-srccolordstcolor, 1-dstcolorsrcalpha1-srcalphadstalpha1-dstalpha。大小写不敏感。忽略"_"。"1"、"0"、"-"可被替换为"one"、"zero"、"minus"。
      •   dstrgb: 作为glBlendFuncdfactor参数或是glBlendFuncSeparatedstRGB参数。可以为0, 1, srccolor, 1-srccolor, dstcolor, 1-dstcolor, srcalpha, 1-srcalpha, dstalpha1-dstalpha。大小写不敏感。忽略"_"。"1"、"0"、"-"可被替换为"one"、"zero"、"minus"。
      •   srcalpha: 作为glBlendFuncSeparatesrcalpha参数。可为0, 1, srccolor, 1-srccolor, dstcolor, 1-dstcolor, srcalpha, 1-srcalpha, dstalpha1-dstalpha。大小写不敏感。忽略"_"。"1"、"0"、"-"可被替换为"one"、"zero"、"minus"。
      •   dstalpha: 作为glBlendFuncSeparatedstalpha参数。可为0, 1, srccolor, 1-srccolor, dstcolor, 1-dstcolor, srcalpha, 1-srcalpha, dstalpha1-dstalpha。大小写不敏感。忽略"_"。"1"、"0"、"-"可被替换为"one"、"zero"、"minus"。
    •   cull: 如果为真,执行glEnable(GL_CULL_FACE)。如果为假,执行glDisable(GL_CULL_FACE)。默认为真。
    •   vertex: 将要使用的顶点渲染器名称(不带文件拓展名)。
    •   fragment: 将要使用的片元着色器名称(不带文件拓展名)。
    •   attributes: 顶点着色器将使用的属性。
      • :一项属性。目前仅可为"Position"
    •   samplers:着色器中使用的采样器列表。
    •   uniforms: 着色器中使用的统一变量(Uniform)列表。
      • : 一个统一变量。
        •   name: GLSL代码中引用的统一变量名。部分统一变量有特殊的行为:
          • Time: 从0至1的值,以秒为单位表示时间。每秒钟重置一次。
          • InSize: 以像素为单位给出输入缓冲区的宽度与高度。
          • OutSize: 以像素为单位给出输出缓冲区的宽度与高度。
        •   type: 该统一变量的类型。可为int, float, matrix4x4, matrix3x3matrix2x2之一。 根据values中指定的值的个数,int也可为ivec2, ivec3或是ivec4。同理,float也可为vec2, vec3vec4
        •   count: values中的值的个数。
        •   values: 以浮点数列表的形式给出统一变量的值。列表的长度应当与count相同。

资源包模板[编辑 | 编辑源代码]

原版资源包的文件结构:

基岩版[编辑 | 编辑源代码]

皮肤类似,可以在基岩版中购买或制作资源包。iOS用户截至Alpha 0.15.0可以使用.mcpack.mcworld文件在系统上下载资源包。打开这些文件后,游戏会自动导入它们,而无需使用文件管理应用。

历史[编辑 | 编辑源代码]

Java版
1.6.113w24a加入了资源包,取代了材质包的功能。Minecraft Texture Ender是Mojang提供的,用于把可编译的1.5材质包转换为资源包。
1.6.2修复了当使用HD字体时字体扭曲的问题。[3]
1.7.213w36a加入了一次应用多个资源包的能力。
13w42a把文件从assets/minecraft/music移动到assets/minecraft/sounds/musicassets/minecraft/sound里的文件也移动到assets/minecraft/sounds
1.7.413w48a移除了更改Mojang徽标的能力。
1.814w06a加入了更改方块模型的能力。
14w07a资源包现在可以绑定在一张地图上了。
14w25a模型格式现在支持自定义物体模型。
现在可以分别指定方块和物品的材质。
加入了用于动态材质的interpolate标签。
1.8.8pre如果资源包版本是错误的,则资源包现在会显示一个错误。此时,资源包需要的版本号是1
1.915w31a由于模型系统中的更改(例如项目标记、多部分以及对显示标记的更改),资源包版本号已更改为2。 而且使用具有过时显示标签的资源包将导致模型看起来异常放大,并且不会在手中旋转被操纵的方块,同时库存中的方块被替换为2D材质。这类似于模型没有显示标签时发生的情况。请看这里的例子。
1.1116w32a资源包版本号被更改为3,这个版本需要资源包的所有文件的文件名使用小写字母。
1.1317w43a默认资源包现在可以像其他资源包一样上下移动位置了。
17w48a由于扁平化,资源包版本号被更改为4
1.1418w45a由于旧材质在材质更新中被新的取代,现在在资源包菜单中加入了"Programmer Art – The classic look of Minecraft"。
19w06a明显提升了资源包加载的速度。[4]
1.15pre1由于之前快照中旗帜图案盾牌附魔光效与箱子等贴图机制的改动,资源包版本更改为5
1.16pre7加入了大量新字母,其中包括此前尚未加入的一些拉丁文、亚美尼亚文连字和格鲁吉亚字母。
1.16.2rc1由于MC-197275,资源包版本号更改为6
Java版(即将到来)
1.1720w45a由于部分材质文件名称的更改,资源包版本号变更为7
携带版Alpha
0.15.0加入了塑料资源包和城市资源包。
0.15.7加入了自然资源包。
0.15.8加入了幻想资源包。
0.16.2加入了卡通资源包。
携带版
1.0.3加入了糖果资源包。
基岩版
1.10.01.10.0.3资源包现在和世界模板分离,并能在现存世界中独立更新。

你知道吗[编辑 | 编辑源代码]

  • Java版Alpha v1.2.21.14使用的默认资源包的pack.png是Java版Alpha v1.2.2中种子3257840388504953787在坐标约x=49,z=0的截图,它在2020年9月5日 4:04(UTC)[5]被“Minecraft@Home”社区的玩家发现。此时,距离它的发布已经过去了近10年的时间。[6]

参见[编辑 | 编辑源代码]

参考[编辑 | 编辑源代码]