Difference between revisions of "Modelview 32"

From FreeSpace Wiki
Jump to: navigation, search
(Copied over from the old FSDoc, made minor edits. Needs to be cleaed up and made encyclopaedic (prefereably without losing too much info).)
(No difference)

Revision as of 09:35, 10 January 2006

Originally part of the Descent Network's FS Toolkit, Modelview 32, along with POF Constructor Suite, is one of the principal tools used in the creation, editing, or viewing of POF files, the model format used by Freespace and Freespace 2. Though not as versatile as PCS, many find its user interface easier to understand, and more intuitive. It was also coded expressly as a POF viewer, with the POF editing functions almost secondary. PCS was coded principally as a POF editor, and its viewer is less well integrated into the program.

The most recent modifications to the Modelview program allow higher poly models to be loaded and edited. Instructions on installing this higher poly vrsion (the community standard) are below.

Installing Modelview (High Poly Version)

See Links for all relevant files

  1. Make sure you have the latest modview: beta 05 build 28.
  1. Install it to your hard drive.
  1. Paste the exe in the high poly zip, overwriting the one in the Modelview folder (often DMTOOLS\MODVIW32).

This version adds no new features to the latest official exe except the ability to load models which may have exceeded various limits which were designed into the older executables. These limits were implemented before the Source Code Project allowed high poly models.

How to edit a POF with Modview:

You can modify a POF file with NEWER versions of Modelview. To begin editing, click the "POF-Editor" button on the far-right of your toolbar. If it's not there, you don't have the latest version. (see above)

Some features like Dockpoint and Path editing are not implemented. You have to use PCS to set these. Note that thrusters are only partially implimented - you can edit existing ones, but you can't delete them or create new ones.


Freespace Co-ordination system for models

It is impertive you be familiar with the co-ordination system of Freespace 2, in order to add additional features to your model such as turret or fighter weapon firing points, thruster glows, dockpoints, paths, shields and subsystems.

Modelview is the best way to learn how this system works since it uses a WYSIWYG viewing pane. The axis directions are as follows:

X-axis: Right & Left => Width of your ship Y-axis: Up & Down => Height of your ship Z-axis, Forward & Back => Length of your ship The number you give for the value of them are in-game meter units. Normally, the co-ordinates of 0, 0, 0 are the model's center(relative to ?Auto Centering set in PCS). Start playing with the numbers. I suggest you to change to wireframe mode, and start with subsystem placing.


Subsystems

Subsystems are extremely simple to modify in Modelview's POF editor. Click on the rectangle next to the red x. This creates a new subsystem with no radius or position. Set the size of the radius to a number which is high enough for you to see it easily. Fighter subsystems are usually only a couple of meters across, while cap-ship subsystems can be much larger.

Now, start playing with the numbers. First, set its height - the Y co-ordinates. You can only change the position of your subsystems by changing their co-ordinates manually. Set it to the right place you want it to be. Do not place a subsystem inside or outside the hull plating of a ship since this would result in an un-hitable subsystem. Try to have the center of the cubes of subsystems on the surface of the hull since this is the most optimal, but FS will basically set any polys it finds inside the radius to be part of that subsystem, and when they are hit, it will damage the subsystem. Standard subsystems on cap-ships include:

$Communications $Engine $Navigation $Sensors $Weapons The type of subsystem box refers to whether or not the subsystem is a normal visible & destroyable subsystem, or the special hidden "$?Split 01" type. The $Split## types of subsystems refer to places that FS will break the model when it is destroyed.
Remember to add a table entry for any new subsystems in ships.tbl

Model

