choigawoon

  • 18 févr. 2016
  • Inscrit 9 juin 2015
  • i attached my exports.

    when i tried to load using spine-runtime-c.

    a timeline of rotation was incorrect.

    bone index was failed.

    I tried to open my binary file with SkeletonViewer ( on webpage ),
    It also cannot open it. and i get msg "Error Loading Skeleton: 001.skel"

    i assumed sth wrong in spine editor exporting.

    could you check plz?


    i'm using spine 2.1.27

  • If you want an easier fix, then change your runtime code so it only updates the animation at 30 FPS intervals. This is what the Interpolated button in the Playback view does.

    thanks a lot. that's what i want.

    my colleague says my words so offensive.

    sorry about that, i didn't mean it. my short english.

    have a nice day.

  • no i didn't question about the export setting and the interpolation curves between keys.

    in spine editor, animation seems different between playback interpolated and not.

    i'd like to make my render code as the same as the editor.

    i guess that i need to change my runtime code.

    is this wrong way? do i make my artist change the curves into stepped between all keys?

  •  Loading Image

    by the above setting, i can see animation interpolated in spine editor.

    and i assumed that the spine runtime play animation interpolated automatically.

    my artist worked without interpolated. and when turn on interpolated, the animation seems weird.

    i want to turn off interpolated option. what should i do?

    i'm using spine-c runtime now.
    https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-c

  • Hi, I found a bug in spine editor.

    it barely happened. when exporting, FFD in json messed up.

    i guess ffd match 1 on 1. but my json file is not.

    when i export again, it turned good. i'm not sure the step bug occur.

     Loading Image

    below's my json file.

    "02_move1_1": {
          "slots": {
             "effect/smoke_1": {
                "attachment": [
                   { "time": 0, "name": "effect/smoke_01" }
                ],
                "color": [
                   {
                      "time": 0,
                      "color": "ffffff00",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 0.3333, "color": "ffffffff", "curve": "stepped" },
                   {
                      "time": 0.6666,
                      "color": "ffffffff",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1, "color": "ffffff00" }
                ]
             },
             "effect/smoke_01": {
                "attachment": [
                   { "time": 0, "name": "effect/smoke_01" },
                   { "time": 0.5333, "name": null },
                   { "time": 0.6666, "name": "effect/smoke_01" }
                ],
                "color": [
                   {
                      "time": 0,
                      "color": "ffffffff",
                      "curve": [ 0.382, 0.56, 0.738, 1 ]
                   },
                   { "time": 0.5, "color": "ffffff00", "curve": "stepped" },
                   { "time": 0.6666, "color": "ffffff00" },
                   { "time": 1, "color": "ffffffff", "curve": "stepped" },
                   { "time": 1.3333, "color": "ffffffff" }
                ]
             },
             "effect/smoke_2": {
                "attachment": [
                   { "time": 0, "name": "effect/smoke_01" },
                   { "time": 0.6666, "name": "effect/smoke_01" }
                ],
                "color": [
                   {
                      "time": 0,
                      "color": "ffffff00",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.1,
                      "color": "ffffffff",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 0.5, "color": "ffffff00", "curve": "stepped" },
                   {
                      "time": 0.6666,
                      "color": "ffffff00",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.7666,
                      "color": "ffffffff",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.1666, "color": "ffffff00" }
                ]
             },
             "head_eye2": {
                "attachment": [
                   { "time": 0, "name": null },
                   { "time": 0.6666, "name": null },
                   { "time": 1.3333, "name": null }
                ]
             },
             "top ring_01": {
                "color": [
                   {
                      "time": 0,
                      "color": "ffffff00",
                      "curve": [ 0.156, 0.5, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "color": "ffffffff",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 0.8333, "color": "ffffff00" }
                ]
             },
             "top ring_02": {
                "attachment": [
                   { "time": 0.3666, "name": null },
                   { "time": 0.5, "name": "top ring_02" }
                ],
                "color": [
                   { "time": 0, "color": "ffffff7f" },
                   { "time": 0.3333, "color": "ffffff00", "curve": "stepped" },
                   {
                      "time": 0.5,
                      "color": "ffffff00",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "color": "ffffffff",
                      "curve": [ 0.25, 0, 0.625, 0.5 ]
                   },
                   { "time": 1.3333, "color": "ffffff7f" }
                ]
             },
             "top ring_03": {
                "attachment": [
                   { "time": 0.7, "name": null }
                ],
                "color": [
                   {
                      "time": 0,
                      "color": "ffffffff",
                      "curve": [ 0.243, 0, 0.648, 0.6 ]
                   },
                   { "time": 0.6666, "color": "ffffff00", "curve": "stepped" },
                   {
                      "time": 1,
                      "color": "ffffff00",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "color": "ffffffff" }
                ]
             },
             "top ring_3": {
                "attachment": [
                   { "time": 0.4333, "name": "top ring_03" }
                ],
                "color": [
                   { "time": 0.4333, "color": "ffffff00" },
                   {
                      "time": 0.8333,
                      "color": "ffffffff",
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "color": "ffffff00" }
                ]
             }
          },
          "bones": {
             "r_leg_1": {
                "translate": [
                   {
                      "time": 0,
                      "x": 0,
                      "y": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.5,
                      "x": -39.31,
                      "y": 22.59,
                      "curve": [ 0, 0.32, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": -48.38,
                      "y": 0,
                      "curve": [ 0.109, 0.46, 0.721, 0.96 ]
                   },
                   { "time": 1.3333, "x": 0, "y": 0 }
                ]
             },
             "r_leg_3": {
                "translate": [
                   {
                      "time": 0,
                      "x": 54.35,
                      "y": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.5,
                      "x": 10.68,
                      "y": 22.59,
                      "curve": [ 0, 0.32, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 0.02,
                      "y": 0,
                      "curve": [ 0.153, 0.5, 0.759, 0.9 ]
                   },
                   { "time": 1.3333, "x": 54.35, "y": 0 }
                ]
             },
             "r_leg_2": {
                "translate": [
                   {
                      "time": 0,
                      "x": 5.84,
                      "y": 0,
                      "curve": [ 0.153, 0.5, 0.707, 0.97 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 49.65,
                      "y": 0,
                      "curve": [ 0.242, 0, 0.666, 0.66 ]
                   },
                   {
                      "time": 1.1666,
                      "x": 14.45,
                      "y": 19.57,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "x": 5.84, "y": 0 }
                ]
             },
             "hip": {
                "translate": [
                   {
                      "time": 0,
                      "x": 0,
                      "y": -4,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "x": 0,
                      "y": -15.19,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 0,
                      "y": -4,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "x": 0,
                      "y": -15.19,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "x": 0, "y": -4 }
                ]
             },
             "l_leg_1": {
                "translate": [
                   {
                      "time": 0,
                      "x": -40.37,
                      "y": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 3.36,
                      "y": 0,
                      "curve": [ 0.242, 0, 0.666, 0.66 ]
                   },
                   {
                      "time": 1.1666,
                      "x": -32.98,
                      "y": 26.15,
                      "curve": [ 0.379, 0.6, 0.724, 1 ]
                   },
                   { "time": 1.3333, "x": -40.37, "y": 0 }
                ]
             },
             "l_leg_2": {
                "translate": [
                   {
                      "time": 0,
                      "x": 17.49,
                      "y": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.5,
                      "x": -14.13,
                      "y": 12.11,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": -22.2,
                      "y": 0,
                      "curve": [ 0.143, 0.31, 0.713, 0.96 ]
                   },
                   { "time": 1.3333, "x": 17.49, "y": 0 }
                ]
             },
             "l_leg_3": {
                "translate": [
                   {
                      "time": 0,
                      "x": -9.42,
                      "y": 0,
                      "curve": [ 0.168, 0.38, 0.741, 0.91 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 30.28,
                      "y": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1.1666,
                      "x": 1.34,
                      "y": 14.8,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "x": -9.42, "y": 0 }
                ]
             },
             "head_jaw": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": 9.85,
                      "curve": [ 0.379, 0.6, 0.724, 1 ]
                   },
                   {
                      "time": 0.4333,
                      "angle": 0,
                      "curve": [ 0.242, 0, 0.666, 0.66 ]
                   },
                   {
                      "time": 0.6666,
                      "angle": 9.85,
                      "curve": [ 0.379, 0.6, 0.724, 1 ]
                   },
                   {
                      "time": 1.1,
                      "angle": 0,
                      "curve": [ 0.242, 0, 0.666, 0.66 ]
                   },
                   { "time": 1.3333, "angle": 9.85 }
                ],
                "translate": [
                   { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
                   { "time": 0.4333, "x": 0, "y": 0, "curve": "stepped" },
                   { "time": 0.6666, "x": 0, "y": 0, "curve": "stepped" },
                   { "time": 1.1, "x": 0, "y": 0, "curve": "stepped" },
                   { "time": 1.3333, "x": 0, "y": 0 }
                ]
             },
             "head": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": 2.25,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "angle": -5.41,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "angle": 2.25,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "angle": -5.41,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "angle": 2.25 }
                ]
             },
             "eye": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "angle": 5.57,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "angle": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "angle": 5.57,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "angle": 0 }
                ],
                "translate": [
                   {
                      "time": 0,
                      "x": 0.87,
                      "y": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "x": 1.15,
                      "y": 0.28,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 0.87,
                      "y": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "x": 1.15,
                      "y": 0.28,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "x": 0.87, "y": 0 }
                ],
                "scale": [
                   {
                      "time": 0,
                      "x": 1,
                      "y": 1,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "x": 1,
                      "y": 0.838,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 1,
                      "y": 1,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "x": 1,
                      "y": 0.838,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "x": 1, "y": 1 }
                ]
             },
             "head_02": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "angle": 2.87,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "angle": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "angle": 2.87,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "angle": 0 }
                ]
             },
             "bone4": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": -5.72,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "angle": 12.73,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "angle": -5.72,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "angle": 12.73,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "angle": -5.72 }
                ]
             },
             "bone5": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.4333,
                      "angle": 16.42,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.7666,
                      "angle": -11.77,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1.1,
                      "angle": 16.85,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "angle": 0 }
                ]
             },
             "head_01": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "angle": 10.55,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "angle": 0,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "angle": 10.55,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "angle": 0 }
                ]
             },
             "bone2": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": -11.21,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.4333,
                      "angle": 16.2,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.7666,
                      "angle": -11.21,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1.1,
                      "angle": 16.2,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "angle": -11.21 }
                ]
             },
             "head_03": {
                "rotate": [
                   {
                      "time": 0,
                      "angle": -8.16,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.3333,
                      "angle": 14.51,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "angle": -8.16,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 1,
                      "angle": 14.51,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.3333, "angle": -8.16 }
                ]
             },
             "smoke_1": {
                "translate": [
                   { "time": 0, "x": 73.6, "y": 45.74 },
                   { "time": 1, "x": 150.57, "y": 45.74 }
                ],
                "scale": [
                   { "time": 0, "x": 0.739, "y": 0.739 },
                   { "time": 1, "x": 0.827, "y": 0.827 }
                ]
             },
             "smoke_01": {
                "translate": [
                   { "time": 0, "x": 138.28, "y": 30.27 },
                   {
                      "time": 0.5,
                      "x": 164.59,
                      "y": 30.27,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 0.6666, "x": 103.19, "y": 30.27 },
                   { "time": 1.3333, "x": 138.28, "y": 30.27 }
                ]
             },
             "top ring_01": {
                "translate": [
                   {
                      "time": 0,
                      "x": 88.64,
                      "y": -57.08,
                      "curve": [ 0.156, 0.5, 0.75, 1 ]
                   },
                   { "time": 0.8333, "x": 162.93, "y": -57.08 }
                ]
             },
             "top ring_02": {
                "translate": [
                   { "time": 0, "x": 121.65, "y": -86.8 },
                   {
                      "time": 0.3333,
                      "x": 162.32,
                      "y": -86.8,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 0.5, "x": 20, "y": -86.8 },
                   { "time": 1.3333, "x": 121.65, "y": -86.8 }
                ]
             },
             "top ring_03": {
                "translate": [
                   { "time": 0, "x": 82.63, "y": -148.57 },
                   {
                      "time": 0.6666,
                      "x": 133.72,
                      "y": -148.57,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1, "x": 59.43, "y": -148.57 },
                   { "time": 1.3333, "x": 82.63, "y": -148.57 }
                ]
             },
             "top ring_3": {
                "translate": [
                   { "time": 0.4333, "x": 55.34, "y": -102.78 },
                   { "time": 1.3333, "x": 146.86, "y": -102.78 }
                ]
             },
             "smoke_2": {
                "translate": [
                   {
                      "time": 0,
                      "x": 18.67,
                      "y": -3.96,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.5,
                      "x": 73.01,
                      "y": -3.96,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 18.67,
                      "y": -3.96,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.1666, "x": 73.01, "y": -3.96 }
                ],
                "scale": [
                   {
                      "time": 0,
                      "x": 1,
                      "y": 1,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.5,
                      "x": 1.284,
                      "y": 1.284,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   {
                      "time": 0.6666,
                      "x": 1,
                      "y": 1,
                      "curve": [ 0.25, 0, 0.75, 1 ]
                   },
                   { "time": 1.1666, "x": 1.284, "y": 1.284 }
                ]
             },
             "r_leg_03": {
                "translate": [
                   { "time": 0, "x": 0.94, "y": 2.49 }
                ]
             }
          },
          "ffd": {
             "default": {
                "body": {
                   "body": [
                      {
                         "time": 0,
                         "offset": 34,
                         "vertices": [ 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87091, 0.70708, 1.87088, 0.70708, 1.87088, 0, 0, 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87088 ],
                         "curve": [ 0.25, 0, 0.625, 0.5 ]
                      },
                      {
                         "time": 0.3333,
                         "offset": 34,
                         "vertices": [ -1.41417, -3.74166, -1.41417, -3.74166, -1.41418, -3.74163, -1.41417, -3.74166, -1.41417, -3.74166, 0, 0, -1.41417, -3.74166, -1.41417, -3.74166, -1.41417, -3.74166, -1.41417, -3.74166 ],
                         "curve": [ 0.375, 0.5, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "offset": 34,
                         "vertices": [ 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87091, 0.70708, 1.87088, 0.70708, 1.87088, 0, 0, 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87088 ],
                         "curve": [ 0.25, 0, 0.625, 0.5 ]
                      },
                      {
                         "time": 1,
                         "offset": 34,
                         "vertices": [ -1.41417, -3.74166, -1.41417, -3.74166, -1.41418, -3.74163, -1.41417, -3.74166, -1.41417, -3.74166, 0, 0, -1.41417, -3.74166, -1.41417, -3.74166, -1.41417, -3.74166, -1.41417, -3.74166 ],
                         "curve": [ 0.375, 0.5, 0.75, 1 ]
                      },
                      {
                         "time": 1.3333,
                         "offset": 34,
                         "vertices": [ 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87091, 0.70708, 1.87088, 0.70708, 1.87088, 0, 0, 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87088, 0.70708, 1.87088 ]
                      }
                   ]
                },
                "effect/smoke_2": {
                   "effect/smoke_01": [
                      {
                         "time": 0,
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.5,
                         "vertices": [ 53.22464, -13.53175, -3.60844, -9.92333, -16.23802, 24.35697, 26.16128, 9.92315, 17.76197, -3.80127, 1.15339, 12.69455, 0, 0, -7.2169, 12.62943, -12.42937, 9.22903, -12.15651, -1.81698, 0, 0, 0, 0, 0, 0, -1.58875, -0.89222, 14.35555, 18.33168, 10.83117, -7.61353, 1.80419, 13.53165 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1.1666,
                         "vertices": [ 53.22464, -13.53175, -3.60844, -9.92333, -16.23802, 24.35697, 26.16128, 9.92315, 17.76197, -3.80127, 1.15339, 12.69455, 0, 0, -7.2169, 12.62943, -12.42937, 9.22903, -12.15651, -1.81698, 0, 0, 0, 0, 0, 0, -1.58875, -0.89222, 14.35555, 18.33168, 10.83117, -7.61353, 1.80419, 13.53165 ]
                      }
                   ]
                },
                "head": {
                   "head": [
                      {
                         "time": 0,
                         "offset": 186,
                         "vertices": [ -3.9977, 0.13618, -3.9977, 0.13618 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.3333,
                         "offset": 182,
                         "vertices": [ 2.99826, -0.10215, 2.99826, -0.10215, 2.99826, -0.10215, 2.99826, -0.10215, 5.44897, -0.18564, 2.99826, -0.10215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.55202, -0.12107, 3.55202, -0.12107 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "offset": 186,
                         "vertices": [ -3.9977, 0.13618, -3.9977, 0.13618 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1,
                         "offset": 182,
                         "vertices": [ 2.99826, -0.10215, 2.99826, -0.10215, 2.99826, -0.10215, 2.99826, -0.10215, 5.44897, -0.18564, 2.99826, -0.10215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.55202, -0.12107, 3.55202, -0.12107 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1.3333,
                         "offset": 186,
                         "vertices": [ -3.9977, 0.13618, -3.9977, 0.13618 ]
                      }
                   ]
                },
                "head_eye": {
                   "head_eye": [
                      {
                         "time": 0,
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.3333,
                         "vertices": [ 3.66226, -0.12482, 3.66226, -0.12482, 4.16203, -0.20388, 3.06408, -0.16644, 1.24308, -0.04236, 1.24308, -0.04236, 1.09494, -1.72368, 1.32749, -1.70689, 3.19075, -2.66324, 4.16203, -0.20388, 3.66226, -0.12482, 3.66226, -0.12482, 1.24308, -0.04236, 3.06408, -0.16644, 4.16203, -0.20388, 3.66226, -0.12482 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1,
                         "vertices": [ 3.66226, -0.12482, 3.66226, -0.12482, 4.16203, -0.20388, 3.06408, -0.16644, 1.24308, -0.04236, 1.24308, -0.04236, 1.09494, -1.72368, 1.32749, -1.70689, 3.19075, -2.66324, 4.16203, -0.20388, 3.66226, -0.12482, 3.66226, -0.12482, 1.24308, -0.04236, 3.06408, -0.16644, 4.16203, -0.20388, 3.66226, -0.12482 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      { "time": 1.3333 }
                   ],
                   "head_eye grow": [
                      {
                         "time": 0.6666,
                         "vertices": [ -1.69547, 0.05772, 0, 0, 0, 0, -1.69547, 0.05772, 0, 0, 0, 0, 0, 0, -1.69547, 0.05772 ],
                         "curve": "stepped"
                      },
                      {
                         "time": 1.3333,
                         "vertices": [ -1.69547, 0.05772, 0, 0, 0, 0, -1.69547, 0.05772, 0, 0, 0, 0, 0, 0, -1.69547, 0.05772 ]
                      }
                   ]
                },
                "head_eye grow": {
                   "head_eye grow": [
                      {
                         "time": 0,
                         "vertices": [ -1.69547, 0.05772, 0, 0, 0, 0, -1.69547, 0.05772, 0, 0, 0, 0, 0, 0, -1.69547, 0.05772 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.3333,
                         "vertices": [ 2.99344, -0.10202, -0.92581, 0.03156, -0.92581, 0.03156, 2.99344, -0.10202, 0.96305, -0.15253, 2.06764, -0.07045, 5.36454, -0.18288, 2.99344, -0.10202 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "vertices": [ -1.69547, 0.05772, 0, 0, 0, 0, -1.69547, 0.05772, 0, 0, 0, 0, 0, 0, -1.69547, 0.05772 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1,
                         "vertices": [ 2.99344, -0.10202, -0.92581, 0.03156, -0.92581, 0.03156, 2.99344, -0.10202, 0.96305, -0.15253, 2.06764, -0.07045, 5.36454, -0.18288, 2.99344, -0.10202 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1.3333,
                         "vertices": [ -1.69547, 0.05772, 0, 0, 0, 0, -1.69547, 0.05772, 0, 0, 0, 0, 0, 0, -1.69547, 0.05772 ]
                      }
                   ]
                },
                "head_jaw": {
                   "head_jaw": [
                      {
                         "time": 0,
                         "offset": 26,
                         "vertices": [ -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.3333,
                         "offset": 2,
                         "vertices": [ 5.10615, -0.11135, 5.10615, -0.11135, 5.10615, -0.11135, 5.10615, -0.11135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.82551, -0.03903, 4.82551, -0.03903, 4.82551, -0.03903, 4.82551, -0.03903, 4.82551, -0.03903, 4.82551, -0.03903 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "offset": 26,
                         "vertices": [ -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1,
                         "offset": 2,
                         "vertices": [ 5.10615, -0.11135, 5.10615, -0.11135, 5.10615, -0.11135, 5.10615, -0.11135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.82551, -0.03903, 4.82551, -0.03903, 4.82551, -0.03903, 4.82551, -0.03903, 4.82551, -0.03903, 4.82551, -0.03903 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1.3333,
                         "offset": 26,
                         "vertices": [ -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436, -1.99953, 0.0436 ]
                      }
                   ]
                },
                "l_leg_01": {
                   "l_leg_01": [
                      {
                         "time": 0,
                         "offset": 24,
                         "vertices": [ 0.723, -2.31629, 0.723, -2.31629, 0.72298, -2.31631, 0.723, -2.31629, 0.22506, -3.06367, 0.22506, -3.06367, 0.22506, -3.06367, 0.22506, -3.06367 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "offset": 24,
                         "vertices": [ -0.48119, 9.27323, -0.48119, 9.27323, -0.48121, 9.27321, -0.48119, 9.27323, -1.00285, 4.57532, -1.12361, 6.7349, -1.12361, 6.7349, -1.00285, 4.57532 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1.3333,
                         "offset": 24,
                         "vertices": [ 0.723, -2.31629, 0.723, -2.31629, 0.72298, -2.31631, 0.723, -2.31629, 0.22506, -3.06367, 0.22506, -3.06367, 0.22506, -3.06367, 0.22506, -3.06367 ]
                      }
                   ]
                },
                "r_leg_01": {
                   "r_leg_01": [
                      {
                         "time": 0,
                         "offset": 26,
                         "vertices": [ 1.22753, 5.58733, 1.20541, 7.67735, 1.46649, 5.58365, 1.09711, 7.17989, 1.1733, 3.88348, 1.45581, 3.88768, 1.71456, 6.31215, 1.70708, 6.85501 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "offset": 26,
                         "vertices": [ 1.80024, -7.87538, 1.87807, -6.57284, 1.85712, -10.06324, 1.68607, -7.42287, 1.92127, -8.69938, 2.02384, -11.68101, 3.12085, -8.63632, 3.1153, -7.70705 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1.3333,
                         "offset": 26,
                         "vertices": [ 1.22753, 5.58733, 1.20541, 7.67735, 1.46649, 5.58365, 1.09711, 7.17989, 1.1733, 3.88348, 1.45581, 3.88768, 1.71456, 6.31215, 1.70708, 6.85501 ]
                      }
                   ]
                },
                "r_leg_02": {
                   "r_leg_02": [
                      {
                         "time": 0,
                         "offset": 24,
                         "vertices": [ -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "offset": 24,
                         "vertices": [ 1.61444, 4.0232, 1.61444, 4.0232, 1.61444, 4.0232, 1.61444, 4.0232, 1.61444, 4.0232, 1.61444, 4.0232, 1.61444, 4.0232, 1.61444, 4.0232 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1.3333,
                         "offset": 24,
                         "vertices": [ -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697, -1.03217, -5.06697 ]
                      }
                   ]
                },
                "r_leg_03": {
                   "r_leg_03": [
                      {
                         "time": 0,
                         "offset": 26,
                         "vertices": [ 1.11815, 3.91082, 1.11815, 3.91082, 1.11815, 3.91082, 1.11815, 3.91082, 1.14762, 7.33059, 1.14762, 7.33059, 1.14762, 7.33059, 1.11815, 3.91082 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 0.6666,
                         "offset": 26,
                         "vertices": [ -0.8096, -2.78047, -0.8096, -2.78047, -0.8096, -2.78047, -0.8096, -2.78047, -0.8096, -2.78047, -0.8096, -2.78047, -0.8096, -2.78047, -0.8096, -2.78047 ],
                         "curve": [ 0.25, 0, 0.75, 1 ]
                      },
                      {
                         "time": 1.3333,
                         "offset": 26,
                         "vertices": [ 1.11815, 3.91082, 1.11815, 3.91082, 1.11815, 3.91082, 1.11815, 3.91082, 1.14762, 7.33059, 1.14762, 7.33059, 1.14762, 7.33059, 1.11815, 3.91082 ]
                      }
                   ]
                }
             }
          },
          "drawOrder": [
             {
                "time": 0,
                "offsets": [
                   { "slot": "effect/smoke_01", "offset": -23 }
                ]
             },
             {
                "time": 0.4333,
                "offsets": [
                   { "slot": "effect/smoke_01", "offset": -23 }
                ]
             },
             {
                "time": 0.6666,
                "offsets": [
                   { "slot": "effect/smoke_01", "offset": -23 }
                ]
             },
             {
                "time": 1.1,
                "offsets": [
                   { "slot": "effect/smoke_01", "offset": -23 }
                ]
             }
          ]
       },
    
  • Hi,

    I'm also in the trouble just same as this article said.

    My Artist was accustomed to put enter when finishing,

    thus some of events has the carriage return value('\n') and it crashed my process.

    I hope Nate works on this sooner or later.

    plz.

    Have a nice day.

  • i've just found the bug with all values logging. and i found that all timelines are messed up.

    in libgdx

    private void readCurve (DataInput input, int frameIndex, CurveTimeline timeline) throws IOException {
          switch (input.readByte()) {
          case CURVE_STEPPED:
             timeline.setStepped(frameIndex);
             break;
          case CURVE_BEZIER:
             setCurve(timeline, frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat());
             break;
          }
       }

    in this implement

    void ReadCurve (BufferedStream& input, int frameIndex, spCurveTimeline* timeline) {
                switch (input.ReadByte()) {
                    case CURVE_STEPPED:
                        spCurveTimeline_setStepped(timeline, frameIndex);
                        break;
                
    case CURVE_BEZIER: spCurveTimeline_setCurve(timeline, frameIndex, ReadFloat(input), ReadFloat(input), ReadFloat(input), ReadFloat(input)); break; } }

    both implementation look same but, it's not because of calling convention.
    c/c++ normally works as stdcall. and it makes pass the values from right to left.
    so, the last 4 arugments were reversed. everything in timelines was messed up.
    I did manually call function before calling spCurveTimeline_setCurve and assigned the values.

    now i fixed it. thanks for all helping. have a nice day!

  • first of all, thanks to reply.
    i'm just feeling chaos because of this problem. it's almost time to ship my project, but i'm just wandering now.
    one of my exports takes too much time to initialize, almost 5 mins or more,
    and the only solution is using the binary loader in my thinking.

    When you say "interpolation of a animation between timelines is not applied" and "the animation stepped", do you mean FFD keys are not being interpolated?

    >> No, It's not when using this binary loader but It was good when using the json loader. You correctly understand what i'm telling.

    Comparing with the libGDX implementation is a good idea. Check Animation.java.

    >> It might be ok there. i'm using the ANSI C implementation of spine-runtime, and it was good when using json loader.

    I tried to find out what happened in the binary loader when loading timelines of ffd.
    I assumed that this binary loader screwed up the timelines of ffd( especially, skinned mesh. but region attachment, boundingbox attachment, events works well )
    now i have a mind to make one of my own binary loader as referencing the libgdx, but it's not easy. and i cannot find it yet.
    i'm beginner in the area of skeleton animation and also spine.
    sometimes i can't get a right term for describing the problem. so if you cannot understand, or if you have a any idea about this, reply to me, plz. it can be helpful for me.
    anyway, thanks a lot.

  • FFD bug fixed in ReadAttachment function.

    from
    TO_ARRAY(&mesh->regionUVs, uvs);
    to
    TO_ARRAY(&mesh->regionUVs, &mesh->uvscount, uvs);

    and there is another issue with this implement with ffd animation.
    in my project, the interpolation of a animation between timelines is not applied.
    it seems the animation stepped.
    I'm trying to compare the implement of this post with the implement of libgdx.

  • thanks.

    so, the gap of values between json and binary doesn't affect the interpolation of a animation. that's right?

    ( i 'm not talking about the interpolation between animations )

    I would like to check my implementation.

    have a nice day!

  • when i opened the json by notepad, they are the same as what you said about. (Bone positions are rounded to 2 decimals, mesh UVs and vertices to 5, etc. Binary does not round values.)

    but, Loading it on the process, Some Bone positions are like 208.929993, 277.730011, ...

    and the below values are weird.

    do i fix the binary by flooring?


    [Json]
    [index: 14]
    [Name: BOOM_01]
    [LEN: 0.000000]
    [X: -108.470001]
    [Y: -267.380005]
    [Rot: 0.000000]
    [ScaleX: 1.000000]
    [ScaleY: 1.000000]

    [Binary]
    [index: 14]
    [Name: BOOM_01]
    [LEN: 0.000000]
    [X: -108.472351]
    [Y: -267.387543]
    [Rot: 0.000000]
    [ScaleX: 1.000000]
    [ScaleY: 1.000000]

    I've just submit with the log and my implement.


    more info

    I've just found that my animation looks stepped with a binary in my render process.

    but, it looks interpolated with a json in my render process.

    I followed up the skeletonbinary of libgdx and made my own skeletonbiary in my attachment, SkeletonBinary.cpp.

    I think the gap doesn't make a difference about my rendering.

    I get stuck now.

    now i'm looking at what's going on a CurveTimeline between json and binary.

  • Hi, I'm C/C++ Programmer and using Spine 2.1.27 now.

    excuse of my english skill,

    If you cannot understand, reply to me. I'll try to make it better sentence.

    anyway, I make my own binary format loader, and it has a problem with animation.

    When I checked the data of skeleton between the one of json and the other of binary, they has small gap.

    for example, a x position of bone
    json / 208.929993
    binary / 208.939606

    a duration of animation

    json / 1.333300
    binary / 1.333333

    my render engine has a fixed frame rate, it's 30ms per 1frame.

    I assumed the small gap makes my render buggy when using the binary.

    ( It works fine with json )

    Do I get rid of the gap for fixing problem?

    or Is There a thing i missing?

    plz help

  • Hi, I'm C/C++ Programmer and using Spine 2.1.27 now.

    excuse of my english skill,

    If you cannot understand, reply to me. I'll try to make it better sentence.

    anyway, I make my own binary format loader, and it has a problem with animation.

    When I checked the data of skeleton between the one of json and the other of binary, they has small gap.

    for example, a x position of bone
    json / 208.929993
    binary / 208.939606

    a duration of animation

    json / 1.333300
    binary / 1.333333

    my render engine has a fixed frame rate, it's 30ms per 1frame.

    I assumed the small gap makes my render buggy when using the binary.

    ( It works fine with json )

    Do I get rid of the gap for fixing problem?

    or Is There a thing i missing?

    plz help

  • hi, i'm a programmer using spine in Korea.

    i'm concern about which spine support Korean or not.

    here's the flow how we work.
    my coworker exported the result from spine, such as ***.png, ***.atlas, ***.json.
    and i tried to use them in our process, i met a crash when loading them.
    when i open ***.json, there are some broken words in the path of "images".

    i guess this might affect our process.

    when do we change all names into Korean which is included in spine, then it works.

    if not, is there a plan for supporting other languages?