该行配置文件位于服务端
plugins/GermPlugin/item文件夹内详见此处 >>> 传送门
# 在游戏中按 F3+H 然后鼠标放在物品上,可以看真实的物品名和ID
# 索引名 所有item文件夹下的文件中不能有重复的
default_bedrockEdition_item:
# 代表这是一个基岩版的json模型
type: "bedrockEdition"
# 是否预加载 默认为false使用到该模型时才加载 会有一瞬间的加载过程 常用的模型建议开启
preload: false
# 会否在主线程加载
syncLoad: false
# 当type设置为 bedrockEdition 时路径格式
# 在材质包中时省略路径assets/germmod/models/bedrock_item
# 在萌芽缓存中省略路径GermCache/models/bedrock_item
# 如果想引用放在 models/entity 下的模型,可以以/开头写全路径,如 /models/entity/xxx.geo.json
#
# 当这个模型的原型是可以穿到身上的物品时
# 如果装备模型的骨骼适合,将会随着身体一起运动,并且有一些特定的动画触发机制
# 装备模型的的更多说明请看wiki https://wiki.germmc.com/item/custom_bedrock_item.html
#
# 当这个模型的原型是武器的时候
# 这个模型就会像原武器一样的特性渲染,并且有一些特定的模型动画触发机制
# idle 手持时自动播放的动画
# 武器模型的更多说明请看wiki https://wiki.germmc.com/item/custom_bedrock_item.html
#
# 同步更新的文档 https://docs.qq.com/doc/DZFhYR21NbmVXR3VU
modelPath: 'chainsaw.geo.json'
# 这里为该模型的动画文件
# 放在材质包时地址省略地址 assets/germmod/models/bedrock_item 直接写以后的地址即可
# 放在GermCache时地址省略地址 GermCache/models/bedrock_item 直接写以后的地址即可
# 如果想引用放在 models/entity 下的动画,可以以/开头写全路径,如 /models/entity/xxx.animation.json
animationPath: "chainsaw.animation.json"
# 模型的缩放
modelScale: 1
# 模型的色调 ARGB 格式 可以不修改贴图的前提下修改模型颜色
textureTone: 0xFFFFFFFF
# 模型贴图的位置
# 在材质包中时省略路径assets/germmod/textures/bedrock_item
# 在萌芽缓存中省略路径GermCache/textures/bedrock_item
texturePath: 'chainsaw.png'
# 模型文件发光贴图地址 不需要直接删掉该字段
# 放在材质包时地址省略地址地址 assets/germmod/textures/bedrock_item 直接写以后的地址即可
# 放在GermCache时地址省略地址 GermCache/textures/bedrock_item 直接写以后的地址即可
textureGlowPath: "chainsaw.glow.png"
# 如果texturePath是一个长序列贴图,可以在这里设置切换关键帧的时间
textureHz: 100
# 如果textureGlowPath是一个长序列贴图,可以在这里设置切换关键帧的时间
textureGlowHz: 100
# 如果是弓该字段才会生效
# 重写射出去箭的名字
# 可以配合entity文件夹的模型替换,实现替换箭的模型
overwriteArrowName: "我是一支箭"
# overrideWeapon模式 目前只对武器模型有效 开启后如果手中持有任何sword类型的物品 都会被替换为该模型
# 类似于时装工坊的 武器时装
overrideWeapon: false
############################################
# 基岩模型的物品图标设置
# 在设置了图标的时候优先显示图标,否则直接预览模型
icon:
# 基岩模型的图标在材质包中时省略路径assets/germmod/textures/bedrock_item
# 基岩模型的图标在萌芽缓存中省略路径GermCache/textures/bedrock_item
# 允许gif
path: 'logo.png'
#图标在GUI中的 偏移值 设置了可以让图标移动中心位置
offsetX: 0.0
offsetY: 0.0
offsetZ: 0.0
#在GUI中缩放设置 不能小于 0
scale: 1
#在手中大小设置 不能小于 0
size: 1
#变换设置 可以调整各状态的位置
transformSetting:
#在GUI中调整预览位置
#基岩模型在gui预览会默认触发播放preview动画
gui:
#如果设置为false,将不会在gui中替换模型为基岩会显示原图标
enable: true
#图标在GUI中的 偏移值 设置了可以让图标移动中心位置
offsetX: 0.0
offsetY: 0.0
offsetZ: 0.0
#在GUI中缩放系数 不能小于 0
scaleX: 0.5
scaleY: 0.5
scaleZ: 0.5
#在gui的旋转X
rotateX: 0
rotateY: 0
rotateZ: 0
# 图标在第三人称左手手中的拓展配置
# 除此之外还支持 thirdPersonRightHand 第三人称右手
# firstPersonLeftHand 第一人称左手
# firstPersonRightHand 第一人称右手
thirdPersonLeftHand:
#如果设置为false,将不会在手中替换模型为基岩会显示原图标
enable: true
#在手中大小系数 不能小于 0
scaleX: 1
scaleY: 1
scaleZ: 1
#在手中时的旋转X
rotateX: 300
rotateY: 300
rotateZ: 300
#偏移量
offsetX: 0.0
offsetY: 0.0
offsetZ: 0.0
############################################
# 匹配该模型的条件
matchCondition:
# 匹配该模型的材质要求
# 格式 物品名:子ID 或者 物品ID:子ID
# 某些物品会因为客户端的英文名字和服务端的不同报错,推荐填数字ID
type: 'DIAMOND_SWORD'
#匹配
# 当描述或者名字含有下方字符串时会替换到设置的模型
match: "测试武器"
# 当装备的名字等于该值的时候匹配模型
name: "测试武器"
# 当装备的名字存在该字符时会匹配
name2: "武器"
# 当装备的某行描述等于设定的值时匹配模型
# 格式为:行号<->值 (行号从0开始为第一行)
lore:
- "2<->&5&o测试武器"
- "7<->测试武器"
# 当装备的某个nbt等于设定的值时匹配
nbt:
- "nbtKey1<->测试武器"
- "parentNbt.childNbt<->测试武器" #当有多层NBT时用.隔开
# nbt1不等于测试武器时匹配成功
not_nbt:
- "nbt1<->测试武器"
# 脚本匹配 入参ItemStack 需要返回bool return true为该条件通过
script: |
var name = Utils.getItemName(ItemStack);
if(name.contains("+1")){
return true;
}
return false;
# 匹配时需要满足的表达式 更多表达式请看wiki https://wiki.germmc.com/gui/arithmetic.html
expressions:
- "%player_level% > -1"
# 匹配手持该物品的玩家是否正在钓鱼
- "str(%matchEntity_fishing%,true)"
# 匹配手持该物品的生物是否拥有权限 germ_item_1 (需要注意的是,如果是掉落在地面上的道具,默认的matchEntity是玩家自己,这个表达式会永久不通过)
- "str(%player_has_permission_germ_item_1:#matchEntity_name#%,true)"
# 匹配手持该物品的生物是否是自己 并且是第一人称 其他人称 FIRST_PERSON THIRD_PERSON THIRD_PERSON_REVERSE
- "str(%player_name%,%matchEntity_name%) && str(%client_person%,REAL_FIRST_PERSON)"
将germmod_bedrock_helper.js插件拖入Blockbench应用程序界面内,此时弹出如下图对话框并点击好的

