Sorry it took a while! This vertex is the problem:

It's hard to see, but the vertex is actually on the wrong side of the hull. That should be impossible and must have been a bug in 3.7. You'll find you can't move any of the vertices, because with that vertex outside the hull the constraints (blue and orange lines) are invalid, so no triangulation can be computed. Note there are no dashed triangle lines.
If you move the vertex, then everything is fine, you can move other vertices/etc and now we have dashed triangle lines:

That's the issue, now for how to fix it. Manual fix up is possible, but could be tedious with many projects. Exporting JSON with 4.2 gives:
Mesh has internal vertex outside hull: [mesh: B_bear_L_arm, slot: B_bear_L_arm]
Yep, that's the problem. The JSON data shows no triangles "triangles": []
. Importing the JSON back into 4.2 fails:
Cause: [error] Error reading attachment: B_bear_L_arm
Cause: [error] Invalid number of triangles: 0 < 3
Bummer. Giving it some triangles, eg "triangles": [ 0, 1, 2 ]
, allows it to import, but new triangles aren't automatically generated (because doing so could wreck things). To get new triangles you'd need to manually move a vertex.
What can work is:
spine -u 3.7 -i bearskel.skel -o temp.spine -r
spine -u 3.7 -i temp.spine -o . -e json.json
spine -u 3.7 -i bearskel.json -o fixed.spine -r
del bearskel.json temp.spine
Those commands:
- Import 3.7 binary data into
temp.spine
.
- Export
temp.spine
as 3.7 JSON without nonessential data.
- Import 3.7 JSON to
fixed.spine
.
The json.json
file contains:
{
"class": "json",
"nonessential": false,
"prettyPrint": true
}
When you open fixed.spine
with 4.2 it will fix the mesh:
WARNING: Fixed invalid triangulation: [mesh: B_bear_L_arm, skeleton: bearskel, slot: B_bear_L_arm]
Unfortunately this fixing does not happen from the CLI, eg if you were to do a JSON or binary export. That is a bug that we have now fixed in 4.3.38-beta. For versions before that, you'd have to open the project, then save it (no need to move a mesh vertex).