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

Car Setup Tutorials For Trents Maxscript Tools.

Post by Mad Mike »

Level 3 - Chapter 6 - (MacPherson) Strut Suspension

Part 3


________________________________________________________________________________________________

5-E] Extra Parts

These parts are not required to get the suspension system working, but are necessary in completing the look of the suspension system.

____________________________

5-E-i]

Upper Strut / Shock Absorber / Upper Damper

Since the lower half of the Shock Absorber/Damper is merged into the 'Strut Hub'. You only need to manually animate the upper half of the shock/damper. This should be parented to the wishbone mount. It is very important that the pivot point for this is correctly set to where it connects to it’s parent part.

If the shock absorber is not vertical, then the Pivot Point also need to be rotated to match that rotation. Additionally the Pivot Point needs to be rotated by an additional 180 degrees in the Z Axis (known as the Y Axis in 3ds max) to make sure that the 'Local Y Axis' of the Shock absorber points down towards the 'Strut Hub's pivot point.



You will need to create position helpers/PH at the pivot point and the end point of the Upper-strut/Upper-damper.

In addition to basic structure data. You will then need to make use of two ‘Point-to-Point’ Animations.

  • SnapPointToPointOnOtherPart() – Snaps Pivot Point to Wishbone Mount at the same point

  • RotatePointToPointOnOtherPart() -Rotate End Point of This Half to where the lower half of the shock is connected to on the 'Strut Hub'

Lastly the Upper-strut/Upper-damper will need to be welded to it’s parent part. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

____________________________

5-E-ii]

Coil Springs

The Coil Springs will need to be parented to the Upper-strut/Upper-damper. The Pivot Point will need to be set-up in the same way as it is for Upper-strut/Upper-damper. You will need to create two position helpers. One at the centre of the top of the coil spring, and the Second at the centre of the bottom of the coil spring. In this case, the end of the coil spring is set to the end point of the Upper-strut/Upper-damper to simplify the number of position helpers required.



In addition to basic structure data, you will need to make use of two ‘Point-to-Point Animation’s. One of which needs to be set to a ‘RotatePointToPointOnOtherPartWithScaling()’.

  • SnapPointToPointOnOtherPart() – Snaps Pivot Point of Coil Spring to Upper-strut/Upper-damper at the same point

  • RotatePointToPointOnOtherPartWithScaling() – Rotate and scale the End point of the Coil Spring to The 'Strut Hub' at the same point

Lastly, the Coil Spring should be welded to its’ parent part. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

________________________________________________________________________________________________

5-F] Differences for Rear Suspension (Hubs)

When modelling Macpherson Strut suspension for rear suspension, there will be some minor differences in how the parts should be modelled.

____________________________

5-F-I]

Modelling different attach points on hub (hinges rather than ball joints)

Non-steering (Rear wheel) Hubs on Macpherson Strut suspension will be modelled slightly differently to the front hubs. On a Hub that is used for steering, it is connected to the wishbone via ball joints and would be modelled that way. But on a hub that is not used for steering, it is connected via hinges, so adapt the model accordingly.

____________________________

5-F-ii]

Driveshafts/UJs

To be covered briefly in the powertrain section. For Macpherson Strut suspension, you will need to break the driveshaft down to a total of four parts for each corner on a Macpherson Strut suspension setup.
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

Car Setup Tutorials For Trents Maxscript Tools.

Post by Mad Mike »

Level 3 - Chapter 7 – Steering Rack & Tie Rods


________________________________________________________________________________________________

7-A] Required Parts


____________________________
5-A-i] Steering Rack

The Steering Rack translates the Radial turning of the steering column into a linear movement of the tie/track rods. You can see an example of the steering rack in the image below.

____________________________
5-A-ii] Tie/Track Rods

The Tie Rods are part of the steering system, where the Radial turning of the steering column is turned into a linear movement of the Inner tie/Track rods, and the outer tie will then rotate between the Inner Tie/Track Rods and the Hub. You can see examples of the Tie/Track Rods in the image below.