点击【文件->插件->已安装】来确认是否安装成功

该插件的功能目前有,制作萌芽引擎的基岩盔甲,添加更多的模型属性,后期会添加更多功能,如果有建议请私聊。
将standard.geo.bbmodel (这是一个标准的Player基岩模型,暂时使用该模型的骨骼结构,后面可能会根据代码推进继续修改骨骼)拖入Blockbench,加载该模型的意图是为了做基岩盔甲时有一个参照物。
骨骼结构并不是需要完全一致,你可以任意的在每个组之间添加任意组
点击【插件->盔甲属性】

打开以后可以看到如下图所示的配置项,在这里我们可以设置一些穿上该模型后玩家的隐藏开关

下面我们点击动画模式然后随便新建一个动画,双击这个动画打开动画设置界面

可以看到上面多了一些带有[G]标记的选项,这里需要输入的内容都是动画名称,填写多个动画时用逗号,隔开。
下面详细解释一下这些新增配置选项
无视覆盖:不会被其他带有覆盖的动画覆盖掉播放
自动播放:当模型被加载的时候就会开始播放(例如做一个呼吸动画,这个动画应该一开始就不断播放的,所以可以使用自动播放触发播放)
覆盖原版:这个选项只在模型作为基岩盔甲的时候生效,他会覆盖掉原版同名的动作,现在可列出的覆盖原版的名字有
触发动画:在该动画开始播放时,顺带开始某些动画。
伴随动画:在该动画期间,强制让某些动画也一起播放。
冲突动画:在该动画期间,强制停止某些动画。
衔接动画:在该动画结束播放时,开始某些动画。
终止动画:在该动画结束播放时,顺带停止某些动画。
接下来进行正常的基岩物品模型配置即可
其中identity为删除时装的标识。
注意,相同identity的时装同时给玩家穿上也不会覆盖。需要先removeBedrockSkin然后再addBedrockS
if (args.get(1).equalsIgnoreCase("addbedrock")) {
Player player = (Player) sender;
GermSkinBedrock germSkinBedrock = new GermSkinBedrock();
germSkinBedrock.setModelPath("士兵.geo.json");
germSkinBedrock.setTexturePath("士兵.png");
germSkinBedrock.setIdentity("bedrock");
germSkinBedrock.setIndexName("bedrock");
GermSkinAPI.addBedrockSkin(player, germSkinBedrock);
return true;
} else if (args.get(1).equalsIgnoreCase("removebedrock")) {
Player player = (Player) sender;
GermSkinAPI.removeBedrockSkin(player, "bedrock");
return true;
}