In this pane you can edit things like the eyepoint (where the camera is placed - doesn't save properly though), the mass of the ship and the center of mass, the techroom center (the point around which the ship will spin in the techroom) and lights.

Note, lights aren't actually lights. I don't exactly know what they do, but they don't have any effect that's visible in game as far as I can tell. They are mainly useful as position-getters to find out where a certain thing is in terms of its co-ordinates.


Submodels

Everything on your ship that is not the hull or LODs, is some type of sub-model or in other words, a child of a parent. Eg: a spinning radar dish is a submodel with the main hull as a parent object. This means that the radar dish is attached to the hull, which is usually what we want. In the case of a multi-part turret, the arms are a submodel, with the base (another submodel) as a parent. The base in turn has the main hull as a parent. This means that the arms are attached to the base and so will follow its rotation as it spins. In turn, the whole turret will move with the ship as a whole.

Submodel rotation is another thing you can edit here. Just say you want to have a radar dish on your ship spin all the time. If you already have the model with the radar set to be a child of the hull, you can get it to spin in game quite easily. First step is to allow it to rotate in the submodel pane we're in. Select the radar dish object, and check the "Rotates" checkbox in its properties. Then you decide what axis you want it to spin on. Z will mean it spins like helicopter rotors, Y would make it spin like a drill and X would make it spin like a paddle-steamer. :) It just refers to which axis it's going to spin along, but with the axees all mixed up. Experiment with each (click "Apply" and then "Rotate Parts" to see it spin) until you find the right one.

Once you have decided on a rotation axis, you can move on to the actual text properties box. To get a spinning radar, you would want to enter the following:

$special=subsystem $name=Radar dish $rotate=5.1 This sets the subobject to be a subsystem and calls it "Radar dish" in-game, and sets it's rotation speed to 5.1. (note, this is reversed. the higher the value the slower it spins ;) ) As a final note, to get it working in-game, you would need to add "$Subsystem: radar01a-dish, 5, 0.0" to the subsystem list in the ships table entry. This is just the name of the sub-object, the percentage of hitpoints it has as a subsystem of the main hull and how fast it rotates (turrets only).

To get turrets working, you would follow the same process as above with a few differences: For multi-part turrets, the base should be set to rotate along the Z axis and should have the following properties:

$special=subsystem $fov=180 $name=main turret This does the same thing as the radars properties, but the FOV refers for Field Of Vision in degrees - the cone the turret can shoot things in. Eg, a turret on a flat surface would have a FOV of 180 degrees, meaning it could shoot anything above it but not below it. A turret in a crater or indent would have a smaller FOV, since from a crater, it wouldn't be able to hit as much.

Finally, the arms of a multi-part turret should have nothing in their properties, and be set to rotate around the X axis. (they must also be facing forward on top and backwards on the bottom to rotate correctly)


Shields

Can't really do much here but import the shield data from another model, remove them all together or change the size. Things like the strength and recharge rate of the shields are set in the tables.


Guns

The gun section refers to the primary firing points and missile firing points on fighters and bombers. They consist of a location and a direction, although the direction is ignored by the game - they always point forwards. The firing points of guns or missiles are arranged in banks. You may have noticed how the Herc 1 has two banks - one bank consists of 4 and one of 2, giving it six firing points all up. The Erinyes has two banks of 4 each, giving it 8 all up. Each bank has one primary/secondary weapon assigned to it in the fighter loadout screen in-game.

It's best to have even numbers of firepoints on each side of the fighter in each bank, else it results in lopsided firing if the player fires only one weapon bank. Eg: if you want a fighter to have 4 firing points spread over two banks, it would be best to put a pair of firing points in each bank. In the first bank, you would then place the two firing points with one on either side of the cockpit, and do the same with the second bank.

Note that this is not always followed, even by Volition. The GTB Ursa has a highly unusual, asymetrical firing setup, as do several Shivan fighters and bombers.


Turrets

Probably what modview does best. To make a turret work, you need to use this section in conjunction with the associated submodel properties. If you define a turret in here, but don't give it any properties, it won't be a turret in-game.

To define a turret here, you create a new one and then tell it which bits of geometry to use for itself. For multipart turrets, the "Associated submodel" refers to the base geometry, while the "Rotational submodel" refers to the arms. For single part turrets, the turret's object takes both places.

The next step is to define the normal - where the turret points in its default rest position (which must always be straight up or down for multipart turrets). The 3 numbers you have to enter are basically where you want to point in relation to itself. Ie, if you want to point straight up, you tell it to point at X=0, Y=1, Z=0 - the 1 on the Y axis meaning to point at a point 1 unit above itself.

The firing points are identical to gun firing points, but you've already done the normal. Here you only need to enter the places you want the weapon to shoot from (you can have a maximum of 3 else it crashes the game).

Finally, to complete your turret, you also need to enter a line in the ships table such as:

$Subsystem: Turret02a, 1.875, 3.0

   $Default PBanks: ( "Terran Huge Turret" "Terran Huge Turret" "Terran Huge Turret" )

In the first line this defines: the model the turret uses as the turret (the base of mulitpart turrets), the percentage of hitpoints it has of the main hull, how fast it can turn (the bigger this is, the slower it turns) And on the second line: the "P" in PBanks tells the game to use a primary weapon ("S" is for missile turrets), followed by which weapon to use in each firing point on the turret (I'm pretty sure it only uses the first one for all of them though), so if you have 3 firing points (like this Orion's main gun) define three weapons for it to use.

Thrusters

Since this has only been half-implimented, it's a bit useless. You can only change the location, size and direction of existing thruster glows, but not make new ones or delete old ones.

Anyway, "Prop" refers to the engine subsystem this glowbank is attached to, usually "$engine_subsystem=$Engine" which tells the game it is attached to the "$Engine" subsystem.

The glowpoint positions refer to where you want a thruster plume to appear, the normal refers to where it is pointing and the radius refers to how wide the glow is. Simple as that :)


Links

The Most Recent Official version of Modelview 32: Beta 05 Build 28
Vasudan Admirals modified exe (higher poly limits) Higher Poly Modelview