Below is a colour coded image, showing all of the requisite parts listed above.

  • Steering Rack (Red: 255,000,000)

  • Hubs (Orange: 255,102,000) For reference only

  • Inner Tie Rods (Yellow: 255,255,000)

  • Outer Tie Rods (Green: 000,255,000)



________________________________________________________________________________________________

7-B] Typical Hierarchy

Below you can see the hierarchy from this steering rack. The parts ‘StrShaft0’ & ‘StrShaft1’ are the input shafts from the steering column.


________________________________________________________________________________________________

7-C] Part Setup


____________________________

7-C-i]

Steering Rack

The Steering Rack does not require much in the way of setup. It just needs basic structure data and to be welded to its’ parent part, in this case that is the chassis. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

____________________________

7-C-ii]

Outer Tie Rod

The Outer Tie Rods’ pivot point needs to be set at the point where it meets the inner tie rod, as per the image below.


In Addition to the basic structure data, the Outer Tie Rod will need to be assigned the appropriate “LEFT_STEERING” or “RIGHT_STEERING” Physics property depending on which side of the car this Tie Rod is.

To Animate the Outer Tie Rod, we will need to use a ‘SnapPointToPointOnOtherPart()’ and a ‘RotatePointToLineOnOtherPart’ function.

Positions of Position Helpers

Before adding the animations, you can see all of the relevant position helpers (the Crosses) that will be needed for animating the Outer and Inner Tie Rods below, colour coded as follows

  • Steering Rack Centre (Red: 255,000,000)

  • Outer Tie Rod To Hub (Orange: 255,102,000)

  • Inner Tie Rod to Steering Rack (Yellow: 255,255,000)

  • Inner Tie Rod to Outer Tie Rod (Green: 000,255,000)

  • Steering X Vector (Black: 000,000,000)

NOTE: When setting up the steering for the right side, you will need a separate set of position helpers for the tie rods on that side


‘SnapPointToPointOnOtherPart()’

The Outer Tie Rod will need to snap to the point where it meets the hub, so you will need a position helper where the Outer Tie Rod meets the Hub. Then, add the ‘SnapPointToPointOnOtherPart()’ animation using ‘tools’ -> ‘car’ -> ‘Point-To-Point Animation’, and set the Animation up appropriately.

  • ‘Point on this object’ – Set to the position where the Outer Tie Rod meets the hub

  • ‘Other Object’ – The Hub

  • ‘Point on Other Object’ – Set to the position where the Outer Tie Rod meets the hub

‘RotatePointToLineOnOtherPart’

The ‘RotatePointToLineOnOtherPart’ function requires a little more work and will need multiple Position-Helpers/PHs’ to complete the part setup for the Outer Tie Rod

  • 1 PH where the Outer Tie Rod meets the Inner Tie Rod

  • 1 PH at the centre of the Steering Rack

  • 1 PH offset by 1.0 Units in the X Axis from the Centre of the steering Rack

Add the ‘RotatePointToLineOnOtherPart()’ animation using ‘tools’ -> ‘car’ -> ‘Point-To-Point Animation’, and set change the animation type in the drop-down to match. Now to set the animation up:

  • The ‘Point on this object’ is the point on this part that will be rotated to meet the line on the ‘Other Object’
    For the Outer Tie Rod, this point is the ‘Inner Tie Rod to Outer Tie Rod’ Position Helper

  • The ‘Other Object’ is the part we are referencing a line from to rotate this this part to
    For the Outer Tie Rod, this is the Steering Rack

  • The ‘Point on other Object’ is a point which the line passes through
    For the Outer Tie Rod, this point is the ‘Steering Rack Centre’ Position Helper

  • The ‘Line Target’ is defines the vector in which the line is drawn
    For the Outer Tie Rod, this point is the ‘Steering X Vector’. This position helper must be offset from the ‘Steering Rack Centre’ by 1.0 units in the X axis

Lastly, the Outer Tie Rod should be welded to its’ parent part – the steering rack. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

____________________________

7-C-iii]

Inner Tie Rod

The Inner Tie Rods’ pivot point needs to be set at the point where it ends inside the Steering Rack, as per the image below. Remember that the tie rods will slide in and out of the steering rack, so the inner tie rods need to be long enough so that they do not completely slide out of the steering rack.


