CarWorks

From Stunts Wiki
Current CarWorks logo

CarWorks is a tool developed by Cas with the purpose of aiding in custom car creation by providing some degree of automation to the process. The project was started in 2020 as a pair of experimental tools, one of which was called CarWorks 0.1 and the other being known as Dash Manager. In its alpha stage, the pair already allowed for the automatic generation for 3D car shapes from Wavefront OBJ files which were directly scaled, assisted generation of paint jobs, configuration of physical parameters and dashboard set up including image manipulation and instrument calibration. The dashboard functions were concentrated in the Dash Manager tool, whereas other functions were provided by the old CarWorks. A forum thread was started on 10 December 2020 in which the first versions were posted.

The first non-alpha version was released on 18 May 2021. CarWorks 1.0 was made to include all of the possibilities available in the old programs, but now all in a single tool. The interface was made more friendly and good looking. The physical parameter section was greatly improved, incorporating some adjustable values in the torque curve graph. By comparison, the interface of the old CarWorks was mostly text-based.

CarWorks can manipulate 3D shapes, although it cannot edit them as of the current version. Editing capabilities are projected for the future, but this is not a priority, since importing and exporting Wavefront OBJ files allows for using external editors such as Blender and Anim8or. By comparison, Stressed does have some editing capabilities and is more general. CarWorks is only intended for editing cars and it wouldn't be adequate for track elements and other shapes.

Physical parameter editing is more direct and graphic-oriented than when done with Car Blaster. Parameters that are represented graphically cannot, in general, be edited as numbers. Also, parameters that are related to the 3D shape or to the dashboard are managed by the corresponding sections, while Car Blaster can edit all of them in one place. CarEdit 3 is another possibility.

Dashboard edition is a unique feature of CarWorks (and the old Dash Manager). It is possible to accomplish the same by means of Stressed, but it's a lot more work. Instruments in CarWorks can be configured graphically and even automatically generated following an arc, whereas this has to be done numerically when using Stressed. CarEdit 3 does have some basic graphical representation of these, though.

For the car designer that is used to other tools, CarWorks will probably be best used in combination with those other tools, as their strengths tend to complement one another. It is possible to build a car from scratch with CarWorks, though.

3D shape handling

CarWorks 1.0.2 - 3D model editing and configuration

CarWorks can load and save Stunts 3D shapes in unpacked format (3SH). If stunpack is available, it can be configured to load packed (P3S) shapes too. It can also import and export Wavefront OBJ files. When a 3D shape file is loaded, all of its contained shapes are updated with all of their primitives. When an OBJ file is imported, only polygons can be taken from them, so wheels, line segments and spheres cannot be produced. If wheels were present before, they are preserved. Whether the wheels are present or not at any one time, they can be generated by pressing Ctrl+W. OBJ shapes are understood as being in meters and are loaded only to update the current car model. The same shape can later be loaded again to replace the other two shapes or these can be copied to one another via Ctrl+C/Ctrl+V.

The arrow keys and the mouse wheel can be used while the mouse pointer is at any of the editing windows to move the model following the desired coordinates. Using Tab, the editing mode can be changed, which allows the user to resize and move the wheels. The M key can be used to cycle through the models or otherwise, number keys 1 through 5 can select a model directly. Models 1, 2 and 3 are the ones contained in the 3SH files. Models 4 and 5 are auxiliary and can be used to temporarily save your changes.

Paint-jobs can be cycled with the < and > (or , and .) keys. By pressing Enter on top of the 3D render viewport, a paint-job can be changed. CarWorks will try to guess which surfaces are to be changed to the new colour and in which shades. This won't work for cars that have been painted in a custom fashion. You can force this to work by auto-shading your model with Ctrl+A, which will erase all colours for that paint-job and shade according to orientation. You can then proceed to change this to any paint-job colour you like. Of course, this will cause car windows and other surfaces that aren't supposed to be painted to end up coloured too, so you may later want to manually edit these surfaces.

Ctrl+B can be used to automatically produce collision information and detect the wheel locations for the physics engine. This information will be shown in orange in the 2D viewports. Ctrl+D will also automatically generate the debris shapes out of primitives found in your model. If you want to manually create your own debris, you can resort to Stressed.

Editing car parameters

CarWorks 1.0.2 - Physical parameter configuration

The physical parameter editor is pretty straightforward to use. Most features can be directly edited numerically. Just click on the corresponding figure and enter the new value. CarWorks includes even parameters whose function is unknown as of today and many of which are likely ignored by Stunts engine.

Everything related to torque can be seen and edited in the torque curve graph. Draw the curve freely with the mouse left button or use the mouse right button to pick a point in the curve and manually update it with the up and down arrow keys. You can also move left and right to adjacent curve points. Z can be used to change the zoom level, but the default is usually optimal. Values 128 and above appear to be very unstable and are not recommended.

There are four knobs underneath the graph that can be dragged to move the Idle RPM, Downshift RPM, Upshift RPM and Maximum RPM indicators. These can also be updated by pressing I, D, U or M respectively while pointing in the graph.

Notice the Power Gear parameter. Power gear is directly dependent on car mass and will vary when you change this value. Because which mass values lead to which power gear characteristic is not immediately obvious, you can click on the power gear field and this will switch to the next characteristic, automatically updating the car mass to the one that's closest to the current value, yet resulting in the desired characteristic. Bear in mind that power gear does not only depend on mass. The torque curve and limits must be adequate to allow for a useful PG.

Creating a car shape file

The most useful way to work with this tool is to first produce a Wavefront OBJ file with a 3D shape editor such as Blender or Anim8or. CarWorks includes a material library file called stunts.mtl that can be used to simulate the colours as will be seen in the game. One should first create a shape and optionally, paint it in a way that's approximately what one would like. Names should be assigned to the materials used according to the ones present in the material library file provided. If names Stunts0 to Stunts128 are used, these will later be interpreted as static materials from 0 to 128 of Stunts internal material library. Names base1 to base4 can be used for shades of the same colour that are supposed to change with paint-jobs. So for blue, for example, base4 will be the brightest blue and base1, the darkest.

With the shape saved to OBJ, material names will be stored in the OBJ file. With Blender, a material library file with the same file name will be created. This can be discarded. The OBJ file can be edited and the line that begins with "mtllib" can be changed to "mtllib stunts.mtl". This will allow the shape editor (i.e.: Blender) to see the actual appearance of the shape if it is loaded again. CarWorks does not require this change to be made, though. It will ignore the new material library and always use Stunts materials based on the material names given.

In order to use this OBJ file in CarWorks, first you should load a 3SH file from another car using option 1. After than, option 2 (Load object file) can be used to load the OBJ shape. CarWorks will overwrite all vertices and primitives except the wheels, effectively borrowing these from the previously loaded car shape, as Blender and Anim8or cannot produce wheels. The shape will be scaled to generate the three chunks: car0, car1 and car2 automatically in memory. Debris will be borrowed from the loaded car too. This can easily be edited later with Stressed.

To produce working paint jobs, use option 6 (Select paint jobs). Use Tab, PgUp/PgDn, Enter and the arrow keys to configure the set of paint jobs you want the car to have. Then, return to the main menu. Option 5 (Adjust wheels) can be used to correctly align the wheels and also centre the car shape if you want to.

With all these done, use option 3 (Save Stunts car shape) to produce a 3SH file. Paint jobs will be automatically generated based on the base1 to base4 materials.