Do not write negative `skeleton` id(skeleton is not assigned). Also ensure `inverseBindMatrices` should not be -2 or other negative values.
diff --git a/tiny_gltf.h b/tiny_gltf.h index 15d738c..0aa9b76 100644 --- a/tiny_gltf.h +++ b/tiny_gltf.h
@@ -7243,11 +7243,17 @@ } static void SerializeGltfSkin(Skin &skin, json &o) { - if (skin.inverseBindMatrices != -1) - SerializeNumberProperty("inverseBindMatrices", skin.inverseBindMatrices, o); - + // required SerializeNumberArrayProperty<int>("joints", skin.joints, o); - SerializeNumberProperty("skeleton", skin.skeleton, o); + + if (skin.inverseBindMatrices >= 0) { + SerializeNumberProperty("inverseBindMatrices", skin.inverseBindMatrices, o); + } + + if (skin.skeleton >= 0) { + SerializeNumberProperty("skeleton", skin.skeleton, o); + } + if (skin.name.size()) { SerializeStringProperty("name", skin.name, o); }