noobTV Camera Guide

Introduction

This guide will walk through all the options one can set for the custom cameras. First they are listed in a table, and then they are explained more extensively.
 

Property table

Property Value type Range/values Required for
camera types
startCam     all
stopCam     all
name String   all
track String   all
type String point
line
all
x Integer   point
y Integer   point
z Integer   point
startPointX Integer   line
startPointY Integer   line
startPointZ Integer   line
endPointX Integer   line
endPointY Integer   line
endPointZ Integer   line
linePositioning String nearestPoint
nodeProportional
line
lineOffset Integer   line
heading String
Integer
free
0 .. 65536
all
pitch String
Integer
free
0 .. 65536
all
roll String
Integer
free
0 .. 65536
all
fov String
Integer
free
5 .. 120
all
areaDef String area
node
all
Ax Integer   all
Ay Integer   all
Bx Integer   all
By Integer   all
Cx Integer   all
Cy Integer   all
Dx Integer   all
Dy Integer   all
startNode Integer Greater then or equal to 0 all
stopNode Integer Greater then or equal to 0 all
 

Property explanation

startCam     all
stopCam     all
The startCam and stopCam properties are used to indicate the start and the end of a camera definition. They do not set any property of the camera itself.
name String   all
The name property is provided to trace a certain camera more easily. During playback of a replay, the name of a custom camera is displayed in the right bottom corner of the control panel. It is recommended that you give the camera an intuitive name, such as the name of the nearest corner.
track String   all
The track property indicates the track the camera is designated for. A certain camera can work on both normal and reverse tracks, but should always be defined twice, since in 99 out of 100 cases one or more fields are different.
type String point
line
all
The type property defines the type of camera. This can be either a point or a line. In case the camera is defined as a point, the position of the camera will not change, no matter where the car is. In case the camera is defined as a line, the position of the camera will change (translate) as the position of the car changes. Refer to Picture 4.
x Integer   point
y Integer   point
z Integer   point
The x, y and z properties define the position of a point camera.
startPointX Integer   line
startPointY Integer   line
startPointZ Integer   line
The startPointX, startPointY and startPointZ properties define the startpoint of a line camera.
endPointX Integer   line
endPointY Integer   line
endPointZ Integer   line
The endPointX, endPointY and endPointZ properties define the endpoint of a line camera.
linePositioning String nearestPoint
nodeProportional
line
The linePositioning property defines the way the camera is positioned along the line. For nearestPoint it will calculate the nearest point from the car to the line and place the camera there. For nodeProportional it will be proportional to the node the car is currently on. For example if the camera is defined between node 50 and node 100, and the car is at node 85, the camera will be placed at 70% from the startPoint. nodeProportional can only be used in case areaDef is node.
lineOffset Integer   line
If linePositioning is nearestPoint the lineOffset property defines the offset from the calculated nearest point. This property can be used to place the camera behind or in front of the car. 65536 is 1 meter, postive is ahead of car. If you want to place the camera 2 meter behind the car, lineOffset should be -2 * 65536 = -131072. The maximum offset is 20 meter.
heading String
Integer
free
0 .. 65536
all
The heading property defines the rotation of the camera about the vertical axis. 0 means pointing at the y-axis, and is defined anti-clockwise from above.
pitch String
Integer
free
0 .. 65536
all
The pitch property defines the rotation of the camera about the horizontal axis. 0 means pointing at the horizon.
roll String
Integer
free
0 .. 65536
all
The roll property defines the rotation of the camera about the forward axis. 0 means no roll. This property does not influence LFS.
fov String
Integer
free
5 .. 120
all
The FOV property defines the Field Of View property of a camera. The FOV is measured in degrees, and can be set between 5 and 120 degrees. Under 12 degrees, the camera will not have the correct FOV value when noobTV switches to this camera. You will notice a bit of zooming.
areaDef String area
node
all
The areaDef property defines for what kind of area the camera is used. For node the camera will be used in case the car is between startNode and stopNode, no matter what the absolute (x, y, z) position of the car is. For area the camera will be used if the car is within a polygon with cornerpoints (Ax, Ay), (Bx, By), (Cx, Cy) and (Dx, Dy). A camera that is defined as an area will always overrule a camera that is defined as a node.
Ax Integer   all
Ay Integer   all
Bx Integer   all
By Integer   all
Cx Integer   all
Cy Integer   all
Dx Integer   all
Dy Integer   all
The (Ax, Ay), (Bx, By), (Cx, Cy) and (Dx, Dy) properties define the cornerpoints of the rectangular area.