In Addition to the basic structure data, the Inner Tie Rod will need to be assigned the appropriate “LEFT_STEERING” or “RIGHT_STEERING” Physics property depending on which side of the car this Tie Rod is.

To Animate the Inner Tie Rod, we will need to use a ‘SnapPointToPointOnOtherPart()’ and a ‘RotatePointToLineOnOtherPart’ function. These will be setup almost identical to the animations on the Outer Tie Rod.

‘SnapPointToPointOnOtherPart()’

The Inner Tie Rod will need to snap to the point where it meets the Outer Tie Rod, so you will need to use the position helper where the Outer and Inner Tie Rods meet in the ‘SnapPointToPointOnOtherPart()’ animation. Add the animation using ‘tools’ -> ‘car’ -> ‘Point-To-Point Animation’, and set the Animation up appropriately.

  • ‘Point on this object’ – Set to the position where the Inner Tie Rod meets the Outer Tie Rod

  • ‘Other Object’ – The Outer Tie Rod

  • ‘Point on Other Object’ – Set to the position where the Inner Tie Rod meets the Outer Tie Rod

‘RotatePointToLineOnOtherPart()’

The ‘RotatePointToLineOnOtherPart’ animation for the Inner Tie Rod will be set up very similarly to the ‘RotatePointToLineOnOtherPart’ animation on the Outer Tie Rod. Add the ‘RotatePointToLineOnOtherPart()’ animation using ‘tools’ -> ‘car’ -> ‘Point-To-Point Animation’, and set change the animation type in the drop-down to match. Now to set the animation up:

  • The ‘Point on this object’
    For the Inner Tie Rod, this point is the ‘Inner Tie Rod to Steering Rack’ Position Helper

  • The ‘Other Object’
    For the Inner Tie Rod, this is the Steering Rack

  • The ‘Point on other Object’
    For the Inner Tie Rod, this point is the ‘Steering Rack Centre’ Position Helper

  • The ‘Line Target’
    For the Inner Tie Rod, this point is the ‘Steering X Vector’. This position helper must be offset from the ‘Steering Rack Centre’ by 1.0 units in the X axis

Lastly, the Inner Tie Rod should be welded to its’ parent part – the steering rack. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

____________________________

7-C-iii]

Extra Parts

When setting up a steering rack, you might want to add the input shafts that depict the transmission of the rotation through the steering column to the steering rack. Below you can see the two shafts used on the tutorial car.



It is important that the input shafts’ pivot points are set to the centre of the shafts and rotated where necessary. Below you can see an example of this on the second shaft.



In addition to the basic structure data, the steering input shafts only require a ‘standard animation’, accessed under ‘tools’ -> ‘Car’. This needs to be set to ‘Rotate’ in the appropriate local axis (usually the Z axis), and the ‘degree’ value will need to be set to a negative value (-1, -2, -3, etc). This will need to match the rotation of your steering wheel to look correct.

Lastly, the Input shafts should be welded to their parent part – the steering rack. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.
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

Car Setup Tutorials For Trents Maxscript Tools.

Post by Mad Mike »

Level 3 - Chapter 8 – Powertrain/Drivetrain


________________________________________________________________________________________________

Unless otherwise stated in the setup information for each part, all mechanical parts typically have the following main settings

Render Level:
  • ◦Set at 3, unless part is very large or on clear display (Axle, Engine)

Basic Settings:


  • ◦Enable Crushability and set to 0.0

________________________________________________________________________________________________

8-A] Transmission to Live Axle or Differential

There are lots of options for visually animating the powertrain of a vehicle in Carmageddon Max Damage. To represent the transmission of power from either a Transmission or Transfer box, to a Differential (Live Axle or independent suspension), You will need three model parts.

____________________________

8-A-i] Parts Required

UJ (Transmission or Transfer Box)

As covered in the Live Axle Tutorial, you will need a part representing a Universal-Joint/UJ, and this needs to be attached to your transmission or transfer box. Like below.


____________________________
UJ (Differential or Live Axle)

As covered in the Live Axle Tutorial, you will need a part representing a Universal-Joint/UJ, and this needs to be attached to your Live Axle, or differential if you’ve modelled Double Wishbone or Macpherson Strut suspension. Like below.



____________________________
Driveshaft

Bridging the gap between both universal joints will be the driveshaft. Like below


____________________________

8-A-ii] Typical Hierarchy

Typically, the UJ attached to the live axle or differential is parented & welded to that part. The UJ & Driveshaft attached to the Transmission or Transfer box are typically parented & welded to the Transmission or Transfer box.

Do NOT parent the driveshaft to the universal joint! Otherwise it will inherit any transformations applied to the UJ.

____________________________

8-A-iii] Part Setup

8-A-iii-1] UJ (Transmission or Transfer Box)

Setting up a universal joint here is identical to the UJ setup mentioned in the Live Axle setup tutorial. The pivot point must be set to the centre of the shaft.

In addition to basic structure data, you will need to assign a ‘Standard Animation’ (accessed via ‘Tools’ -> ‘Car’). This will need to be set to rotate by 1 degree in the Local Z axis, using the ‘GEARBOX_OUTPUT_ANGLE’ animation controller.


Lastly, the UJ should be welded to its’ parent part. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

____________________________
8-A-iii-2] UJ (Differential or Live Axle)

Same as the setup process mentioned above.

____________________________
8-A-iii-3] Driveshaft

Setting up the driveshaft requires everything mentioned in the setup for the universal joint/s mentioned above (including rotating the rotation in the local Z axis). It also requires the use of two ‘Point-to-Point Animations’ to get the driveshaft to rotate and stay with the Live Axle as the suspension compresses and rebounds.

It is very important that the driveshafts’ pivot-point is not just set at the centre of the shaft, but also at the point where it meets the universal joint, see below for reference.


You will need to place a position helper where the Driveshaft meets the UJ on the Transmission and another position helper where the Driveshaft meets the UJ on the Axle. See below for reference.


Next you will need two 'Point to Point Animations' (Accessed via ‘Tools -> ‘Car’).

‘SnapPointToPointOnOtherPart()’

  • ‘Point on This Part’ – Position Helper where the Driveshaft meets the UJ on the Transmission (Orange)

  • ‘Other Object’ – UJ attached to transmission, or the transmission itself

  • ‘Point on Other Part’- Position Helper where the Driveshaft meets the UJ on the Transmission (Orange)

‘RotatePointToPointOnOtherPart()’
Don’t forget to change the animation type in the dropdown to Rotate instead of snap.

  • ‘Point on This Part’ – Position Helper where the Driveshaft meets the UJ on the Axle (Green)

  • ‘Other Object’ – UJ attached to Axle, or the Axle itself

  • ‘Point on Other Part’- Position Helper where the Driveshaft meets the UJ on the Axle (Green)

Pen ultimately. Add the same 'Standard Animation' applied earlier to both of the Universal-Joints/UJs

Lastly, the Driveshaft should be welded to its’ parent part (Transmission or transfer box). The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

________________________________________________________________________________________________

8-B] Differential to Independant Suspension

(Wishbone or Strut)


____________________________

8-B-i] Parts Required

When you've got a vehicle with independent suspension that is powered, the process of depicting the transmission of power from the Differential to the Hub requires a total of four parts, 4 x Driveshaft/s ending with Universal Joints:

  • 1 To be attached to the differential

  • 1 To be attached to the Hub

  • 2 will form the longer driveshaft that will have to move to stay connected (to the above) as the suspension compresses and extends

Below you can see a visual representation of these (Wireframes highlighted in white). If the two shafts that form the main driveshaft are at an angle, ideally make sure it is an integer value and keep a record of it, as it will affect the pivot points.


____________________________

8-B-ii] Typical Hierarchy

The Driveshaft/UJ attached to the differential and the first half of the long driveshaft should be parented to the differential. The other UJ and half of the driveshaft should be parented to the Hub. Do NOT parent driveshafts' to one another, otherwise they will inherit animations from their parent.

