MayaCGF: A tool to import/export models between Maya and Crysis

-> MayaCGF is discontinued as of July 10th 2011 <-

-> Support for the CryEngine3 (Crysis 2) can be found HERE! <-

This page will help you download and install MayaCGF, which is a plugin for Maya allowing you to import and export models to Sandbox 2 (the Crysis editor).

  • For instructions on how to export static models, go to this page.
  • For instructions on how to export animated characters, go to this page.



Updated on 20 January 2011: Beta 0.6

– Fixed a common bug happening with the “Combine” option.

– Fixed symmetry edges appearing “hard” on CHR files while they appear “smooth” as a CGF file (requires the latest Collada plugin for Maya).

– Vertex colors now use Collada plugin internal code, resulting in faster export.

– Specular and normal maps are now correctly exported in the .mtl file.

(You can find the rest of the changes history at the bottom of the page)


  • CGF files (static models)
  • CHR files (animated characters)
  • Physics proxy (both for static and animated models)
  • LOD (Level-of-Detail) objects
  • Blend shapes (morph targets)
  • Vegetation (detail-bending, trees with breakable trunks, etc…)
  • Breakable objects (trees, props, etc…)
  • Hair (with wind intensity)


  • CGA files (rigid animated models).


MayaCGF is compatible with both the 32 bit and 64 bit versions of Maya 2008, 2009, 2010 and 2011. Earlier versions of Maya are not (and will never be) supported.


First, uninstall and delete any previous version of MayaCGF and ColladaCGF. That includes scripts in My Documents/maya20xx/scripts and C:/Program Files/Autodesk/Maya20xx/Python/lib/site-packages.

1) Install the OpenCOLLADA plugin for Maya: MayaCGF has been successfully tested with version 1.3.0. Any other Collada plugin, including the previous versions of “Collada NextGen Exporter” or the Feeling Software plugin will NOT work!

2) Install MayaCGF.

3) (Optional: This is only required if you want to import models from Crysis into Maya) Install PyFFI:

Finally, type the following line in the scrip editor (in the MEL tab) to launch MayaCGF:

source "mayaCGF.mel"; mayaCGF;

In addition, the installer will create a couple of Maya sample scenes for testing purpose, which can be found in C:\Program Files (x86)\MayaCGF\sample_scenes.


If you’re on a 64bit OS (xp, Vista or 7), make sure that there is a folder called “20xx-x64” in your “Documents” folder, and not just a “20xx” folder. Sometimes it is not automatically created when installing Maya 64 bit and that can be a problem. For example, if you run a 64 bit version of Maya, the Maya folder in your Documents should be called “20xx-x64“. For a 32 bit version, it should be called “20xx“.

Also, before installing a new version of MayaCGF, it is advised to uninstall the current version first. Make sure that the following files are actually deleted:

  • …/My Documents/maya20xx/scripts/mayaCGF.mel
  • C:/Program Files/Autodesk/Maya20xx/Python/Lib/site-packages/ and

Textures don’t appear when importing an object in Maya: You have to respect the hierarchy of the Crysis (Warhead) “Objects” directory in which the object is located. If you don’t do this, the textures will not appear in Maya.


Beta 0.5a:

– Fixed an export bug with the “Combine” option when invisible meshes were present in the hierarchy.

– Removed a pointless warning when using the “Combine” option.

Beta 0.5:

– Fixed a bug that caused some animations to be cut before the end. Animation export is now frame-accurate.

– Fixed faulty interpolation when playing animations in slow-motion in Sandbox2 (no more jerky motion).

– Added a “Combined” export mode that reduces exported .CGF files size by almost 50%.

– Trees physics proxies are now fully supported (when using the “Combined” mode).

– Added vertex color related buttons to the Tools section.

Beta 0.4c:

– Fixed an import bug linked to the new version of PyFFI.

– Fixed a bug that caused blendshapes to appear warped (mostly flattened) in Sandbox2.

Beta 0.4b:

– MayaCGF can now export meshes with multiple shaders assigned to them.

– Fixed a bug that sometimes caused the blendshapes to be ignored.

– Fixed a “‘NoneType’ object is not iterable” bug.

– The log file is now located in the official user temp directory (instead of disk C:).

– Fixed a bug regarding the progress window’s deletion.

Beta 0.4a:

– Fixed a nasty bug that made Maya crash when adding an animation clip.

– Animation export is now faster (10-20%) and simpler behind the scenes (no more flimsy constraints baking).

– Skin mesh is now correctly identified in case of multiple meshes present in the export group.

– Physics are now correctly ignored if the root physics mesh is hidden or inside the exclude group.

