» Category : Carmageddon 2

CUSTOM LIGHTING SETTINGS FOR MATERIALS aka. FULL LIT TRICK

This is the key to a lot of visual design tricks and creativity.

In a C2 track the lighting is usualy set at the the very start of the track text file. It only lets you specify the directional and ambiant light that will be applied on every material. Which is not much at all considering all the lighting settings that you can set in Plaything 2.
Without using the FULL LIT TRICK the game will only use the ambiant and directional lighting specified in the text file and the diffuse color. If you use the trick the game will follow the settings you set in Plaything2 for each material! This means diffuse color, ambiant/directional lighting, specular & specular force. Spending some time on the material settings can make a lot of difference ingame (visually). Lights become real lights because they are full lit now (logical you say). Chromey stuff, pipes and shiny things can be shiney now (high specular). It is possible to combine env mapping with diffuse lighting and special material settings to achieve very precise visual concepts. You can make different types of material react differently to the ambiant light or the directional light. Or create color schemes and work on the atmosphere of your track to give it more life or constitency in your track concept! (what I did with the last TDR Arena revamp for example)

So! How to make use of this trick you ask?
Well ages ago, people (probably Cesm/C2S/ChevyII) noticed there's one thing that isn't affected by the global lighting: the powerup materials. Then the easiest way is simply to create a single dummy powerup which you'll place totaly out of the track (usualy far under the track). It is needed to make it unreachable because all the "special" materials would be back to default if the powerup was activated. It can ofcourse be used as a trick too, activating a powerup would turn off all the lights in a track for example. Anyway back to the dummy itself: it must not be an empty dummy as we'll apply every "special material" to a triangle of the fake powerup. Have a look at this, this is what I use to easily sort them out and see which material is already activated via the full lit trick, it is a simple plan which I estimates the number of subdivisions based on the amount of needed "special materials" (easy to do in Max):



And here's an example (above). You can see most of the exterior materials are shady etc. and the corridor is full lit.
The FULL LIT TRICK might theoricaly also allow the use of textures with baked lighting and shadows. Making them full lit (read shadingless) would prevent the highlighted parts in a texture to be darkened or darker parts to be highlighted ingame. One can imagine a room in the nuclear silo where the light is green and is diffused in a very particular manner. Just get rid of the normal lighting by using the full lit trick and bake the green lighting you want in the textures. 3D programs like 3dsMax can bake shading and highlights into textures directly.
Another use is making hard shadows. No need to duplicate textures and make one darker. Just duplicate the material and use the lighting settings to make one darker (no specular, high specular force and low a/d lighting) then apply it to the triangles defining the shadow and to one triangle of the fake powerup. It can be done without the full lit trick by using diffuse color (cold/warm black/dark grey) but the global lighting would still be applied on it and it might look weird at times: addition of the black diffused color and the global lighting shady area (shadows aren't supposed to be additive), while in the case of the full lit trick there's no addition of shadows or anything, just a specific lighting set to define a shadow.

Unfortunately, applying a funk on one of the materials using the full lit trick will disable it.
By the way it is a good idea to place the dummy powerup apart from the rest of the powerups and even at the root of your track hierarchy just to access it easily and not be confused with something else. You can even rename it into a powerup just before the preprocessing.

To resume the idea of this trick: using the FULL LIT TRICK lets you specify a specific lighting for any material instead of the global lighting.

FORCING AN OBJECT TO ALWAYS FACE THE CAMERA

Can be used to have 2tris fake sprites along the Y axis.

An easy one again. This is actor based so remember to let the mesh at the origin of the scene and then move the actor only. As always the animated object shouldn't be preprocessed so use the & char.
So let's say we have a component named &SPRITE.ACT, let's import it in the track then move its actor where it is supposed to be rendered. Oh btw the face of your mesh that you'd like to see face the camera should go along the +Z axis.
Now just save your track and preprocess it if needed (name might change in the latter case if the component is also a noncar). Open up the track text file and add this GROOVE:

&SPRITE.ACT
yLollipop
Constant // Can be changed to distance, sharp, smooth, always, whatever...
No path // You can ofcourse put the thing on a path
No object // Same goes for animating the object itself

That's all! Actually I bet the PATH and MOVING part of the GROOVE can interfere with the LOLLIPOP.
Not sure though, might create interesting effects and all. If you put a path or animation don't forget this is actor based so the coords of these will be relative to the actor center.
This can be used on cars as well BUT as the steering as an influence on the camera this create an offset within the lollipopping actor! However this can still be used to create somewhat eratic movements. We can imagine a satellite antenna on the roof of Econo's Dodge Van.
It is also possible to combine it with an xLollipop and zLollipop but will create crazy things.
I could already see Mastro using such trick to fake the sprites from Doom, Duke Nukem 3D or Blood in his levels.

(kind of) CEL SHADING

You have to select a component and clone it then select the copy and make it a bit bigger.
Notice that the original and the copy must have the same center. The difference between
the edge of the original model and the edge of the clone makes the width of the black lines
then you must flip the triangles of the copy and apply a black (or another colour) material on the whole thing.
You'll probably have to adjust the width of the 'difference' manually here and there to have a regular black width everywhere.
Some components can eventually be optimized polycount-wise.
Do that for every component (maybe not the wheels as they are already black, depends of what you're doing), and you'll get something like that :


Rikusyo's Doraemon

FIXING THE FIFTH SUSPENSION

In C2 when you have more than 4 elements (usualy wheels), there's one of the groovyfunkrefs for suspension that actually is somehow negative (meaning that when the element is supposed to go down with the others it does the opposite and thus go up).
I bet this is present in every C2 cars that has more than 4 wheels or 4 elements set on suspension, before PedBasher. There's always one component to move the other way on the vertical axis.

Clic on Continue Reading to read more...

Continue reading...

How to get rocking grooves and such WITH AN ANGLE

Usually whathever you try to get a component rocking around an axe with an angle will result in terrible failure. The game just doesn't want it to happen.
Here's how to force it.

Let's take the steering wheel as an example. Create it and place it normaly in your model with the angle etc. Be sure to make it a separate component though.
When you're ready to go into PT2 duplicate the steering wheel component and rotate it so that you remove completely the angle and align the steering wheel with one of the X,Y,Z axis. Remember the angle you needed to make it parallel with one of the axes as it will be used to give that angle back to the steering wheel through a groove. So keep the model like it, with two steering wheels at the same position but with a different angle. And export to PT2 and continue your work.
In PT2 don't try to make the steering wheel a correct actor (a correct actor is centered on 0,0,0) just let it there as we'll use absolute coords later to specify its center. However in PT2 create an empty dummy as a child of the steering wheel then drag it back under the master component and put the steering wheel inside it. Rename the dummy ST_DUMMY.ACT or something obvious. Oh BTW you can delete the steering wheel in correct position.
Now calculate the absolute center of the aligned steering wheel, or at least it must be the point around which the steering wheel was rotated to make it parallel with the X/Y/Z axis.

Then use these grooves:

STWHEEL.ACT			-> This groove is applied on the SW mesh. It's the usual rocking groove.
not a lollipop
constant
no path
rock
absolute
20
-0.127,0.187,-0.948 -> The center coord around which the SW was rotated.
z
0

NEXT GROOVE

ST_DUMMY.ACT -> This groove is applied at the parent dummy. It gives the angle back.
Not a lollipop
Constant
No path
Rock
Flash
-1
-0.127,0.187,-0.948 -> The center coord around which the SW was rotated.
x -> Axis that will get the angle back.
60 -> The opposite of the angle you used to align the SW with one of the XYZ axis.

It's easy to do little mistakes with the angle but it's quickly fixed. If you wanna see that trick used. Test the General Lee or the Sor BN12.
Don't forget to add the groovyfunkref (here it's the number 20 in the first groove chunk) in the text file as well.

How to break the 1000 triangles per component limit

It is possible to have components with a higher polycount than the usual limit by setting them as a null groove like so:

NAME_OF_PART.ACT
not a lollipop
constant
no path
no object
However this part will lose dynamic damages (just like wheels). It still can detach though if it is the children of a dummy set as a detachable.

Some words about hex refs of the menu items

Actually the text files in the INTRFACE folder are just kind of CSS. You can't remove anything in there or even mod it too much. Every menu item is hardcoded, from the background forms to the images and text. Click on read more to have a quick look.

Continue reading...

Some words about hex refs of the powerups

This is pointless additional infos about the hex entries of the powerups. Should be used with Cesm's list of cheats, the list of cheats at DTD, etc. This can be useful to quickly edit the powerups cheat string assignation. This can also help someone editing the cheats of the software executable as the hex chunk is different there but uses the same structure.

Click read more etc.

Continue reading...

First BBQ C2 release

BBQ C2 has been released today.

This first release is more of a beta test or similar. I want to see how easy it will be for people to use this build and actually succeed into playing C2 over the Internet. Not that people are stupid and aren't able to follow instructions, but simply because even if one follows the instructions manual step by step there's still a big chance it doesn't work.

If the whole thing is successful, I guess we'll be able to change its content to fit our taste and go on with updates.

The build is available at RR2000, at the bottom of the C2 section.

READ THE INSTRUCTIONS PDF!

Good luck.

[edit] I forgot to say that on Hamachi you can join either the usual Carma666 room (pass is carmageddon). Or a new room I created CWA#1 (pass is carmageddon as well), because there's a 16 players limit per room and the Carma666 one is almost full.

BBQCRMGDN2



BBQCR
MGDN2