Download MESA for MAYA

[table] MESA – Maya Exporter for Source Absolute Release Date , MESA Version, Download Link
23 Apr 2013 , MESA V 1.1, Download
17 Feb 2013 , MESA V 1.01 beta, Download


MESA is a suite of MEL Scripts to export and import 3d models for the Valve Source Engine with Autodesk Maya. This is the short name for Maya Exporter for Source Absolute.

[table] Features  – Maya Workspace
SMD Import
SMD Export
SMD Animations
– Lod
– Physic Mesh
– VTA export (blend shapes)
– Ref break
– Phys_break
– BodyGroups
– QC export
VMT export
VTF Export
MDL Compilation [/table]

Question : What about the Absolute mention ?
Answer : Because all the work could be done within Maya. no text editor will be required for the final version of MESA.

The objective of MESA, is about to make the full asset creation process within Maya interface.
It include static, physiques, dynamic and ragdoll props models, breakable models, bodygroups models.
But also NPCs (Monsters and Humanoid), Vehicles, Weapons and Items.

MESA is Mel scripts bases exporter and importer Tools. This scripts are the rewritten / edited Scripts from Valve, and originally designed for maya 4.5, that was also deeply rewritten by Prall .

MESA is compatible with all recent version of Maya ( 2011/2012/2013 x86 and x64 bits )

Changelog :

MESA 1.1

  • Filemenu.mel that overwrite the maya filemenu has been removed, all the commands are now available from the MESA shelf.
  • The Compile Log is now displayed now into the script Editor.
  • The Cube sample scene has been remade in maya 2012 , so more people could open the scene on different version of maya ( 2012, 2013, 2014)
  • New icons : Import SMD reference, Import SMD sequence, Export VTA


  • Connect poly shape
  • flipanim
  • create Tube
  • jsCreateCreature
  • usersetup.mel ( old custom valve menu with IK limb commands ).

