vrm-c / vrm-specification

vrm specification

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

saturday06 opened this issue · 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.

commented

specVersionの運用について技術委員会で議論を行いましたが、具体的に明文化できるような方針を決めかねております。

したがってひとまずは、specVersionが 1.0 ではない値が確認された場合には、あくまで一例ですが、ユーザに対して「VRMを読み込むよう最大限度力はするが失敗する可能性がある」という旨をUI等で伝える、のような対応をお願いします。

承知しました。対応ありがとうございました!