跳到主要内容

配置文件

plugins/CloudModel/config.yml,改完执行 /cm reload。插件更新时会自动补上新增的配置项,config-version 不要手动修改。

模型文件夹​

配置项默认值说明
blueprints.extra-folders[]额外读取的文件夹(相对于 plugins/),例如 "ModelEngine/blueprints"

资源包​

配置项默认值说明
resource-pack.namespacecloudmodel资源包命名空间
resource-pack.descriptionCloudModelpack.mcmeta 的描述
resource-pack.ziptrue另外生成 resource_pack.zip
resource-pack.optimize-pngtruePNG 无损重新压缩(画质不变,结果会缓存)
resource-pack.texture.max-size0任一边超过这个像素就等比缩小,0 = 不缩,建议 512 或 1024
resource-pack.texture.max-colors0量化成最多几色,0 = 不量化,最多 256
resource-pack.custom-model-data-start410001.21.3 以下使用的 CustomModelData 起始值
resource-pack.copy-to[]生成后把 assets 复制到这些文件夹(相对于服务器根目录)
resource-pack.free-rotationauto方块任意角度、多轴旋转直接写进模型,一个骨骼一个 display(需要 1.21.11 起的客户端),见 方块自由旋转(1.4.0 起)
resource-pack.mesh.max-faces0Blockbench 网格(mesh)每个模型最多几片;0 = 外观完全照原样,见 网格(mesh)(1.6.0 起)
resource-pack.mesh.texel-density8网格贴图重新烘焙时,每个模型像素用几个贴图像素(越大越清楚、资源包越大)(1.6.0 起)
resource-pack.auto-reload-craftenginetrueCraftEngine 合并云模型的资源包时,资源包内容有变动就在开服完成、/cm reload 完成时自动执行 /ce reload all(CraftEngine 重开服不会自己重新生成,玩家会拿到旧的资源包)(1.4.1 起)

方块自由旋转​

云模型用 item_display 显示模型,每个 display 是一个物品模型。旧版物品模型的方块只能沿单一轴转 0 / ±22.5 / ±45 度,其他角度(例如 15 度、两个轴一起转)的方块只能拆成独立的 display,斜片多的特效会有几十个 display。

1.21.11 起的客户端支持方块任意角度、多轴旋转,云模型会把旋转直接写进模型,同一个骨骼的方块合成一个 display:

例子关闭开启
9 个骨骼、48 个方块(多数斜放)的刀光特效43 个 display9 个 display

display 越少,服务器送的封包越少,客户端也越轻松;画面完全相同。

值效果
auto(默认)服务器 1.21.11 以上、而且没装 ViaBackwards / ViaRewind 时开启
true一律开启
false照旧按旋转角度拆分
旧版客户端

1.21.11 以前的客户端看不懂这种旋转,开启后会看到模型缺块。群组服在代理端(Velocity / BungeeCord)装 ViaBackwards 让旧版客户端进来时,子服侦测不到,请手动改成 false。

开启或关闭后零件编号会改变,玩家必须拿到新的资源包,否则会缺块、出现别的贴图。用 CraftEngine 合并时云模型会自动执行 /ce reload all(见上表 auto-reload-craftengine);用其他方式发送资源包的,请重新发送并让玩家重新进服。

启动与 /cm reload 时后台会显示目前是否开启,例如 display 107 个(自由旋转开:服务器 1.21.11 以上)。

网格(mesh)​

Blockbench 的网格(mesh)可以直接放进模型(1.6.0 起),需要上面的自由旋转开启(1.21.11 起的客户端);没开启时网格会被略过,后台会提醒。

原版物品模型只有方块,云模型读取时把网格换成斜放的薄片:相邻、同一平面的三角形合成一片,贴图照网格的 UV 重新烘进去,三角形以外透明,看起来与 Blockbench 相同。同一个骨骼的薄片仍然是一个 display,网格面再多也不会多出展示实体。封闭的网格只画正面,有开口的网格(披风、布料)两面都画。

默认(max-faces: 0)只做不改变外观的处理:

  • 真正同平面的三角形合成一片(中间有小空隙也行,空隙烘成透明)
  • 同一个骨骼里,从任何方向都被完全不透明的面挡住的三角形拿掉(同一个骨骼的面不会互相移动,任何动画下都看不到)

例如一个 34935 个三角形的骑士:14372 片 → 6195 片,外观不变,10 只同时出现时帧数约为原本的 2.5 倍。

客户端每一帧要画的面越多越吃效能。高面数模型想要更流畅,可以把 max-faces 设成数字(例如 3000):超过时会把夹角小的相邻面合成一片,会稍微失真。

烘焙结果存在 plugins/CloudModel/.cache/mesh,网格、贴图与设置都没变时下次直接读取。

渲染​

配置项默认值说明
render.base-itemLEATHER_HORSE_ARMOR显示模型用的物品,必须能染色(受伤泛红才有效果)
render.view-range1.0display 的可视距离倍率(1.0 = 64 格)
render.model-yaw-offset0模型整体朝向修正(度),模型前后颠倒就改成 180
render.hide-base-entitytrue套上模型后隐藏原本的实体(隐形,并隐藏手持物与盔甲)
render.rotation-smoothing0.3模型转向缓动:每 tick 补上剩余角度的多少(0 = 关闭,直接照实体朝向)。原版客户端画生物身体也是这样,大模型转身才不会一顿一顿(1.0.4 起)
render.rotation-max-lag60模型朝向最多落后实体几度,转太快时直接拉近(1.0.4 起)
render.show-namestrue生物的自订名称(例如 MythicMobs 的 Display、Citizens NPC 的名称)照原版规则显示在模型上方:设成永远显示时一直显示,否则准心对准时才显示。套上模型的生物是隐形的、模型又骑在它身上,原版会把名称藏起来,所以由云模型代为显示(1.1.2 起)。设成 false 全部关掉;个别生物用 model{shownames=false},见 生物名称
render.name-offset0名称高度整体再往上几格(负数往下);个别生物用 model{nameoffset=}(1.1.3 起)
render.inherit-displayfalse底座是展示实体时,模型默认是否继承它的变换、朝向、插值与亮度;技能可用 model{inherit=} 个别指定,见 套在展示实体上(1.0.3 起)

距离降频(LOD)​

每位玩家按「离模型的距离」决定多久更新一次动作(单位 tick),越远越省流量。没有任何玩家看得到的模型完全不计算、不发封包。

配置项默认值说明
lod.near-distance24近距离范围(格)
lod.near-interval1近距离每几 tick 更新一次
lod.mid-distance48中距离范围(格)
lod.mid-interval2中距离每几 tick 更新一次
lod.far-interval4更远时每几 tick 更新一次

受伤变色​

配置项默认值说明
hurt-tint.enabledtrue受到伤害时模型泛红(受伤事件、受伤封包、血量下降任一个都会触发)
hurt-tint.color#FF6E6E颜色
hurt-tint.ticks6持续时间

自动动画​

配置项默认值说明
default-states.idleidle待机动画名称
default-states.walkwalk行走动画名称
default-states.deathdeath死亡动画名称
default-states.spawnspawn出生动画名称
default-states.lerp-ticks4自动动画之间的过渡 tick 数

伪装与 MythicMobs​

配置项默认值说明
disguise.show-selffalse/cm dis 时自己看不看得到模型
mythicmobs.meg-aliasesautomodel{} 等 ModelEngine 技能名称由谁处理,见 与 ModelEngine 共存