vrm-specification
vrm-specification copied to clipboard
specVersionと仕様の互換性の関係を記載お願いしたいです
specVersionと仕様の互換性の関係を記載お願いしたいです。
例えばspringBoneのspecVersion==1.1で新たな形状のコライダーが追加されたとして、specVersion==1.0用のコードはそれを単に無視することでエラーを回避できると思います。しかし、例えばspringBoneのspecVersion==2.0でjsonの構造自体が変化した場合は、specVersion==1.0用のコードで扱おうとするとエラーになると思います。
現在BlenderのアドオンでVRM 1.0を読むコードを書いていて、その際対応しているspecVersionの範囲チェックを行いたいというモチベーションです。
個人的にはglTFのバージョン規則と同一にしてしまうのが良いと思います。 https://github.com/KhronosGroup/glTF/blob/757d942a89810840645e62254b09357dbf767fdc/specification/2.0/Specification.adoc#versioning
2.5. Versioning Any updates made to the glTF Specification in a minor version MUST be backward and forward compatible. Backward compatibility means that any client implementation that supports loading a glTF 2.x asset will also be able to load a glTF 2.0 asset. Forward compatibility means that a client implementation that only supports glTF 2.0 can load glTF 2.x assets while gracefully ignoring any new features it does not understand.
A minor version update MAY introduce new features but MUST NOT change any previously existing behavior. Existing functionality MAY be deprecated in a minor version update, but it MUST NOT be removed.
Major version updates MAY be incompatible with previous versions.