KhronosGroup/glTF-Validator

Support for KHR_animation_pointer

hybridherbst opened this issue · 4 comments

While Gestaltor, Babylon and Needle Engine (based on three.js) have already implemented KHR_animation_pointer, the validator currently doesn't support it. That leads to thousands and sometimes hundreds of thousands of errors for files that work fine:
image

The errors are many times

           {
                "code": "VALUE_NOT_IN_LIST",
                "message": "Invalid value 'pointer'. Valid values are ('translation', 'rotation', 'scale', 'weights').",
                "severity": 1,
                "pointer": "/animations/0/channels/2/target/path"
            },

and

            {
                "code": "ANIMATION_DUPLICATE_TARGETS",
                "message": "Animation channel has the same target as channel 353.",
                "severity": 0,
                "pointer": "/animations/2/channels/9/target"
            },

Are there plans / what are the plans for supporting KHR_animation_pointer to ensure files are correctly set up? I understand that this is kind of a chicken-and-egg situation between the extension not being ratified (yet) and the need to produce correct files for it, but wanted to ask nonetheless :)

Thanks!

The ANIMATION_DUPLICATE_TARGETS error was suppressed in the recent release. Babylon (that's on the screenshot) uses an old version.

The VALUE_NOT_IN_LIST warning will remain until the extension is fully implemented.

Thanks - in which one was it suppressed? I copied the above from the output of https://github.khronos.org/glTF-Validator/ yesterday.

The hosted version is also a bit old, I'll handle that shortly.

FYI, I updated the glTF validator in Babylon.js sandbox. Many of the errors went away, but there are still a couple of errors and a bunch of warnings.

https://sandbox.babylonjs.com/?assetUrl=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/e2609a847ef508c8bc8308982bb6534581c94f7f/2.0/AnimationPointer/AnimateAllTheThings/glTF/AnimateAllTheThings.gltf

{
  "uri": "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/e2609a847ef508c8bc8308982bb6534581c94f7f/2.0/AnimationPointer/AnimateAllTheThings/glTF/AnimateAllTheThings.gltf",
  "mimeType": "model/gltf+json",
  "validatorVersion": "2.0.0-dev.3.9",
  "validatedAt": "2022-10-27T20:26:25.531Z",
  "issues": {
    "numErrors": 2,
    "numWarnings": 69,
    "numInfos": 36,
    "numHints": 0,
    "messages": [
      {
        "code": "UNSUPPORTED_EXTENSION",
        "message": "Cannot validate an extension as it is not supported by the validator: 'KHR_animation_pointer'.",
        "severity": 2,
        "pointer": "/extensionsUsed/6"
      },
      {
        "code": "VALUE_NOT_IN_LIST",
        "message": "Invalid value 'pointer'. Valid values are ('translation', 'rotation', 'scale', 'weights').",
        "severity": 1,
        "pointer": "/animations/0/channels/0/target/path"
      },
      {
        "code": "VALUE_NOT_IN_LIST",
        "message": "Invalid value 'pointer'. Valid values are ('translation', 'rotation', 'scale', 'weights').",
        "severity": 1,
        "pointer": "/animations/0/channels/1/target/path"
      },
      {
        "code": "VALUE_NOT_IN_LIST",
        "message": "Invalid value 'pointer'. Valid values are ('translation', 'rotation', 'scale', 'weights').",
        "severity": 1,
        "pointer": "/animations/0/channels/2/target/path"
      },
      {
        "code": "VALUE_NOT_IN_LIST",
        "message": "Invalid value 'pointer'. Valid values are ('translation', 'rotation', 'scale', 'weights').",
        "severity": 1,
        "pointer": "/animations/0/channels/3/target/path"
      },
      {
        "code": "VALUE_NOT_IN_LIST",
        "message": "Invalid value 'pointer'. Valid values are ('translation', 'rotation', 'scale', 'weights').",
        "severity": 1,
        "pointer": "/animations/0/channels/4/target/path"
      },