alOOF version 0.8 Copyright (C) 2001, 2002 by Alan deLespinasse. Introduction ------------ alOOF is a free editor for Outrage Object Format (OOF) files for Descent 3. It's not really complete yet, but it allows to you do pretty much everything you are likely to want to do with an .OOF file, at least in theory. If a newer version has been released, you should be able to find it wherever you found this version. The "official" site for downloading it is: http://descent.aldel.com Bugs and suggestions can be reported to me at the following address: aldel @ alum.mit.edu The best place for questions and discussion is the Descent Development forum of the DBB, which is at www.descentbb.net. Installation ------------ Create or choose a directory to install in. Put all the files from the zip package in this directory. Then run the aloof.exe program. If the .OOF file type hasn't been registered by another application, alOOF will ask if you want to register it so that double-clicking on the files opens alOOF. If you're upgrading from a previous version of alOOF, it's a good idea to delete the old aloof.exe file and replace it with the new one. This way double-clicking on an .OOF file will open the new version, even though it was registered by the old one. You might also want to create a link to aloof.exe from your Start menu or desktop Usage ----- Maybe I'll write some tutorial information someday. For now, I'm hoping that the menu interface will be mostly self-explanatory. Everything you can do will keystrokes can also be done through the menus, and the menus tell you what the equivalent keystrokes are, with a few exceptions: To change your point of view towards an object, you can simply drag with the left button to rotate it, or the right button to move it around. Shift+left button lets you zoom in and out, and shift+right button rolls (if rolling is allowed-- see the option under "Rendering" in the Global Settings). You can also use the keypad (with Num Lock on) to rotate around (with the arrows), move left and right (End/PgDn), up and down (-/+), and zoom in and out (Ins/Del). Everything else can be done through the menus. Selection of subobjects, using the regular arrow keys, follows the "tree" structure of the model: some subobjects are "root" subobjects, which have no parent, and some are "children" of other subobjects, which basically means they're attached to them. You can see which subobject is currently selected when you're in wireframe or wirframe+texture mode; it's outlined in green, except the current face is outlined in yellow. All children of the current subobject, plus their children, etc. are outlined in dimmer green, because many editing features operate on the current subobject plus all of its descendants. You can "mark" the current subobject, face, and vertex, but currently there is nothing you can use that for. There is also a current axis, which by default is the Z axis, and which is shown in pink unless you're in textures-only mode. You can set this to the X, Y, or Z axis, or to the normal of the current face or vertex. Modification of key frames is generally done with reference to the current axis. You can change a subobject's rotational position at the current animation frame by holding down Control and left-dragging up and down in the window (which will rotate it around the current axis), or you can use the "Rotate exact" command. Similarly, you can drag it along the current axis using Control+right drag, or use the "Translate exact" command. In general, you will probably want to use the "exact" commands more often than just dragging, because they allow you to specify the exact amount of rotation or translation. Changing the position (rotational or translational) of a subobject at a given animation frame will make that frame a key frame for that object-- but keep in mind that rotational and translational key frames are separate! That is, a given frame may be a rotational key frame for a given subobject but not a translational key frame, or vice versa. Also keep in mind that, although a subobject's children will move with it, this does not mean that they have key frames in the same frames-- their key frames are kept track of separately for each subobject, and they tell the child subobjects where to move in relation to their parents. If you want to make the current frame a key frame for all of the subobjects at once, you can use the "Copy frame" command. This, by default, will copy the current frame into itself; but it will make the current frame a rotational and translational key frame for every subobject. You can also specify that it should copy from a different frame. Note that the frame you copy from does not have to be a key frame, or even an integer. Users of SuperSheep's OOF Editor will find that alOOF handles rotational key frames somewhat differently. In OOF Editor, when specifying a subobject's rotational position, you give it an axis and angle relative to the previous key frame. In alOOF, they are relative to the current position in the current frame. One side effect is that modifying a key frame in alOOF does not modify later key frames. There is also a special frame called "N", for Neutral, which is the default positions for any subobject that has no animation frames. You can probably ignore this unless for some reason you are making subobjects that aren't animated ("Facing" subobjects are one example). For purposes of frame navigation, the Neutral frame is "before" frame 0. Points-- what I call "functional points" for lack of a better general term-- can be viewed one type at a time: gun points, ground points, attach points, or none of the above. There is a "current" point of whatever type is shown, which can be moved or deleted similarly to the current subobject (just hold down Shift while left- or right-dragging to rotate or translate the current point instead of the subobject). There is no mode to view "NATH" points because they are actually part of the attach points; they determine which way is "up" for the corresponding attach points. If you wish to have NATH points, just make sure that "Attachment up vectors (NATH)", under the Edit->Global operations menu, has a check mark next to it, and a NATH point will be generated for each attach point. NOTE: You can't cut and paste points! The "delete" command for points is Ctrl+Shift+X, but Ctrl+Shift+V does not paste a point; it pastes a subobject as a child of the current subobject. The key mappings aren't 100% logical; I'd welcome any suggestions for improvement. The "Vertex to origin" command does not modify a key frame; it modifies the subobject itself so that its origin is at the current point. The entire subobject will shift so that the current point is wherever the origin previously was. If you're going to do this, you probably want to do it before making any key frames. (The origin is the center point for all rotations; any axis that the subobject rotates around must pass through the origin. The current axis is always shown starting at the origin of the current subobject.) The "Recalc vertex normals" is basically for cancelling out a bug in D3Tool which makes it calculate vertex normals incorrectly, which makes lighting not work correctly on some objects (specifically, Gouraud-shaded ones). If you built the object by converting from ORF to OOF format in D3Tool, you will want to run this command. It fixes the entire object at once. Thanks... --------- ...to all the folks on the DBB who provided suggestions, criticism and testing. ...to SuperSheep for hints on the ORF file format, and for being friendly competition. ...to Gwar for D3Edit and the original OOF file spec. ...to Outrage Entertainment for the whole deal. ...to Rachel for not laughing too hard at how I spend my time, and for a bit of MFC help.