Home Downloads Docs Support Order FAQ


Point Oven Maya


Introduction

Point Oven is a commercial suite of plugins designed to bake vertex and fcurve data to streamline pipelines, and to transfer data between different applications. Point Oven can be used to simplify your existing scenes by baking complex deformations, or to share data with other users who have Point Oven but may use a different 3D application. Point Oven currently supports XSI, Maya, 3DS Max, Lightwave and Messiah.

The Maya Point Oven plugins allow you to import and export several different file formats:

MDD Files
Mdd files are used by Point Oven to store deformation data. When an MDD file is exported, Point Oven saves the position of every vertex on the chosen mesh for every frame of the animation specified. Once baked, the mesh can be stripped of all deformers and animation, and have just the Point Oven MDD reader plugin applied. This will then read the data for the specified frame and deform the mesh to the correct position.
For high resolution poly meshes this can be alot of data to read/write and thus MDD files can be quite large, however, the Point Oven MDD reader plugin only loads the data for the specified frame, minimising memory requirements. The data is stored as binary for speed and efficiency and thus can't be read in a text viewer.

LWO2 Files
LWO2 is the standard object file format used by Lightwave 3D. Point Oven uses this file format to transfer objects/meshes with multiple UV maps between the supported applications. LWO2 supports poly mesh objects only and is a binary data format.

Scene files (LWS, FXS, PSC)
LWS is the Lightwave scene file format, FXS is the Messiah scene file format, and PSC is the native Point Oven scene file format. These are all formats that share the same principle of referencing objects and storing motion information. This means that if you had a simple scene with a cube animating up and down, these files would store a path to the cube LWO2 to import, and the fcurve motion data of it moving up and down. If you export the motion via an mdd file, the motion isn't stored in the scene file, instead the scene file references the mdd file to apply to the object. At no point is the mesh information stored in any of these files. With this in mind, it is important to export the objects to LWO2 files at the same time as exporting a scene file, thus the file has the correct file paths to reference. If you do not export the LWO2s the scene file will have invalid paths and fail to load. LWS and FXS files are ascii formats and can be loaded into a text editor, where as PSC is a binary format.

MOT files
Point Oven can export fcurve motions to seperate motion files for each object. Currently these are stored in Lightwave motion MOT files. MOT files are ascii files and can be opened in a text editor.



Baking


The Point Oven Baker plugin for Maya can be found in the main menu left of the help menu.



The baker plugin is the first tool you are likely to use. It is with this you can bake your mesh and fcurve data to the various supported file formats. When you run the Point Oven Baker plugin you will be presented with the baking interface which has been broken into the following tabs:



MDD Tab




The mdd tab allows you to activate mdd file baking of meshes, and to specify where the files are to be stored. Point Oven for Maya bakes based on selection, so any items you have selected in Maya will be passsed to Point Oven for processing.

The first two controls enable mdd baking and specify where the mdd files are to be stored. If you wish to bake your deformations these must be activated.

When "Bake by set" is enabled the baker will ignore any items selected in the viewport, and instead bake the items in the given set. The list box displays all of the current sets in the scene, allowing the user to select the set to bake. Note that this set list only applies to the mdd files. There can be other data types in the set, ie cameras, lights, nulls, etc, any non polymesh data types will be automatically ignored by the mdd part of the baker. If you create a new set and the set doesn't appear in the list, turn off the "Bake By set" control and then turn it back on again. This refreshes the data in the list box control, and your newly created set should appear.

Point Oven will automatically name the mdd files according to the nodes you are baking. The frame range for the Baking process will be taken from the frame start and end frames set in Maya itself.

Note: All errors that occur inside any of the Point Oven plugins will be reported to the Maya script editor. Always check the script editor before contacting support.



Scenes Tab




The scenes tab is where to setup scene formats and file paths for export. Each format has a checkbox to enable export, and a file control to specify where to save the scene. Multiple scene formats can be exported in one bake. To export to XSI, Maya or 3DS MAX use the Point Oven scene format.