Use Maya native tools instead of those very old commands :

  • ajrAutosave : maya as his own native autosave feature
  • autoconnectNonlinear.mel
  • WireframeOnShadedTog.mel
  • xrayTog.mel
  • PaintCrease.mel
  • PaintSmooth.mel
  • vertweld
  • UniteFaceUv


  1. Pingback: Warclimb | Creación de mapas para Counter Strike Go

  2. Tried using this for my mod, and it works well! Great job! I do have a suggestion for a feature that would help out a lot though:

    Can you add some way to skip certain joints from being included in the export? Sometimes I use hidden joints as controls for rigging, and the exporter will try and include them as part of the smd and fail. I also have some scenes with multiple skeletons, and it’s a real pain to have to save temp scenes with some of the objects deleted in order to export.

    What comes to mind is allowing the exporter to skip joints with the “Visibility” key set to false.

    • Actually now that I think about it some more, it may be simpler just to have an “Export Selected” option instead.

      • Hi, DrSpud, thank for using mesa :)
        There will be a new version of mesa (1.02) this very next time, but it will not include the features you suggest me.
        We are using MESA on complex rigged models for Jurassic life, and we don’t have any problem like the one you mention here.
        what does the joint you want to exclude from the export in your rig ? Could you change your process and using nurb curves and contraint instead of bone controller ?, because in the past time i already tryed that way to exclude joints, and it was just impossible with the actual architecture of the scripts, but i can exclude some different other type of components from maya.
        All bone that are skinned to the model, are exported as active bone, the exporter also export some components as joint on the smd file.
        To fix that before to compile your model add a “$collapsebones” in your qc head, all the null bone ( none skinned joints) will be collapse and wil not appears in your skeleton hierarchy.

        Put all your joints and controller like Nurbs Curves/shapes on the default layer, or create one named skeleton or rig.
        the model is on the reference layer and about the physic model, this is just a layer called “physics” with some boxes that are just parented correctly to the joints, and you don’t need to bind the boxes to the joints. and it work nice in HL2 for the ragdoll.
        If you open the smd file into a text editor you will be able to see what is exactly exported, all the bones with the -1 values at the end of the declaration lines, are deleted when you using $collapsebone.
        Often time the root bone must be collaspe too with $alwayscollapse “root_bone” in the QC.

        Currently i clean up the scripts and remove all the obsolete stuff. My objective right now, is just to give more compatibility with different version of maya, the filemenu.mel, of maya 2013, break the file menu access in previous version of maya. So I simply removed the filemenu.mel , and try to build my own, but get other issue , so finally all the commands from the file menu will be now on the shelf.
        The bigger problem i encounter myself, happens when i do a full export of a model that have thousand of frames to export.
        So for that reason i want to refine the Animation tab, and a check list, so the exporter will only export the selected animation, not sure if it will come in the next update.
        the emergency is the documentation, it really need a basic workflow tutorial, and a short how to proceed, to update mesa with the latest version.


        • FYI the above referred to generating the smd. I haven’t tried creating QCs with Mesa yet.

          Usually I try not to use joints for controls. In this case, it happened to be useful. I wanted to use an IK Spline Handle on a character’s spine, but Maya couldn’t seem to calculate the right “preferred angle” for the spine joints. The IK Spline would screw up the joints. So I made a new chain of hidden joints, set up the IK Spline on those, and gave them a parent constraint to the real spine. Worked really well.

          But the Mesa SMD export would fail because (as I discovered some time later), the control joints were in a hierarchy under a nurb curve controller. I guess the exporter can’t handle joints that are in a hierarchy when the root object is not also a joint.

          Whether or not using joints for controls is “good practice”, it’s a little silly that I can’t export an SMD because I happened to have joints somewhere in a control hierarchy. The only joints I want the exporter to deal with are the ones skinned to the model.

          However, since writing my last messages, I edited “smdExport.mel” by hand and got it to export my model. My solution might not be perfect, but it worked for me. Here’s what I did:

          In the function buildExportLists, by default the script does this:
          1) gets a list of all the root objects
          2) gets a list of all objects that should be ignored
          3) looks at the hierarchy under each root object and checks if it’s “okay”
          4) removes any objects from the list of root nodes that are in the ignore list.

          This was odd because, if I’ve got for example a nurb curve as a root object, it will first check it’s hierarchy (full of objects that won’t be in the export), THEN remove it. Why did it check the hierarchy if it was going to be removed anyways? So I simply reversed steps 3 and 4. This allowed me to export my model that used control joints (even excluded the control joints from the export!).

          • hey, it work like that for us, without modify the scripts :

            –spine1_parentContraint (to a nurbs curves)

            on a different layer the nurb curves hierarchy add the 3 nurbs shapes, the parenting is not important.
            as the joints have the parent contraint that link it to the nurbs shapes.


  3. When I export the .smd it only has the skeleton and nothing attached to it, what did I do wrong? I’m trying to export one of the Lina costume pieces I downloaded from Valve so I know it’s set up properly. Could it be my maya.env?

    // here is the path for the Icons for MESA

    XBMLANGPATH = C:\Dota2\mesa\icons


    SOURCE_BIN_PATH = “C:\Program Files (x86)\Steam\SteamApps\common\dota 2 beta\bin”

    // here is the path of the mod directory that contain all your source files.

    SOURCE_MOD_PATH = “C:\Program Files (x86)\Steam\SteamApps\sourcemods\dota2”

    // here is the name of your working directory ( the source )


    // Unfortunally it’s important to set this path of the source sdk tool a second time.

    SOURCESDK = “C:\Program Files (x86)\Steam\SteamApps\common\dota 2 beta\bin”

    VPROJECT = “C:\Program Files (x86)\Steam\SteamApps\sourcemods\dota2”

    • Hello Crucial, this problem appears mainly when the layer are badly setup
      Well, if you are exporting a reference model, do a right click on the reference layer, and choose Membership.
      now you are in the relationship editor, be sure that the reference layer is highlighted on the left, and on the right column select the “reference model” node AND the “ReferenceShape” node.


  4. thanks for the great work. i was wondering, will the exporter work for non-static props, e.g. making custom players. would it be possible to post a workflow for that

    • hello, i already use it will all type of model and animation for the source engine, character, view model weapon, player model, etc..
      but i accord you that point,there is no tutorial for the source engine specific to the character creation an animation workflow.
      it only depends on your need, so if you need a human biped , source engine 2007 branch has one main skeleton for all the human, it a generic.
      if you need to change the length and the position of the bones, you must use motion mapper, to converted the smd or it will fucked your animations.
      you can also use the TF2 models of the sdk, but if you using mesa it mean the official tools failed to works for you.

      A quick overview of the step to follow to have a biped compatible in maya for npc and players models :

      you only have to import the reference model with the bone, delete the mesh, and add your own model , remake a Smooth bind to assign the vertex to thee bones ( max 3 influences).
      you can import an animation of running, like Run_N.smd, so you can test out and get a feedback on the deformations.
      after that you just have to export the reference and export your model with the humans_sdk content. it will depend if you want a player model(with specific Act_GESTURES_…) , or the one for the single player.

      i try to add the reference biped of valve as a template , so you could click on an icon and maya will create the biped in your scene, and i could also join a template for the basic animations like the directional locomotion animation of the npc ( N, NE, NW, E, W, SE, S, SW ). to help people to export characters, and also as a tool to test out the deformation of the model.

      But don’t expect me to create the tutorial, right now, as i donot have time for that, also to fix mesa, like for the filemenu.mel that overwrite the one of your maya version, and cut the connection to mudbox and xsi from the maya menu.
      I will try to do my best for people to handle with the engine and the character creation. give me time for that :)


  5. Good morning.. I’m sorry to ask stupid questions,but I’m trying to use MESA with Maya 2011.. The script works itself,but doesn’t do anything. I try to set up the path,and it’s always giving me the same anwser (Unspecified path,or unknown path). It really bothers me,since i was trying to compile a model for L4D2 .. and I’m really blocked. I checked the full tutorial already,but it didn’t really help me. Thanks for anwser,Jack.

  6. Hello again Nicolas and you guys.
    I discovert a problem in exporting my own animations, after testing the installation and usage of the exporter with the provided example_cube: The shader which contains the Texture of the uv map can not be exported correctly:

    exporting vmt files:
    exporting shader
    *** The following shaders did not export correctly:

    Does anyone know this problem and a soultion for a DAU ?

    Greets StudentR

    • hello StudentR
      Do you have properly set the project folder for maya ?
      Is your materials path in maya, is a full long path on your drive or is the path start at “/materisrc/etc/…” ?
      If you have the full path, it mean the project is not properly set for maya.
      also when you open the smd option panel, on the path tab, , is the material path is limited to /materiasrc/, because if there is a problem with the texture map, the exporter will point the same path then the smd output folder ?
      the path is always ended by “/materialsrc/” for the export to works, if there is something else, here, there will be a problem to export the material, and the QC will not include the $cdmaterials “/path/”, and the material will be the valve default debug empty shader, the one with the purple and black check-board..

      hope it help :)

Comments are closed.