Maya2glTF Versions Save

Maya to glTF 2.0 exporter

v1.0.1-rc2

3 years ago

Potential 1.0 release candidate for Windows x64, Maya 2017,2018,2019 and 2020 build from the develop branch.

Many thanks to the amazing work of K. S. Ernest Lee, and also to Robert Long from Mozilla for his initial CMake work.

Clean release notes will follow.

For now, commits between develop and master:

FIX: issue 125: Export node order should be deterministic (Peter Verswyvelen)
Merge pull request #123 from Ziriax/develop (Peter Verswyvelen)
FIX: Fixed issue 122, Exported frame count is sometimes wrong (Peter Verswyvelen)
Merge pull request #115 from fire/add-vs-2019 (Peter Verswyvelen)
Add a different batch script for Visual Studio Versions. (K. S. Ernest (iFire) Lee)
Merge pull request #111 from fire/patch-1 (Peter Verswyvelen)
FIX: Restore maya2gltf for the Mac. (K. S. Ernest (iFire) Lee)
Merge pull request #102 from fire/cmake-installer (Peter Verswyvelen)
Merge pull request #92 from fire/aiStandardMaterial (Peter Verswyvelen)
Add mel autogenerate versions. (K. S. Ernest Lee)
Add c++ autogenerated versions. (K. S. Ernest Lee)
NEW: Output to a directory in build to make a release. (K. S. Ernest Lee)
Support roughness, metalness and normals. (K. S. Ernest (iFIre) Lee)
Add transparency scanning. (K. S. Ernest (iFIre) Lee)
Add code to load Arnold. (K. S. Ernest (iFIre) Lee)
Extract tryCreateRoughnessMetalnessTexture. (K. S. Ernest (iFIre) Lee)
Stub Arnold Materials implementation. (K. S. Ernest (iFIre) Lee)
Merge pull request #109 from fire/mac (Peter Verswyvelen)
FIX: Add OSX Maya Support (K. S. Ernest (iFIre) Lee)
Merge pull request #105 from fire/linux (Peter Verswyvelen)
FIX: Deals with deleted texture images on disk, does not export these anymore. (Peter)
FIX: Correctly reports a missing image path (Peter)
FIX: Images are now embedded into a single buffer with the -glb flag, previously this would just crash... (Peter)
REF: Manually changed version to V1.0.0. Need to make script that does this automatically, without Visual Studio as in master (Peter)
REF: Set clang format to 120 columns (widescreen) (Peter)
REF: Fixed deprecated Maya SDK warnings, still compiles with Maya 2017, 2019 (2016 and 2018 not yet tested) (Peter Verswyvelen)
FIX: Add Linux Maya support. (K. S. Ernest (iFire) Lee)
NEW: Added simple skinning test scene with unbound root joint (Peter Verswyvelen)
NEW: Batch file to create VS project now asks Maya version (Peter Verswyvelen)
NEW: Added support for dumping 32-bit and 16-bit integer accessor values (to debug JOINT_x accessor values) (Peter Verswyvelen)
FIX: Not using empty selection display layers for selecting objects anymore. (Peter Verswyvelen)
FIX: Removed some testing MEL calls (Peter Verswyvelen)
Simplified zero-joint-weights scene, removing animation (Peter Verswyvelen)
Added more skinning test scenes (Peter Verswyvelen)
Merge pull request #96 from fire/msvc-2019 (Peter Verswyvelen)
FIX: Changes for MSVC 2019 compile errors (K. S. Ernest Lee)
Merge pull request #97 from fire/update-clip-merge (Peter Verswyvelen)
FIX: Crash when images are not found. (K. S. Ernest Lee)
Merge pull request #87 from fire/increase-scale-precision (Peter Verswyvelen)
Merge pull request #84 from fire/clang-format (Peter Verswyvelen)
FIX: Increase precision on scaling (K. S. Ernest Lee)
Format code. (K. S. Ernest Lee)
Merge pull request #80 from fire/morph_target_names (Peter Verswyvelen)
NEW: Add morph target names. (K. S. Ernest Lee)
REF: More thumbnail scripting (Peter Verswyvelen)
NEW: When multiple blend shape deformers are found, now pick the one with most animated plugs, to differentiate between setup and animation deformers (Peter Verswyvelen)
REF: Renamed Maya2glTF to maya2glTF, Maya 2019 seems case sensitive! (Peter Verswyvelen)
NEW: Added editor config file (Peter Verswyvelen)
Preparing 1.0 release (Peter Verswyvelen)
Merged master with feat_sab branch (Peter Verswyvelen)
Merged cmake branch into master (Peter Verswyvelen)
NEW: Added some colors to MEL export window buttons (Peter Verswyvelen)
FIX: Imports python script in MEL playblast proc (Peter Verswyvelen)
Weaking VP9 export (Peter Verswyvelen)
Added vp9 clip export with alpha channel (Peter Verswyvelen)
Oops, commented out global maya2glTF_playblastTraxClips call (Peter Verswyvelen)
Working on GIF + PNG thumbnail generator (Peter Verswyvelen)
Added code to generate animated GIF thumbnails using playblast and FFMPEG (running in parallel) (Peter Verswyvelen)
Removed hardcoded path from python reloader script, now assumes the scripts are in the workspace scripts folder (Peter Verswyvelen)
Added index_from_zero to capture script (Peter Verswyvelen)
REF: Removed maya2glTF_renderFrames proc, python version should be used instead (Peter Verswyvelen)
FIX: Ignored ipch file from new vs2017 now (Peter Verswyvelen)
FIX: json metadata file is now saved after exporter has finished (Peter Verswyvelen)
Added script to reload python modules (Peter Verswyvelen)
Disabled maintain_aspect_ratio when playblasting (Peter Verswyvelen)
Fixed animachine script (Peter Verswyvelen)
Renamed clips to animations in metadata (Peter)
Added id to JSON metadata (Peter)
Fixed UI script, was missing an import (Peter)
First version that exports animation metadata JSON file for our upcoming Animachine product (Peter)
Improving deps builder batch file to sync submodules and pull all large files (peter)
Fixed COLLADA2GLTF dependency, was pointing to the wrong branch (peter)
Added polar decomposition code, not used yet (peter)
Merged (peter)
Added NestedTransparentEmissiveSpheres test scene; pulled lastest commits from COLLADA2GLTF fork (Peter)
NEW: Added H265 encoding and GLTF clips+meshes merging tools (C#/.NET Core) (Peter Versywvelen)
REF: Stops UI progress after export with plugin itself, cleaned up some arguments, playblast now only outputs solid non-templated meshes, exposed copy/paste master key MEL procs (Peter Versywvelen)
Added more fine tuned regression testing scenes (Peter Versywvelen)
REF: Organized files in VS project a bit (peter)
FIX: Now takes render resolution and MFnCamera::getPortFieldOfView to determine GLTF vertical field of view as seen in the Maya viewport (Peter Versywvelen)
FIX: Last frame was not exported (peter)
Adding MEL  code to export scenes with camera1 to playblast folder (peter)
Added support for exporting cameras, added some calibration scenes. Not sure how to test, since I can't find a viewer that supports cameras... (peter)
Refactored DagHelper to return the MStatus instead of just a boolean (peter)
Positioned camera of cube-grid to verify upcoming camera export (peter)
Compiles again, OutputWindow was somehow not added to VS project (peter)
Placed regression camera1 to all Maya scenes, preparing for playblasting use 3rdParty capture.py library, adding generic forEachScene MEL procedure with progress and abort support (Peter Versywvelen)
WIP: Moving common code to common.mel, not done yet (Peter Verswyvelen)
FIX: Scenes now use HDR BRDF LUT (Peter Verswyvelen)
NEW: Added -cow flag to clear the output window before exporting, making it easier to find errors and warnings. (peter)
NEW: Added flag to report skewing issues with inverse bind matrices, see https://github.com/KhronosGroup/glTF/issues/1507 (peter)
NEW: Added flag to automatically convert unsupported glTF image formats to PNG (peter)
NEW: Added Python script to clear output window on Windows (https://www.highend3d.com/maya/script/clear-output-window-for-maya) (peter)
NEW: Added script to playblast all animation clip scenes, importing each clip into model scene (typically PBR shaded). This will be used to generate regression tests for our renderer (peter)
WIP: Adding Windows batch file for exporting all clips (Peter Verswyvelen)
FIX: maya2glTF_polySelectAndFrame now works when ran from mayabatch (Peter Verswyvelen)
NEW: Added -smt flag to skip all textures of all materials, mainly for testing (Peter Verswyvelen)
REF: Better reporting of degenerate faces (Peter Verswyvelen)
REF: Blend shape target weights are now sorted by name, not by internal Maya index, to allow the order of these to vary. (peter)
FIX: Printing failed status now ends with a newline (peter)
REF: Uses updated GLTF library that fixed occlusion strength factor (peter)
REF: Added 'deformer' to Resharper dictionary (peter)
NEW: Added MGi (Maya2glTF_ignored) custom attribute that can be added to a blendshape or skincluster to indicate it needs to be ignored (e.g. when using the deformed just for performing setup or correction, not for doing animation). Maybe need to add another feature to take ALL deformers in the history into account, like our OGRE exporter? (peter)
NEW: Added helper function to print all attributes of an object (peter)
REF: When using display layers to select the exportable objects, templated layers are not selected anymore (peter)
FIX: When exporting with -splitByReference, non-referenced meshes are now correctly exported, and a warning is printed. (peter)
WIP: Added -splitByReference and -niceBufferURIs arguments, implementation partially working. Needed to workaround a Maya API hang, MFileIO::getSelectedNodes hangs when targetting a MSelectionList (peter)
NEW: Added simple scenes to test split-by-reference export (peter)
FIX: Release builds now define NDEBUG (peter)
More work on support scripts for bulk export of meshes and clips (Peter Verswyvelen)
WIP: Fixing script to export all clips in a folder, Maya crashes when loading a scene, not sure why (peter)
Merged submodule (peter)
Merged (peter)
NEW: Lots of changes to improve separate mesh and anim export: - added hashBufferUri, cleanOutputFolder, dumpAccessorComponents, visibleNodesOnly arguments - hashBufferUri will assign a SHA hash to the name of a buffer, useful when separating the mesh and anim clips buffers using -splitMeshAnimation flag - prints warnings when removing invisible objects from selection when visibleNodesOnly specified - now rounds all coordinates to some precision, and converts negative 0 to positive 0, to get the same export when Maya evaluates upto some precision. Not 100% working yet, might never work. - the dumpAccessorComponents dumps all accessors components to text files before combining them, for debugging - not assigning primitive names anymore, only children-of-root can have names in GLTF - doesn't print "unknown internal failure" anymore when just reporting errors/warnings - when exporting MikkT tangents, now reports the degenerate triangles encountered - (peter)
NEW: Added a script to paste a setup keyframe in all animation clip scenes, so the same binding-pose and setup-mesh can be exported for each clip (Peter)
Merged (Peter Verswyvelen)
Added forceAnimationChannels argument, so that an animation channel can be created even when a node track doesn't change relative to the T-pose. Needed to export animation-only files, unless these contain a T-pose frame of course. Started working on batch-export-clip-script, not working yet (Peter Verswyvelen)
Added forceAnimationChannels argument, so that an animation channel can be created even when a node track doesn't change relative to the T-pose. Needed to export animation-only files, unless these contain a T-pose frame of course (Peter Verswyvelen)
NEW: Added helper script to archive all MA files in the directory of the current scene (Peter)
WIP: Mesh and animation accessor splitting starts to work, but unfortunately the mesh welder gives different results because the binding poses are different, so the idea of hashing the mesh buffer doesn't work. Might not be an issue, otherwise animations should contains the binding pose at some negative key (because most of the time, Maya cannot restore the binding pose for a complex rigs, so we need a keyframe) (Peter)
FIX: Forgot to add inverse bind matrices accessor to mesh accessors (Peter)
FIX: Fixed accessor packing when exporting a single buffer (Peter)
WIP: Separate mesh and animation accessor packing, not working yet (Peter)
NEW: When display layers are found, these are used to determine the visible objects (Peter)
Now reports how much nodes deviate from being orthogonal (Peter)
Now using filesystem stub based on https://github.com/wjakob/filesystem (Peter)
First version using CMake that works on Windows! Now uses WonderMedia COLLADA2GLTF fork with fixes; correctly copies the generated files to the Documents folder now (Peter)
OSX changed to CMake files, makefile is generated, but clang doesn't seem to have C++ 17's filesystem and hash_value, so not compiling yet... (Peter Verswyvelen)
Trying to get cmake working, finally compiles to DLL, with precompiled headers and post-build-step to deploy, but untested (Peter Verswyvelen)
WIP transition to cmake (Robert Long)

V0.9.10

5 years ago

Please don't use this release, it seems to break some skinned meshes, use V0.9.9 instead for now

  • Exporting combined meshes now produces a valid GLTF.

  • Fixed a bug in the PBR shader assignment script that would always pick the orm texture pattern for normal maps. If you now want to combine occlusion, roughness and metallic, you should use _orm in your filename.

  • If a PBR shader is found in the workspace, that one is used instead, so that everything can be stored in the workspace.

  • The PBR shader will now apply sRGB conversion to the PMREM maps by default. Note that you often will want to disable this when using a DDS that is linear. However, Maya doesn't support HDR cubemaps. In the future we will support RGBM 8888 encoding so Maya can have HDR with standard DDS maps.

  • Added a flag in the PBR shader to flip the Z direction of the PMREM lookup vector. This seems to result in correct mirrored reflections when using DirectX DDS cubemaps. Enabled by default.

V0.9.9

5 years ago
  • The release script now generates a ZIP instead of RAR file, thanks @underthematjp for reporting this.

  • I'm considering this plugin "stable" now.

  • The 1.0 release will be made when the OSX cmake branch is merged, and when we exported all WonderMedia 3D characters to glTF

V0.9.8-alpha

5 years ago

NOTE: I consider this an alpha release, since a lot has changed internally, and the exporter might need more testing.

  • The default extension is now gltf (lower-case). You can configure the extensions using the -gltfFileExtension (-gfe) and -glbFileExtension (-gbe) flags

  • By default no more redundant shape nodes are exported. If you want to keep these shape nodes, pass the -keepShapeNodes (-ksn) flag

  • Rotation pivots points are now properly supported. Scaling pivots points are ignored and assumed to be the same as the rotation pivot point.

    • An extra GLTF node with the :PIV suffix is created for the pivot translation (the vertices of the mesh are not changed anymore)
    • In theory even animated pivot points should be supported, but this is not tested yet.
  • Passing -glb or -emb now correctly exports a single file.

  • Support for double sided materials in the PBR OpenGL shader. See the PBR Advanced attribute group of the shader. Note that backface culling (in the Mesh Component Display accordion) must be turned off for correct rendering, but that setting has no impact on the exported file.

  • Maya material names are now copied over to the GLTF materials

  • Skeletons with multiple roots are now correctly exported

V0.9.7-BETA

5 years ago
  • Fixed export of transparent materials (but you must explicitly set the Technique in the GLTF PBR Shader to Transparent for this to work for now)

  • Uses lower case gltf extension

  • Exporting a single frame does not "bake" the skin at that frame anymore when -initialValueTimes (-ivt) is specified, instead the skin binding pose is taken from the initial values time, and the GLTF nodes will be loaded with the transforms from the current frame (as if exporting a single frame animation clip; we use this to test our computer shader deformation engine without requiring animation)

  • When the Maya mesh has texture coordinates, these will be exported by default, unless you pass excludeUnusedTexcoord.

v0.9.6-beta

6 years ago
  • PBR material base color factors should now export correctly (thanks to @Chase-Reid for reporting this regression bug!)

  • When assigning the PBR material, the default path for the shader is used, so the user doesn't have to pick the shader file anymore.

v0.9.5-beta

6 years ago
  • Added PBR files to the release ZIP
  • Added refresh button to the UI
  • Added more keyword patterns to the PBR texture importer

v0.9.4-beta

6 years ago

Fixes

  • Fixed inverse binding matrices of skin bound to meshes with a pivot point

Installation

Maya 2018 and 2017, Windows x64 only for now.

To install, extract the ZIP to any location (e.g. your desktop), open the created Maya2glTF folder, and double click on the deploy.bat file.

Then re-launch Maya 2017 or 2018, and in the script window, type maya2glTF_UI to launch the UI. Load a scene, select the meshes you want export, and hit the export selected meshes button.

Let me know if this works for you, this is BETA stuff ;-)

PS: You might have to install the Microsoft Visual C++ redistributables to get it running correctly.

v0.9.3-beta

6 years ago

Fixes

  • Fixed exporting multiple animation clips
  • Added support for exporting TRAX clips in the MEL UI
    • only enabled clips from the first track are exported

Known issues

  • The animation clips of the skinned complex1 scene doesn't play correctly in BabylonJS and ThreeJS. Most likely because of a combination of a pivot point and skinning. To be investigated.

Installation

Maya 2018 x64 only (tested on Windows 10 ) for now.

To install, extract the ZIP to any location (e.g. your desktop), open the created Maya2glTF folder, and double click on the deploy.bat file.

Then re-launch Maya 2018, and in the script window, type maya2glTF_UI to launch the UI. Load a scene, select the meshes you want export, and hit the export selected meshes button.

Let me know if this works for you, this is BETA stuff ;-)

PS: You might have to install the Microsoft Visual C++ redistributables to get it running correctly.

v0.9.2-beta

6 years ago

First version with a MEL user interface and support for segment scale compensation, and lots of bug fixes.

Maya 2018 x64 only (tested on Windows 10 ) for now.

To install, extract the ZIP to any location (e.g. your desktop), open the created Maya2glTF folder, and double click on the deploy.bat file.

Then re-launch Maya 2018, and in the script window, type maya2glTF_UI to launch the UI. Load a scene, select the meshes you want export, and hit the export selected meshes button.

Let me know if this works for you, this is BETA stuff ;-)

PS: You might have to install the Microsoft Visual C++ redistributables to get it running correctly.