Collection Exporter feedback and discussion

Yes, I noted that above.

1 Like

Hello,
Another new build is available at the original link.

Updates include:

  • Presets should work now
  • A default file path, based on the Collection name is present (relative paths with // also work now)
  • An icon will be displayed in the Outliner for Collections that have exporters configured
  • Better error handling from OBJ in case of failures during export. It should be easier to see if one of the exporters has encountered a problem now

Let me know how the latest additions feel and look.

4 Likes

Hey, I was just testing the 4.2 Beta, I guess this feature now will have to make it into 4.3, but can we be able to export from the outliner icon? I can see why it might not do it, since you can have multple presets with the same collection included and different settings, in that case what about when clicking the icon having a dropdown with multiple export presets?

3 Likes

I think that’s great idea actually

Hi, here are three things that i noticed so far:

  • First one is a bug i suppose? When you go to the classic export window and define a new preset (i tested it with gltf) that has “Include/ selected objects” enabled - this setting will still be used for collection exports. Ideally it would ignore that Setting, and always export the full collection (or maybe only the visible one?). The path and file name are another settings that it loads from the preset, and i am not sure how useful that is.

  • Other than that, Blender also crashes about 30% of the time when i click the “folder” button to pick an Export path. But i have no idea what could be affecting that, so unfortunately it is not easy to reproduce.

  • And one question - is there an expression i can add after an absolute path that will name the exported file according to its collection? My assumption was that i could simply leave it blank and only have the folder path in there. But when i do that, it throws an error about the path beeing invalid, so it clearly wants a complete file path, not a folder path.

1 Like

To add on to @Thane5’s comment about expression-based export paths: The collection export options are great conceptually, but they’ve been implemented in a way that makes them a bad pick for studio workflows and pipeline tooling. It doesn’t expose the right kind of API surface for that, especially for game dev.

A lot of the suggestions I see in this thread are for things that add-ons (albeit mostly internal, studio-specific ones, in my experience) already do, by wrapping the basic exporters in an operator with a scene iterator that exposes various pre-export hooks for things like renaming, grouping/splitting, altering transforms, and so on. It takes some boilerplate to set up, but it’s robust, it’s flexible, and it lets studios separate their core tooling from their project-specific stuff.

Expression-based renaming is a great example of something that’s both a good baseline feature and an opportunity to provide a pre-export hook. Simple substitutions and expressions are enough 80% of the time, but you can’t cover that remaining 20% without making the syntax far messier than anyone would want it to be. Similarly, only having a hook makes pipelines overly opaque and slows onboarding; having both makes both features better.

2 Likes

Now that this has been checked in for some months now, it would be best to file proper bugs instead of reporting to the feedback thread here. Can you do that?

No, not right now. There are ideas to add a few general path substitutions throughout blender but no concrete timeline or design on that yet. That said, from what I remember hearing about it, I don’t think there were going to be any “context specific” variables that could be used - i.e. like say a ${Collection-Name} expression that would only be valid in the context of the collection. Though maybe it could be special-cased in this instance if we had a general way of making that replacement.

Yeah, this was never intended to be a way to, or even a start of, implementing a general purpose “pipeline processor” inside of blender where you could assembly a bunch of steps to be executed during an export. Ideas or designs for that would probably be better suited to right click select or similar.

In a similar vane, if there’s something that the current python API makes difficult or impossible for external addons that want to write their own pipeline processor, that too would be interesting to have on right click select as well.

Blender’s workflows will never be everything to everybody, but the API can at least assist those who want to innovate with UI and workflow concepts themselves while leaving the heavy grunt work of certain tasks to the exposed API.

All studios really need is the ability to throw their own exporters into the collection exporter list, and it’ll function as a pipeline processor. Everything else (including stuff like the USDHook post-export hook) can be done, and is often more easily done, with an operator that wraps an existing exporter.

I’d even use the wrapper approach for implementing path substitutions as a baseline feature. Makes it inherently extendable, gives folks a starting point for writing their own wrappers, and keeps the core exporters from accumulating overly-specific cruft.

1 Like

Will the role of the importer also be carried out here? For example, we really need a feature that can merge an animation cache into a collection made up of numerous meshes that have completed surfacing. I am curious if this aspect is being considered for future development.

By path substitutions you mean using expressions in paths, right? If so, I totally agree. Blender lacks path expressions in many areas.

Add-ons can register their own exporter in the list , see the 4.2 Python API release notes.

So studios can create their own, and hopefully there will be extensions with more advanced processing.

5 Likes

That’s fantastic. I already have some stuff I’m pulling together for the USD Assets work group, this gives me another aspect I can integrate.

This seems kind of fundamental, but why can’t we rename the Exporters? If I need to export an FBX to say two different version installs of Unity, I can’t change the name. It seems like everywhere else in the blender interface, when you create something, you can rename it.

image

8 Likes

That’s something I’m looking on improving in 4.3. There’s a task we have containing some items that I’ll be considering for improvement at some point in the future: #125189 - Collection Export: Workflow and UX improvements - blender - Blender Projects

4 Likes

Sorry if i’m late to the party here or if i’m missing something. Is there a way the when exporting a collection, the objects inherit their names from the scene. For instance, if i have cube001 and cube002 in my export collection, they will be named cube001.fbx and cube002.fbx on export?

Great feature tho. This really speeds up shipping assets into unreal and updating them on the fly. GG