The online racing simulator
noobTV
(151 posts, started )
noobTV
What is noobTV?
noobTV is a tool that allows you to control the camera in LFS from outside the game. It also adds the possibility to use and define custom camera positions, which will have more features than the standard camera's in LFS. It is written in Java, so you will need the Jave runtimes you also need to display some content on websites. The program will look like a generic Windows program, with some buttons (at least one for each player) and a few lines that display the current status of LFS and the tool.
The main reason for this tool is that I think the regular LFS camera's don't show a good overview of the cars on track. Also the number of camera's is in my opinion too high, meaning that the camera is constantly switching, especially on tracks like South City.

How can I use it?
The program is intented to be connected to a local LFS game, with LFS in windowed mode or with LFS fullscreen and the tool on a secondary display (secondary monitor, like a tv). It should also be possible to run the tool on a different pc (such as a laptop) as long as that pc is connected to the LFS pc via LAN (since the network load might be heavy and loss of packets will make the image less fluently).

When will I be able to download it?
Look further in this thread

I dont understand what it does
Because images say more then a thousand words, here is a little video clip for you. I told the tool to focus the camera on the yellow/white car (someone from the Z30 team) while it is driving around Blackwood. All the camera movement/placement is controlled by the program, I didnt pause LFS to move the camera or something You see that the camera positions are different from the ones originally in LFS.
Click here to download the movie.

What are the current features?
Check out the readme

I will use this thread to keep you informed on the tool untill I release it (then I will post some thread in the LFS Add Ons subforum).

Latest version
v0.8
wow, that looks really promising, especially for all lfs broadcasters and video makers.

