Copyright (c) 2017
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
It's Symbiotic Design: Maya To XAML Exporter
Using Alias | Maya with Microsoft Windows Presentation Foundation (WPF)
Maya to XAML Received Honorable Mention in the Microsoft XAML Conversion Tool Contest
You can also find a tutorial for using the plugin in the Games Related section.
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.
New Features in this Release
- Designer support in VS.NET
- Added support for Maya 2008, x64 and x86
- Added support for locators
- Added options for exporting objects as direct children of ModelVisual3D.Children
- 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:
Other options will be available in a future release
The export was tested on an 18mb mesh.
The newly added support for animation export is not feature complete. A couple key differences and constraints in WPF prevent a clean conversion from Maya keyframe animation to WPF. Although Maya and WPF both use cubic bezier curves for animation, Maya allows the user to customize the rotation technique and WPF does not. A future release will provide full support for spline based animation curves.
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. 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 then 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 objects more than 180 degrees, and WPF will only understand the first part of the rotation and SLERP the rest.
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 interpolated to a value less than the start keyframe or greater than the end keyframe value (perhaps extrapolated is a better term ;)). 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 of values specified in the 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.
A Quick History of Maya and XAML/WPF
Incorporation of 3D graphics in film, computer generated animation, and the web, has created a sea change in the entertainment and media industry, with the evolution of faster computers and more accessible broadband information access. At the advent of designing in 3D in the digital space, people could envision the advantages and features that this type of design could have in desktop applications and the internet. However it was difficult and time consuming to implement. Resulantly it took some time for this technology to get a foothold in the market.
In the mid to late 1990's companies such as Silicon Graphics (SGI) first explored the possibilities of 3D to enhance the user experience. SGI broke ground with the first 3D chat and web player called "Cosmo Player". This application was comprised of basic 3D modeling tools that could display semi-realistic environments where people could meet online in a virtual space. They could assign themselves a selected Avatar and put that object into an Open GL rendered scene along with other individuals in the same virtual space. This scenario has become more practical and realistic in more recent times with faster processors and broader technology access.
There were detractors to this setup. SGI hardware was costly and they realized that they needed to stay on top of their competitors like Max and Lightwave on the Windows platform. Competitors, such as Alias, released a version of Maya for both Mac and Windows. Like Apple Mac OS of today, Alias Wavefront was able to develop the software to run on a cheaper Intel chip. The goal to have entirely real-time photorealistic 3D on desktops by 2010 had been set by most software companies in the graphics sector. 2010- what a revolutionary year that could be when the best in graphics is available to the common PC not just industrial sized computers.
SGI's commercial assets were Softimage a competitor to Alias software applications. SGI announced a spin off of their core graphics into a separate company and Microsoft purchased Softimage. They both believed there was a future lay in developing these applications. Meanwhile, SGI banked their future on highend hardware and the Irix OS, that is used in medical fields and large government organizations, which is now "Tits up" says the CEO.
Another player in this field was an upstart company based in San Francisco, Macromedia. They developed a vector based UI called Flash. Their attempts at creating a desktop application platform were not as successful. They ran a quick launch with Macromedia Flex but ran into cost issues. Flashes downfall being no windows integration and no propagation into the offline user experience. This tool was not as attractive to desktop developers because it lacked the integration with core operating system functionality and the desktop development tools.
Arguably, other products tried to fix these shortcomings with tools like jGenerator, later known as Lazlo, an open source tool. Flash was developed as a web platform and pushed into the desktop and kiosk markets. They looked at it from the top down instead of bottom up and pushed a web product as a desktop development tool, vs. a desktop development tool as a web product. Flash will remain a widely popular platform for the web and will probably always be the cross platform leader in vector UI.
Maya went from IRIX (SGI) to running on Windows (the same is true for Softimage), and Alias was acquired by Autodesk. Alias won an academy award for Mental Ray, "a highly programmable computer-graphics renderer incorporating ray tracing and global illumination to realistically simulate the behavior of light in computer-generated imagery.
"Alias|Wavefront's Maya received highest honor the Academy can bestow - an Oscar"