([InPageEdit]) |
小无编辑摘要 |
||
(未显示6个用户的11个中间版本) | |||
第1行: | 第1行: | ||
{{about|纹理包(旧译材质包)的替代品|其他用法|包}} |
{{about|纹理包(旧译材质包)的替代品|其他用法|包}} |
||
− | [[File:TexturesComparison.png|thumb|right|300px|左侧为默认纹理,右侧为自定义资源包(Rodrigo's Pack 8x) |
+ | [[File:TexturesComparison.png|thumb|right|300px|左侧为默认纹理,右侧为自定义资源包(Rodrigo's Pack 8x)]] |
'''资源包(Resource Pack)'''系统允许玩家自定义纹理、[[模型]]、[[音乐]]、[[声音]]、[[语言]],[[终末之诗]]、[[闪烁标语]]、鸣谢名单等文本和字体,而不用修改任何代码。 |
'''资源包(Resource Pack)'''系统允许玩家自定义纹理、[[模型]]、[[音乐]]、[[声音]]、[[语言]],[[终末之诗]]、[[闪烁标语]]、鸣谢名单等文本和字体,而不用修改任何代码。 |
||
{{TOC|right}} |
{{TOC|right}} |
||
== Java版 == |
== Java版 == |
||
− | |||
=== 行为 === |
=== 行为 === |
||
⚫ | |||
− | |||
⚫ | |||
资源包可以放置在<code>[[.minecraft]]</code>里面的<code>resourcepacks</code>文件夹。每个资源包都是一个子文件夹或一个[[wzh:ZIP格式|<code>.zip</code>文件]],这个文件里面有<code>resourcepacks</code>文件夹。它被放置在文件夹里面后,就可以从[[选项]]菜单中添加资源包,这个资源包可以从“可用的资源包”移动到“已选的资源包”。“已选的资源包”下面的默认资源会始终存在,并且不能被移除。 |
资源包可以放置在<code>[[.minecraft]]</code>里面的<code>resourcepacks</code>文件夹。每个资源包都是一个子文件夹或一个[[wzh:ZIP格式|<code>.zip</code>文件]],这个文件里面有<code>resourcepacks</code>文件夹。它被放置在文件夹里面后,就可以从[[选项]]菜单中添加资源包,这个资源包可以从“可用的资源包”移动到“已选的资源包”。“已选的资源包”下面的默认资源会始终存在,并且不能被移除。 |
||
第19行: | 第17行: | ||
=== 文件结构 === |
=== 文件结构 === |
||
− | |||
{| class="collapsible collapse-button-none" data-description="列表" |
{| class="collapsible collapse-button-none" data-description="列表" |
||
! 列表 |
! 列表 |
||
第123行: | 第120行: | ||
=== 内容 === |
=== 内容 === |
||
⚫ | |||
− | |||
⚫ | |||
<div class="treeview"> |
<div class="treeview"> |
||
* {{nbt|compound}} 根标签 |
* {{nbt|compound}} 根标签 |
||
** {{nbt|compound|pack}}:保存资源包的信息 |
** {{nbt|compound|pack}}:保存资源包的信息 |
||
− | *** {{nbt|int|pack_format}}:资源包版本。如果这个数值与当前需要的数值不匹配, |
+ | *** {{nbt|int|pack_format}}:资源包版本。如果这个数值与当前需要的数值不匹配,游戏就会显示一个错误,进行附加确认后游戏才会加载资源包。 |
****[[Java版1.6.1|1.6.1]]([[13w24a]])~ [[Java版1.8.9|1.8.9]]为<code>1</code> |
****[[Java版1.6.1|1.6.1]]([[13w24a]])~ [[Java版1.8.9|1.8.9]]为<code>1</code> |
||
****[[Java版1.9|1.9]]([[15w31a]])~ [[Java版1.10.2|1.10.2]]为<code>2</code> |
****[[Java版1.9|1.9]]([[15w31a]])~ [[Java版1.10.2|1.10.2]]为<code>2</code> |
||
第156行: | 第152行: | ||
==== 语言 ==== |
==== 语言 ==== |
||
− | |||
可以在资源包的<code>assets/''<[[命名空间]]>''/lang</code>文件夹内创建<code>.json</code>类型的语言文件。每个文件可以取代优先级低的或默认的同名文件,或者创建由<code>pack.mcmeta</code>定义的新语言。 |
可以在资源包的<code>assets/''<[[命名空间]]>''/lang</code>文件夹内创建<code>.json</code>类型的语言文件。每个文件可以取代优先级低的或默认的同名文件,或者创建由<code>pack.mcmeta</code>定义的新语言。 |
||
第173行: | 第168行: | ||
==== 音效 ==== |
==== 音效 ==== |
||
− | |||
资源包加载文件格式为<code>.ogg</code>的附加音效。每个资源包里面的音效都会覆盖下面的资源包。资源包包含一个<code>[[sounds.json]]</code>文件,其位于<code>assets/minecraft</code>中。与资源包其他的文件不同,<code>sounds.json</code>会合并其上一个资源包的音效,而不是完全覆盖上面的<code>sounds.json</code>文件。 |
资源包加载文件格式为<code>.ogg</code>的附加音效。每个资源包里面的音效都会覆盖下面的资源包。资源包包含一个<code>[[sounds.json]]</code>文件,其位于<code>assets/minecraft</code>中。与资源包其他的文件不同,<code>sounds.json</code>会合并其上一个资源包的音效,而不是完全覆盖上面的<code>sounds.json</code>文件。 |
||
==== 纹理 ==== |
==== 纹理 ==== |
||
⚫ | |||
− | |||
⚫ | |||
要让方块或物品纹理正常显示,那么它们的宽度和高度必须相等(如果是[[#动态纹理|动态纹理]],那么高度要是宽度的倍数);否则,只会显示黑紫方格交错的纹理。对于其他多数纹理,文件会被拉伸以符合所需的尺寸。 |
要让方块或物品纹理正常显示,那么它们的宽度和高度必须相等(如果是[[#动态纹理|动态纹理]],那么高度要是宽度的倍数);否则,只会显示黑紫方格交错的纹理。对于其他多数纹理,文件会被拉伸以符合所需的尺寸。 |
||
第187行: | 第180行: | ||
===== 动态纹理 ===== |
===== 动态纹理 ===== |
||
− | |||
方块和物品纹理支持动态纹理,在图片的每一帧下方放置另外一帧即可。动态纹理是被一个在相同目录,相同名称,以JSON格式存储的<code>.mcmeta</code>文件进行控制。例如,<code>stone.png</code>的<code>.mcmeta</code>文件的文件名是<code>stone.png.mcmeta</code>。 |
方块和物品纹理支持动态纹理,在图片的每一帧下方放置另外一帧即可。动态纹理是被一个在相同目录,相同名称,以JSON格式存储的<code>.mcmeta</code>文件进行控制。例如,<code>stone.png</code>的<code>.mcmeta</code>文件的文件名是<code>stone.png.mcmeta</code>。 |
||
第207行: | 第199行: | ||
===== 村民 ===== |
===== 村民 ===== |
||
− | |||
来自<code>assets/minecraft/textures/entity/villager</code>和<code>assets/minecraft/textures/entity/zombie_villager</code>的纹理支持后缀名为<code>.mcmeta</code>的JSON格式文件,用于指明可应用于帽子层的附加效果。文件和纹理位于相同目录,与对应纹理文件有相同名称。例如,文件<code>profession/farmer.png</code>可以附带具有一个名为<code>profession/farmer.png.mcmeta</code>的文件。 |
来自<code>assets/minecraft/textures/entity/villager</code>和<code>assets/minecraft/textures/entity/zombie_villager</code>的纹理支持后缀名为<code>.mcmeta</code>的JSON格式文件,用于指明可应用于帽子层的附加效果。文件和纹理位于相同目录,与对应纹理文件有相同名称。例如,文件<code>profession/farmer.png</code>可以附带具有一个名为<code>profession/farmer.png.mcmeta</code>的文件。 |
||
第219行: | 第210行: | ||
===== 颜色图 ===== |
===== 颜色图 ===== |
||
− | |||
颜色图是一个 256×256 像素的图片,用于告诉游戏在每个生物群系要使用的颜色。它们位于<code>assets/minecraft/textures/colormap</code>里。游戏包含2张颜色图,<code>foliage.png</code>为[[树叶]](除了白桦和云杉)和[[藤蔓]]着色;<code>grass.png</code>为[[草]]和[[草方块]]着色。颜色图可以通过移除个别方块上的<code>tintindex</code>标签而被禁用。 |
颜色图是一个 256×256 像素的图片,用于告诉游戏在每个生物群系要使用的颜色。它们位于<code>assets/minecraft/textures/colormap</code>里。游戏包含2张颜色图,<code>foliage.png</code>为[[树叶]](除了白桦和云杉)和[[藤蔓]]着色;<code>grass.png</code>为[[草]]和[[草方块]]着色。颜色图可以通过移除个别方块上的<code>tintindex</code>标签而被禁用。 |
||
===== 杂项 ===== |
===== 杂项 ===== |
||
− | |||
<code>assets/minecraft/textures/misc</code>里的纹理支持JSON格式储存的<code>.mcmeta</code>文件来向纹理应用附加效果。文件的位置与纹理的位置处于同一目录,与纹理的文件名也相同。例如,文件<code>pumpkinblur.png</code>对应的属性文件的文件名为<code>pumpkinblur.png.mcmeta</code>。 |
<code>assets/minecraft/textures/misc</code>里的纹理支持JSON格式储存的<code>.mcmeta</code>文件来向纹理应用附加效果。文件的位置与纹理的位置处于同一目录,与纹理的文件名也相同。例如,文件<code>pumpkinblur.png</code>对应的属性文件的文件名为<code>pumpkinblur.png.mcmeta</code>。 |
||
第237行: | 第226行: | ||
==== 文本 ==== |
==== 文本 ==== |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | 文件<code>postcredits.txt</code>包含制作人员名单显示完毕后出现的引言。 |
||
⚫ | |||
− | 文件<code>splashes.txt</code>含 |
+ | 文件<code>splashes.txt</code>包含[[标题屏幕]]上的[[闪烁标语]]文本,每条闪烁标语之间使用换行符分隔开。 |
− | 文件<code>credits.json</code>含 |
+ | 文件<code>credits.json</code>包含Minecraft制作人员名单的文本及格式。 |
<div class="treeview"> |
<div class="treeview"> |
||
* {{nbt|list}} 根标签 |
* {{nbt|list}} 根标签 |
||
− | ** {{nbt|compound}} |
+ | ** {{nbt|compound}} 制作人员名单中的一个部分。 |
− | *** {{nbt|string|section}}: |
+ | *** {{nbt|string|section}}:此部分的标题。通常为部门名称,如“Design”“Programming”“Audio”等。 |
− | *** {{nbt|list|titles}}: |
+ | *** {{nbt|list|titles}}:职位列表。 |
− | **** {{nbt|compound}} |
+ | **** {{nbt|compound}} 职位列表中的一个职位。 |
− | ***** {{nbt|string|title}}: |
+ | ***** {{nbt|string|title}}:此职位的名称。如“Technical Director”“Game Developers”“Software Engineers”等。 |
− | ***** {{nbt|list|names}}: |
+ | ***** {{nbt|list|names}}:职员列表。 |
− | ****** {{nbt|string}} |
+ | ****** {{nbt|string}} 一位职员的姓名。 |
</div> |
</div> |
||
==== 字体 ==== |
==== 字体 ==== |
||
− | |||
字体文件是位于资源包中<code>assets/<namespace>/font</code>目录下的JSON文件。该文件内含提供每个字符对应的资源位置和额外信息的列表。<code>minecraft:default</code>给出了默认字体,而<code>minecraft:alt</code>给出了附魔台所用的默认字体。 |
字体文件是位于资源包中<code>assets/<namespace>/font</code>目录下的JSON文件。该文件内含提供每个字符对应的资源位置和额外信息的列表。<code>minecraft:default</code>给出了默认字体,而<code>minecraft:alt</code>给出了附魔台所用的默认字体。 |
||
提供字体时的资源位置应当包含文件扩展名。 |
提供字体时的资源位置应当包含文件扩展名。 |
||
第288行: | 第277行: | ||
===== 默认纹理 ===== |
===== 默认纹理 ===== |
||
− | |||
默认纹理的字体文件包含一个白色字符的网格,这些字符会在游戏需要时自动被游戏上色。字符大小会根据含有Alpha值的最后一行像素自动决定。由于字体的检测方式,因此用含有5% Alpha颜色填充字符的背景部分将会导致把字符渲染为全宽度,字符也没有可见的背景。默认字体的大小为8×8像素,而<code>accented.png</code>为18×18像素。 |
默认纹理的字体文件包含一个白色字符的网格,这些字符会在游戏需要时自动被游戏上色。字符大小会根据含有Alpha值的最后一行像素自动决定。由于字体的检测方式,因此用含有5% Alpha颜色填充字符的背景部分将会导致把字符渲染为全宽度,字符也没有可见的背景。默认字体的大小为8×8像素,而<code>accented.png</code>为18×18像素。 |
||
第410行: | 第398行: | ||
与[[皮肤]]类似,可以在[[基岩版]]中购买或制作资源包。iOS用户截至[[携带版Alpha 0.15.0|Alpha 0.15.0]]可以使用<code>.mcpack</code>和<code>.mcworld</code>文件在系统上下载资源包。打开这些文件后,游戏会自动导入它们,而无需使用文件管理应用。 |
与[[皮肤]]类似,可以在[[基岩版]]中购买或制作资源包。iOS用户截至[[携带版Alpha 0.15.0|Alpha 0.15.0]]可以使用<code>.mcpack</code>和<code>.mcworld</code>文件在系统上下载资源包。打开这些文件后,游戏会自动导入它们,而无需使用文件管理应用。 |
||
+ | 基岩版的资源包属于附加包的一部分,和[[行为包]]并列,同时区分原版资源包与自定义资源包。原版资源包用于为游戏加入新内容而准备。 |
||
⚫ | |||
⚫ | |||
{{History|java}} |
{{History|java}} |
||
{{History||1.6.1|snap=13w24a|加入了资源包,取代了纹理包的功能。[http://s3.amazonaws.com/Minecraft.Download/utilities/TextureEnder.jar Minecraft Texture Ender]是Mojang提供的,用于把可编译的1.5纹理包转换为资源包。}} |
{{History||1.6.1|snap=13w24a|加入了资源包,取代了纹理包的功能。[http://s3.amazonaws.com/Minecraft.Download/utilities/TextureEnder.jar Minecraft Texture Ender]是Mojang提供的,用于把可编译的1.5纹理包转换为资源包。}} |
||
第441行: | 第430行: | ||
{{History||1.18.2|snap=22w06a|加入了<code>assets/minecraft/regional_compliancies.json</code>,用于控制游玩计时器和提示文本,以遵守韩国法律要求(默认仅适用于韩国)。}} |
{{History||1.18.2|snap=22w06a|加入了<code>assets/minecraft/regional_compliancies.json</code>,用于控制游玩计时器和提示文本,以遵守韩国法律要求(默认仅适用于韩国)。}} |
||
{{History||1.19|snap=22w11a|在{{samp|pack.mcmeta}}中加入了{{cd|filter}}字段,用于按命名空间和正则表达式忽略低优先级数据包中的匹配内容。 |
{{History||1.19|snap=22w11a|在{{samp|pack.mcmeta}}中加入了{{cd|filter}}字段,用于按命名空间和正则表达式忽略低优先级数据包中的匹配内容。 |
||
− | |加入了{{cd|space}}字形提供器。 |
+ | |加入了{{cd|space}}字形提供器。 |
+ | |资源包版本号变更为<code>9</code>}} |
||
+ | {{History||1.19.1|snap=22w24a|在<samp>social_interactions.png</samp>中加入了3个与聊天举报功能有关的图标。}} |
||
+ | {{History|||snap=pre1|将与聊天举报功能有关的3个图标移至<samp>report_button.png</samp>中。}} |
||
+ | {{History|||snap=pre2|加入了<samp>chat_tags.png</samp>,其中包含2个与聊天消息信任状态有关的图标。}} |
||
{{History|pocket alpha}} |
{{History|pocket alpha}} |
||
第450行: | 第443行: | ||
== 你知道吗 == |
== 你知道吗 == |
||
− | [[File:Alpha v1.2.2 pack.png|thumb|<code>pack.png</code>截图所在的世界,加载于Alpha v1.2.2 |
+ | [[File:Alpha v1.2.2 pack.png|thumb|<code>pack.png</code>截图所在的世界,加载于Alpha v1.2.2]] |
* 旧版默认资源包的pack.png取自[[Java版Alpha v1.2.2]],种子{{cd|3257840388504953787}}。<ref>{{ytl|ea6py9q46QU|Pack.PNG has been FOUND! - Here's how they did it.|SalC1|September 7, 2020}}</ref> |
* 旧版默认资源包的pack.png取自[[Java版Alpha v1.2.2]],种子{{cd|3257840388504953787}}。<ref>{{ytl|ea6py9q46QU|Pack.PNG has been FOUND! - Here's how they did it.|SalC1|September 7, 2020}}</ref> |
||
第460行: | 第453行: | ||
== 画廊 == |
== 画廊 == |
||
<gallery> |
<gallery> |
||
− | Pack.png|旧版pack.png文件 |
+ | Pack.png|旧版pack.png文件 |
− | Unknown server.png|当前仍在游戏中的灰度变种。用于未知服务器的图标 |
+ | Unknown server.png|当前仍在游戏中的灰度变种。用于未知服务器的图标 |
− | NotchTexturePacks.png|Notch在纹理包选择菜单中发布的第一张图像 |
+ | NotchTexturePacks.png|Notch在纹理包选择菜单中发布的第一张图像 |
− | Default pack.png|默认资源包图标 |
+ | Default pack.png|默认资源包图标 |
</gallery> |
</gallery> |
||
2022年8月4日 (四) 18:10的版本
资源包(Resource Pack)系统允许玩家自定义纹理、模型、音乐、声音、语言,终末之诗、闪烁标语、鸣谢名单等文本和字体,而不用修改任何代码。
Java版
行为
资源包可以放置在.minecraft
里面的resourcepacks
文件夹。每个资源包都是一个子文件夹或一个.zip
文件,这个文件里面有resourcepacks
文件夹。它被放置在文件夹里面后,就可以从选项菜单中添加资源包,这个资源包可以从“可用的资源包”移动到“已选的资源包”。“已选的资源包”下面的默认资源会始终存在,并且不能被移除。
资源包会按照列表上的顺序加载它们的资源。最底部的资源包将会首先加载,然后每个资源包会代替上层相同名称的资源。
默认资源包
资源包可以与世界捆绑在一起,首先将资源包打包为resources.zip
,然后将这个zip文件放入世界文件夹中。当游玩这个世界时,资源包会自动出现在默认资源包的右上方。
通过向服务器属性文件里面resource-pack=
一行更改为一个.zip
文件的下载链接就能在服务器上设置默认资源包。用户仍然可以选择使用或者选择不下载这个资源包。
旧纹理(1.14之前)在名为“Programmer Art”的资源包中可用。当游戏收到新纹理时,这些纹理不会更新。
文件结构
列表 |
---|
|
assets
目录下也可以有多个不同的命名空间目录。
内容
Minecraft通过根目录里的pack.mcmeta
来识别资源包,这个文件为JSON格式,其中包含以下信息:
- 根标签
- pack:保存资源包的信息
- pack_format:资源包版本。如果这个数值与当前需要的数值不匹配,游戏就会显示一个错误,进行附加确认后游戏才会加载资源包。
- description:在资源包菜单里要显示的资源包名称。该文本将会显示为2行。如果文本太长则会被截断。
- description: 包含一个原始JSON文本对象,它将在资源包菜单中显示为包描述。与
string
标签description
具有相同的行为,但是它们不能一起存在。
- language:包含了要向语言菜单里添加的附加语言。
- 语言的语言代码,与对应文件夹
assets/minecraft/lang
的同名json文件。- name:语言的完整名称。
- region:国家或地区名称。
- bidirectional:若为true,语言将会从右到左显示。
- 语言的语言代码,与对应文件夹
- filter:包过滤器。
- block:指定要忽略的内容。低优先级资源包的内容若匹配其中指定的内容,则对应内容会被游戏忽略。
- :一段指定内容。可以使用正则表达式。
- namespace:要匹配的命名空间。若省略则匹配所有命名空间。
- path:要匹配的路径。若省略则匹配所有路径。
- :一段指定内容。可以使用正则表达式。
- block:指定要忽略的内容。低优先级资源包的内容若匹配其中指定的内容,则对应内容会被游戏忽略。
- pack:保存资源包的信息
根目录也包含一个叫作pack.png
的可选图像,这个图像将会在资源包选择菜单中作为资源包的缩略图显示。
语言
可以在资源包的assets/<命名空间>/lang
文件夹内创建.json
类型的语言文件。每个文件可以取代优先级低的或默认的同名文件,或者创建由pack.mcmeta
定义的新语言。
.json
文件里的每一行都是标准的JSON格式。这意味着它以一个{
开始,在每个键值对(最后一个除外)后有一个逗号,并以一个}
结束,且空行会被忽略。语言文件的格式为"标识符":"名称"
,其后紧接一个逗号。标识符
是游戏寻找的某个特性的名称,名称
是显示的名称内容。例如,默认语言文件里的石头是"block.minecraft.stone":"Stone"
,其中block.minecraft.stone
是标识符,Stone
是显示的名称。除此之外,也可以自定义识别符与其对应的名称,并通过JSON文本将其显示。若指定的识别符在当前语言中无法找到对应的名称,则会使用en_us
语言的名称。若en_us
也不存在对应名称,则直接显示识别符。
语言文件只需要添加资源包确实要修改的内容。任何不在资源包内的名称都会从下面的包中加载,或者如果没有包修改了名称,则从默认资源中加载。
模型
模型是以JSON格式的文件,它决定了方块和物品的形状和纹理。
方块使用assets/minecraft/blockstates
的方块状态文件,来决定每个变种要从中加载的模型。同时,每个物品在 assets/minecraft/models/item
中都有一个物品模型来决定它的模型,它要么会从一个方块模型里加载,包含了它自己自定义的模型,要么使用默认的“平面”或“实体”模型。
除非被上面的资源包覆盖,在下面的资源包所使用的模型和方块状态仍然会被加载,这可能会导致一些纹理和模型不再被加载。
音效
资源包加载文件格式为.ogg
的附加音效。每个资源包里面的音效都会覆盖下面的资源包。资源包包含一个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
- 为每一帧指定附加数据
- index:指定开始播放的帧的位置,最上面的一帧为 0
- time:这一帧的显示时间(单位:刻),覆盖上面的“frametime”。
- interpolate:若为 true,Minecraft 将会在帧与帧之间生成一张间隔时间大于1的帧。默认为
- animation:包含了动态纹理的数据的标签
如果资源包里没有.mcmeta
文件,则游戏将会认为这个纹理不是动态纹理,不会从下一个包继续加载.mcmeta
文件。如果一个尺寸不相同的纹理没有其对应的.mcmeta
文件,那么这个纹理将会显示为黑紫方格交错的纹理。
村民
来自assets/minecraft/textures/entity/villager
和assets/minecraft/textures/entity/zombie_villager
的纹理支持后缀名为.mcmeta
的JSON格式文件,用于指明可应用于帽子层的附加效果。文件和纹理位于相同目录,与对应纹理文件有相同名称。例如,文件profession/farmer.png
可以附带具有一个名为profession/farmer.png.mcmeta
的文件。
- 根标签
- villager:包含纹理数据。
- hat:村民种类的帽子图层是否仍完整渲染(默认),或者不(
full
)。[需要更多信息]
- hat:村民种类的帽子图层是否仍完整渲染(默认),或者不(
- villager:包含纹理数据。
如果文件夹中不存在对应的.mcmeta
文件,而纹理文件中存在纹理,则游戏将加载默认设置,而不是从下方的资源包里加载.mcmeta
文件。
颜色图
颜色图是一个 256×256 像素的图片,用于告诉游戏在每个生物群系要使用的颜色。它们位于assets/minecraft/textures/colormap
里。游戏包含2张颜色图,foliage.png
为树叶(除了白桦和云杉)和藤蔓着色;grass.png
为草和草方块着色。颜色图可以通过移除个别方块上的tintindex
标签而被禁用。
杂项
assets/minecraft/textures/misc
里的纹理支持JSON格式储存的.mcmeta
文件来向纹理应用附加效果。文件的位置与纹理的位置处于同一目录,与纹理的文件名也相同。例如,文件pumpkinblur.png
对应的属性文件的文件名为pumpkinblur.png.mcmeta
。
- 根标签
- texture:包含了纹理的数据
- blur:指定从近距离观察时是否导致纹理模糊。默认为
false
。 - clamp:指定是否在原来的情况下以伸展纹理代替平铺纹理。默认为
false
。 - mipmaps:纹理的自定义mipmap值。
- blur:指定从近距离观察时是否导致纹理模糊。默认为
- texture:包含了纹理的数据
如果资源包里纹理文件对应的.mcmeta
文件缺失,那么游戏将会加载默认设置,而不是从下一个资源包中继续加载.mcmeta
文件。
文本
在assets/minecraft/texts
里有3个UTF-8编码的.txt
文件和1个.json
文件,储存着游戏用于显示且不可翻译的文本。
文件end.txt
包含终末之诗的文本,使用格式化代码中的颜色代码来区分两个讲话人,其中文本PLAYERNAME
将会被玩家名称代替。该文件的内容显示完毕后,接着就会显示credits.json
的内容。
文件postcredits.txt
包含制作人员名单显示完毕后出现的引言。
文件splashes.txt
包含标题屏幕上的闪烁标语文本,每条闪烁标语之间使用换行符分隔开。
文件credits.json
包含Minecraft制作人员名单的文本及格式。
- 根标签
- 制作人员名单中的一个部分。
- section:此部分的标题。通常为部门名称,如“Design”“Programming”“Audio”等。
- titles:职位列表。
- 职位列表中的一个职位。
- title:此职位的名称。如“Technical Director”“Game Developers”“Software Engineers”等。
- names:职员列表。
- 一位职员的姓名。
- 职位列表中的一个职位。
- 制作人员名单中的一个部分。
字体
字体文件是位于资源包中assets/<namespace>/font
目录下的JSON文件。该文件内含提供每个字符对应的资源位置和额外信息的列表。minecraft:default
给出了默认字体,而minecraft:alt
给出了附魔台所用的默认字体。
提供字体时的资源位置应当包含文件扩展名。
- 根标签
- providers: 提供加入该字体的信息的列表。
- 提供字体的信息。内容取决于“type”标签的值。
- type: 该字体提供者的信息,可为以下选项之一。
- bitmap: 位图字体
- file: 欲使用文件的资源位置,以
assets/<namespace>/textures
开始。 - height: 可选。该字符的高度,以像素为单位。可以为负。该标签与源纹理中使用的区域不相关,仅用于重新调整显示结果。
- ascent: 该字体的上伸高度(基线至最高点的距离),以像素为单位。 这个值会使得字体的显示结果出现垂直偏移。
- chars: 一个字符串列表,包含该字体替换的字符及其在纹理中的位置。列表所有元素的字符数必须相同。该列表中的一项元素对应纹理等距分割的一行,每一个元素中的字符对应等距的一列。
- file: 欲使用文件的资源位置,以
- legacy_unicode: 旧版Unicode字体。该字体格式已废弃且仅在“强制Unicode字体”选项打开时才会优先使用。
- sizes:
assets/<namespace>/font
目录下的资源位置,给出一个描述每个字符的水平起讫位置(从0至15)的二进制文件。目标文件的拓展名必须为.bin
。 - template:
assets/<namespace>/textures
目录下的资源位置,给出该字体应当使用的纹理文件。游戏会将该标签中的%s
替换为被替换字符的十六进制代码的前两个字符,因此单个此种类的字体提供者可以指向多个贴图文件。
- sizes:
- ttf: TrueType字体。
[需要更多信息] - file:
assets/<namespace>/font
目录下的TrueType字体文件的资源位置。 - shift: 该字体提供者的字体偏移。
- 左侧偏移
- 下方偏移
- size: 欲渲染的字体大小。
- oversample: 欲渲染的分辨率。
- skip: 欲排除的字符串或字符串数组。
- file:
- bitmap: 位图字体
- type: 该字体提供者的信息,可为以下选项之一。
- 提供字体的信息。内容取决于“type”标签的值。
- providers: 提供加入该字体的信息的列表。
字体纹理表会基于每行中的字符个数自动缩放。为了与Unicode块保持一致,部分纹理表可能为16个字符宽。
默认纹理
默认纹理的字体文件包含一个白色字符的网格,这些字符会在游戏需要时自动被游戏上色。字符大小会根据含有Alpha值的最后一行像素自动决定。由于字体的检测方式,因此用含有5% Alpha颜色填充字符的背景部分将会导致把字符渲染为全宽度,字符也没有可见的背景。默认字体的大小为8×8像素,而accented.png
为18×18像素。
- 字形0x20(空格)到0x7E(波浪号)显示标准ASCII字符。
- 字形0x7F(<控制字符>)到0xFF(带分音符的y)显示代码页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_##
(##是从00至FF的十六进制数字)的格式存储。这些页面均为16×16像素,且在游戏中显得小而粗糙。这些字符并未正确地向左对齐。使用的Unifont字体版本为v9.0.04[1],并在1.16.5时即已经过时。它提供对CJK字符和其他文字的支持。
Emoji表情字符
从1.15开始,Minecraft可以支持 UTF-16 序列的表情字符,或 Unicode辅助平面中的任何字符。
为了在字体文件的 char数组中正确读取Emoji表情字符,字符可以:
- 从其UTF-16代码点分为两个UTF-8代码点(代理);如
1F603 -> D83D DE03
- 直接输入
第一种方法用于标准字体文件,但两者都同样有效。 要将字符转换为代理对,可以使用以下等式,其中C是十进制中的代码点:
- 高代理(第一个):
(C − 65536) ÷ (1024 + 55296)
- 低代理(第二个):
C − 65536
从1.16开始,Minecraft默认支持以下Emoji表情字符:
🔥 🌊 🗡 🏹 🪓 🔱 🎣 🧪
阴影
每个字符下方都会出现一个阴影。 该阴影是字符位图的副本,亮度减去了90%,并且相对于其间距位于字符西南方向的12.5%。无论字符的纹理的分辨率如何,阴影始终移动12.5%。在默认字体(assets/minecraft/textures/font/ascii.png
) 中,阴影相当于向下和向右移动1个像素。
纹理表
通常情况下,Minecraft将多个纹理单独储存而非储存在纹理表中。当前仅有的例外是地图图标[2],经验球和矿车[3]。
着色器
着色器是资源包改变游戏渲染方式的一种方式。 它们是用OpenGL着色器语言 (GLSL) 编写的。
资源包模板
原版资源包的文件结构:
列表 |
---|
|
基岩版
与皮肤类似,可以在基岩版中购买或制作资源包。iOS用户截至Alpha 0.15.0可以使用.mcpack
和.mcworld
文件在系统上下载资源包。打开这些文件后,游戏会自动导入它们,而无需使用文件管理应用。
基岩版的资源包属于附加包的一部分,和行为包并列,同时区分原版资源包与自定义资源包。原版资源包用于为游戏加入新内容而准备。
历史
Java版 | |||||
---|---|---|---|---|---|
1.6.1 | 13w24a | 加入了资源包,取代了纹理包的功能。Minecraft Texture Ender是Mojang提供的,用于把可编译的1.5纹理包转换为资源包。 | |||
1.6.2 | 修复了当使用HD字体时字体扭曲的问题。[4] | ||||
1.7.2 | 13w36a | 加入了一次应用多个资源包的能力。 | |||
13w42a | 把文件从assets/minecraft/music 移动到assets/minecraft/sounds/music ,assets/minecraft/sound 里的文件也移动到assets/minecraft/sounds 。 | ||||
1.7.4 | 13w48a | 移除了更改Mojang徽标的能力。 | |||
1.8 | 14w06a | 加入了更改方块模型的能力。 | |||
14w07a | 资源包现在可以绑定在一张地图上了。 | ||||
14w25a | 模型格式现在支持自定义物体模型。 | ||||
现在可以分别指定方块和物品的纹理。 | |||||
加入了用于动态纹理的interpolate 标签。 | |||||
1.8.8 | pre | 如果资源包版本是错误的,则资源包现在会显示一个错误。此时,资源包需要的版本号是1 。 | |||
1.9 | 15w31a | 由于模型系统中的更改(例如项目标记、多部分以及对显示标记的更改),资源包版本号已更改为2 。
而且使用具有过时显示标签的资源包将导致模型看起来异常放大,并且不会在手中旋转被操纵的方块,同时物品栏中的方块被替换为2D纹理。这类似于模型没有显示标签时发生的情况。请看这里的例子。 | |||
1.11 | 16w32a | 资源包版本号被更改为3 ,这个版本需要资源包的所有文件的文件名使用小写字母。 | |||
1.13 | 17w43a | 默认资源包现在可以像其他资源包一样上下移动位置了。 | |||
17w48a | 由于扁平化,资源包版本号被更改为4 。 | ||||
1.14 | 18w45a | 由于旧纹理在纹理更新中被新的取代,现在在资源包菜单中加入了“Programmer Art – The classic look of Minecraft”。 | |||
19w06a | 明显提升了资源包加载的速度。[5] | ||||
1.15 | pre1 | 由于之前快照中旗帜图案、盾牌、附魔光效与箱子等贴图机制的改动,资源包版本更改为5 。 | |||
1.16 | pre7 | 加入了大量新字母,其中包括此前尚未加入的一些拉丁文、亚美尼亚文连字和格鲁吉亚字母。 | |||
1.16.2 | rc1 | 由于MC-197275,资源包版本号更改为6 。 | |||
1.17 | 20w45a | 由于部分纹理文件名称的更改,资源包版本号变更为7 。 | |||
21w05a | 在物品模型上使用多个替代时提高了性能。 | ||||
toasts.png GUI纹理为收纳袋教程提供了一个新图标。 | |||||
pre1 | assets/minecraft/texts 中的credits.txt 被更改为credits.json ,格式同时从纯文本变为有结构的JSON格式。 | ||||
1.18 | 21w39a | 资源包版本号变更为8 ,因为inventory.png现在包含一个额外的图示,用于物品栏中状态效果列表的精简版。 | |||
1.18.2 | 22w06a | 加入了assets/minecraft/regional_compliancies.json ,用于控制游玩计时器和提示文本,以遵守韩国法律要求(默认仅适用于韩国)。 | |||
1.19 | 22w11a | 在pack.mcmeta中加入了filter 字段,用于按命名空间和正则表达式忽略低优先级数据包中的匹配内容。
| |||
加入了space 字形提供器。 | |||||
资源包版本号变更为9 | |||||
1.19.1 | 22w24a | 在social_interactions.png中加入了3个与聊天举报功能有关的图标。 | |||
pre1 | 将与聊天举报功能有关的3个图标移至report_button.png中。 | ||||
pre2 | 加入了chat_tags.png,其中包含2个与聊天消息信任状态有关的图标。 | ||||
携带版Alpha | |||||
0.15.0 | 加入了第一个自定义游戏内资源包,塑料资源包和城市资源包。 | ||||
基岩版 | |||||
1.10.0 | 1.10.0.3 | 资源包现在和世界模板分离,并能在现存世界中独立更新。 |
你知道吗
- 旧版默认资源包的pack.png取自Java版Alpha v1.2.2,种子
3257840388504953787
。[6]
画廊
另见
参考
- ↑ MC-108045
- ↑ https://feedback.minecraft.net/hc/en-us/community/posts/360058199792-Split-up-map-icon-textures-into-individual-files
- ↑ https://feedback.minecraft.net/hc/en-us/community/posts/360058097892-Split-up-the-experience-orb-texture-file-into-individual-sprites
- ↑ MC-17673
- ↑ “It should have already affected resource pack loading! It's all the same thing internally.” – @Dinnerbone,2019年2月7日
- ↑ “Pack.PNG has been FOUND! - Here's how they did it.” – SalC1。YouTube,2020年9月7日。
- ↑ https://www.reddit.com/r/MinecraftAtHome/comments/iocx6f/packpng_seed_was_found_explanation_tutorial_and
- ↑ https://discord.com/channels/720723932738486323/734822247235059793/752017401587040277
Tomlacko.dat 2020年9月6日4:08(UTC)
Fun fact, the seed was found at 4:04 UTC
404 seednotfound :kekw~1: - ↑ https://youtu.be/wZGPg6Ckp3Q