Objects Tab




The objects tab is where to setup the mesh export settings. The controls allow you to specify what object file format to use and where to save them. Most cases using Point Oven require baking to another program and thus the LWO file format should be used. The OBJ or LWO filename is based on the item name inside Maya so you only need to specify the directory to store the object files, for importing and exporting individual LWO files see the Maya LWO import and export plugin section of this documentation.

The "LWO path overide" option is mainly aimed at a Lightwave<- ->Maya pipeline. To explain this function here is a scenario:

UserA is working in Lightwave texturing several characters for a project.
UserB imports the objects UserA is texturing into Maya for animation.
Once UserB has finished animating he wants to export the scene for rendering in Lightwave. UserB exports the MDD files, LWO files and an LWS file.
When UserA loads this scene file the objects do not have all of his Lightwave specific textures on and so he has to replace each object with his textured object.

This could be very time consuming when dealing with hundreds of objects. This is where the "LWO path overide" function comes in useful. When this is enabled the baker looks for a string attribute called LWOPATH on the object it is baking. This attribute should contain a full path to an LWO file that the user wishes to use in the exported scene instead of exporting the LWO file.

If this method is used, the scenario above would result in UserA loading the scene into Lightwave with all of his objects being loaded and the correct animation applied thus saving having to replace the objects.

When "Export by set" is enabled the baker will ignore any items selected in the viewport, and instead export the items in the given set. The list box displays all of the current sets in the scene, allowing the user to select the set to bake. Note that this set list only applies to the object files. There can be other data types in the set, ie cameras, lights, nulls, etc, any non polymesh data types will be automatically ignored by the export part of the baker. If you create a new set and the set doesn't appear in the list, turn off the "Export By set" control and then turn it back on again. This refreshes the data in the list box control, and your newly created set should appear.

TIP: Quite often the set used in the exporter will need to be the same as the set used in the mdd baker.



Motions Tab




Along side the baking of geometry, Point Oven can also bake fcurves and convert them for use with the other supported packages. Point Oven refers to this as motion processing, and thus the Motion Tab gives you control over what is processed and how it is stored. For motions to be processed, the "Export Motions" check box must be activated. Once active you must also activate the types of objects to export motions for, you have a choice between, Cameras, Lights, Nulls, and Mesh objects. If you happen to enable Cameras and there aren't any to be processed, Point Oven will simply ignore this flag.

By default, Point Oven will embed the motion of the item into the scene file providing that a scene file has been setup to bake to. If you wish to bake the motion of an item without making a scene file you should enable the “Separate Motion Files” check box. This will bake all of the required motions into separate motion files. This can be very useful if only a couple of items need to be baked for an existing scene.

When "Export by set" is enabled the baker will ignore any items selected in the viewport, and instead export the items in the given set. The list box displays all of the current sets in the scene, allowing the user to select the set to bake. Note that this set list only applies to the motion files. If you create a new set and the set doesn't appear in the list, turn off the "Export By set" control and then turn it back on again. This refreshes the data in the list box control, and your newly created set should appear.



PSC file import



To import a Point Oven scene file (PSC), simply go to file->Open and select the psc you wish to import. Any errors during loading will be reported to the Maya script editor. You can also import PSC scenes into existing scenes.



LWO file support


LWO Export

Point Oven provides plugins for load and saving LWO (Lightwave Object) files from within Maya. To export an LWO file go to File->Export. In most cases it is best to use export selected as you generally only want one mesh exported. If you select multiple meshes for export, one LWO file will be created with each selected mesh exported onto seperate layers on the LWO file.

LWO Import

To import an LWO file into Maya go to File->Import or File->Open and select the file you wish to import. If you open the options you will be presented with the following interface:

