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);
}