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

Upon entering the program, menu option 7 (Load Stunts car parameters) can be used to load a CAR*.RES file. Then, option 9 (Edit parameters) leads to a simple screen in which each parameter can be entered numerically. At the bottom, a graphical representation of the torque curve can be edited with the mouse pointer. After finishing, option 8 (Save Stunts car parameters) can be used to write the CAR*.RES file back. It's important to load a RES file before editing, as other existing data in the file will be kept, such as parameters that control the dashboard, which cannot be edited from here. If the RES file is written starting from an empty session, all these parameters will be set to zero, which can be harder to edit later.

CarWorks was made using the Stunts Wiki as a reference. The car parameters were at that time described relative to the beginning of the file instead of the beginning of the simd block (see Car parameters). For this reason, files with a different chunk ordering will not load correctly into CarWorks. The ordering can be changed in Stressed.

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.