– Clicking on animation clip button now toggles between clip frame range and frame 0 (binding pose).

– Added better feedback on overall progress and export steps.

Beta 0.4:

– Added support for Maya 2011.

– Instances of meshes are now allowed and properly recognized.

– Fixed a big bug in “Reorder Materials”; the tool now works again.

– Fixed error log opening twice in case of error.

Beta 0.3e:

– Fixed a bug when importing .CDF files. The attachment paths would not be correctly parsed if the “objects” folder was not capitalized.

– Transforms with non-unique names residing in the “exclude_GRP” shouldn’t stop the export process anymore.

– If a mesh is connected to the initialShadingGroup on top of another shader (a case of “parasitic” connection), MayaCGF will attempt to break the connection before export.

Beta 0.3d:

– Removed the “Shape” suffix that was automatically appended at the end of the blendshapes’ names.

– Fixed a bug that made MayaCGF crash when attempting to export a file with a blendshape node selected.

– Removed the useless error messages spat by the Collada exporter complaining about constraints.

Beta 0.3c:

– Static models (.CGF) do not need to have their history deleted prior to export anymore.

– Fixed a bug that caused the last frame of animation to be ignored (and caused a visible pop with looping cycles).

– Fixed a bug that happened when attempting to export with the top node selected.

– Transforms in the exlude_GRP can now have values in their transform channels: it won’t interfere with the export process anymore.

– The import scale has been fixed: an imported model at scale 1.0 will comply to the 1 Maya unit = 1 Crysis meter rule.

– Enforced removal in the filtered Collada file of geometries located in the exclude_GRP.

– When creating a cryAnimation clip, the default values are now based on the current time range.

– Fixed a bug that made MayaCGF crash when canceling the export process.

– Exported .CGF models’s orientation now matches the official Crysis one (different from the .CHR).

– Fixed “Constrain Slave Skeleton” procedure: all the slave joints are now properly taken into account.

– The time and value accuracy of exported animations within Sandbox 2 now reflects precisely Maya’s.

– MayaCGF version is now included in the filtered Collada file.

Beta 0.3b:

– Fixed a couple of bugs regarding vertex color and alpha value accuracy.

– User can now export with vertices selected without having to first select a transform.

– Hair support has been added in the UI (using vertex color/alpha channel values).

– Exported file names now respect the case-sensitivity of the exported node.

Beta 0.3a:

– Animation export is now from 2 to 4 times faster (depending on animation clip length).

– Added full vertex color support (independent from OpenCOLLADA plugin).

– Fixed a bug with wrong animation export range (too short).

– Invisible nodes (not exported) do not have to have their transforms frozen before export.

– Fixed animation names being duplicated in the .cal file.

– The physical state of exported meshes is now set to solid by default (in case no cryShader has been assigned).

– Added preliminary support for .fsq (facial sequence animation).

Beta 0.3:

– Added support for blend shapes/morph targets (yay for facial animation!).

– Fixed a bug that happened when exporting a skeleton made up of just one joint.

– Fixed a silly bug that caused the joint prefix textField to systematically reverse to 0.

– Added a blend shape example Maya scene.

– Locators and annotations do not need to have their translate values set to 0 anymore.

Beta 0.2g:

– Fixed a bug introduced in the previous version that caused the export of animated models to fail.

– Users can now name the joints the way they want: the limitation of having to use a specific “bip01” prefix (when not using the master/slave method) has been removed.

MayaCGF now warns the user prior to exporting if some meshes have values other than 0 in their transform channels.

– MayaCGF now warns the user if a mesh is connected to more than one shadingGroup. This keeps the material order from changing unexpectedly.

– The default specular value of an exported .mtl file now accurately reflects the specular color of the Maya shader.

– The animated arm sample scene has been updated.

– Annotation locators are now allowed, as long as they don’t interfere with the hierarchy.

Beta 0.2f:

– User can now export to any arbitrary directory (not just “…/Crysis (Wars)/Game/Objects”).

– Greatly improved path bookmark system with 10 slots available to quickly navigate between frequently used directories.

– User is now warned if a file was actually compiled albeit with engine-breaking errors (which result into the Dreaded Yellow Ball). Before, MayaCGF only cared if the file was compiled at all.

– The default diffuse color for an exported object is now much brighter (instead of muddy brown/gray).

– Bug fixed where some meshes would jump in space after a successful export (caused by bad handling of multiple meshes with the same name).

– The export group (the top node) ‘s translate values are now automatically set to zero at export time. This lets the user move the top node anywhere in space and export from there without having to manually bring back the node to the world’s origin before exporting.

