Open fire opened 1 year ago
This is definitely perfect for an addon. I'm also wary of adding it in any generic way, because users will figure out how to abuse it for their own means, and we'll have to support it beyond the presented use case.
What could be interesting, if the goal is to power exporting Godot scenes as GLTF, is an introduction of a generic and native way to attach some authorship, version, copyright, etc information to PackedScenes. Then the GLTF export could read that info and generate the necessary XML JSON file/data structure as needed. This way it could be useful to a broader audience and won't introduce yet another meta format to the engine.
I can then envision an editor setting that automatically feels these fields for the scenes that you create or last edit locally.
Well RDF and xmp (as specified above) is the result of decades of bikeshedding on the names of the metadata fields, I don’t think we can do better. I don’t think it’s simpler to redefine our own.
If we were to do it I would pick one of the metadata tag layouts in the table.
@YuriSizov I had the same thought, already discussed with fire privately, thus the text at the bottom of the proposal:
This can be an official addon and be on the asset library.
Handling asset copyright information does not need to be in the core engine, but it would be nice to have it be an official add-on so that it can be more easily standardized for those who with to use it.
@aaronfranke Well, I think what I describe could be made a part of the main distribution and either enable that plugin or even allow us to including this feature into the built-in GLTF exporter without burdening the core...
Here is an add-on in the asset library for writing KHR_xmp_json_ld data on export, and reading on import: https://godotengine.org/asset-library/asset/2309 Requires Godot 4.3 or newer with #79316 merged.
Describe the project you are working on
A social vr project that wants to store an 3d asset inventory to do tagging and filtering for maps, props and avatars
Describe the problem or limitation you are having in your project
I want to store metadata in a standardized format during pipeline processing between editor upload, server storage and player browser preview.
Noticed other projects in the Godot Engine ecosystem:
Describe the feature / enhancement and how it helps to overcome the problem or limitation
I propose to create a system to store xmp_json_ld in the metadata section of objects and if the gltf export sees this metadata it will export gltf in a way that is compliant with the KHR_xmp_json_ld spec.
I also propose to have a xmp_json_ld editor for Godot Engine.
References
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
In Godot Engine objects:
Since there is a limited time budget, I recommend we pick only a few of these. Let me know which ones are important.
dc
http://purl.org/dc/elements/1.1/
xmp
http://ns.adobe.com/xap/1.0/
xmpGImg
http://ns.adobe.com/xap/1.0/g/img/
xmp:Thumbnails
xmpMM
http://ns.adobe.com/xap/1.0/mm/
stRef
http://ns.adobe.com/xap/1.0/sType/ResourceRef#
xmpMM:DerivedFrom
,xmpMM:Ingredients
,xmpMM:ManagedForm
stEvt
http://ns.adobe.com/xap/1.0/sType/ResourceEvent#
xmpMM:History
stVer
http://ns.adobe.com/xap/1.0/sType/Version#
xmpMM:Versions
xmpRights
http://ns.adobe.com/xap/1.0/rights/
rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
See Krita's copyright screen for a possible design:
If this enhancement will not be used often, can it be worked around with a few lines of script?
This is not a few lines of script.
Is there a reason why this should be core and not an add-on in the asset library?
This can be an official addon and be on the asset library. I like writing design docs :D