开始使用模型
开始使用模型指南
一旦选择相信 ,一切皆有可能。
模型
- 模型的基本运用很简单,关于模型动作控制器,后续我们在单独的板块讲解,这部分板块我们着重讲解模型的基础运用。
- 首先准备模型,我建议用.bbmodel格式,在这种格式下可以读取Java模型、geo模型、通用模型这些格式。
- 非bbmodel格式则只读取基岩模型格式。当然,bbmodel一些复杂的运动方式,比如lk什么的,对于bbmodel直接读取是无法读取的,需要导出为geo格式才行。
模型加载
- 模型加载有两种方式,也就是刚才我们提到的bbmodel格式读取以及基岩模型格式读取。
- 首先讲bbmodel格式,这种方式比较简单,先从这个讲解。
bbmodel格式
先准备好模型文件,然后放入ArcartX/resource/model
文件夹下。

然后重载客户端资源,如果没启动客户端的话直接启动客户端。就绪之后查看客户端日志。

日志中会输出这个模型是否加载成功,这里输出的这个名字也是后面我们所需要的模型id
对于bbmodel
格式,如果需要发光贴图,只需要在模型贴图列表加入一个[主贴图名]_glow
的贴图即可。

- 然后就是geo格式模型加载,通常geo模型包含模型、贴图、动画。
geo格式
先准备好模型文件,然后放入ArcartX/resource/model
文件夹下。
- 注意我下面的命名格式
xxx.geo.json
——模型文件xxx.animation.json
——动画文件(可以没有)xxx.png
——贴图文件xxx.glow.png
——发光贴图(可以没有)

- 注意以上例图没有发光贴图 如果有需要按照格式加入即可
然后重载客户端资源,如果没启动客户端的话直接启动客户端。就绪之后查看客户端日志。

日志中会输出这个模型是否加载成功,这里输出的这个名字也是后面我们所需要的模型id
axmeta文件
- axmeta文件是ArcartX的模型拓展数据文件,它的结构是这样的
-
先简单解释下
-
glow_level
——发光等级(0~15)(默认0) -
lod
——是否开启动态帧率优化(默认false) -
player_skin
——如果贴图需要引用玩家皮肤,将此处修改为true(默认false) -
item_scale
——物品类型模型缩放(该缩放将影响模型作为物品、方块、特效、掉落物附加模型的缩放尺寸)(默认1.0) -
如果不需要修改上面这几个数据的默认值,是不需要创建这个文件的。
-
这几个好像不用太详细解释, 除了这个lod,如果您接触过游戏优化应该听过这个词。
-
不过,这并不是真正意义的lod,而是通过面剔除或者块剔除实现的,以减少顶点的上传来优化帧率。
-
因为真的lod需要您建立多个模型,比如精细模型、中等模型、粗糙模型,然后根据距离来切换模型,这个对于您本身的成本而言是略高的。
-
对于引用玩家皮肤仅对玩家实体套用模型有效,此外,在axmeta设置player_skin为true时,是将模型所有贴图都替换为玩家皮肤贴图。
-
如果您使用的是通用模型附带多个贴图,且想要精确控制哪里使用玩家贴图,哪里使用您自带的贴图,将需要替换为玩家贴图的贴图命名为“player_skin.png”即可。
- LOD会根据帧率状态自动调整模型精度,以平衡性能和视觉效果。
- ArcartX会在游戏过程中查询帧率状态,如果帧率由于模型过多导致帧率严重下滑,会根据策略进行调整
优化等级说明:
- 0级: 帧率稳定,原样渲染
- 1级: 剔除0.5像素以下的面
- 2级: 剔除0.6像素以下的面
- 3级: 剔除所有底面和0.9像素以下的面
- 4级: 剔除底面、右面和0.9像素以下的面
- 看见上面这些,您可能觉得:我模型被掏空了岂不是和bug一样?其实实际测试一般到达3级就停了,而剔除底面并不会太影响模型外观,除非站在脚底下看
- 对于一些又可能多但是又要想开启LOD但是又有一些帧率要求的,您可以开启模型lod并且将不想被剔除的骨骼名加上
_no_lod
尾缀
如何应用这个文件呢?只需要将这个文件放在模型文件的同级目录即可,文件名为模型名.axmeta.json
