This plug-in allows designers to create compelling 3D user interfaces in Maya and export to XAML, the next generation application GUI markup language for windows and the web. Objects created in Maya can be used as hit targets, windows forms controls, and more. Because the objects are kept as vector data in the interface, the user can scale the entire application and keep the same look and feel. Look for future export features like animation, mesh optimization, xml formatting, and the ability to specify the WPF target type template for Maya objects.

Download here(FILE SIZE: 1087 KB)...


New Features in this Release
  • Designer support in VS.NET
  • Performance optimization

Existing Features

  • Polygon reduction and optimization specific to XAML.
  • Export support for lights, cameras, materials, instanced meshes, textures
  • Transparency maps (must use PNG with alpha)
  • Animation export. Basic animation is supported, see details below.
  • Fixed error loading XAMLExport.mel (Export options dialog now opens)
  • Memory leaks fixed
  • Major performance fix in very large mesh exports
  • Fixed memory consumption on large mesh exports

System Requirements
.NET Framework 3.0
Maya 6x, 7, or 8x


Download the latest .NET Framework 3.0 CTP

Future Features

  • Exact animation curve export.
  • XAML Formatting.
  • Baked Textures (export procedural textures as file textures).
  • Add animations, materials, and other resources as resources, instead of directly adding into the "visual tree".
  • Be able to specify if you want to copy files, for textures, to the output directory of the xaml file. This will also modify the path automatically and make the path relative.
  • The information specified in the Place2DTexture Nodes should be exported too. At least some of the settings of the Place2DTexture Node have a representation in xaml for example Tile, Viewport attributes.
  • Specify output template file for output formatted export
  • Export video textures as video on mesh
  • Export pattern brushes, for textures with fractals, gradients, etc.
  • Instance object materials
  • Mac OS X version

Known Issues

  • Texture files will throw a System.Security.SecurityException if the xaml file and texture files are run from the browser. Try running from a vs.net project instead.
  • Skinned meshes and nurbs are not supported.
  • Rotation animation only works when Maya is in Quaternion animation mode. This is a limitation of the .NET Framework 3.0.

Installing Maya To XAML

  • Extract the contents of the compressed file.
  • Copy the correct version of the [MayaVersion]/MayaToXAML.mll file to your bin/plug-ins directory.
  • Copy the scripts/ExportXAML.mel to your ( My Documents/maya//scripts ) directory.
  • Launch Maya > and go to the Window Menu > Settings/Preferences > Plug-in Manager...
  • In the Plug-in Manager > Click loaded next to MayaToXAML.mll

Using Maya To XAML

  • Open or create a new mesh file: File > New Scene or Open Scene...

Note: If your mesh is NURBS, you will need to convert it to polygons. To convert to polygons, go to the Modeling view and select the mesh. In the Edit NURBS menu, click the Rebuild Surface Options button icon. Choose the Polygons option, in the Output Geometry section and click Rebuild.

To export the mesh data, go to the File menu and click the Export All Options icon. Choose the XAML file type.

Click the Export All button and enter the file name. Select xaml from the file type.

The following export options are functional:

  • Filter Export
    • Polygon meshes
    • Cameras
    • Animations
    • Lights
    • Normals
    • Texture Coordinates

Other options will be available in a future release

Animation
The newly added support for animation export is not feature complete. There are some fundamental differences in how Maya and WPF handle animation and how Maya allows the user to customize the rotation technique. A future release will provide full support for spline based animation curves. A couple key differences and constraints in WPF prevent a clean conversion of Maya keyframe animation to WPF. Both WPF and Maya use cubic bezier curves for animation.

Difference #1:

Maya has the ability to use different rotation spaces based on the user's selection. Maya's default rotation space is Euler rotation, which can be changed to Synchronized Quaternion via a simple user preference setting. All though WPF provides basic abstraction of its core Quaternion rotations via Euler rotations, it always uses Quaternion rotations at the core of the framework. If you're not using animation, this is a non-issue, but if you plan on animating rotation, you must change the setting in Maya to use Quaternion rotations. Otherwise, the Euler rotations in Maya will allow you to rotate your objects more than 180 degrees, and WPF will only understand the first part of the rotation and SLERP the rest.

Difference #2:

Maya's keyframes have the same concept of the KeySpline property, found in WPF DoubleAnimationUsingKeyFrames, known as animation curve tangent controls in Maya. However, Maya does not place an upper or lower bounds constraint on the p1 and p2 control points (KeySpline X1,Y1 and X2,Y2).


WPF constrains the KeySpline values by placing an upper bounds of 1 and a lower bounds of 0 on the KeySpline property. The constraint means that animated values can not be interoplated to a value less than the start keyframe or greater than the end keyframe value. The developer's rationale behind this was purely ease-of-use. Users understand the values as ease-in and ease-out, which is easier understood as values between 0 and 1. I tend to side more on enabling the user.

Maya assumes the user has a better grasp on animation curves, and it allows you to modify the tangents so that values are affected outside the values of the specified key segment. Unfortunetaley, the only viable solution to converting the Maya animation curves to XAML animation curves, is to subdivide the Maya animation splines when a curve affected value is less than 0 or greater than 1, using a technique called de Casteljau's algorithm. For now, when you encounter this issue, you can split your curves in Maya's Graph Editor.

I hope to have more time to detail these issues and provide some special attention in future releases.

A test scene in Maya..




Exported into WPF..




Click here for more details...




Technorati Tags: ,