Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maya exporter GUI suggestions #912

Open
crmabs opened this issue Dec 17, 2020 · 3 comments
Open

Maya exporter GUI suggestions #912

crmabs opened this issue Dec 17, 2020 · 3 comments

Comments

@crmabs
Copy link

crmabs commented Dec 17, 2020

Hi,
I've used the Maya exporter in a few productions and some conclusion has boiled down that I would like to share with you.

Animation clips editor
Add tab key navigation in anim clip editor. Currently I have to use the mouse the put the cursor in the control's entry field.

Exporter interface
Exporter uses the current selected frame from the timeline as a sort of "base state". When I open the glb - for example - without the animation clip running I get this frame's state visible on the object. This should be a field on the exporter interface. This makes the export independent from the Maya GUI.
Also the same applies for the selection export. The simplest solution would be to select a Maya set which defines the objects to be exported. Otherwise I have to select each root object and use the select->hierarchy Maya operation to get the final selection I want to be exported. Again, this is just one thing that keeps one sane. Other solution would be a pre export script. ( a post one is also usually helpful... )

These comfy features would shine especially when it's rush time during a production. So many things can go wrong when testing the exported content in the destination environment, please let the exporter help!

One more: the deluxe++ version would be to be able to create exporter profiles. They would link a set of maya objects with a set of exporter parameters.

Thanks for your time!
Andras

@pandaGaume
Copy link
Contributor

I like the exporter profile Idea...

@pandaGaume
Copy link
Contributor

@crmabs as advanced user, How do you imagine the pre-post export script ? one selection window to choice a script file ?

@crmabs
Copy link
Author

crmabs commented Feb 26, 2021

The topic itself is huge. Every time I wanted to reply I got lost in the details. So first let me focus on the current issues.

In general the script that runs before the export should eliminate ALL the dance I have to do to get a proper exported content. This could be an advanced topic and can be approached like the pre/post build scripts in Visual Studio or in Houdini.
The same applies to post export scripts. For example I run draco compression here or convert the gltf to the final glb asset and copy to the place where the deploy scripts can take over. Integration will love you. Hints: macros/variables are welcome here like ${current project path} ${current scene name} etc..

While pre/post scripts could solve everything for artists you need GUI. - well, the best to have to both interchangeably.

The concept is to automate every possible step of the scene export - especially targeting the emergent / intrinsic / happenstance behaviours occur when exporting.
The top two deliquents are:

  • What gets exported? Currently/last time I checked it was: Select the child nodes / select hierarchy
  • Setting the timeline to the desired frame - I bet you must have a name for this frame :))) - which sets the initial transforms of the objects. Let's call it base frame. In practice this is the one that appears if I just load the scene geometry and don't start any animation clips.

I cannot stress enough that every effort you put you product in general can be crippled or turbo boosted by a proper exporter mechanism. It is not Maya or Babylon related. Now I'm addressing the tip of the iceberg only.
For an illustration and rather sad example: I'm putting in extra effort to switch to Maya from Houdini just to be able to use your exporter.

Every 3d program has a concept of grouping objects. Let's call them sets. A scene object can be part of any number of sets.
A babylon exporter profile has - apart from the basic attributes :

  • a single base frame
  • links to sets -- note: plural / multiple sets!!
  • override parameters like material override, etc

What gets exported?

Export all
This is the default behaviour.

Export current selection
Immediately starting with a misnomer since it should be "Export the DAG trees defined by the selected nodes".
Extends the list of objects to be exported with all the downstream object derived from the current selection. This behaviour must be annotated so the artist can be sure. Note, that in some case like in Houdini it won't be a trivial thing, but in Max or Maya current selection is totally accepted and normal thing. Further note: when you work with any kind of animation the current frame is a very important anchor just like the selection.
Will eliminate the "Just drag it to the first frame before export, you know, the T-pose is defined there. Oh, sorry frame 1 not 0. No, sorry in this scene it's on frame 1000 to have the simulations run up.... "

Export using profile
Select one profile from the list of existing profiles and use that to drive the export. The union of the sets defined in the profile gets exported. Here imagine all the love like:
Include hierarchy, override all materials, skip animation channels, export geo only, export shaders only, extract textures, flatten hierarchy, etc. You cannot go wrong with multiple options.

Strictly selected objects only
This case is a special one but a must have. You can implement it in several ways for example a checkbox in the export selection's case. Checked by default and says: "include hierarchy" for example.
But I'd rather have it as an explicit export options item. Let me go further and say "Elevate this into a global export behaviour". By that I mean it is visible and annotated that you are surgically select a portion of a hierarchy.
The reasoning behind this option is that this can be used to export animation channels or just some other separated pieces of the scene. Also you can think of it as a quick and dirty way when the user doesn't want to define an export profile just to update a single geometry / channel / etc.
A good use case is when you put the scene together runtime. So you have the whole scene in separate files and you just want to export / update camera's translate channels only.

Opposed to the above currently the behaviour is the following:
I must check with the latest maya plugin - so pardon me if I'm wrong - but if I don't select the hierarchy manually the exporter will write the selected nodes to the gltf - resulting only some empty "containers". To get ANYTHING sensible exported geo,material, animation, textures etc - the artist MUST take this step. Sounds like a minor thing but this is yours "first user experience" and the friction that drives away users. Most importantly as an artist I expect that to work. "I selected the objects but the gltf is empty QQ/wtf"
In my case it goes like "ok, latest plugin installed. exhale. we are in maya. inhale. now let's figure out the smallest hopscotch I must do in order to achieve the desired gltf content" This is the friction.
The same applies to the current frame thing...

In other words: the export profile makes your life totally independent from the gui. Making the export process robust and repeatable.

I have more...
Many thanks for your time!

@thomlucc thomlucc added this to the 5.0 milestone Feb 26, 2021
@thomlucc thomlucc modified the milestones: 6.0, Future Sep 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants