# Main Window

In the main window of qME you find everything you need to load, save and navigate the model.Click inside the screen shot below to find out more about qME's editors, menu's and buttons.

### File Menu

You use the file menu for loading and saving quake model files and for importing and exporting frames and skins.

You can select one of the following model operations :

- "New Model" clears current model.
- "Open Model" lets you select a model file on disk and load it.
- "Merge Model" lets you select a model file on disk and merge it into your current model.
- "Save Model" lets you save the current model to disk.
- "Save Model As" lets you save the current model under a different name.
- "Close Model" lets you same as New Model for completeness sake..

You can edit skins in an external editor. For importing and exporting skins, the following operations are supported.

- "Import Skin" allows you to select bitmap file and import that. The imported bitmap must be a 256 color bitmap. The palette in the bitmap will be automatically converted to the Quake palette and the image will be stretched to match the dimensions of your current model.
- "Export Skin" allows you to export the currently selected skin in the Skin Editor to a file.

For importing skins qME supports the Windows Bitmap (BMP) and ZSoft Painbrush (PCX) formats. For exporting currently only the BMP format is supported. Note that currently the import of bitmaps is limited to files that have exactly 256 colors. If qME reports a conflicting color depth, then make sure you saved your bitmap with 256 colors.

For importing and exporting meshes made in other modeling programs, the following frame operations are supported :

- "New Model From Base Frame" will clear the current model and allows you to select a frame file on disk. The imported information is transformed into a base frame and a base skin.
- "Import Frame" will import a frame into your current model. The number of triangles found in the imported frame must exactly match the number of triangles of the current model, otherwise it can not be imported
- "Export Frame" will export the frame that is currently selected in the frame editor to either a DXF or a CAD file.
- "Import Multiple Frames" will import from a FRS file. A FRS file is an ascii file describing which files in the same directory as the FRS file are imported and what names the scenes have.
- "Export Multiple Frames" will allow you to export the frames in the current scene or the frames in all scenes in DXF or CAD format. The operation will also write a FRS file describing which frame files were written.

> The dialog above is show when you selected the "Export Multiple Frames" menu item. As you can see, you can select a FRS file to export to, an export range and a frame format.

Note that qME expects triangles inside frame files it imports. If qME reports that it cannot find any triangles in your imported file, make sure you have the appropriate export settings selected in your external modeling program. In particular for users of Breeze Designer, make sure you "decompose" the objects before exporting them.

For importing qME currently supports 3D Studio (3DS), LightWave (LWO), Breeze Designer (CAD) and AutoCAD (DXF) formats, for exporting only DXF and CAD are supported.

### View Menu

The view menu is used to start the editors and to show or hide the dockable palettes available in qME.

- "Model Property Editor" change properties that affect the whole model.
- "Frame Editor" edit the 3D frames in the model.
- "Skin Texture Editor" edit the skin texture and the skin vertices in the model.
- "Skin Color Editor" edit the colors in the skin.
- "Joint Track Editor" edit the joint tracks for key-frame animation.
- "Tool Palette" select a tool for editing.
- "Tool Properties" configure the selected tool.
- "Color Palette" select a color for editing.

### Options Menu

You can edit the options of all editors and arrange position of the editors in the main window.

- "Edit" edit the options of all editors.
- "Tile Vertical" arrange active editors side by side.
- "Tile Horizontal" arrange active editors above and below.
- "Cascade" arrange active editors stacked on top of each other.

### Help Menu

Use this menu to view the About box.

### Toolbar

The top row of the toolbar contains shortcuts to file operations.

From left to right these buttons represent :

- New Model : Clear current model.
- Open Model : Select a model file and load it.
- Merge Model : Merge an existing model file with the current model.
- Save Model : Save the current model to a file.
- Save Model As : Save the current model to a different file.

The bottom row of the toolbar contains shortcuts to the editors.

From left to right these buttons represent :

- Model Property Editor : Change properties that affect the whole model.
- Frame Editor : Edit the 3D frames in the model.
- Skin Texture Editor : Edit the skin texture of the currently selected skin.
- Skin Color Editor : Edit the skin colors of the currently selected skin.
- Join Track Editor : Edit the joint tracks, for the current scene.

### Object Library

The object library is a tabbed notebook with buttons that represent prefab models.

Pressing a button will insert the prefab into the current model.

If you want to insert objects from outside the object library, then use the "merge model" operation from the File Menu.

The library is nothing more than a directory tree that is created during installation of qME. The prefab models are normal MDL models that are merged into the model you are building when the button for a prefab is pressed. This gives you the unique capability of creating your own prefabs and using them as basic building blocks in your model creation. Just create sub directories on the same level as the "geometry" directory.

Note that if for some reason the object library disappears, use the "Edit" operation from the Options Menu to select the correct path to the base directory of object library.

### Tool Palette

The tool palette is used to select an editing tool that can be used in the frame editor or skin texture editor.

A selected tool can be used both in the skin texture editor and frame editor. Look in the respective editor descriptions for the exact description of the tools for that editor.

When an object tool is selected, then objects can be modified even if the frame editor is not open. By selecting an object in the object tree panel and selecting the current frame in the frame tree panel the object pivots can be changed in the Tool Properties palette.

### Tool Properties

Tool properties let you change the way tools operate. For some tools you can also change values of selected items. Presently, only a few tools have a properties that can be configured, but that may change in future releases.

#### Pen Tool Properties

For the pen tool you can select the pen size to use. The pen size is used both in the Skin Texture Editor and Frame Editor.

#### Object Tool Properties

Tool properties for object tools operate on the currently selected object. The tool properties for object tools let you configure the range of frames the tool modifies and the way in which it modifies them.

To find out more about objects and pivots, take a look at the description of the object tree panel and the concepts page

You can change the way an object tool operates in 3 ways:

##### Scope

The scope describes the range of frames on which the movement has impact.

- "Frame", only the object pivot in the current frame is affected.
- "Rest of Scene", the object pivots in the current frame and all frames up to the end of the current scene are affected.
- "Whole Scene", the object pivots in all the frames of the current scene are affected.
- "All Scenes", the object pivots in all the frames in the model are affected.

##### Mode

The mode describes how the movement is translated into movement for pivots in frames other than the current frame.

- For example when you selected "Relative" mode, and you move an object for example from 10 to 20 in the Z direction, then the pivot in the current frame is at Z=20. The pivots in the other frames that are in the selected scope are all move 10 in the Z direction too.
- On the other hand when you selected "Absolute" mode, then when you move the same object from 10 to 20 in the Z direction, then again the pivot in the current frame is at Z=20. But the pivots in the other frames that are in the selected scope are also moved to Z =20 regardless of their previous position.

##### Subject

The subject indicates what the object tools should operate on.

- When you select "Object" as subject, this means that for example moving an object will move the pivot along with the vertices that belong to that object and any child objects.
- When "Pivot" is selected as subject, then when you move the object, only the pivot is moved. Neither vertices nor child objects move in this situation.

### Skin Tree Panel

The skin tree panel contains a list of all skins in the model. Reordering the skins is done by dragging and dropping them in the list. Renaming the skins is done by selecting the skin and then clicking the text. This will put the skin label in edit mode.

The skin tree panel has a local menu that will appear after selecting and then right clicking a skin. Use this menu to duplicate, create, copy and delete skins from the skin list.

- "Duplicate" lets you create a number of exact copies of the selected skin.
- "New" lets you create a completely black skin.
- "Cut" lets you copy the current skin to the clipboard before deleting it.
- "Copy" lets you copy the current skin to the clipboard.
- "Paste" lets you create a new skin from the bitmap found on the clipboard.
- "Delete" lets you delete the currently selected skin.
- "Import" lets you import a skin from a file.
- "Export" lets you export a skin to a file.

### Frame Tree Panel

The frame tree panel contains a hierarchical representation of scenes and frames.

The frames are organized in a two level tree. The root level contains the scenes. A scene depicts an action that a monster can perform like walking, dying etc.

A special kind of scene is the framegroup. A framegroup can be recognized from the little clock in the lower left corner of the scene icon . A framegroup defines a client-side animation, who's playing is completely handled outside the Quake C code. In order for a client to be able to do this, you need to specify the exact duration of every frame. Look below for a further explanation of client-side animation with framegroups.

You can use drag and drop to reorder scenes, to reorder frames or to move frames between scenes.

The frame tree panel has a local menu that will appear after selecting and then right clicking a scene or frame. Use this menu to duplicate and delete scenes and frames.

- "Duplicate" lets you create a number of exact copies of the selected scene or frame.
- "Delete" lets you delete the currently selected scene or frame.
- "Import Frame" lets you import a frame from a file.
- "Export Frame" lets you export a frame to a file.
- "Import Multiple Frames" lets you import scenes from a directory.
- "Export Multiple Frames" lets you export the frames in the current scene or in all scenes to a directory.
- "Reconstruct Base Frame" lets you create an approximated base frame from the skin vertices.
- "Renumber Scene" lets you renumber the frames in the current scene. This will just rename the frames in the current scene to have a nicely ascending numeric range.
- "Split Scene at Frame" lets you split the current scene into two scenes at the current frame. The current frame becomes the first frame of the newly created second scene.
- "Append Scene to Previous Scene" lets you merge the current scene with the previous scene. This will append the frames of the current scene to the scene before that.

There are two menu items in this menu that are related to framegroups. As mentioned before framegroups are used for client-side animations. An example of a client-side animations are the torches that you find everywhere in the Quake levels. These torches are not controlled by game code, but are just frames that are being played in an endless loop.

To create a framegroup use the "Group Frames for Scene" operation. The scene icon will change into this icon. The local menu will be changed too. The "Group Frames for Scene" menu item is now change into "Ungroup Frames for Scene" that makes it possible for you to turn the framegroup back into a regular scene. Also the "Edit duration of Frames for Scene" menu item will be enabled when you have selected a framegroup scene.

Activating the "Edit duration of Frames for Scene" operation will show the following dialog.

The duration which is specified in seconds can be changed for every frame. The initial duration of each frame is one tenth of a second which means the animation is played at 10 frames per second.

### Object Tree Panel

The object tree panel contains a hierarchical representation of objects in the model. There is a single object hierarchy for the whole model.

A pivot holds the state of an object for a single frame. The state consists of a 9 parameters containing a position vector, rotation vector and scale vector of the object. In every frame an object has a pivot that holds the state of the object in that frame.

This might seem a bit confusing so now as an example suppose we have two frames in our model and three objects. We have a pivot for every object in every frame. This means we have a total of 6 pivots in the model.

If you click a solid icon in the hierarchy you will show / hide the object in the frame editor. This only is a view option, that allows you to unclutter your screen. You will not change the model in any way by showing and hiding objects.

For an object you can designate parameters as a joint. For example you can designate the rotation around Z as a joint. To start the joint editor for an object, click a icon or click on the space where this icon would appear in the object tree. See the description below for an explanation of the joint editor.

To change the object hierarchy, drag and drop objects onto each other. Any operation like scaling or moving that are applied to a parent object automatically affect the children of that object too. This is called Forward Kinematics. Future releases may support Inverse Kinematics, which means that operations applied to children will modify the parent objects in order to reach the goal.

The object tree panel has a local menu will appear after selecting and then right clicking an object.

- "New Object" lets you create a new object as a child of the current object.
- "Delete Object" lets you delete the current object. Note that child objects are not deleted, but these are attached to the deleted object's parent object.
- "Edit object Joints" lets you start the joint editor.
- "Reset Object Pivots in All Frames" lets you reset the pivots of an object in all frames. This operation calculates the center of the vertices of the object and uses that as the origin of the object.
- "Reconstruct All Objects" will throw away all objects and then recalculate a new list of objects by scanning for connected triangles.
- "Assign Object Vertices to Object" lets you select from a list of objects to assign the vertices of the current object to.

You can use the joint editor shown below for adding and removing joints.

In the image above you see that the Z rotation of an object has been turned into a joint. The name of the joint is Rotor Turn, which will be available as a joint in the Joint Track Editor after closing the dialog.

The TX,TY,TZ values are the translations in X,Y,Z direction. The RX,RY,RZ values are the rotations are the rotation around the X,Y,Z unit vector. Finally the SX,SY,SZ values are the scale factors applied in X,Y,Z direction.

## Color Palette

You can select the color that painting tools should use from this color palette.

## Status Bar

The status bar shows information about selections that are made and hints.

From left to right the the first panel contains specific information about the current selection. The second panel contains information about a relevant related item. For example, for a vertex the second panel shows the name of the object the vertex belongs to. The third panel shows the current hint.