Bridge Command - Ship Models
Introduction
There are two classes of other ship models that can be defined in Bridge Command. These are 'own ships' and 'other ships.' Ownships are models that have their full dynamics modelled, and are for use as the user's own ship. 'Other ships' are used to model all other ships in the environment, and can be loaded as 'otherships' or 'controlledships'. For details of what you can do with these, and how to load them in scenarios, please see the Scenario specification and the Scenario writer.
The most fundamental part of any ship model to load in Bridge Command is the 3D model itself. This can be in DirectX (.x) or 3DS Max format (.3ds). With this, the text file boat.ini is used to define the other characteristics of the model. The specification of this file is detailed below, but for a general introduction to the .ini file format used by Bridge Command, please read the .ini file format.
Each vessel is contained in a folder, with the vessel's name, under Models\Othership or Models\Ownship as appropriate. So if Bridge Command is installed in its default location, an own ship model called 'Protis' would be at 'C:\Program Files\Bridge Command 4.1\models\Ownship\Protis'
Sections
Own ships
The 3D model to load, and all of the characteristics of the own ship model are defined in the file Boat.ini in the model's folder. A complete example is given below, and the effect of each line is explained below this:
FileName="boat.x" ScaleFactor=0.3 YCorrection=-3 AngleCorrection=0 Depth=3.0 Views=3 ViewX(1)=-0.3 ViewY(1)=15.74 ViewZ(1)=-6.0 ViewX(2)=9.4 ViewY(2)=16.0 ViewZ(2)=-9.8 ViewX(3)=-9.4 ViewY(3)=16.0 ViewZ(3)=-9.8 Max_propulsion_force=3000 Mass=5000 MaxRevs=2500 DynamicsSpeedA=18.71 DynamicsSpeedB=100 PropSpace=2.0 DynamicsTurnDragA=180000 DynamicsTurnDragB=12000 Inertia=120000 RudderA=5 RudderB=0.05 Buffet=3.0 Swell=1.0 Windage=0.05 DeviationMaximum=5 DeviationMaximumHeading=10
- FileName: Sets the name of the 3D model file to load
- ScaleFactor: The amount to scale the 3D model by. Bridge Command uses meters as it's units, so if the model is in feet, then this should be around 0.3
- Note that all subsequent positions/distances are in the units/coordinate system of the 3D model file
- YCorrection: The amount to move the model UP. Therefore, if the model's origin is at its keel, this should be a negatve value
- AngleCorrection: The number of degrees the model should be rotated about its vertical axis to correctly align it: The Bridge Command axis system is Y up and Z towards the model's stern.
- Depth: The vessel's depth under the water line (in the 3D model's units)
- Views: The number of viewpoints on board the vessel (Minimum 1)
- For each viewpoint, where # is the viewpoint number:
- ViewX(#): The viewpoint's X coordinate (in the model's unit system - as long as AngleCorrection is zero)
- ViewY(#): The viewpoint's Y coordinate (in the model's unit system - as long as AngleCorrection is zero)
- ViewZ(#): The viewpoint's Z coordinate (in the model's unit system - as long as AngleCorrection is zero)
- Max_propulsion_force: The maximum propulsion force of one engine (in Newtons)
- Mass: The vessel's mass (in kg)
- MaxRevs: The ship's maximum engine revolutions (RPM)
- DynamicsSpeedA: The amount of drag on the ship proportional to its speed squared (drag(N)=DynamicsSpeedA*Speed(m/s)^2)
- DynamicsSpeedB: The amount of drag on the ship proportional to its speed (drag(N)=DynamicsSpeedB*Speed(m/s))
- PropSpace: The spacing between the port and starboard propellors in meters. Set to zero to model a one-engined vessel.
- DynamicsTurnDragA: The amount of angular drag on the ship proportional to the rate of turn squared (drag(Nm)=DynamicsTurnDragA*Rate Of Turn(rad/s)^2)
- DynamicsTurnDragB: The amount of angular drag on the ship proportional to the rate of turn (drag(Nm)=DynamicsTurnDragB*Rate Of Turn(rad/s))
- The ship's polar moment of inertia about it's vertical axis(kg m^2)
- RudderA: The turning effect of the rudder proportional to the ship's speed (Rudder torque(Nm)=RudderA*Speed(m/s)*rudder angle (deg)
- RudderB: The turning effect of the rudder proportional to the engine speed (Rudder torque(Nm)=Rudder*Engine Thrust (N)*rudder angle (deg)
- Buffet: The amount the ship is affected by buffeting due to the weather.
- Swell: The amount the ship is rolls in the swell, due to the weather.
- Windage: The ratio between the speed with which the ship is moved by the wind and the wind speed.
- DeviationMaximum: The maximum deviation of compass north from magnetic north due to the ship's magnetic effects (In degrees). This is only used if 'HasDeviation=1' is set in the ownship.ini scenario file.
- DeviationMaximumHeading: The heading at which the compass deviation from magnetic is maximum. The deviation is calculated as a sinusoid, so the deviation will be zero at this heading +-90 degrees, and the opposite at this heading +-180 degrees.
If there is a file horn.wav in the directory, this will be used as the ship's horn sound. If not, Bridge Command will default to it's own horn sound.
Other ships
The 3D model to load, and all of the characteristics of the own ship model are defined in the file Boat.ini in the model's folder. A complete example is given below, and the effect of each line is explained below this:
FileName="boat.x" ScaleFactor=0.3038 YCorrection=-17 AngleCorrection=0 Filename2="radar.x" x2=0.427 y2=99.026 z2=-28.382 ScaleFactor2=1 weapon_x=0.00 weapon_y=43.713 weapon_z=189.0 NumberOfLights=5 LightX(1)=26.4 LightY(1)=59.2 LightZ(1)=105.4 LightRange(1)=6 LightRed(1)=0 LightGreen(1)=255 LightBlue(1)=0 LightStartAngle(1)=-1 LightEndAngle(1)=112.5 LightX(2)=-26.2 LightY(2)=59.2 LightZ(2)=105.4 LightRange(2)=6 LightRed(2)=255 LightGreen(2)=0 LightBlue(2)=0 LightStartAngle(2)=247.5 LightEndAngle(2)=361 LightX(3)=0 LightY(3)=103.3 LightZ(3)=93.3 LightRange(3)=6 LightRed(3)=255 LightGreen(3)=255 LightBlue(3)=255 LightStartAngle(3)=247.5 LightEndAngle(3)=472.5 LightX(4)=0 LightY(4)=35.1 LightZ(4)=-171.6 LightRange(4)=6 LightRed(4)=255 LightGreen(4)=255 LightBlue(4)=255 LightStartAngle(4)=112.5 LightEndAngle(4)=247.5 LightX(5)=0 LightY(5)=116 LightZ(5)=6.6 LightRange(5)=6 LightRed(5)=255 LightGreen(5)=255 LightBlue(5)=255 LightStartAngle(5)=247.5 LightEndAngle(5)=472.5
- FileName: Sets the name of the 3D model file to load
- ScaleFactor: The amount to scale the 3D model by. Bridge Command uses meters as it's units, so if the model is in feet, then this should be around 0.3
- Note that all subsequent positions/distances are in the units/coordinate system of the 3D model file
- YCorrection: The amount to move the model UP. Therefore, if the model's origin is at its keel, this should be a negatve value
- AngleCorrection: The number of degrees the model should be rotated about its vertical axis to correctly align it: The Bridge Command axis system is Y up and Z towards the model's stern.
- OPTIONAL:
- Filename2: If required, the filename of any secondary model file to be added to the ship model. This filename is relative to the ship's folder, so if one of the generic dayshapes is required, this can be set as "../Anchor.3ds" or similar.
- x2: The location in the ship's coordinates that the second model should be loaded (x)
- y2: The location in the ship's coordinates that the second model should be loaded (x)
- z2: The location in the ship's coordinates that the second model should be loaded (x)
- ScaleFactor2: The amount the additional model should be scaled by prior to adding it to the main model. The scaling applied to the whole ship is applied after this, so if the models are in the same units, this should be set as 1
- OPTIONAL:
- weapon_x: If the ship model's folder contains a subfolder called weapons, with base.x, turret.x and barrel.x models, if these are set, the weapon model will be added to the ship at the specified base position. This sets the x position
- weapon_y: The weapon base y position.
- weapon_z: The weapon base z position.
- NumberOfLights: The number of navigation lights
- For each light, where # is the light number:
- LightX(#): The light's X coordinate (in the model's unit system - as long as AngleCorrection is zero)
- LightY(#): The light's y coordinate (in the model's unit system - as long as AngleCorrection is zero)
- LightZ(#): The light's z coordinate (in the model's unit system - as long as AngleCorrection is zero)
- LightRange(#): The maximum range of the light (in nautical miles)
- The light's colour is defined in terms of it's red, green and blue values. Therefore a pure red light would have LightRed=255,LightGreen=0 and LightBlue=0:
- LightRed(#): The red colour component of the light (0-255).
- LightGreen(#): The green colour component of the light (0-255).
- LightBlue(#): The blue colour component of the light (0-255).
- LightStartAngle(#): The bearing relative to the ship's head that a light is visible from. (0-360)
- LightEndAngle(#): The bearing relative to the ship's head that a light stops being visible at. (0-720)
- So for example, a port steaming light could have LightStartAngle(2)=247.5 and LightEndAngle(2)=361. Note that the LightEndAngle should be greater than the LightStartAngle, and can therefore be between 0 and 720 degrees