来源

设计思路

由于本项目涉及到的模型种类有四种,文件类型繁杂,因此设计为无需将所有模型放置在同一文件夹,可通过添加多个数据源从不同目录读取模型。

每一个数据源均可以编辑希望载入的文件类型,包括 Live2D、Spine、MMD、VRoid、motion3D、audio3D,默认全部打开。

TIP

添加数据源后,并不会自动开始检索数据库,需要手动执行这项操作,这是故意这样设计的,因为用户可能并不希望从该目录中检索所有类型的文件,可以先进行载入类型的编辑之后再执行加载。

相关文件格式

扩展名用途
pmxMMD 模型
vrmVRoid 模型
jsonSpine、Live2D 模型入口
skelSpine 模型入口
vmdMMD 与 VRoid 动画
fbxMixamo 动画,用于 MMD 与 VRoid
mp3MMD 与 VRoid 动画音频
wavMMD 与 VRoid 动画音频

Spine 版本问题

本应用使用pixi-spineopen in new window读取换显示 Spine 模型,在其 README 中是这么说的:

Spine 3.7, 3.8, 4.0, 4.1 implementation for PixiJS v5 & v6.

Typescript definitions are up-to-date with PixiJS v6.

For spine < 3.7 support is limited, but accepting PR's for runtime-3.7 package.

这意味着目前本应用仅支持版本在 3.7 及其以上 spine 模型。对于较低版本的模型,用户可以尝试自行转换版本。

官方的编辑器似乎进行模型版本转换(然而贵得要死,我直接是没钱买),再推荐一个 GitHub 项目SpineConverteropen in new window

TIP

按照计划,本应用之后可能会整合的模型版本自动转换。

文件兼容

本应用相关的文件类型较为庞杂,无法保证所有文件均被正确读取,模型的控制都是按照通用的参数规范实现的,例如 MMD 骨架命名规则,live2d 参数命名规则,缺少关键骨骼及参数可能导致鼠标跟踪,动画播放,动作捕捉等功能受到影响。相关信息如下:

  1. live2d 的 json 入口文件配置项应当完备,不然可能无法正确载入。
  2. 极少数 MMD 模型手部也采用了 IK 解算,例如 Sour 式初音ミクopen in new window,对于这样的模型,mixamo 动画转译在旋转解算模式下由于关闭了 ikSolver,动画将出现故障(手部姿态极为诡异),在动作捕捉的时候也会有类似的问题。
  3. 对 fbx 文件的支持目前仅限于 mixamo 动画库中下载的 fbx 文件,其他 fbx 文件会被添加至动作数据库,但无法被正确读取。
  4. 对于 spine 模型不支持的版本,有可能会被载入模型数据库,但无法正确加载。
Contributors: TSKI433