Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Vehicle windows are defined in the physics properties of the window collision. See window_lf.col
in adder.yft
for example.
Enabling Is Glass Window
will cause the window properties to appear. The only property you should have to change here is the Window Material
. This is the material that the corresponding window mesh uses. Looking at the window_lf
mesh materials, we see that it uses two vehicle_generic_glasswindows2
materials.
This is because one material represents the inner glass and the other represents the outer glass. Go into Edit Mode and select the vertices of each material to see which one represents the outer glass. In this case, it's the material without the ".001" so that's the one that the glass window should reference.
That's all that is needed for working vehicle windows!
You will notice that all vanilla vehicles have "shattermaps", which is an image that defines the border of the glass-breaking pattern. These aren't 100% necessary for working vehicle windows but will result in better-looking glass shatter patterns.
In Sollumz, shattermaps are represented as planes with a single texture. For example, adder.yft
has an object called windscreen_shattermap
which is parented to windscreen.col
.
These are always low-res bitmap greyscale textures. Currently, Sollumz has no tools for creating shattermaps, so your best bet is to copy shattermaps from vanilla files and work off of those.
Upon importing, you will notice that the vehicle has only one wheel. This is because the game instances (re-uses) wheel_lf
for all other wheels.
Wheel meshes do not have vertex groups but are instead rigged by a Child Of Constraint (as explained in Drawables > Rigging).
Also, wheel meshes have the Is Wheel Mesh
property ticked under Object Properties > Sollumz
.
That's all that's needed for setting up wheel meshes!
In Sollumz Tools > Fragment > Create Fragment Objects
is a tool called Generate Wheel Instances
. This tool will create instances of the wheel, allowing you to better preview what it looks like in-game. This is useful when positioning the wheel bones.
There are two import settings that determine how Fragments import: Split By Group
and Import with _hi
.
Split By Group will split the Drawable by vertex group. This is typically what you want when editing vehicles, as vehicles are skinned (i.e. rigged with weighted vertex groups), so there is typically only one Drawable Model containing many vertex groups as opposed to multiple Drawable Models each linked to a bone (see Drawables > Rigging > Skinning for more info on rigging Drawables).
Here is what adder.yft
looks like when split by group.
Notice how each object represents a separable part of the vehicle. Since it's split by vertex group, each object will only have one vertex group.
While the Drawable is initially set up with one vertex group per object, it is perfectly fine for an object to contain multiple vertex groups.
Each object also has an armature modifier with the Fragment as the target object.
Vehicle Fragments have an additional LOD level that is stored in a separate file named <fragment name>_hi.yft
. For adder, it would be called adder_hi.yft
. This is the highest level of detail and is what the player sees when close to the vehicle (i.e. when driving). It is very cumbersome to work on two separate YFTs so Sollumz stores this extra LOD level in the Very High
LOD level. This enables you to work on both YFTs at once.
You should only use this LOD level when working with vehicles. When a mesh is provided for the Very High
LOD level, Sollumz will export an extra _hi YFT that you don't need when working on props.
To import Very High
LODs, first enable the Import with _hi
option in the import settings panel, and ensure the _hi YFT is in the same directory as the non-hi YFT. Then, select the non-hi YFT and import.
As with any Fragment/Drawable, if you want the textures to be automatically imported with the mesh, ensure you extract all textures to a folder with the same name as the Fragment in the same directory.
In the Export Codewalker XML > Fragment
panel, you will find the Toggle LODs
option.
This allows you to export just the hi YFT, just the non-hi YFT, or both at the same time.
Any mesh with vehicle_lightsemissive
shaders will appear always emissive in-game unless light IDs are assigned. Assigning light IDs allow you to make some faces only appear emissive under certain conditions (i.e. headlights on/off). Sollumz makes assigning light IDs easy.
With a headlight object selected, enter Edit Mode
in Face Selection
mode and navigate to the Sollumz Tools > Fragment > Vehicle Light IDs
panel.
Select the faces of the left headlight that use the emissive shader, then set its light ID to headlight_l
.
Notice now that if you unselect those faces, and select the headlight_l
light ID, it will select those faces you just assigned.
Paint colors allow you to determine which materials represent the Primary color, Secondary color, Wheel color, Interior Trim color, and Dashboard color. To select the paint color for a material, navigate to Material Properties > Sollumz > Fragment
.
By default it will be "Not Paintable", meaning the shader will not be affected by any paint color.
Not all shaders are paintable. If you are trying to set up a paintable vehicle material and you are getting the "Not a paint shader" message, then you need to use a different shader. Typically you'd want to use a vehicle_paint
shader for the body of a vehicle.