guansss / pixi-live2d-display

A PixiJS plugin to display Live2D models of any kind.
https://guansss.github.io/pixi-live2d-display/
MIT License
898 stars 137 forks source link

关于hitArea与motion的绑定问题 #56

Closed eipip1e0 closed 2 years ago

eipip1e0 commented 2 years ago

对于Live2DViewerEX这款软件,它能够通过读取配置文件*.motion3.json中的HitAreas,实现hitAreamotion的绑定,也能设定与hitArea绑定的motion优先级,以解决hitArea的重叠问题。 例如:

{
...
"HitAreas": [
    {
      "Name": "TouchHead",
      "Id": "TouchHead",
      "Order": 1,
      "Motion": "TapTouchHead"
    },
    {
      "Name": "TouchBody",
      "Id": "TouchBody",
      "Order": 1,
      "Motion": "TapTouchBody"
    },
    {
      "Name": "TouchSpecial",
      "Id": "TouchSpecial",
      "Order": 2,
      "Motion": "TapTouchSpecial"
    },
    {
      "Name": "shu",
      "Id": "shu",
      "Motion": "Tapshu"
    },
    {
      "Name": "paozuo",
      "Id": "paozuo",
      "Order": 1,
      "Motion": "Settings"
    }
...
}

其中Order给定了动作的优先级;Motion绑定了名为Name的hitArea。

然而,翻阅您的文档后,我并未在您的项目中找到类似的接口。在您给的范例中,也是在检测到指定hitArea之后,再指定需要执行的动作,这样是否有点太麻烦了? 不知是否是我看漏了?不知您能否加入与Live2DViewerEx类似的功能?

看了以下您的源码,然而我不熟悉前端。是否可以在以下模块中添加中添加order和motion字段,以实现相应功能? InternalModel.ts Cubism2InternalModel.ts Cubism4InternalModel.ts Cubism2Spec.d.ts CubismSpec.d.ts ....

guansss commented 2 years ago

这个是 Live2DViewerEX 的应用特定功能,并非 Live2D 本身的功能,也就是说为该应用定制的 model.json 只能在该应用里正常使用

而本项目不是应用,是一个通用的开发库,所以不会加入此类非常客制化的功能

eipip1e0 commented 2 years ago

了解啦,谢谢回复!:blush: