Car Setup Tutorials For Trents MaxScript Tools

The 2016 reincarnation of Carmageddon! Discuss, mod and troubleshoot!
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Recommended Materials Tutorial
________________________________________________________________________________________________
Linking on from the end of the Level 1 Car Tutorial. This mini tutorial will cover the recommended material/shader types to use on your cars in Carmageddon Max Damage.
________________________________________________________________________________________________
Recommended Materials Overview

For best results, you can copy the contents of the Material (MT2) files from one of the official cars, and then replace/edit the texture names to match your own. You will need an XML editor to edit these files, notepad will not cut it.

Recommended Material Types:
  1. Car Paint Material (Exterior Bodywork) – “car_shader_double_sided_base”
  2. Exterior trim or Interior Materials – “car_shader_base”
  3. Windows & Lights Materials – “car_shader_glass”
  4. Illuminated Light Materials – “glow_simple_norm_spec_env_base_a”
  5. Wheel (Rim) Material – “simple_norm_spec_env_base”
  6. Tire Material – “simple_norm_base”
  7. Simple Materials with no specularity or normal map – “simple_base” “car_shader_base”
________________________________________________________________________________________________
Materials Breakdown

_________________________________
1] Car Paint Material (Exterior Bodywork)
“car_shader_double_sided_base”


“car_shader_double_sided_base” is the only material in the game, which will have blood splatters enabled. On the official cars this is just used on a single material, for which the texture contains: paintwork, all exterior trim (chrome, plastic, rubber), weapons, underbody, engine bay surround, grille, and sometimes the interior.

The material takes in 9 textures (comments for each texture argument are on line below, in Turquoise):
  • <Texture Alias=”Side1_DiffuseColour2? FileName=”mt_body_diffuse”/>
    // Regular Texture colour
  • <Texture Alias=”Side1_Normal_Map2? FileName=”mt_body_normal”/>
    // Adds ‘3d effect’ details, useful for badges, crumples, panel lines, bolts & weld seams
  • <Texture Alias=”Side1_Spec_Map2? FileName=”mt_body_specular”/>
    // Determines specularity/reflectivity, diffuse of this texture is reflection colour, alpha channel determines intensity
  • <Texture Alias=”Side1_DiffuseColour1? FileName=”mt_body_damaged_diffuse”/>
    // Damaged Texture colour (usually has crumples &/or scratches overlayed)
  • <Texture Alias=”Side1_Normal_Map1? FileName=”mt_body_damaged_normal”/>
    // Adds ‘3d effect’ details, used to add effect of crumples in bodywork
  • <Texture Alias=”Side1_Spec_Map1? FileName=”mt_body_damaged_specular”/>
    // Determines specularity/reflectivity, diffuse of this texture is reflection colour, alpha channel determines intensity, usually diffuse & alpha channel are brightened considerably where scratches are on the main damage texture
  • <Texture Alias=”Side2_DiffuseColour” FileName=”mt_body_diffuse”/>
    // Backfacing diffuse texture, if you don’t have one, then just reference regular texture here
  • <Texture Alias=”Side2_Normal_Map” FileName=”mt_body_normal”/>
    // Adds ‘3d effect’ details, useful for bulkheads, crumples, panel lines, bolts & weld seams, if you don’t have one, then just reference regular normal map here
  • <Texture Alias=”Side2_Spec_Map” FileName=”mt_body_specular”/>
    // Determines specularity/reflectivity, diffuse of this texture is reflection colour, alpha channel determines intensity. If you don’t have one, then just reference regular specular map here
Additionally you can disable the double-sided nature of this material, by changing the “<DoubleSided Value” to “FALSE”. Below are some examples (taken from the Monty Carnage) of the 6 main textures (specular maps alpha channel shown separately). I don’t have a unique back-facing texture, so the “Side1_” textures are used in its place.

Regular Body Textures
“Side1_DiffuseColour2"
Image
”Side1_Normal_Map2"
Image
”Side1_SpecMap2" (shown without transparency)
Image
”Side1_SpecMap2" (transparency/alpha channel)
Image

Damage Body Textures
“Side1_DiffuseColour1"
Image
”Side1_Normal_Map1"
Image
”Side1_SpecMap1" (shown without transparency)
Image
”Side1_SpecMap1" (transparency/alpha channel)
Image
_________________________________
2] Exterior trim or Interior Materials
“car_shader_base”


“simple_norm_spec_env_base” is used for almost all non-paint materials on the official cars. It takes in 3 textures.
  • <Texture Alias=”DiffuseColour” FileName=”cr_trim_diffuse”/>
    // Base Texture colour
  • <Texture Alias=”Normal_Map” FileName=”256_flat_normal”/>
    // Adds ‘3d effect’ details, useful for badges, crumples, panel lines, bolts & weld seams
  • <Texture Alias=”Spec_Map” FileName=”cr_trim_specular_2?/>
    // Determines specularity/reflectivity, diffuse of this texture is reflection colour, alpha channel determines intensity
_________________________________
3] Windows & Lights Materials
“car_shader_glass”


“simple_norm_spec_env_base_A” is almost identical to “simple_norm_spec_env_base”, in that it takes in the same number of textures, but the alpha channel (transparency) of the diffuse texture will be used to determine the opacity of the material. This is ideal for windows & lights.

Additionally, you can set this material as being two-sided.
_________________________________
4] Illuminated Light Materials
“glow_simple_norm_spec_env_base_a”

Previously "Simple_additive_base" was used

“glow_simple_norm_spec_env_base_a” takes in a diffuse texture (with alpha channel), normal map & specular map and is used for illuminated lights. There are multiplier (Float) values that can be increased or decreased if your lights are appearing too bright or too dark in-game.

Note: All of the official cars reference the same normal map ("normal_n") & specular map ("spec_s")
_________________________________
5] Wheel (Rim) Material
“simple_norm_spec_env_base”


“simple_norm_spec_env_base” is very similar to "Car_Shader_Base", in that it takes in the same set of maps (Diffuse, Normal & Specular)
_________________________________
6] Tire Material
“simple_norm_base”


“simple_norm_base” works the same as “simple_norm_spec_env_base”, but it seems that the specular map is not used in-game. If you have not modelled backfacing on your tires (like me), then you will need to set this material as being 2 sided with the following command placed on the line below the material type.

Code: Select all

<DoubleSided Value="TRUE"/>
_________________________________
7] Simple Materials with no specularity or normal map
“car_shader_base”


The default material created by the Maxscript (Simple_Base) is the simplest material available in-game. It is no longer ideal to use "Simple_Base" for any vehicle materials, as any material on a vehicle referencing 'Simple_Base', will be made invisible when the vehicle is split. You can use 'Car_Shader_Base' in its place with "normal_n" as the normal map, and "spec_s" as the specular map. Both "normal_n" & "spec_s" are standard non_VT textures in CMD.
________________________________________________________________________________________________
Last edited by Mad Mike on Tue Jan 01, 2019 2:52 pm, edited 1 time in total.
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

'Setup.LOL' & 'Vehicle_Setup.CFG' Parameters
________________________________________________________________________________________________
Reserved for a Parameters overview for the following files UNDER CONSTRUCTION
  • Setup.LOL
  • Vehicle_Setup.CFG
________________________________________________________________________________________________
'Setup.LOL' Parameters

Below is a decoded version of the 'Setup.lol' taken from Caddy Fat Cat. this has been broken out into separate lines, with comments below. Comments start with a '//' Prefix, comments in "" are from the games .exe

Code: Select all

car:SetCollisionEffect("effects.f_carsharpnel06", 10.5)
// Enables Shrapnel Particle FX in collisions

Code: Select all

car:SetPowerMultiplier(1.702)
// This value is multiplied by the torque values defined in the torque curve. This is increased by Power upgrades

Code: Select all

car:SetTractionFactor(1.5)
// Base Traction Value for Wheels, applies to forward/reverse motion only. A higher value potentially means less wheel spin, better acceleration/deceleration

Code: Select all

car:SetFinalDrive(1)
// Final Drive/Differential Ratio. Increasing this typically improves acceleration & pulling power at the expense of top speed, but can lead to increased wheelspin depending on the car. Decreasing this usually does the opposite

Code: Select all

car:SetRearGrip(1.2)
// Grip Factor for Rear Wheels in Gs. Increasing this will usually lead to less oversteer and more neutral handling.

Code: Select all

car:SetFrontGrip(1.5)
// Grip Factor for Front Wheels in Gs. Increasing this will improve how well a vehicle turns into a corner, but if rear grip is lower, this can lead to oversteer

Code: Select all

car:SetCMPosY(0.52)
// Position of Centre of Mass (Y Axis/height). Increasing this can make a vehicle more prone to rolling over depending on grip, steering speed & suspension characteristics

Code: Select all

car:SetCMPosZ(0)
// Position of Centre of Mass (Z Axis/length), 1.0 is over front wheels, -1.0 is over rear wheels, 0.0 is half way between. The game will automatically level the suspension to stop any rake.

Code: Select all

car:SetFrontDownforce(20)
// Down-force on front wheels in Kg (A Splitter or Air Dam would increase this IRL)

Code: Select all

car:SetRearDownforce(20)
// Down-force on rear wheels in Kg (A Rear Wing would increase this IRL)

Code: Select all

car:SetFrontRoll(0.3)
// Anti Roll bar strength, 1.0 = Stiff, 0.0 = Soft (Front)

Code: Select all

car:SetRearRoll(0.3)
// Anti Roll bar strength, 1.0 = Stiff, 0.0 = Soft (Rear)

Code: Select all

car:SetFrontCriticalAngle(6)
// "Angle at which front tyres loose traction (degrees)"

Code: Select all

car:SetRearCriticalAngle(6) 
// "Angle at which rear tyres loose traction (degrees)"

Code: Select all

car:SetFrontSuspGive(0.25)
// "Amount of suspension compression due to the weight of the car"

Code: Select all

car:SetRearSuspGive(0.25)
// "Amount of suspension compression due to the weight of the car"

Code: Select all

car:SetSuspDamping(0.2)
// Sets suspension damping. Higher values dampen suspension movement, lower values allow more suspension movement

Code: Select all

car:SetMomentOfInertiaMultiplier(1)

Code: Select all

car:SetSteerSpeed1(1)
// "Controls how fast the steering is. 1.0 is normal"

Code: Select all

car:SetSteerSpeed2(0.5)
// "Controls how fast the steering is at SteerSpeedVel. Actual steerspeed is interpolated between
this and the steerspeed value, depending on the cars velocity."

Code: Select all

car:SetSteerSpeedVel(150)
// "Controls how fast the steering is."

Code: Select all

car:SetSteerCentreMultiplier(2)
// Multiplier of Steering Speed for when straightening up. Apparently wheels should return to straight immediately if value is zero

Code: Select all

car:SetMaxSteeringAngle(40)
// Maximum Steering Angle in degrees

Code: Select all

car:SetBrakeBalance(60)
// Percentage of Brake force sent to the front wheels

Code: Select all

car:SetBrakeForce(60)
// Brake Force in newtons, per kg of vehicle mass

Code: Select all

car:SetHandBrakeStrength(10)
// Strength of Parking/Hand-Brake

Code: Select all

car:SetTorqueSplit(65)
// Percentage of Torque sent to rear wheels

Code: Select all

car:SetLSDThresholdF(10)
// Difference in wheel speed between left & right wheels required to lock diff, value is in radians per second

Code: Select all

car:SetLSDThresholdR(10)
// Difference in wheel speed between left & right wheels required to lock diff, value is in radians per second

Code: Select all

car:SetLSDThresholdM(10)
// Difference in wheel speed between left & right wheels required to lock diff, value is in radians per second

Code: Select all

car:SetReversePowerMulitplier(1)
// Additional power multiplier for when in reverse gear

Code: Select all

car:SetWheelMass(10)
// Mass of wheels (per 1000Kg of Vehicle)

Code: Select all

car:SetDragCoefficient(0.4)
// Drag Coefficient, this value is comparing drag against a flat-plane with the same cross sectional area as the car. This can affect the vehicles ability to reach it's theoretical (gearing) top speed depending on how much torque the engine produces

In theory, this would be 1.0 for a boxy school bus or cab-over truck.

Code: Select all

car:SetSteerLimit1(0)
// Apparently "prevents wheels from getting turned too much for given speed"

Code: Select all

car:SetSteerLimit2(0)
// Apparently "prevents wheels from getting turned too much for given speed"

Code: Select all

car:SetSteerLimitSpeed(0)
// Speed at which "steer limit 2" is applied

Code: Select all

car:SetCastorSpeed1(0)
// Apparently "Controls how stable the steering is. See CastorSpeed2"

Code: Select all

car:SetCastorSpeed2(1)
// Apparently "Controls how stable the steering is at SteerSpeedVel. Actual castor speed is interpolated between this and the castor speed value, depending on the cars velocity."

Code: Select all

car:SetCastorSpeedVel(100)
// Not Sure, haven't tweaked these

Code: Select all

car:SetSteerGyroscope(1)
// When enabled, steering wheels will "maintain their world-space alignment", this might give off the impression of an automatic counter-steer

Code: Select all

car:SetBrakeAttack(1)
// Rate that Brakes affects speed

Code: Select all

car:SetHandBrakeAttack(0.1)
// Time taken for Hand/Parking Brake to reach full strength

Code: Select all

car:SetSlideSpinRecovery(1) 
// "When recovering from a slide, this prevents car spinning out the other way."

Code: Select all

car:SetRollingResistance(0.018)
// "Rolling resistance force in Newtons per newton of vertical force per ms^-1 of velocity"

Code: Select all

car:SetDriveMI(2.2)
// Moment of inertia due to drive system (Including gear box, wheels etc)

Code: Select all

car:SetEngineMI(0.06)
// Moment of inertia in engine

Code: Select all

car:SetRedLine(6500)
// Limits/Governs Engine RPM - Limiter doesn't apply to reverse or top gear

Code: Select all

car:SetMaxRevs(8000)
// Maximum Engine RPM when limiter disabled

Code: Select all

car:SetLimitRevs(true)
// Enables Governor/Limiter of engine RPM - Limiter doesn't apply to reverse or top gear

Code: Select all

car:SetConstantEngineFriction(833)
// Mechanical Drag in engine (Constant Retardation/Deceleration Torque)

Code: Select all

car:SetLinearEngineFriction(0)
// "Retardation torque in engine proportional to angular velocity"

Code: Select all

car:SetQuadraticEngineFriction(0.0023)
// "Retardation torque in engine proportional to square of angular velocity"

Code: Select all

car:SetConstantDriveFriction(9.1)
// Constant Mechanical Drag in powertrain "Constant retardation torque in drive system"

Code: Select all

car:SetLinearDriveFriction(0)
// "Retardation torque in drive proportional to angular velocity"

Code: Select all

car:SetQuadraticDriveFriction(0.0008)
// "Retardation torque in drive proportional to square of angular velocity"

Code: Select all

car:SetEngineBrakeDelay(0.5)
// "Period of between releasing accelerator and engine braking starting"

Code: Select all

car:SetEngineBrakeAttack(0.28)
// "Period from engine braking starting to full engine braking (i.e. zero throttle)"

Code: Select all

car:SetClutchDelay(0)
// Time Clutch is engaged when changing gears

Code: Select all

car:SetMass(1900)
// Base vehicle Mass in KG

Code: Select all

car:SetNumGears(5)
// Number of Gears (excluding Reverse & Neutral)

Code: Select all

car:SetGearRatios(10, 13.86, 8.2193, 5.7005, 4.2327, 3.2277, 2.6775, 2.1616, 1.7157, 1.3752, 1.1346)
// This defines the actual gear ratios, the first number is the number of gears that the method takes in. If this number is 10, then it must be followed by 10 values, even if some of them are not used.

In this case, there are 10 defined gears, 5 of which are not used.
13.86 is first/reverse
8.2193 is second
5.7005 is third
4.2327 is fourth
3.2277 is fifth

Code: Select all

car:SetTorqueCurve(20, 180, 262, 294, 320, 294, 262, 208, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
// This defines the torque curve, the first value is the number of 1000 RPM values that the method takes in. If this number is 20, then it must be followed by 20 values, even if some of them are not used.

The actual torque values are multiplied by the cars power multiplier, which is then increased by power upgrades to improve acceleration. Torque values are likely to be in NM, as other values in the setup.lol are metric

In the case of Caddy Fat Cat, peak torque is at 4000 RPM, 320 Nm x 1.702 = 544.64 Nm

1 Nm = 0.737562149277 lb ft, therefore peak torque is 544 x 0.737562149277 = 407.1 lb ft

Code: Select all

car:SetStabilityGripChange(0.4)
// Amount of extra grip added to wheels by stability control. I'm not sure if this applies per wheel, or per axle "Amount grip can be adjusted to stabilise car"

Code: Select all

car:SetStabilityThreshold(0.5)
// Time taken for stability/grip control to kick in, 0 is immediately, value can be up to 100

Some cars also have the following methods in their setup.lol

Code: Select all

car:SetSuspensionRollFactor(1.0)
// "Controls roll. 1.0 = physically realistic."

Code: Select all

car:SetSuspensionPitchFactor(1.0)
// "Controls pitch. 1.0 = physically realistic."
__________________________
Other Notes:
  • Gear Ratios are the same on all official cars, top speed is altered mainly by changing number of gears
  • The first variable in the gear ratios (10 on the default cars) is a declaration of the number of gears, in addition to the value set by 'SetNumGears()', that first number must match the number of entries that follow, otherwise vehicle performance will be completely messed up
  • The numbers that follow it are used for the following gears: 1st/Reverse, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th, 10th
  • I suspect Torque Curve values are in Newton Metres
  • All Cars have the same RPM characteristics, 6500 RPM red-line, 8000 Max, lowering Max RPM will lower top-speed
  • Performance on official cars in primarily differentiated by: Power Multiplier, Torque Curve, Mass, Steering Speed and suspension parameters
________________________________________________________________________________________________
'Vehicle_Setup.CFG' Parameters
__________________________
Available Exhaust Smoke Particle FX
Updated to reflect changes made in CMD
  • f_diesel_exhaustsmoke02
  • f_diesel_exhaustsmoke03
  • f_diesel_exhaustsmoke04
  • f_megawootexhausts
  • f_siamesedreamexhaust
  • f_venomexhaust
  • f_yankv8_exhaustsmoke02
  • f_yankv8_exhaustsmoke03
  • f_yankv8_exhaustsmoke04
  • f_turbo
  • f_hotrod
  • f_megaturbo
__________________________
Available Engine Sounds
Updated to reflect changes made in CMD
  • engine Drag
    Hot Rod V8 Sound
    used by Twister & Subpressor
  • engine firetruck
    Volvo F12 Firetruck Diesel Sound
    used by Plow, Lumberer, Bear, APC, BlitzKrieger, Rig O Mortis, Super Suppressor
  • engine SUV
    1980s Jeep CJ7 Sound (I6 or V8)
    used by Caddy Fat Cat, Hevy Impaler Towmeister, Stiffshifter, Crazor, Razorbill, Tropikill
  • engine Euro_V8
    Modern Maserati V8
    used by Eagle R, Tez Eagle, Hawk R, Iron Hawk, Annihilator, Cleaver, Countslash, De'Gory Un, KVN Toucan, Snaky Bastard, Tashita, Volkswerker
  • engine Electric_Blue
    Electric Car sound
    used by Electric Blue only
  • engine SiameseDream
    Jet Engine Sound
    used by Siamese Dream only
  • engine kart
    Go Kart Sound
    Used by Squad Car/CU:NT only
  • engine Sportscar
    Exotic V12 Sound
    Used by Shredlight only
  • project_x
    Used by Project X only
__________________________
Available Driver Models
Updated to reflect changes made in CMD (Applies to AI only)
  • DRIVER_BODY_anna
  • DRIVER_BODY_autoscum
  • DRIVER_BODY_don
  • DRIVER_BODY_ed
  • DRIVER_BODY_grimm
  • DRIVER_BODY_grimm_02
  • DRIVER_BODY_harry
  • DRIVER_BODY_ivan
  • DRIVER_BODY_kutter
  • DRIVER_BODY_max
  • DRIVER_BODY_neotwig
  • DRIVER_BODY_otis
  • DRIVER_BODY_pitbull
  • DRIVER_BODY_roman
  • DRIVER_BODY_rusk
  • DRIVER_BODY_screwie_lewie
  • DRIVER_BODY_stella
  • DRIVER_BODY_stig
  • DRIVER_BODY_twins_l
  • DRIVER_BODY_twins_r
  • DRIVER_BODY_val
  • DRIVER_BODY_vlad
  • DRIVER_BODY_HEINZ
  • DRIVER_BODY_madam_scarlett
  • DRIVER_BODY_HAMMERHEAD
  • DRIVER_BODY_mother_trucker
  • DRIVER_BODY_ed_les
  • DRIVER_BODY_ED_HUNTER
__________________________
Available Horns
Updated to reflect changes made in CMD
  • generic01_horn - Generic Horn
  • generic02_horn - Generic Horn
  • generic03_horn - Generic Horn
  • monster01_horn - Truck Air-Horn
  • monster02_horn - Truck Air-Horn
  • monster03_horn - Truck Air-Horn
  • stiffshifter_horn - Piano Pipes
  • americansemi_horn - American Semi truck Air horn
__________________________
Other Factors:
  • max_compression - limits max compression
  • max_extension - limits max extension
  • max_steering_lock - limits steering lock
  • ride_height - sets ride height relative to wheels current position, not entirely sure of its use
________________________________________________________________________________________________
Last edited by Mad Mike on Sat Apr 11, 2020 1:05 pm, edited 4 times in total.
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Wheel Setup Tutorial

CONTENT COMPLETE
________________________________________________________________________________________________
Overview of wheels

In Carmageddon Max Damage/CMD. Wheel models are stored externally from each car. This allows users to setup & use different sets of wheels on cars (available wheels on each car are defined in the 'Vehicle_Setup.CFG').

In CMD, while the Rim models will rotate, the tire models do NOT rotate, instead the tire texture will scroll in the Y/V Axis to match the wheel speed.

Contents:
  • 1] Required Models for full wheel setup
  • 2] Model & texture Guidelines
  • 3] Rigging & export for use In-game
  • 4] Materials, Textures & Paperwork
  • 5] Setup for use in-game
________________________________________________________________________________________________
1] Required Models for full wheel setup

To achieve basic setup of a wheel model in CMD. You will need to break your wheel down into the following:
  • - Rim
  • - Tire
Additionally, if you want your tire model to deflate, you will need 5 pre-damaged tire models, which make up the key-frames in the tire deflating animation
  • - Tire_Deflated_020
  • - Tire_Deflated_040
  • - Tire_Deflated_060
  • - Tire_Deflated_080
  • - Tire_Deflated_100
Optionally you can also have a different tire model for when the tire has become 'De-Rimmed', the official cars usually reference the fully deflated tire model for this.
________________________________________________________________________________________________
2] Model & texture Guidelines
_____________________________________
2-A] Rim:
Your Rim can be modelled and textured however you choose.
_____________________________________
2-B] Tire:
As mentioned in the Overview, the tire models do NOT actually rotate, instead the tire texture will scroll in the Y or 'V' Axis to match the wheel speed.
With this in mind, make sure that your tire model consists of sufficient steps, so that the player will not be able to make out each step of the tire model in-game. Remember, the bigger the wheels are on the vehicle, the more steps will be required.

I usually use 48 Steps for regular car tires, and have used 96 Steps for the tires on Big Dump R as they are so huge.

With the tire texture animating in the Y/V axis, this means that your tire model will need to be un-wrapped as a strip, like below
Image
_____________________________________
2-C] Deflated Tires:
If you are unsure about deflated tires - It is worth importing the wheels from one of the default cars to get an idea of scale and the amount of deflation on each deflated tire relative to the regular tire model.

Here is an example of each deflated tire model relative to regular tire (with wheel/rim)

Regular Tire
Image
Tire_Deflated_020
Image
Tire_Deflated_040
Image
Tire_Deflated_060
Image
Tire_Deflated_080
Image
Tire_Deflated_100
Image

Remember that as a tire compresses vertically, it will expand in width, widening the tire footprint.
________________________________________________________________________________________________
3] Rigging & export for use In-game
_____________________________________
3-A] Position & Pivot Points:
Before you begin rigging the wheels, it is worth importing the tire & rim from one of the default cars, then scale & rotate your models to the same size & position. All Models should be positioned at 0,0,0 in world-space, with the pivot point set to where the centre of the wheel/rim is.

Unlike the car models, the rim, tire and each stage of deflated tire models are all referenced by separate CNT files referencing just one MDL.
_____________________________________
3-B] Naming Conventions:
The following naming convention is used on the official cars for each model
  • - Rim - Main Wheel/Rim model
  • - Tire - Main Tire
  • - Tire_Deflated_020 - First stage deflated tire
  • - Tire_Deflated_040 - Second stage deflated tire
  • - Tire_Deflated_060 - Third stage deflated tire
  • - Tire_Deflated_080 - Fourth stage deflated tire
  • - Tire_Deflated_100 - Fifth stage deflated tire
_____________________________________
3-C] Material Names:

The Rim model usually has a material name of Rim - How ironic?
The Tire model usually has a material name of Tire - Also, how Ironic?

Deflated tire models reference same material as regular tire.
_____________________________________
3-D] CNT Hierarchy:
  • Select each part and press 'Setup Hierarchy' under the 'Tools' -> 'Common' menu.
  • Make sure to tick 'Bake Scale Into Mesh'!
  • There are no parent/child links defined between the rim or tire models
_____________________________________
3-E] Export:
  • Select the Rim model, then select 'Export' -> 'Export Full CNT & MDL Hierarchy'
  • Navigate to your CarMODgeddon folder, and create a folder for your wheels (Example. Wheel_YourCarNameGoesHere_Stock)
  • Save as Rim.CNT
  • Repeat the export process to the same folder using the parts from your scene in Orange, as the names in Yellow
    Tire, -> Export as -> Tire.CNT
    Tire_Deflated_020, -> Export as -> Tire_Deflated020.CNT
    Tire_Deflated_040, -> Export as -> Tire_Deflated040.CNT
    Tire_Deflated_060, -> Export as -> Tire_Deflated060.CNT
    Tire_Deflated_080, -> Export as -> Tire_Deflated080.CNT
    Tire_Deflated_100, -> Export as -> Tire_Deflated100.CNT
    Tire_Deflated_100, -> Export as -> Tire_Derimmed.CNT
________________________________________________________________________________________________
4] Materials, Textures & Paperwork
_____________________________________
4-A] Materials:
You can either create simple materials using the MaxScript, or copy materials from other wheels, and edit the file arguments within (where appropriate) to match your texture names. Remember the name of the material (MT2) files need to match the materials from the scene (Rim & Tire).

Additionally you can have different materials referencing damage textures for your tire when 'deflated', 'derimmed' & 'detached'.
_____________________________________
4-B] Textures:
Convert your textures to .TDX using GibbedTools, and place them inside the wheel model folder.
_____________________________________
4-C] Paperwork:
You need one piece of paperwork to tie all this together 'CComplicatedWheelParameters.LOL'. Copy this from one of the official cars, and decode it with LOLDecoder.

When you open 'CComplicatedWheelParameters.LOL', It will look something like this

Code: Select all

CComplicatedWheelParameters:Set_RotateTyre(false) 
CComplicatedWheelParameters:Set_ScrollTyreTiles(-1) 
CComplicatedWheelParameters:Add_PuncturedStage(20, "Tyre_Punctured020") 
CComplicatedWheelParameters:Add_PuncturedStage(40, "Tyre_Punctured040") 
CComplicatedWheelParameters:Add_PuncturedStage(60, "Tyre_Punctured060") 
CComplicatedWheelParameters:Add_PuncturedStage(80, "Tyre_Punctured080") 
CComplicatedWheelParameters:Add_PuncturedStage(100, "Tyre_Punctured100") 
CComplicatedWheelParameters:Set_MaterialName_Tyre("Tire") 
CComplicatedWheelParameters:Set_MaterialName_Tyre_Punctured("tire") 
CComplicatedWheelParameters:Set_MaterialName_Tyre_Derimmed("tire")
CComplicatedWheelParameters:Set_MaterialName_Tyre_Detached("tire") 
Make sure that:
  • the Material Name 'Set_MaterialName_Tyre()', matches the name of your regular tire material.
If you do not have different materials for when the tire is deflated, derimmed or detached from the wheel, then use the regular Tire material name for:
  • 'Set_MaterialName_Tyre_Punctured()'
  • 'Set_MaterialName_Tyre_Derimmed()'
  • 'Set_MaterialName_Tyre_Detached()'
NOTE: If you do not have deflated tire models, then change the names in each of the punctured stages to that of your regular 'Tire'.
________________________________________________________________________________________________
5] Setup for use in-game
_____________________________________
5-A] Packaging Wheel:
  • Start up Minge
  • Make sure to set game to Max Damage (Game -> Select Game -> Max Damage)
  • Select ‘Package Mods’ -> ‘Package Carmageddon Mod’
  • Browse to the folder where the wheel was exported to
  • Set Mod Type as 'Wheel'
  • Fill in Meta Data as required
  • Press 'Package Mod'
  • Once complete, enable the wheel under 'Wheel Mods' and save
_____________________________________
5-B] Getting a car to use this wheel as its default wheels
With that complete, make sure to change the name of the 'wheel_folder_name' in the 'vehicle_setup.CFG' of your vehicle to match that of your new wheel, like so (Comments follow commands with a '//' Prefix):

Code: Select all

[wheel_map]
default //Used for stock wheels ONLY!
localise FE_CAR_MM_PARALYSER_TRASHEM_RIM_DEFAULT //References UI data
wheel_folder_name default_MM_Paralyser_TrashEm //Wheel Folder Name

Then update your vehicle using MINGE, and add the wheel as a 'required mod'.

If you want to use different wheel models for each wheel, then the wheel map will look something like this

Code: Select all

[wheel_map]
default
localise FE_CAR_MM_PARALYSER_TRASHEM_RIM_DEFAULT
fl_wheel_folder_name default_CustomCarWheel_FL
fr_wheel_folder_name default_CustomCarWheel_FR
rl_wheel_folder_name default_CustomCarWheel_RL
rr_wheel_folder_name default_CustomCarWheel_RR
_____________________________________
5-C] Getting a car to use this wheel as custom wheels
If this wheel is being added as a custom wheel, then add extra [wheel_map] data underneath the existing wheels in the 'Vehicle_Setup.CFG' in the same way that is used on the official cars, like so (Comments follow commands with a '//' Prefix):

Code: Select all

[wheel_map]
set_01 //This number reflects which set of wheels this is in the list
localise FE_CAR_MM_STODGE_BARGER_RIM_DEFAULT //References UI data
wheel_folder_name default_MM_Stodge_Barger //Wheel Folder Name
Then update your vehicle using MINGE, and add the wheel as a 'required mod'.

If you want to use different wheel models for each wheel, then see the example above.
________________________________________________________________________________________________
One last note

If your tire is rotating (scrolling) backwards in-game, then invert the number defined in 'Set_ScrollTyreTiles()'.
________________________________________________________________________________________________
Last edited by Mad Mike on Tue Jan 01, 2019 3:09 pm, edited 2 times in total.
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Troubleshooting

MaxScript Issues

__________________________
1] Upon export, I get an error message
‘–Unknown property: “Convert” in undefined’


This error can have one of at least two causes.

Cause 1 - Failed Texture Conversion
Sometimes this error will pop up when you export your vehicle and have enabled 'Convert Textures to TDX'. If it fails to convert the textures it will generate this error.

Cause 2 - Attaching or detaching Geometry from a part
If you make a change to any model part/s that result in a change in the number of triangles contained in that part (through any one of the following methods):
- Attaching parts
- Detaching Geometry from that part
- Deleting Geometry from that part
- Welding up Geometry
This results in the texture vertices and normals not matching up to the geometry vertices, and it will generate this error whenever you try to export this specific part to MDL. The simplest solution is to assign an 'Unwrap UVW' Modifier to any affected parts.
__________________________
2] Upon export, I get an error message
‘-Runtime error: Map support not enabled for specified map channel: 2’


This error means a mesh is missing a vertex colour channel. You should make sure that any vertices which aren't used for welds or the driver box (green, red, blue or purple as the common colours for those) should be set black with the alpha set to 1.0
__________________________
3] DotNet Error Message when launching the Maxscript

If the following error comes up when you run the maxscript:

Code: Select all

An attempt was made to load an assembly from a network location which 
would have caused the assembly to be sandboxed in previous versions 
of the .NET Framework. This release of the .NET Framework does 
not enable CAS policy by default, so this load may be dangerous. 
If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources 
switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
To remove this message, you will need to make a change to the "3dsmax.exe.config" file, which can be found in the "3dsmax XXXX" Root directory (where XXXX is the year of your version of 3dsmax).

Open the config file, and add the following code to the configuration:

Code: Select all

  <runtime>         
    <loadFromRemoteSources enabled="true"/>
  </runtime>
For more information on this error. Head to https://www.sigershop.eu/doc-troubleshooting/
Thanks to Starbuck for providing this updated link.
________________________________________________________________________________________________
Last edited by Mad Mike on Tue Jan 01, 2019 3:01 pm, edited 1 time in total.
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Troubleshooting
[WIP] Issues/Errors/Warnings, and tips for testing vehicles

__________________________
1] Balancing cars & issue of APO upgrades

When setting up & testing your cars in CarMODgeddon, you may find it is difficult to balance the stock performance & strength of your vehicle with the official cars due to the automatic APO upgrades applied to the AI drivers, which match the upgrades you have unlocked in the career rather than the APO upgrades on your currently selected vehicle, especially if you do not have any spare upgrade tokens to upgrade your car.

To test cars with 'stock' APO. Create a new save game for using in CarMODgeddon.
__________________________
2] Model & Material Issues
A] Model flashes pink
  • Missing Materials, check material names in car folder against names in 3dsmax
  • Invalid Material IDs, make sure material IDs on all parts start from 1 and are sequential
B] Model is really shiny, &/or textures are all black, &/or normal maps looks all weird
  • Missing Textures, check texture names in material (MT2) file are correct
C] Model/s are invisible
  • Materials referencing shaders that do not exist, check the shader type in the material (MT2) file is correct
D] Model Parts are all messed up (exploded)
  • Likely to be an issue with scaled parts - Make sure "Bake Scale Into Mesh" has been ticked under "CNT Hierarchy" on all model parts before exporting.

__________________________
3] Serious In-Game Issues & Crashes
This could be one long list...
A] Game Crashes upon event load (many, many causes, That is an understatement)
  • i] Invalid/mixed up physics properties in structure.xml
  • ii] Invalid weld strength in structure.xml
  • iii] Broken trailer hitch on vehicle or trailer in respective structure.xml
B] Tires are off-set in-game (multiple causes)
  • i] No weld vertices on wheel welds in structure.xml
  • ii] Mixed up physics properties in structure.xml
C] Game Crashes as vehicle takes damage
  • i] broken welds (incorrect weld vertex colours for jointed welds) in structure.xml
  • ii] broken joints in structure.xml
D] Game crashes when flaps open
  • i] broken welds (incorrect weld vertex colours for jointed welds) in structure.xml
  • ii] broken joints in structure.xml
E] Wheels are invisible
  • Materials referencing shaders that do not exist, check the shader type in the material (MT2) file is correct
  • Wheels not enabled in Minge
__________________________
4] Less serious issues
This could still be one long list...

________________________________________________________________________________________________
Last edited by Mad Mike on Tue Jan 01, 2019 3:01 pm, edited 1 time in total.
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Reserved for Tutorial Section: - Trailer setup notes
________________________________________________________________________________________________
Last edited by Mad Mike on Tue Jan 01, 2019 5:49 pm, edited 1 time in total.
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Reserved for Tutorial Section: - Future Expansion Space
________________________________________________________________________________________________
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Reserved for Tutorial Section: - Future Expansion Space
________________________________________________________________________________________________
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Reserved for Tutorial Section: - Future Expansion Space
________________________________________________________________________________________________
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Reserved for Tutorial Section: - Future Expansion Space
________________________________________________________________________________________________
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.
User avatar
Mad Mike
road raged psycho
Posts: 1233
Joined: Wed Aug 03, 2011 8:30 pm

Re: Do NOT reply, Tutorial under Re-Construction

Post by Mad Mike »

Reserved for Tutorial Section: - Future Expansion Space
________________________________________________________________________________________________
One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.