Before you attempt to import an LWO file it is advisable to make sure there aren't any 1 or 2 point polygons in the mesh. Maya does not support this geometry type so the LWO importer will return an error if you try to import them.

Once you know you have clean geometry, specify the file you want to import using the “Pick LWO file” control. With the default settings, if you press the import button your LWO file will imported.

Most of the time these default settings will be all you will need, however sometimes you may only want the geometry to be imported and turning off the other options will speed up the import, and prevent unneeded clutter.



Reading MDD files


MDD files may be used to displace geometry in Maya by using the PO_Reader deformer. To apply the deformer to a polymesh, select the mesh, then go to the Point Oven menu and select "Point Oven Apply Reader". This will add a new deformer node and the attribute editor will bring up the following interface:




To apply your MDD file simply browse to the file using the FilePath control. Once there is a valid path the geometry will displace and animate when scrubbing the time line. Point Oven dynamically loads the data to maximise memory efficiency, so playback is governed by how much geometry you are displacing, and how fast your network/disk is. To temporarily disable the effect go to "Node Behavior" and set the "Node state" to "HasNoEffect".

The Offset and End Behaviour controls allow you to control the playback of the MDD file. Offset shifts the entire MDD animation forward or backwards by the number of frames specified. You can also animate the offset allowing looping and other highly customisable effects. End Behaviour allows you to set what the MDD player will do at the end of the MDD file animation. Here you can tell it to stop playing, loop, or ping-pong. These effects are possible through animating the offset parameter, but End Behaviour gives you a much faster and easier approach to this. By combining animated offsets and loop end behaviour you can get some really crazy results!

Interpolation allows you to choose how the MDD file is interpolated at subframe steps. Subframe steps are required when using motion blur or using a different fps in the scene to the MDD file. An example of this is if you bake an MDD file from a scene at 25 frames per second, and then load it into a scene at 30 frames per second, Point Oven will try and scale the MDD file by 1.2. The scale by 1.2 makes frame 16 frame 19.2! In this case Point Oven interpolates frame 20 and 19 to get an approximated value for frame 19.2. The linear mode will simply use 0.8 of the value at frame 19 and 0.2 of the value at frame 20, where as the spline interpolation maps a spline across 3 frames of the MDD file thus getting a non linear subframe value. The spline method is better for objects that are rotating very fast, but is more computationally expensive.

The MDD Reader interface also provides the user with three read only parameters that display information about the data the MDD file contains. These are the number of frames of animation, the amount of vertices in the mdd file mesh, and the frames per second the MDD was baked at. This data is very useful for identifying you have the correct MDD file.

When the MDD reader is applied the script creates a link to drive the time parameter of the reader node. This is to force the MDD reader to update every time the user changes time in Maya. This should always be taken care of by the Apply MDD Reader script but is worth noting here because if this link gets removed the playback will not update. If the MDD file is not playing back this connection should be the first to check. By changing the link it is possible to make the MDD reader playback any frame at any time, but it is reccomended to use the offset parameter to do this. To relink the time use this line of script:

connectAttr time1.outTime PO_Reader1.tmd;

Replace the PO_Reader1 part with the name of the reader you are modifying. For example if you were modifying the 15th instance of the PO_Reader the script would look like:

connectAttr time1.outTime PO_Reader15.tmd;



MDD file format

The MDD file format is very simple and here is a brief description for TD's and developers who are interested in adding tools to a pipeline built around MDD.

The first thing to note is that the MDD file format is Motorola Big Endian byte order as opposed to the Intel Little Endian standard. So however you implement the structure below, you must come up with an algorithm to flip the bytes during file IO.



The data structure is like so:

typedef Struct{

int totalframes;

int totalPoints;

float *Times; //time for each frame

float **points[3];

}mddstruct;



and the data is written like so:



totalframes

totalPoints

Times

while(!totalframes)

{

while(!totalPoints)

{

write point[frame][point][axis];

point++;

}

frame++;

}