模型
ArcartX模型使用指南
若想获得自由,你必须愿意成为自己生命的主人
模型系统
ArcartX提供了多种多样的模型功能:实体模型、物品模型、方块模型、箭矢模型,在此之上,还提供了自定义光源和骨骼碰撞的功能。
一、模型导入
我们使用模型的第一步,是将模型导入到我们的配置中。模型文件导入的配置位于ArcartX根目录下的model/resource
目录下,你可以创建多个导入模型配置。
配置项名将作为你的模型ID,这个ID会在后续很多地方用到,请记住它且不要重复。
二、实体模型
- 实体模型的配置非常简单,除配置方式以外,你还可以通过API或者MM语句的方式设置实体模型。
- 以配置方式,可以用名称匹配的方式来渲染实体模型,配置位于ArcartX根目录下的
model/named_entity
目录中,你可以创建多个实体模型配置
生物碰撞体积不要设为0,否则会导致实体不可见。匹配名称时请不要包含颜色代码。
三、物品模型/方块模型
大型模型的渲染消耗较高。如果是需要长期手持的物品模型,会在HUD和手持位置同时渲染两次。建议为此类物品设置2D贴图,在UI模式下会优先使用2D图标以减少性能消耗。
- 方块模型和物品模型的配置有点长 但是非常易于理解
- 我们可以通过指令
/a item setModel <modelID>
来设置物品模型 如果手上是一个"头颅方块"那么将它放置到地面上就会显示设置的模型 - 方块和物品模型的配置位于ArcartX根目录下的
model/item
目录中,你可以创建多个物品/方块模型和物品模型的配置
四、模型LOD优化
- LOD会根据帧率状态自动调整模型精度,以平衡性能和视觉效果。
- 熟悉游戏优化的朋友一定听过LOD这个设定,它是根据距离、帧率等因素调节模型精度。ArcartX也具有了类似的功能。
- ArcartX会在游戏过程中查询帧率状态,如果帧率由于模型过多导致帧率严重下滑,会根据策略进行调整
- 如果您导入模型的过程中,开启了LOD,那么以下内容会生效:
优化等级说明:
- 0级: 帧率稳定,原样渲染
- 1级: 剔除0.5像素以下的面
- 2级: 剔除0.6像素以下的面
- 3级: 剔除所有底面和0.9像素以下的面
- 4级: 剔除底面、右面和0.9像素以下的面
- 看见上面这些,你可能觉得:我模型被掏空了岂不是和bug一样?其实实际测试一般到达3级就停了,而剔除底面并不会太影响模型外观,除非站在脚底下看
- 不过,也无需太担心,ArcartX即使不用LOD也有对模型的优化,你可以在一些关键模型上关闭lod,在非关键而且可能渲染好几个的模型打开lod
- 对于一些又可能多但是又要想开启LOD但是又有一些帧率要求的,你可以开启模型lod并且将不想被剔除的骨骼名加上
_no_lod
尾缀
五、模型骨骼碰撞
- ArcartX提供了对模型骨骼的碰撞事件,也就是俗称的"弱点击破"该碰撞必须在生物原本碰撞箱之内才会生效,此外我们需要对需要检测碰撞的骨骼的名称加上尾缀
_hitbox
- 当然,这个功能需要你有个技术或者会写代码才能用,在玩家攻击实体时,如果有骨骼碰撞,服务端会发起骨骼碰撞事件。
六、MythicMobs支持
ArcartX提供了一系列MythicMobs语句支持:
看到这你可能想说:我用了xxx,他和你的词条内容重复了,怎么办!
没关系,ArcartX提供了自定义字段,你可以在ArcartX的根目录下找到mythicmobs/key_words.yml
来修改词条名称(需要重启才会生效)