a suggestion for the cameras, if it's not in already:
- it should be possible to have camera presets that you can import and export, so you can exchange your camera settings with other people.
Currently it works with one file called cameras.txt which houses all the cameras (so it's not hardcoded into the program). I will most likely change that to a system where you have a file for each track (or each area of tracks), so you can manage the camera settings yourself.
Great news! Im looking for program like this for ages
Suggestion: files for track cameras AND files for car cameras - i prefer real cameras, id like define cameras on car body or in car interior, on each car independently but collective for all tracks
GL in development
sorry for my english
#5 - Don
sounds cool, but i still dont 100% understand how it works, but here are things i`d like to see in it (and i have no idea how much are these possible to do):
- possibility to "tilt" the camera (ex. here is the camera tilted: http://www.liveforspeed.cz/upload/HITS_image3.jpg)

- zoom in/out where i could control how much it zooms (lower than 12° that is currently available would be nice) and also the speed of zoom (currently there are 3 speeds, but thats not enough...the fastest speed isnt fast enough and the slowest speed isnt slow enough)

- height of camera - currently you can go only upto ~5m or when you press TAB you can go higher, but you cant see into distance...
unlikely that this is possible but the ability to move the camera manally (like you do in Shift + U) would be nice.. probabvly not practical though..

Other than that i cant think of anything just yet. The current ideas see, t be heading iin the right direction though.

Very Nice looking idea
Quote from Pablo.CZ :id like define cameras on car body or in car interior, on each car independently but collective for all tracks
GL in development
sorry for my english

i don't think it's possible to mount a camera onto any part of a car, because the movements of the car cannot be followed exactly by the camera. I tried this once via insim, but failed, because the camera is always 'running after the facts' in other words, a chase cam and not a 'mounted onto moving object' cam.
There are limits to the placements of camera's via insim.
Looks very very promising! it could help when making movies
Quote from Don :- possibility to "tilt" the camera (ex. here is the camera tilted: http://www.liveforspeed.cz/upload/HITS_image3.jpg)

- zoom in/out where i could control how much it zooms (lower than 12° that is currently available would be nice) and also the speed of zoom (currently there are 3 speeds, but thats not enough...the fastest speed isnt fast enough and the slowest speed isnt slow enough)

- height of camera - currently you can go only upto ~5m or when you press TAB you can go higher, but you cant see into distance...

I just fired up the LFS.Live 0.0.2 version where's the working camera position utility and can possibly say something about what camera positions is possible. No warranties though :P

You can rotate, pitch and roll your cockpit and custom view camera (Frankmd: Set the 'view override' flag in CamPosPacket IS_CPP for making the "roll" value work.). You can go beyond the limited like 5m height in Shift+U mode but you cannot "roll" (/tilt) the camera and no other camera can be rolled atm. You cannot change the FOV to below 12° or abover 120°.

Quote from Victor :i don't think it's possible to mount a camera onto any part of a car, because the movements of the car cannot be followed exactly by the camera. I tried this once via insim, but failed, because the camera is always 'running after the facts' in other words, a chase cam and not a 'mounted onto moving object' cam.

Indeed, the only way to have one (really only one) camera like "mounted" is to use the custom view. The custom view settings cannot be changed via InSim though.


/€dit: Just forgot to actually write about the program while playing around with CamPos stuff...

Now that's some really hard stuff to get a program really interesting stuff. For like switching to a spinning car would not be that hard, though the defined threshold of a spin will be probably so high that you won't catch the whole spin or it will constantly switch cars if it is set to low. We know you can catch that, Silkswift's LFS Marshal already did something like this IIRC.

And it should also be possible to detect some "close racing" via MCI/NLP packets, I've just implemented some kind of "live positioning" and "overtake count" in my .NET Assembly (there was the Race Tracking Discussion - Position determined by node thread on RSC ).

For the cameras.. it will be tricky to get the cars onto screen while in Shift+U and taking turns, won't it? I don't know if you can calculate the correct heading value constantly just by knowing "I am in front of the car" and the car positions/heading from IS_MCI packets. But nice Shift+U cameras were always awesome in videos IIRC

But I don't know if it works out to be possible and quite amazing to set a few sequences of camera's around the tracks. Hm, guess it's some kind of art of actually using the program then.
Quote from Messiah :Indeed, the only way to have one (really only one) camera like "mounted" is to use the custom view. The custom view settings cannot be changed via InSim though.

There is posibility to change custom view in LFS Movie Maker, I thought it won't be such problem to implement
Quote from Messiah :You can rotate, pitch and roll your cockpit and custom view camera (Frankmd: Set the 'view override' flag in CamPosPacket IS_CPP for making the "roll" value work.). You can go beyond the limited like 5m height in Shift+U mode but you cannot "roll" (/tilt) the camera and no other camera can be rolled atm. You cannot change the FOV to below 12° or abover 120°.

Indeed, the only way to have one (really only one) camera like "mounted" is to use the custom view. The custom view settings cannot be changed via InSim though.

I havent done any tests with this yet, but I dont really understand. First you say that you can set the Roll value using a CPP packet, and then you say you cannot control the Custom view camera with InSim...?
Oh, and the FOV can be put lower then 12 and higher then 120. Everything between 0 and 180 degrees will work, except 0 and 180 themself. I think that the values serve a reason however, because some graphical glitches will occur between 0 and 12, and 120 and 180. So for a moving cam I dont think going lower then 12 is smart, but for a static cam you can easily use 2, as long as you place the camera on a 'smart' place.


Quote from Messiah :For the cameras.. it will be tricky to get the cars onto screen while in Shift+U and taking turns, won't it? I don't know if you can calculate the correct heading value constantly just by knowing "I am in front of the car" and the car positions/heading from IS_MCI packets. But nice Shift+U cameras were always awesome in videos IIRC

At the moment the program predicts where the car will be in X milliseconds, since the camera will take some time to move fluently to that position. At the moment it only uses the heading, velocity and the current xyz values, but I think that some improvement can be found in the Angular Velocity field, and also taking the first and second derivatives of the xyz values can maybe help too.


As for the 'interesting-moment-prediction':
I think it is impossible to have a really good realtime predictor. I think you can make something that works well but not really good. However if you would store all the MCI packets in a separate file (with some sort of timestamp) while watching a replay the first time, the program is able to look into the future the second time you watch the replay. For replays a lot of people are going to watch, one person could take the noble task of running the replay the first time, and then send the 'prediction-log'-file to the other people who want to watch the replay.
A suggestion. Would it be possible to have the cameras to be moved, zoomed, rotated in real time, BUT also export the motion to a file. That way we can share camera postions AND movements, and also make the camera move automatically.

This means for someone like me (a noob) who wants to record a particular camera movement with LFS in full-screen and no second monitor would be able to create the camera movement and then have it play automatically with the camera control software in the background.

Just a though, and poorly explained I guess.
Quote from tristancliffe :A suggestion. Would it be possible to have the cameras to be moved, zoomed, rotated in real time, BUT also export the motion to a file. That way we can share camera postions AND movements, and also make the camera move automatically.

This means for someone like me (a noob) who wants to record a particular camera movement with LFS in full-screen and no second monitor would be able to create the camera movement and then have it play automatically with the camera control software in the background.

Just a though, and poorly explained I guess.

At the moment you have 2 sorts of cameras:

-moving : these cameras will automatically zoom, rotate and pitch according to the position of the car you are looking at relative to the camera.
-non moving : these cameras will just look in a certain direction and not move in any way.

Actually the name 'moving' is wrong, because neither of the cameras are actually translating. Translating cameras will be investigated tho (Im 90% sure it will work).

The camera positions are stored in an external file, so you can make these files available for download.

EDIT:
I think I see now what point you are missing The program cotrols the camera, but the userinput is the player to look at. You will see a list of buttons, all representing a player, you press one button, and the program will follow the car around the track.
For the people that have insim experience...

Quote from InSim.txt :State flags controlling this packet
-----------------------------------
The relevant Flags that can be set are :

#define ISS_SHIFTU 8 // in SHIFT+U mode
#define ISS_SHIFTU_HIGH 16 // HIGH view
#define ISS_SHIFTU_FOLLOW 32 // following car
#define ISS_VIEW_OVERRIDE 8192 // override user view

Does this mean that changing the other flags does not influence the state of the game?
I don't know about the coding or anything and don't have any suggestions, but the results look very impressive indeed!
Keep up the good work :up:
I think tristancliffe wants to make himself particular camera movement (something like you can in shift+u mode) and store it to a file (similar like macro recording). Then assign this stored movement to a key in TVDirector and play it as many times as he wants.
am I right tristancliffe?
will it be possible to place a camera outside the trackarea? I always wanted to see this in LFS. It makes really cool atmospehere when u see a full Grid starting from the audienve POV or from behind a fence.

(Check out CCM (Camera Control Master) for GPL to see what i mean.)
Yes Pablo, thats about right. So I can, say, start off REALLY high, and the camera zooms into the track, and into the garage. If this movement could be repeatable (like a macro) then it could make movie makers lives a lot easier. Espcially if the default zoom/height limits are relaxed.

And you don't need to call me tristancliffe - Tristan will do
Quote from SchneeFee :will it be possible to place a camera outside the trackarea? I always wanted to see this in LFS. It makes really cool atmospehere when u see a full Grid starting from the audienve POV or from behind a fence.

(Check out CCM (Camera Control Master) for GPL to see what i mean.)

Yes it will. However, there is a reason that you normally cant get in those areas, so these cameras should be placed wisely.
Quote from tristancliffe :Yes Pablo, thats about right. So I can, say, start off REALLY high, and the camera zooms into the track, and into the garage. If this movement could be repeatable (like a macro) then it could make movie makers lives a lot easier. Espcially if the default zoom/height limits are relaxed.

And you don't need to call me tristancliffe - Tristan will do

That is actually a pretty good idea. I just added it to the planned-features list Dont count on it to be a feature in the first versions though
Quote from Frankmd :That is actually a pretty good idea.

First time for everything!
#22 - axus
Very very impressive!
Don't have any suggestions really... keep it up though!
Preview movie shows some very good camera angles.
Very good stuff

I wonder who will upload first nice LFS movie made using TVDirector on LFS MOVIES PIT
Quote from Frankmd :First you say that you can set the Roll value using a CPP packet, and then you say you cannot control the Custom view camera with InSim...?

You can set roll values. "You cannot control the custom view camera" <- That was meant to be, that you cannot change the 'offset' of the camera like you do in LFS options.

Quote :Does this mean that changing the other flags does not influence the state of the game?

The other flags? What other flags? Neither IS_CPP nor its state flags don't really influence the game, they'll just set camera views.

Quote :Oh, and the FOV can be put lower then 12 and higher then 120.

Hm.. interesting, it didn't work for me, I maybe check my cam control code then.
Great idea and good work

That vid clip looked nice.
It gives wayyyyyyyyyyyy better and real look of the race.

noobTV
(151 posts, started )
FGED GREDG RDFGDR GSFDG