The cornerpoints should be defined as in the left picture, and not as in the right picture. Basically it means that a connecting line between A and D should not cross the connecting line between B and C.
startNode Integer Greater then or equal to 0 all
stopNode Integer Greater then or equal to 0 all
The startNode and stopNode properties define the nodes at which the camera is activated and de-activated.

A node can be seen as a 'checkpoint' on the track every 10 meter or so. A car is always on a certain node, no matter what its absolute position is.
 

How to make a camera?

Before you can start writing down all the camera's in the camera file, you should first find some nice spots to place a camera. Start LFS and get into shift+U mode, and just fly around for a little while. Play around with the FOV value or the height. Just fiddle around for a little while. Also decide if you want to create a set of camera's that are TV-like, or are ment to make even the slowest hotlap look like a thrilling ride.
In the first case, try to find some places that give a good overview on the track and involve less cameramovement to achieve a smooth and pleasant view. In the second case you might want to put the cameras closer to the track, with a higher FOV setting to increase the sense of speed.

After you have found some nice spots, start TVcameratool and go ingame. If you get into shift+u mode, you will see that the X, Y, Z, heading, pitch, roll and FOV values are updated every second or so. You fly to the position where you want to place a camera, wait for the values to come to rest, and write them down. You can use the buttons at the top of the TVcameratool window to get higher then 2.6 meter. NOTE: TVcameratool will only work in multiplayer mode!

If you want the camera to focus on a car automatically, you can choose to make the fields heading, pitch, roll and/or FOV free. If a certain field is free, noobTV will calculate the best value for that field, to make sure that the car is in the center of the screen.
Each field can be set separately, so you can have a camera that has a free heading and FOV, but a fixed pitch. Keep in mind that the roll value is not supposed to work for trackside camera's.

Camera's on a line are not so different from pointcamera's, except that they can also make a translational motion. They will do that between the startpoint and the endpoint of the line. Look in the table above for a detailled explanation of the linePositioning property.

Now you have to define the area for which the camera will work. For a basic trackside-camera, nodes are a good way to define the area. For special camera's, such as pitcams, use the area function.
Nodes: Get out of shift-u mode, and drive your car to the startingpoint. Wait for the values to come to rest, and write down the node value. Then drive to the endpoint and write down the node value. Also see picture 2.
Area: Defining an area can be a little bit tricky. You find a cornerpoint by taking the (x,y) coordinates of the car, after you have driven the car to the correct position. The z-coordinate is not necessary. The order of the cornerpoints is important to get right, observe picture 1 closely. If you draw a line connecting the points A to B, B to C, C to D and from D back to A, the lines should not intersect each other. The area can have any shape, as indicated in picture 3.


After you have collected all the values for a camera you make a new .txt file using Notepad (or any other text editor you like). A typical cameradefinition looks like this:

startCam
name=Turn One
track=BL1R
type=point
x=1844207
y=-12453335
z=76252
heading=free
pitch=free
roll=free
fov=free
areaDef=node
startNode=23
stopNode=66
stopCam

It might be a wise idea to start making a few pointcameras that are defined using the startNode and stopNode properties, so you get used to the TVcameratool program and the way the .txt files work.

You can add as many camera's to a certain file as you like, but from a managing point of view, it might be wise to split your camera-definitions into a few smaller files. Defining camera's in different files does not influence the functioning of a camera at all.

Save your camera files to a particular folder, this will be your camera set. If you make your camera definitions available for other people, they can put all your files in a certain folder, to keep the cameradefinitions separate.