LogoArcartX Doc
模型篇

开始使用模型

开始使用模型指南

一旦选择相信 ,一切皆有可能。

模型

  • 模型的基本运用很简单,关于模型动作控制器,后续我们在单独的板块讲解,这部分板块我们着重讲解模型的基础运用。
  • 首先准备模型,我建议用.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": 10,
    "lod": false,
    "player_skin": false,
    "item_scale": 1.0
}
  • 先简单解释下

  • 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

模型

On this page