[Bf-committers] Proposal: Export extensions for better integration with game engines.

Juan Linietsky reduzio at gmail.com
Thu Mar 4 22:24:15 CET 2021


>
> So how is this not custom properties?
>

I don't think custom properties are the best for this use-case scenario,
for the following reasons:

* You need to generate this data *on export*. As an example, if you edited
the material nodes in Blender, you would only want to generate a target
engine shader at the time you are exporting the file, as this can be a
costly process. Doing it at any other time is unnecessary and inefficient.
* Custom properties are meant to be *user-facing*, there is zero benefit in
users seeing data meant *for the exporter*.
* Again remember, the use of this is to take data that *already exists in
blender* (not that was created by the user) and send it to a game engine.
It's a different use case (and hence, feature).

Juan


On Thu, Mar 4, 2021 at 3:53 PM Toni Alatalo via Bf-committers <
bf-committers at blender.org> wrote:

> So how is this not custom properties?
>
> https://docs.blender.org/manual/en/latest/files/data_blocks.html#custom-properties
>
> On Thu, Mar 4, 2021 at 8:05 PM Juan Linietsky via Bf-committers <
> bf-committers at blender.org> wrote:
>
> > Hi Everyone!
> >
> >    Most exporters are working fantastic nowadays in Blender, so on the
> > Godot Engine side, we are trying to figure how better to improve our
> > experience to users when going back and forth between Blender and Godot.
> >
> >    So, this proposal consists on a very (pre-discussed) list of topics
> that
> > we would be glad to work together in ensuring Blender can support these
> > somehow (which should hopefully happen with minimal effort).
> >
> >    The main topic is the ability for Blender to have a "Metadata Export"
> > plugin. This means, that at the time of export,and for each object
> exported
> > (node, material, skeleton, mesh, etc) Blender should be able to ask for
> > "metadata" to the export plugins. Export plugins can then return generic
> > metadata (Strings or what you believe is best) to embed in exported
> scenes.
> >
> >   Here are use cases where these type of plugins would be very useful:
> >
> > * *UUID exporting*: When we import a scene on the game engine side, we
> can
> > only track objects by name. Blender uses unique names for objects, but
> > artists will often rename them, causing data added on the engine side
> (such
> > as overriding materials, changing positions, setting children nodes to,
> > etc) to be lost.  Ideally, Blender should be able to assign UUIDs to
> every
> > object at the time of creation (does not need to be global, can be per
> > blender file). If not desired to be core in Blender, then the add-on
> should
> > be able to do this somehow.
> > * *Material Exporting:* Exporting materials is very limited in any
> format.
> > Users often just want to model directly on Blender, set up the materials
> > with nodes, and then expect them to work in the engine. To solve this, we
> > originally wrote a direct Blender -> Godot exporter, but this is very
> > difficult to maintain where the main thing we need is just materials. On
> > export, we convert Blender Materials to Godot Shaders, so they work
> > automatically on the engine. If this can be saved as metadata in
> > GLTF/DAE/FBX, it's much easier for us to maintain.
> > * *Extra parameters for lights and cameras*: Sometimes, we want more
> > parameters exported from lights, cameras, etc. in order to make sure
> scenes
> > just work.
> > * *Extra types of objects:* Godot supports Splines, IK, Physics and many
> > other types of objects that blender supports, but that no export format
> > does. Being able to export those as metadata in the exporter would be
> very
> > useful. As an example, when making a racing game, exporting a Spline used
> > to create a racetrack helps make a better AI.
> >
> > So, all this could be done if exporters polled export metadata plugins
> for
> > metadata at the time of export (so we ensure we convert from the most
> > recent version of the object) on any object, then added it in the
> exported
> > data. This is a minimal non-invasive change in Blender exporters, but
> adds
> > huge flexibility to engine export.
> >
> > Best
> >
> > Juan
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > https://lists.blender.org/mailman/listinfo/bf-committers
> >
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> https://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list