Written by Alcator.
In the first part of the tutorial, I explained what Ghosts are and how to import them into a clip so that the player gets some virtual opponents for Solo play. The tutorial continues with more details… Note: To see the images correctly, use the right-click menu function “Show image” or “Display image”.
Re-skinning and renaming the ghosts
As soon as you start using multiple ghosts, you may notice that having them all use the same skin is not very appealing. Trackmania is a world-wide competition game, and it’s great to promote this using skins. TM Nations Forever contains skins for almost all countries, so the obvious choice is to pick several of them and skin each of your ghost instances differently. United comes with at least 7 skins for each environment, which should be enough for most tracks.
A word of caution: I don’t recommend using custom skins on ghosts; if the player playing the track does not have the particular custom skin in his system, then either the ghost will be one-colored, or, what’s perhaps even worse, the skin file(s) will start downloading during play, causing lag.
Choose brighter skins for guidance or help-providing ghosts, choose darker skins for cunning and malicious ghosts (such as ghosts running in opposite direction).
To re-skin an imported ghost: Click on either key of the ghost’s block in the MediaTracker editor; the left panel will be populated with information about the ghost. Next to the Skin header, a button with “…” on it allows you to choose a different skin for the ghost.
To re-name the “MT track” of the ghost, click on the name on the first line of the left panel, and edit it. This is useful for multi-ghost clips, because normally, Ghosts are all named after the player that recorded them. If you want to have the Gold/Silver/Bronze opponents, it may be a good idea to rename them for your own convenience to “Gold”, “Silver” and “Bronze” so that if you later decide to update one of them, you will know which is faster. This is even more true in cases where you use one ghost more than once (explained later), because in such situations the total length of the ghost is not helping at all (while in the case of the Gold/Silver/Bronze ghost, you could always click on it and see the total length (time) of the ghost, thus recognizing which one is fastest and thus gold).
What does the “off-set” line do?
Now it’s time to get really wild. The thing is, the ghost file contains the ghost’s positions recorded many times each second. So the ghost knows exactly where it will be after 5 seconds and 20 hundredths of a second (00:05.20). Therefore, you can tell the ghost to start playing from the position where it was at some exact time (during recording). And this is the place where the miscalculation mentioned in part 1 may cause you some trouble, but let’s go slowly.
Numbers in the image mark the following: 1: The name of this “track” for convenience, 2: the “offset” value (in seconds), 3: the button allowing changing the ghost’s skin, 4: the block-start value (from this moment, the ghost will be visible). Right-click the image and select “Display image” to see it full-size.
The offset value is in seconds; they may be fractional, but the value entered must be seconds, not “time”. So, to enter an offset of 2 minutes and 10 seconds, you have to enter the value (2 * 60 + 10) = 130.
This value says from which point of the ghost’s record should the ghost start playing. So, if you recorded a ghost that takes 10 seconds to pass the first CP, and you want the ghost to appear when the player enters the first CP tile, you place a clip’s trigger at the CP and import the ghost to the clip, then set the offset of this ghost to “10”. However, the bug comes into effect here – the MT editor will incorrectly ADD an additional off-set to this value: It will add the time your main ghost took to get to this CP. However, when you actually play the track, this will not happen. The consequence is that unless the clip with imported ghosts gets triggered right on start, you will _always_ see the ghost at a different location in the MT editor than where he actually will be in game. This can become very frustrating and/or hard to precisely position the ghost. The following picture illustrate the problem:
Here you see that although the ghost has an offset of 0, it is shown next to the player’s car (in the MT editor). The following picture shows a custom view of actual racing situation:
As you can see, in real race, the ghost starts on Start due to the offset value 0.
If we give the car the offset value of 3.5 (which is the time at which we passed the CP during ghost recording…
… we will see the ghost incorrectly behind the finish gate, while in race…
… the ghost correctly appears next to us. *Sigh* Nadeo!
There is one way to hack around this:
- Import the ghost to a clip (perhaps temporary) that gets triggered on start (has a triggering cube on start).
- Adjust its offset so that the ghost is precisely where you want him to appear – in this case, since there’s nothing to bug-ADD to the offset, this will be precise.
- Remember the off-set value (you can use the Clipboard if you’re bad with numbers).
- Go to the real clip which you want to use the ghost in.
- Give the ghost the same offset you found out in step 2.
Another problem you may experience (I couldn’t test this on multiple computers, so it may be caused by my computer, although I doubt it) is that the ghosts don’t move if you preview-play the clips in MT editor. They just stay on their starting position (shifted by the offset) and do nothing. This makes it even harder to synchronize things like custom camera movement or camera shake effect with their movements, so be prepared to go through a lot of try-and-error. The results, however, when you finally succeed, can be very rewarding.
One last cool thing that I’m curious if anyone will utilize for some wild effects:
(This happened when I moved the start key of the ghost to the right – as in the first picture.)