Skip to content

数据格式说明

json
{
  // 龙骨数据名称。
  "name": "dragonBonesName",

  // 数据版本。
  "version": "5.5",

  // 数据兼容的最低版本。
  "compatibleVersion": "5.5",

  // 动画帧率。 (可选属性,默认:24)
  "frameRate": 24,

  // 自定义数据。 (可选属性,默认:null)
  "userData": null,

  // 骨架列表。 (可选属性,默认:null)
  "armature": [{

    // 骨架名称。
    "name": "armatureName",

    // 动画帧率。 (可选属性,默认:null)
    // [null: 使用龙骨数据的帧率, N: 动画帧率]
    "frameRate": 24,

    // 非必要。
    "type": "Armature",

    // 自定义数据。 (可选属性,默认:null)
    "userData": null,

    // 当该骨架做为子骨架加入到父骨架时的默认行为列表。 (可选属性,默认:null)
    "defaultActions": [
      {
        "gotoAndPlay": "animationName"
      }
    ],

    // 骨骼列表。 (可选属性,默认:null)
    "bone": [{

      // 骨骼名称。
      "name": "boneName",

      // 父骨骼名称。 (可选属性,默认:null)
      "parent": "parentBoneName",

      // 自定义数据。 (可选属性,默认:null)
      "userData": null,

      // 该骨骼相对与父骨骼或骨架的基础变换。 (可选属性,默认:null)
      "transform": {
        "x": 0.0, // 水平位移。 (可选属性,默认:0.0)
        "y": 0.0, // 垂直位移。 (可选属性,默认:0.0)
        "skX": 0.0, // 水平倾斜。 (可选属性,默认:0.0)
        "skY": 0.0, // 垂直倾斜。 (可选属性,默认:0.0)
        "scX": 1.0, // 水平缩放。 (可选属性,默认:1.0)
        "scY": 1.0  // 垂直缩放。 (可选属性,默认:1.0)
      }
    }],

    // 插槽列表。
    "slot": [{

      // 插槽名称。
      "name": "slotName",

      // 父骨骼名称。
      "parent": "parentBoneName",

      // 默认的显示对象索引。 (可选属性,默认:0)
      "displayIndex": 0,

      // 混合模式。 (可选属性,默认:null)
      "blendMode": null,

      // 自定义数据。 (可选属性,默认:null)
      "userData": null,

      // 颜色变换。 (可选属性,默认:null)
      "color": {
        "aM": 100, // 透明相乘因子。 [0~100] (可选属性,默认:100)
        "rM": 100, // 红色相乘因子。 [0~100] (可选属性,默认:100)
        "gM": 100, // 绿色相乘因子。 [0~100] (可选属性,默认:100)
        "bM": 100, // 蓝色相乘因子。 [0~100] (可选属性,默认:100)
        "aO": 0, // 透明偏移。 [-255~255] (可选属性,默认:0)
        "rO": 0, // 红色偏移。 [-255~255] (可选属性,默认:0)
        "gO": 0, // 绿色偏移。 [-255~255] (可选属性,默认:0)
        "bO": 0, // 蓝色偏移。 [-255~255] (可选属性,默认:0)
      }
    }],

    // 皮肤列表。
    "skin": [{

      // 皮肤名称。
      "name": "skinName",

      // 插槽列表。
      "slot": [{

        // 插槽名称。
        "name": "slotName",

        // 显示对象列表。
        "display": [{

          // 显示对象名称。
          "name": "displayName",

          // 显示对象类型。 (可选属性,默认:"image")
          // ["image": 贴图的矩形, "armature": 嵌套的子骨架, "mesh": 贴图的网格, "boundingBox": 自定义边界框]
          "type": "image",

          // 显示对象的资源路径。 (可选属性,默认:null)
          "path": null,

          // 共享网格的名称。 (可选属性,默认:null)
          "share": "meshName",

          // 是否继承共享网格的形变动画。 (可选属性,默认:true)
          "inheritDeform": true,

          // 显示对象的子类型。
          // 如果是边界框: (可选属性,默认:"rectangle")
          // ["rectangle": 矩形边界框, "ellipse": 椭圆边界框, "polygon": 多边形边界框]
          "subType": "rectangle",

          // 非必要。
          "color": 0x000000,

          // 相对于骨骼的变换。 (可选属性,默认:null)
          "transform": {
            "x": 0.0, // 水平位移。 (可选属性,默认:0.0)
            "y": 0.0, // 垂直位移。 (可选属性,默认:0.0)
            "skX": 0.0, // 水平倾斜。 (可选属性,默认:0.0)
            "skY": 0.0, // 垂直倾斜。 (可选属性,默认:0.0)
            "scX": 1.0, // 水平缩放。 (可选属性,默认:1.0)
            "scY": 1.0  // 垂直缩放。 (可选属性,默认:1.0)
          },

          // 相对轴点。 (可选属性,默认:null)
          "pivot": {
            "x": 0.5, // 水平位移。 [0.0~1.0] (可选属性,默认:0.5)
            "y": 0.5, // 垂直位移。 [0.0~1.0] (可选属性,默认:0.5)
          },

          // 显示对象的尺寸。 (仅对边界框有效)
          "width": 100,
          "height": 100,

          "vertices": [-64.0, -64.0, 64.0, -64.0, 64.0, 64.0, -64.0, 64.0],

          "uvs": [0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0],

          "triangles": [0, 1, 2, 2, 3, 0],

          "weights": [1, 0, 1.0, 2, 0, 0.5, 1, 0.5],

          "slotPose": [1.0, 0.0, 0.0, 1.0, 0.0, 0.0],

          "bonePose": [0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0],

          // 替换子骨架的默认行为列表。 (可选属性,默认:null)
          "actions": [
            {
              "gotoAndPlay": "animationName"
            }
          ]
        }]
      }]
    }],

    // IK 约束列表。
    "ik": [{

      // IK 约束名称。
      "name": "ikContaintName",

      // 约束骨骼的名称。
      "bone": "boneName",

      // 约束目标骨骼的名称
      "target": "ikBoneName",

      // IK 约束的方向。 (可选属性,默认:true)
      // [true: 正方向 / 顺时针, false: 反方向 / 逆时针]
      "bendPositive": true,

      // 被约束的骨骼链长度。
      // [0: 至约束骨骼, N: 该骨骼和向上 N 级的父骨骼] (可选属性,默认:0)
      "chain": 0,

      // 约束权重。 [0.0~1.0] (可选属性,默认:1.0)
      "weight": 1.0
    }],

    // 动画列表。
    "animation": [{

      // 动画名称。
      "name": "animationName",

      // 动画播放次数。 [0: 循环播放, N: 播放 N 次] (可选属性,默认:1)
      "playTimes": 1,

      // 动画长度。 (可选属性,默认:1)
      "duration": 1,

      // 行为关键帧列表。 (可选属性,默认:null)
      "frame": [{

        // 关键帧长度。 (可选属性,默认:1)
        "duration": 1,

        // 该帧的行为列表。 (可选属性,默认:null)
        "actions": [{

          // 行为类型。 [0: 播放动画, 10: 帧事件, 11: 帧声音事件] (可选属性,默认:0)
          "type": 0,

          // 行为的名称。 (动画名称或事件名称)
          "name": "actionName",

          // 骨骼名称。 (可选属性,默认:null)
          "bone": "boneName",

          // 插槽名称。 (可选属性,默认:null)
          "slot": "slotName",

          // 自定义数据列表。 (可选属性,默认:null)
          "ints":[0 1 2],
          "floats":[0.01 1.01 2.01],
          "strings":["a", "b", "c"]
        }]
      }],

      // z 排序时间轴。
      "zOrder": {
        "frame": [{

          // 关键帧长度。 (可选属性,默认:1)
          "duration": 1,

          // 该帧插槽 z 排序偏移列表。 [slotIndexA, offsetA, slotIndexB, offsetB, ...] (可选属性,默认:null)
          "zOrder": [0, 2, 4, 1, 6, -1]
        }]
      },

      // 骨骼时间轴列表。
      "bone": [{

        // 骨骼名称。
        "name": "boneName",

        // 时间轴缩放。 (可选属性,默认:0.0)
        "scale": 1.0,

        // 时间轴偏移。 (可选属性,默认:0.0)
        "offset": 0.0,

        // 位移关键帧列表。 (可选属性,默认:null)
        "translateFrame": [{

          // 关键帧长度。 (可选属性,默认:1)
          "duration": 1,

          // 补间类型 [0.0: 线形, null: 不补间]. (可选属性,默认:0)
          "tweenEasing": 0.0,

          // 补间贝塞尔曲线。 [x1, y1, x2, y2, ...] (可选属性,默认:null)
          "curve": [0.0, 0.0, 1.0, 1.0],

          // 该帧骨骼的水平位移。 (可选属性,默认:0.0)
          "x": 0.0,

          // 该帧骨骼的垂直位移。 (可选属性,默认:0.0)
          "y": 0.00,
        }],

        // 旋转关键帧列表。 (可选属性,默认:null)
        "rotateFrame": [{

          // 关键帧长度。 (可选属性,默认:1)
          "duration": 1,

          // 补间类型 [0.0: 线形, null: 不补间]. (可选属性,默认:0)
          "tweenEasing": 0.0,

          // 补间贝塞尔曲线。 [x1, y1, x2, y2, ...] (可选属性,默认:null)
          "curve": [0.0, 0.0, 1.0, 1.0],

          // 补间的旋转方式。 (可选属性,默认:0)
          // [0: 最小角度旋转, 1: 顺时针旋转, -1: 逆时针旋转, N: 至少顺时针旋转 N 圈, -N: 至少逆时针旋转 N 圈]
          "clockwise": 0,

          // 该帧骨骼的旋转。 [-PI ~ PI] (可选属性,默认:0.0)
          "rotate": 0.0,

          // 该帧骨骼的倾斜。 [-PI ~ PI] (可选属性,默认:0.0)
          "skew": 0.0
        }],

        // 缩放关键帧列表。 (可选属性,默认:null)
        "scaleFrame": [{

          // 关键帧长度。 (可选属性,默认:1)
          "duration": 1,

          // 补间类型 [0.0: 线形, null: 不补间]. (可选属性,默认:0)
          "tweenEasing": 0.0,

          // 补间贝塞尔曲线。 [x1, y1, x2, y2, ...] (可选属性,默认:null)
          "curve": [0.0, 0.0, 1.0, 1.0],

          // 该帧骨骼的水平缩放。 (可选属性,默认:1.0)
          "x": 1.0,

          // 该帧骨骼的垂直缩放。 (可选属性,默认:1.0)
          "y": 1.0
        }]
      }],

      // 插槽时间轴列表。
      "slot": [{

        // 时间轴名称。
        "name": "slotName",

        // 显示关键帧列表。 (可选属性,默认:null)
        "displayFrame": [{

          // 关键帧长度。 (可选属性,默认:1)
          "duration": 1,

          // 该帧插槽的显示对象索引。 (可选属性,默认:1)
          "value": 0,

          // 该帧嵌套子骨架的行为列表。 (可选属性,默认:null)
          "actions": [
            {
              "gotoAndPlay": "animationName"
            }
          ]
        }],

        // 颜色关键帧列表。 (可选属性,默认:null)
        "colorFrame": [{

          // 关键帧长度。 (可选属性,默认:1)
          "duration": 1,

          // 补间类型 [0.0: 线形, null: 不补间]. (可选属性,默认:0)
          "tweenEasing": 0.0,

          // 补间贝塞尔曲线。 [x1, y1, x2, y2, ...] (可选属性,默认:null)
          "curve": [0.0, 0.0, 1.0, 1.0],

          // 该帧插槽的颜色变换。 (可选属性,默认:null)
          "color": {
            "aM": 100, // 透明相乘因子。 [0~100] (可选属性,默认:100)
            "rM": 100, // 红色相乘因子。 [0~100] (可选属性,默认:100)
            "gM": 100, // 绿色相乘因子。 [0~100] (可选属性,默认:100)
            "bM": 100, // 蓝色相乘因子。 [0~100] (可选属性,默认:100)
            "aO": 0, // 透明偏移。 [-255~255] (可选属性,默认:0)
            "rO": 0, // 红色偏移。 [-255~255] (可选属性,默认:0)
            "gO": 0, // 绿色偏移。 [-255~255] (可选属性,默认:0)
            "bO": 0, // 蓝色偏移。 [-255~255] (可选属性,默认:0)
          }
        }]
      }],

      // FFD 时间轴列表。(可选属性,默认:null)
      "ffd": [{

        // 网格名称。
        "name": "meshName",

        // 皮肤名称。
        "skin": "skinName",

        // 插槽名称。
        "slot": "slotName",

        "frame": [{

          // 关键帧长度。 (可选属性,默认:1)
          "duration": 1,

          // 补间类型 [0.0: 线形, null: 不补间]. (可选属性,默认:0)
          "tweenEasing": 0.0,

          // 补间贝塞尔曲线。 [x1, y1, x2, y2, ...] (可选属性,默认:null)
          "curve": [0.0, 0.0, 1.0, 1.0],

          // 变形顶点列表的索引偏移,偏移之前的数据都是 0。 (可选属性,默认:0)
          "offset": 0,

          // 变形顶点列表,队尾为 0 的数据会别省略。
          // [x0, y0, x1, y1, ...] (可选属性,默认:null)
          "vertices": [0.1, 0.1]
        }]
      }],

      // IK 约束时间轴。 (可选属性,默认:null)
      "ik": [{

        // IK 约束名称。
        "name": "meshName",

        "frame": [{

          // 关键帧长度。 (可选属性,默认:1)
          "duration": 1,

          // 补间类型 [0.0: 线形, null: 不补间]. (可选属性,默认:0)
          "tweenEasing": 0.0,

          // 补间贝塞尔曲线。 [x1, y1, x2, y2, ...] (可选属性,默认:null)
          "curve": [0.0, 0.0, 1.0, 1.0],

          // 该帧 IK 约束的方向。 (可选属性,默认:true)
          "bendPositive": true,

          // 该帧 IK 约束的权重。 (可选属性,默认:1.0)
          "weight": 1.0
        }]
      }]
    }]
  }]
}

Released under the MIT License.