____________________________

8-B-iii] Part Setup

It is very important that the pivot point for all parts are set at the centre of the shafts. For the the two longer driveshaft parts, which may be at an angle, the pivot points must also be rotated by that same value and be set at the end of the shaft where it meets its respective UJ. Below you can see a visual representation of this.


Driveshaft Rotation Animation

In addition to basic structure data. All four of the these parts will need to be a assigned a 'Standard Animation' (accessed via 'Tools -> 'Car')

  • 'Animation Type' should be set to "Rotate"

  • 'Local Axis' Should be set to "X"

  • 'Controller' should be the relevant "WHEEL_ROTATION_XX" animation controller, where "XX" is the wheel for that corner.

  • 'Degree' value should be left at "1.0"

Point-To-Point Animation

Furthermore, the two longer shafts will each need to make use of a 'SnapPointToPointOnOtherPart()' and a 'RotatePointToPointOnOtherPart()' function. Below you can see the position helpers that are going to be used for the 'Point-to-Point Animations' (Highlighted in Blue). One is at each shafts' pivot-point, the other at each shafts' end point.


The 'Point-To-Point Animation's on each shaft will be set up as follows

  • 'SnapPointToPointOnOtherPart()' - Snap Pivot Point of this shaft to UJ at same point

  • 'RotatePointToPointOnOtherPart()' - Rotate End Point of this shaft to other half of Driveshaft at its' Pivot Point

Lastly, all four shafts should be welded to their parent parts. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

Closing Note:


There seems to be a bug in Carmageddon Max Damage, where driveshafts that make use of two point to point functions (Examples: Transmission to Live Axle, or Differential to Hub [Independent suspension]), will not spin, even if configured correctly.
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

Car Setup Tutorials For Trents Maxscript Tools.

Post by Mad Mike »

Level 3 - Chapter 10 – Animated Steering wheel


________________________________________________________________________________________________

To improve the appearance of the driver inside the car. You will want them to hold onto the steering wheel and have it animated.

The Steering wheel typically has the following main settings

Render Level:
  • ◦Set at 2,

Basic Settings:


  • ◦Enable Crushability and set to 0.0

____________________________

10-A] Steering Wheel Pivot

The steering wheel will need to be separated out from the rest of the steering column, and should be parented to the root of the vehicle (c_Body). The Pivot Point for the Steering Wheel (accessed via the hierarchy tab) must be at the centre of the wheel. Additionally, If your steering wheel is at an angle, then the pivot point must also be rotated, see below for reference.


____________________________

10-B] Physics Property

In addition to the basic structure data. I would recommend that the ‘Render Level’ for the steering wheel is set at 2 instead of 3. You will also need to assign the physics property of “STEERING_WHEEL” to the steering wheel. This will get the driver model to try and grip the steering wheel in-game. If the driver cannot reach the wheel, then you may need to adjust your driver position.

____________________________

10-C] Animation

To animate the steering wheel, you will need to assign a ‘Standard Animation’ through ‘Tool’ -> ‘Car’ -> ‘Standard Animation’.

  • ‘Animation Type’ needs to be left as ‘Rotate’

  • ‘Local Axis’ Should be set to Z

  • ‘Degree’ Value should be a negative value and match that of your steering input shafts on the steering rack (if present).

    // Remember that the wheel will rotate this number of degrees per 1 degree of steering angle. If the wheel Rotates too far, then the drivers arms will twist and clip through one another. Typically I aim for a maximum wheel rotation of 90-120 degrees, which means a ‘Degree’ Value of ‘-3’ when the maximum steering angle defined in the car setup is between 30-40 degrees.

Lastly, don’t forget to weld the Steering Wheel to its’ parent part. The weld vertex/vertices do NOT have to meet an actual vertex on the parent part.

________________________________________________________________________________________________

Level 3 - The End – Game Over

That's all Folks. The Level 3 Tutorial Car, now christened the 'Paralyser Grand Prick' is now complete.



One man... Alone... Wrecking opponents in the Automobile he loves.
Twitter Manifestation. - Mods for Max Damage.