A technical specification for Carmageddon GROOVEsGROOVEs are used for "animating" models (hereafter known as Actors) within Carmageddon 1 and 2. While fairly basic in themselves they can be used to add depth and realism cheaply and effectively.

Structure
ActorName		// The name of the actor to animate
Lollipop		// Lollipop settings
Trigger			// When the groove should animate
Path			// Path settings
Animation		// Animation settings
"NEXT GROOVE" after each one, on a line of it's own, or
"END OF GROOVE" after the very last one.

Details

ActorName
The ActorName is simply the name of the model you wish to animate.

Lollipop
While not used in either Carmageddon 1 or 2 the lollipop code still works! Acceptable values are
xLollipop
yLollipop
zLollipop
not a lollipop
Anything else will be treated as
not a lollipop
. Lollipops can be used for "always face the camera" sprites such as the peds in Carmageddon 1. Toshiba-3 has an excellent article in the subject (here)

Trigger
The trigger dictates when the effect should occur. Acceptable values for GROOVEs are
constant
distance
GROOVEs on cars are usually
constant
, maps are usually
distance


Path
Path based animation will move the Actor. Acceptable values are
straight
circular
no path
Anything else will be treated as
no path
. Each path has different settings.

if
straight
	PathMovement
		absolute
		harmonic
		linear
		flash
	Centre
	if absolute
		GroovyFunkRef
	else
		CyclesPerSecond
	Distance
if
circular
	PathMovement
		absolute
		linear
	CentreOfCircle
	if absolute
		GroovyFunkRef
	else
		Speed
	Radius
	Axis
		x
		y
		z
Animation
Animation will distort/deform the Actor. Acceptable values are
rock
shear
spin
throb
no animation
Anything else will be treated as
no animation
. Each animation has different settings.

If
spin
	SpinType
		controlled
		continuous
	if controlled
		GroovyFunkRef
	else
		CyclesPerSecond
	Centre
	Axis
		x
		z
if
rock
	RockType
		absolute
		harmonic
		linear
	if absolute
		GroovyFunkRef
	else
		CyclesPerSecond
	Centre
	Axis
		x
		y
		z
	Degrees
if
shear
	ShearType
		absolute
		controlled
	if absolute or controlled
		GroovyFunkRef in the form of a vector3 (0,GFR,0)
	Centre
	Extents
if
throb
I LIKE TURTLES
Community examples

Maps
Solar Flare by Toshiba-3 has a rather fancy GROOVE in the middle of the map

Cars
SMARTMOVE by Harmalarm is a shining example of what can be achieved through GROOVEs

Technical examples

I plan on making some rough and ready cars and maps to illustrate the various GROOVEs. These will be available here when done.

Additional reading

"Advanced" map tricks - this thread over at the CWABoard has a wealth of excellent and advanced tricks.
Suspension Mechanics - C2Scientist explains how to set up vehicle suspension
Break the 1000 triangle limit, with a GROOVE! - Toshiba-3 describes a sneaky trick to beat the 1000 poly limit in C2.
Angled GROOVEs - Toshiba-3 explains how to angle your GROOVEs.
Opposite turning wheels - Toshiba-3 details how to make your wheels turn the opposite direction to what they usually would.
The 5th suspension - Toshiba-3 fixes a bug in C2 using his enormous brain and some clever GROOVEs
Lollipops - Toshiba-3 is at it again, this time bringing sprites to Carmageddon10:35am - Thursday, September 8th, 2011
all rights reserved © toxic ragers 1998 - 2011