资源包¶
资源包(Resource Pack)是附加包的一种类型,负责定义Minecraft基岩版游戏的视觉和听觉表现。资源包属于客户端内容,在客户端加载和渲染,不影响游戏的逻辑行为。
概述¶
资源包可以修改或替换游戏中的纹理、模型、动画、音效、粒子特效、用户界面、字体等几乎所有客户端资源。通过资源包,开发者可以创建全新的视觉风格,也可以对原版素材进行局部调整。
资源包的清单文件中,模块类型应设置为resources。一个资源包可以独立使用,也可以与一个或多个行为包配合使用。
目录结构¶
一个典型的资源包的文件结构如下:
- manifest.json:清单文件。
- contents.json:内容文件,列出包内所有资源文件的校验信息。
- pack_icon.png:包图标。
- jsonloading_messages.json:加载消息。
- jsonsplashes.json:闪烁标语。
- jsonsounds.json:音效事件映射。
- jsonblocks.json:方块渲染信息(旧版兼容)。
- folderanimation_controllers/:动画控制器文件。
- folderanimations/:动画文件。
- folderatmospherics/:大气设置文件。
- folderattachables/:附着物定义文件。
- folderbiomes/:客户端生物群系定义文件(
minecraft:client_biome格式)。 - folderblock_culling/:自定义方块面剔除规则。
- foldercolor_grading/:色彩分级设置文件。
- folderentity/:客户端实体定义文件。
- folderfogs/:迷雾定义文件。
- folderfont/:字体文件。
- jsonemoticons.json:表情符号映射。
- jsonfont_metadata.json:字体元数据。
*.png:位图字体纹理。*.ttf:TrueType字体文件。
- folderlighting/:全局照明设置文件。
- foldermaterials/:材质文件。
- foldermodels/:模型文件。
- folderentity/:实体模型。
- folderblocks/:方块模型。
- folderparticles/:粒子特效定义文件。
- folderpbr/:PBR(基于物理的渲染)回退设置。
- jsonglobal.json:全局PBR回退配置。
- folderrender_controllers/:渲染控制器文件。
- foldershadows/:阴影设置。
- jsonglobal.json:全局阴影配置。
- foldersounds/:音效文件(
.ogg、.wav、.fsb)。- jsonsound_definitions.json:音效定义。
- jsonmusic_definitions.json:音乐定义。
- foldertexts/:本地化文件。
*.lang:各语言翻译文件。- jsonlanguages.json:支持的语言列表。
- jsonlanguage_names.json:语言显示名称映射。
- folder*/:各语言字体目录(含
font/*.png)。
- foldertextures/:纹理文件。
- folderblocks/:方块纹理。
- folderentity/:实体纹理。
- folderenvironment/:环境纹理。
- folderoverworld_cubemap/:主世界天空盒立方体贴图(
cubemap_0—cubemap_5)。
- folderoverworld_cubemap/:主世界天空盒立方体贴图(
- folderitems/:物品纹理。
- folderparticle/:粒子纹理。
- jsonflipbook_textures.json:翻书动画纹理列表。
- jsonitem_texture.json:物品纹理映射(物品图集)。
- jsonterrain_texture.json:方块纹理映射(地形图集)。
- jsontextures_list.json:纹理预加载列表,用于提前加载自定义纹理。
- folderui/:JSON UI文件。
- json_ui_defs.json:需要加载的UI屏幕文件列表。
- json_global_variables.json:JSON UI全局变量。
*.json:具体屏幕与控件定义文件。
- folderwater/:水体渲染设置文件。
资源覆盖¶
资源包通过资源栈(Resource Stack)机制实现叠加。排列在栈顶的资源包具有最高优先级。当多个资源包定义了同名的资源文件时,栈顶资源包的文件会覆盖下方资源包的文件。这种机制允许开发者只修改需要更改的文件,而无需重新创建完整的资源包。
全局与世界作用域¶
资源包可以作为全局资源包应用于所有世界,也可以作为世界资源包仅应用于特定世界。全局资源包在游戏主菜单的设置中管理,世界资源包在各个世界的设置中管理。
清单文件中的pack_scope字段可以限制资源包的可用作用域:
world:仅可作为世界资源包使用。global:仅可作为全局资源包使用。any:两种作用域均可使用(默认)。