I’m trying to add support for a custom extension handler in UE 5.6 and beyond building on the Interchange modules. From the looks of the GLTFCore module they are only supporting somewhat enterprise level extensions that likely are coming in through engine analytics. And the extension handler mechanism is fully private within gltf core.
Are there any ways currently to add extension handlers that I am missing without modifying the engine. If not are there plans to support external handling (plugins) for parsing extension into nodes with proper data?
it sounds you want to modify an existing translator and potentially related pipelines. In the case you want to add support for features UE is not yet parsing.
We did not yet design a simple system where you can extend an existing translator.
I will do a quick check with the dev, but at the moment I expect you can either
add a custom parsing pass in a custom pipeline, that defeats a bit the purpose as you end up doing some translation work in the processing steps,
or you will have to duplicate the custom translator class and make a custom version for your use case, and deactivate the core one.
I chose to duplicate the translator, fairly simple. Not all of gltfcore is exported (you do need some private modules) both of those were also easy to duplicate.
For now, the translator just adds extra attributes that are the extras and extensions fields of a gltf node, for the scene node created.
A pipeline can then further parse the extras and extensions field attributes into more specific factory nodes.
It worked well and should be easy to work into a better defined system later. Thanks!
It’s not yet a proper gltf extension with an registered definition. It’s for importing and reimporting metadata related to real world machines.
The extras field is for metadata about the machine, and the extensions field is to support complex rigging that can’t be accomplished with single parent hierarchies (custom assets provided by a plugin). Otherwise I would use the normal bone structure supported by gltf into control rig / skeletal mesh.
USD is a better fit but I don’t believe it’s supported by interchange just yet.
USD is supported by Interchange, it is still experimental but we are getting in par with the legacy USD import, especially the import of assets. Import of USD as a scene is being worked on too, but needs more time to be turned production ready.
But same as for glTF the work to make the translation easily extendable, so that user can add code to support a new schema, is not done yet.
@UE_FlavienP Thanks for the info and quick responses. I’ve had great results with interchange so far, and can’t wait to see what the team comes up with in future releases!