vrm-specification icon indicating copy to clipboard operation
vrm-specification copied to clipboard

specVersionと仕様の互換性の関係を記載お願いしたいです

Open saturday06 opened this issue 1 year ago • 0 comments

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.

saturday06 avatar Sep 19 '22 12:09 saturday06