跳到主要内容

萌芽引擎资源文件

什么是资源文件?

本文使用单个资源文件这一名词来特别指代未被打包进压缩包内的资源文件

资源文件(Resource) 是一种可以更改游戏中方块、物品、生物和界面外表等的文件,例如贴图、模型、gif等。这是萌芽引擎在使用过程中不可缺少的一环。萌芽引擎的功能都需要读取资源文件来展现。资源文件可以位于 resourcepacks文件夹中的资源包内GermCache文件夹 中。单个资源文件只可以放置于 GermCache文件夹 中。

任何位置的资源文件均不推荐使用大写字母进行命名

Java模型的文件名不支持大写字母,否则无法读取


什么是资源包?

资源包(Resource Pack)是一个可以更改游戏中方块、物品、生物和界面外表等单个资源文件的集合,它是由许多资源文件组成的一个压缩包资源包位于 resourcepacks文件夹 中。

在新版萌芽引擎中,无需服主手动打包资源包,只需要按照层级将资源文件都放置在GermCache文件夹中,再通过/gp misc指令中的加密指令进行加密,就会自动打包成合适的资源包


资源文件的放置结构

请严格按照下文所示的资源包层级关系,在GermCache文件夹自行创建子文件夹并添加您的资源文件吧!!!

GermCache
├── effect
│ ├── (图片特效).png
│ └── particles
│ └── (粒子特效).json
├── font
│ └── (字体).ttf
├── videos
│ └── (视频文件).mp4,avi...
├── models
│ ├── bedrock_item
│ │ ├── (基岩版物品模型材质).json
│ │ └── (基岩版物品模型动画).json
│ ├── entity
│ │ ├── (实体模型材质).json
│ │ └── (实体模型行为).json
│ └── item
│ └── (Java版物品模型).json
├── skin
│ └── (时装工坊模型文件).armour
├── sounds
│ ├── (音效文件).ogg
│ └── (音效配置).json
├── src
│ ├── gui
│ │ └── (客户端本地GUI配置).yml
│ ├── item
│ │ └── (客户端本地物品配置).yml
│ ├── entity
│ │ └── (客户端本地实体配置).yml
│ └── effect
│ └── (客户端本地特效配置).yml
└── textures
├── bedrock_item
│ └── (基岩版物品模型材质).png
├── entity
│ └── (实体模型材质).png
├── font
│ └── (字体替换材质).png
├── gui
│ └── (GUI材质).png
├── item
│ ├── (Java版物品模型材质).png
│ ├── (物品图标材质).png
│ └── armor
│ ├── (盔甲贴图材质).png
│ └── icon
│ └── (盔甲图标材质).png
└── misc
└── (杂项材质).png

资源包打包并加密

本小节内容有同步视频教程>>点击查看

因为萌芽引擎独有的资源包加密功能,使得您的资源包防盗性能极速提升。您只需将资源文件按照上方所示文件层级,放置在GermCache文件夹中,并运行/gp misc中的加密指令,就会自动加密并打包成资源包

.uze资源包加密效果不可逆,无法从中解压出原始资源文件,请自行备份好原始资源文件!

pack 与 folder 两种加密方式

当前常用的加密分发方式有两种:

方式输出位置适合场景
packresourcepacks/mcpack.uze传统整包分发,资源集中在一个加密包里
folderresourcepacks/GermMod文件散列成加密目录,适合配合更新器做增量更新

folder方式会隐藏真实文件名和目录名,客户端加载时再按内部真实路径还原资源索引。普通贴图、模型、音效以及客户端本地 source 配置都可以跟随该方式分发。

客户端本地 source 配置

部分服务端 source 配置也可以随客户端资源一起分发,用来减少玩家进服时服务端下发的配置数据量。适合放入客户端的通常是固定、变化少、且不敏感的配置,例如 item、部分 miscanimationguientityeffect 等。

调试时先把明文配置放在客户端:

.minecraft/GermCache/src/<类型>/<配置文件名>

例如:

.minecraft/GermCache/src/item/sword.yml
.minecraft/GermCache/src/misc/client_effect.yml
.minecraft/GermCache/src/animation/weapon.yml
.minecraft/GermCache/src/gui/menu.yml

调试完成后,再使用加密指令把 GermCache 中的资源和 src 配置一起转为正式客户端资源。正式分发有两种方式:

方式输出说明
packresourcepacks/mcpack.uze把资源集中到一个加密包中分发
folderresourcepacks/GermMod把资源转成隐藏真实路径的 .e 加密文件,适合启动器或更新器做增量更新

folder 方式生成后不会再看到原始的 src/item/sword.yml 文件名,这是正常的。客户端加载 resourcepacks/GermMod 时会还原内部真实路径,并把 src/<类型>/<配置文件名> 注册为客户端本地 source。

调试与正式客户端

GermMod.cfg 中的 clientVersion 包含 dev 时,客户端会跳过加密目录内的本地 source 注册,方便开发和测试时继续以服务端下发配置为准。

正式玩家使用的客户端不要让 clientVersion 包含 dev。正式客户端会从 mcpack.uzeresourcepacks/GermMod 中加载加密后的本地 source。

省流量分发示例

假设服务器有大量固定物品配置和动画配置,普通玩家每次进服都从服务端接收全部 source 会浪费流量。可以按下面流程处理:

  1. 把固定配置放到客户端调试目录,例如 .minecraft/GermCache/src/item/weapon.yml.minecraft/GermCache/src/animation/weapon.yml
  2. 客户端 GermMod.cfgclientVersion 临时写成包含 dev 的值,用服务端下发配置调试内容。
  3. 调试完成后执行 /gp misc encrypt pack/gp misc encrypt folder,生成正式资源。
  4. 正式服关闭全量下发,使用 sendSrcBlackListsendSrcWhiteList 让普通玩家不再接收这些固定 source。
  5. 把测试人员名字加入 sendSrcDevList,需要排查时仍由服务端强制下发同名 source,覆盖客户端本地版本。

这样普通玩家优先使用客户端加密资源中的固定 source,测试人员仍可以收到服务端最新配置,避免客户端旧文件影响排查。


资源文件的存放位置

文件夹(位于.minecraft中)资源文件要求文件格式
GermCache包含后缀名符合要求的单个资源文件格式
resourcepacks打包过的资源文件(资源包).uze.gip

GermCache文件夹中存放的一般是在测试时临时存放我们需要随时调整单个资源文件。其中存放的单个资源文件可以在游戏运行过程中按下 右侧ALT+P 键 进行重载。

resourcepacks文件夹中可以存放打包好的.uze格式.gip格式资源包.

调试资源文件时放在GermCache文件夹中,调试完成后使用命令/gp misc中的加密命令打包,打包后会出现在resourcepacks文件夹中


资源文件的读取路径

萌芽引擎的配置文件中,我们需要为配置文件填写资源文件的路径,资源路径关系如下:

GermCache文件夹中的资源文件读取路径是与资源包内的读取路径有着共通之处的,在填写的读取路径GermCache就等同于assets/germmod

例如:我们在.minecraft/GermCache/textures/gui内储存了一张名为123.png的图片,我们此时在配置文件内填写的读取路径应为

path: 'local<->textures/gui/123.png'

资源包中的的资源的读取路径是与GermCache文件夹内的资源文件读取路径有着共通之处的,在填写的读取路径assets/germmod就等同于GermCache

例如:我们在default.uze/assets/germmod/textures/gui内储存了一张名为123.png的图片,我们此时在配置文件内填写的读取路径则应为

path: 'local<->textures/gui/123.png'