– Fixed a bug about non-unique names not being properly detected .

– Fixed a wrong export option flag that caused the textures to be all garbled.

Beta 0.2e:

– Fixed: The bug that happened while trying to import some architectural models (out-of-range index error) has been fixed.

– Added: MayaCGF now prints out a warning about meshes on which history has not been deleted (for static models).

– Added: The user can now choose and assign a cryShader physics directly from the Tools section (no need for manually selecting the material anymore).

Beta 0.2d:

– Fixed: Import now works even if the object is not located in the official Crysis (Warhead) directory.

Beta 0.2c:

– Fixed: On 64bit systems the .mtl file would often get overwritten at export time with default brown material (even though the user unchecked the “Overwrite Existing Material File” check box).

– Fixed: Sometimes the “Assign cryShader To Selection” tool would error out when multiple geometries with the same shape names existed in the scene.

– Added: There is now a new tool called “Run MayaCGF Diagnostic” that should help when trying to pinpoint some bugs’ origin.

Beta 0.2b:

– Fixed: The installer now properly recognizes 64 bit versions of Maya (thanks Amorilia!).

– Fixed: The import function was broken and is now fixed.

Beta 0.2a:

– Added: Checking for consistency between shape name and transform name for the physics proxy meshes.

Beta 0.2:

– Updated: The animation batch export process is now up to 50% faster (depending on the number of joints and clips).

– Fixed: Added a check for consistency between physics shape names and their own transform name. User is warned to correct the discrepancies.

– Fixed: Installer was not copying the Python files to the right folder. Duh!

– Added: Better check for public/private status.

Beta 0.1z:

– Added: MayaCGF now comes with an installer.

– Added: Preliminary support for batch animation export.

– Updated: The UI now dynamically adapts and re-sizes to the type of files being exported.

– Fixed: MayaCGF no longer triggers a harmless error message at launch time if PyFFI is not installed.

Beta 0.1x:

– Added: All the Crysis physics shaders are now supported.

– Fixed: The default Diffuse Color is now medium gray instead of pitch black.

– Added: You can now right-click on the Path line to access a quick bookmarks menu that gives you instant access to the last five locations you used.

– Removed: Translate, Rotate and Scale options have been removed, since the Resource Compiler doesn’t understand scale animations (and translate and rotate are a given).

– Added: Assign cryShader (in the Tools section) now allows user to set the physics properties directly on the Maya shaders.

– Fixed: Better check-up to make sure the export file is actually created, in case a file with the same name already existed in the same location.

– Fixed: MayaCGF now handles gracefully a few more error situations while giving better feedback.

– Fixed: Better handling of .mtl overwrite using genuine Resource Compiler flag.

– Added: Banner picture for MayaCGF.

– Updated: Test scenes for .chr and .cgf models.

Beta 1w:

– Fixed: MayaCGF now properly checks if the mesh is a skin before attempting to export a .chr file.

– Fixed: The Prepare Joints procedure now correctly orients the root joint.

Beta 1u:

– Fixed: Stupid bug trying to call ColladaCGF (ColladaCGF is NOT needed for the MayaCGF beta and should NOT be installed).

Beta 1t:

– Fixed: .cgf export (for static models) now works also on skinned geometry.

– Added: The export folder is now created if it does not already exist.

Beta 1s:

– Fixed: MayaCGF was crashing when trying to export a .cgf file.

– Added: MayaCGF now warns the user if the geometry is not located within a group.

Beta 1r:

– Fixed: MayaCGF was crashing when trying to export a file if there were no physics meshes. Duh!

– Fixed: The Prepare Joints procedure now automatically assigns a proper rotation to the root joint (-90, 0, 90).

Beta 1q:

– Added: Support for physics (yay!).

– Added: You can now export an animated model by directly keying the binding skeleton joints (you don’t have to use the master/slave method). Note that the slave/master method is still (and will remain) supported.

– Fixed: You can now use any kind of shader on your mesh.

– Fixed: The color of shaders (Diffuse) is now properly reflected in the .mtl file.

– Added: Included all the helping scripts in the main UI under new Tool section.

– Fixed: Prepare Joints script would get confused if multiple joints with the same name existed.

– Added: In case of failure to export, the compiler export log is called.

Beta 1j:

– Fixed: Bug on Maya 2008 and 2009 when exporting animated characters.

– Fixed: Rewrote the “reorder materials” proc in Python and added option to remove submaterials.

– Fixed: Bug related to baking keys when exporting animation.

– Fixed: Bug that caused some materials to be ignored at compile time.

– Fixed: The .chr file was not created when exporting an animated character.

  1. No comments yet.