|
|
Line 118: |
Line 118: |
| = Modeller guides = | | = Modeller guides = |
| | | |
− | This section contains guides for the [[Modeller]] features.
| + | {{Modeller guides}} |
− | | |
− | == Loading a model ==
| |
− | | |
− | [[image:Modeller RB4.jpg|thumb|RB4 GT loaded in [[Modeller]] through [[Vehicle Editor]]]]
| |
− | [[image:RB4 modeller standalone.jpg|thumb|RB4 GT loaded in modeller using the 'LOAD' function. Notice the absence of wheels because the object was not loaded through [[Vehicle Editor]].]]
| |
− | [[image:Modeller subobject.jpg|thumb|The RB4 GT steering wheel loaded in [[Modeller]]]]
| |
− | | |
− | You can load either an existing object made in the [[LFS Editor]], or an external model in OBJ format.
| |
− | | |
− | The button for loading a model is located in the bottom left corner of the [[Modeller]] screen.
| |
− | | |
− | [[image:Modeller load and save objects.jpg]]
| |
− | | |
− | For more information about this button cluster, refer to [[Modeller#Load .2F save object|Load / save object]].
| |
− | | |
− | === Loading an existing vehicle made in LFS editor ===
| |
− | | |
− | An existing vehicle model can be loaded into the [[Modeller]] by loading a vehicle in the [[Vehicle Editor]] and switching to the [[Modeller]]:
| |
− | | |
− | # Open the [[Vehicle Editor]]
| |
− | # Load a vehicle by pressing the {{old button|LOAD|#00ff00}} button and select it from the list
| |
− | # Press {{key press|Esc}} or click {{old button|E - Edit Model|#a1a1ff}} in the bottom right part of the screen
| |
− | | |
− | To go back from the [[Modeller]] to the [[Vehicle Editor]], press {{key press|Esc}} - the changes done in the modeller will be carried over automatically, there is no need to save it explicitly.
| |
− | | |
− | === Loading an object saved in LFS editor ===
| |
− | | |
− | To load a standalone object saved from the [[Modeller]] or the [[Vehicle Editor]],
| |
− | | |
− | # Enter the [[Modeller]] in a standalone mode from the LFS editor entry screen
| |
− | # Click the {{old button|LOAD|#00ff00}} button at the bottom left of the screen.
| |
− | | |
− | Such object can be the main object (car body) or a subobject, like a steering wheel.
| |
− | | |
− | === Loading an external 3D model ===
| |
− | | |
− | If you have a 3D model in [https://en.wikipedia.org/wiki/Wavefront_.obj_file OBJ format] that you want to import into the [[Modeller]], you can load it by clicking the {{old button|OBJ|#ffffa1}} button at the bottom left of the screen. The file must be located in the 'data\obj' directory and must have a '.obj' extension.
| |
− | | |
− | The OBJ file must be exported properly to be useable in the LFS editor.
| |
− | | |
− | How to export from Blender:
| |
− | | |
− | ==== Scale ====
| |
− | | |
− | LFS uses metres for units. If you use another unit, please export using an appropriate scale.
| |
− | | |
− | ==== Position ====
| |
− | | |
− | Your model should be approximately centred over the origin and ideally the body should sit on the ground (without the correct ride height).
| |
− | | |
− | ==== Backface culling ====
| |
− | | |
− | Live for Speed uses single sided triangles. While modelling in blender and before exporting, make sure you look at your model with back face culling enabled so you can be sure the surfaces are facing the right way.
| |
− | | |
− | ==== Export Settings - Export OBJ file ====
| |
− | | |
− | Transform:<br />
| |
− | - Y forward / Z up (so the model is oriented correctly in LFS)
| |
− | | |
− | Geometry:<br />
| |
− | - Write normals (so LFS can work out smoothing groups)<br />
| |
− | - Triangulate faces (as LFS geometry is based on triangles)
| |
− | | |
− | ==== Common errors when importing a model in LFS Editor ====
| |
− | | |
− | '''Vertex X is out of bounds''' - One of the vertices is more than 1024 metres away from the origin. This could be a problem of wrong scaling. LFS uses metres for units.
| |
− | | |
− | '''Too many vertices''' - The number of vertices exceeded the maximum limit of 32768 for OBJ import. Note that when importing a model into the LFS editor, it is possible to import only one half of the model and then use the mirror function to mirror the triangles to the other side automatically. The total limit of vertices or triangles is 65536.
| |
− | | |
− | ==== Warning about licenses ====
| |
− | | |
− | If you are using a file made by someone else as part of your model, even if you modify it, you will need to declare this when you upload your mod.
| |
− | | |
− | You will need to specify the license that the original creator applied to the model and provide information such as the name of the creator and a link to a website where the license information is displayed.
| |
− | | |
− | If no license is stated, by you or the original creator, you cannot upload the mod!
| |
− | | |
− | Some licenses do not allow you to create work by changing the model you downloaded.
| |
− | | |
− | Please check that the supplied license allows you to distribute modified versions of the original model.
| |
− | | |
− | == Saving a model ==
| |
− | | |
− | {{see also|Modeller#Load .2F save object}}
| |
− | | |
− | The buttons for saving an object or a subobject are located in the bottom left corner of the [[Modeller]] screen.
| |
− | | |
− | [[image:Modeller load and save objects.jpg]]
| |
− | | |
− | === Saving a standalone object ===
| |
− | | |
− | To save a model as a standalone object, click the {{old button|SAVE|#00ff00}} button at the bottom left of the screen. The object will be saved into the 'data\3dob' folder, which can be loaded again through the modeller or [[Vehicle Editor]].
| |
− | | |
− | === Saving a vehicle model ===
| |
− | | |
− | If you have entered the [[Modeller]] through the [[Vehicle Editor]], there is no need to save the vehicle model explicitly. You can go back to the [[Vehicle Editor]] by pressing the {{key press|Esc}} key.
| |
− | | |
− | == Background images ==
| |
− | | |
− | You can load background images to help with modelling.
| |
− | | |
− | * Save a square png image (probably 1024x1024 or 2048x2048) in your data\bkg folder
| |
− | * Go into a 2D view ({{key press|R}}/{{key press|F}}/{{key press|V}} etc.)
| |
− | * At the bottom right click {{old button|load bkg|#00ff00}} to load your image
| |
− | * Click {{old button|adjust|#a1ffa1}} then use the mouse to adjust the position and size
| |
− | * After clicking {{old button|adjust|#a1ffa1}} you can also click {{old button|bkg scale|#ffffa1}} to type in the scale
| |
− | * Repeat the steps above for any of the other main 2D views
| |
− | * Then click {{old button|save scm|#a1ffa1}} which saves the whole scheme of adjusted backgrounds so you can easily load it next time
| |
− | * The "use opposite" option: for example on the left side it will use the right side image and position, automatically flipped
| |
− | | |
− | == Customisable colours ==
| |
− | | |
− | You can set colours to be adjustable, when a user enters the garage screen and clicks {{button|New colours}}.
| |
− | | |
− | This is done by giving some of the mappings a special name. Each mapping has a colour, but sometimes you want several mappings to have the same colour. For example the top and side mappings of a car. You can define a "Main" colour and "Copied" colours. So for example you could set top mapping to be a Main colour, then assign the side, front and rear mappings to be Copied colours of the top. Main colours are identified by the letter M followed by a number, while copied colours are identified by the letter C followed by the same number.
| |
− | | |
− | Taking the example above, you could name your mappings (colours) like this:
| |
− | | |
− | M1_top
| |
− | C1_side
| |
− | C1_front
| |
− | C1_rear
| |
− | | |
− | As soon as you set the names this way, you will notice the C1 colours aren't adjustable in the modeller. You can adjust the M1 colour and all the C1 colours will take the same value. Also this colour is now adjustable by the user, in the settings block. You can see that in the vehicle editor in the Colours section.
| |
− | | |
− | You can allow more than one customisable colour group, as seen on some of the LFS cars. This is done by creating M2 / C2 colours, up to a maximum of 4 customisable colours.
| |
− | | |
− | Note 1: You can use copied colours without them being adjustable by users. Use higher values than 4. E.g. M5_original and C5_copy.
| |
− | | |
− | Note 2: Customisable colours are also available for subobjects. To use this feature, select the subobject and switch on {{old button|use custom colours}}
| |
− | | |
− | Advanced 1: You can also create a darker copy of the main colour, by using the prefix 'D' for dark or 'E' for extra dark. This can be useful to fake reduced ambient lighting if you are adding surfaces in a place where there should be less light. For example:
| |
− | | |
− | M1_main - the user can set this colour
| |
− | C1_copy - direct copy of M1_main
| |
− | D1_dark - darker copy of M1_main
| |
− | E1_extra - extra dark copy of M1_main
| |
− | | |
− | Advanced 2: If you happen to have different configurations on your model and each configuration has its own seperated different mappings and cutouts and you want to assign all of them to a single color slider that will be Colorable by the user, then you should name each configuration with the same Main color name.
| |
− | | |
− | For example we have 4 Configurations, the first one have couple of mappings named as such:
| |
− | | |
− | M2_Con1 Top
| |
− | C2_Con1 Back
| |
− | C2_Con1 Front
| |
− | C2_Con1 Side R
| |
− | C2_Con1 Side L
| |
− | | |
− | Then the other configurations should have the same names but with a little difference wich is the configuration number such as:
| |
− | | |
− | M2_Con2 Top
| |
− | C2_Con2 Back
| |
− | .
| |
− | .
| |
− | .
| |
− | etc
| |
− | | |
− | This applies to all configurations you may have, this method ensures that whenever a user selects a random configuration, it will have that adjustable color slider.. As sometimes this slider can be missing in one of the cons due to improper naming.
| |
− | | |
− | == Light colours: headlights, indicators, etc. ==
| |
− | | |
− | All light mappings have a name with prefix <code>l_</code>.
| |
− | | |
− | The cutouts for all light mappings must share a single texture page.
| |
− | | |
− | The special names for light mappings are:
| |
− | | |
− | {| class="wikitable"
| |
− | ! Mapping || Description
| |
− | |-
| |
− | | l_brk || brake (main mapping of brake light)
| |
− | |-
| |
− | | l_sbrk || side brake (e.g. side of a curved brake light)
| |
− | |-
| |
− | | l_tbrk || top brake (e.g. top of a curved brake light)
| |
− | |-
| |
− | | l_cbrk || centre brake (e.g. brake light in rear window)
| |
− | |-
| |
− | | l_head || headlight (main headlights)
| |
− | |-
| |
− | | l_side || side light (smaller lights near headlights)
| |
− | |-
| |
− | | l_tail || tail light (red rear lights)
| |
− | |-
| |
− | | l_stail || side tail light (e.g. side of a curved tail light)
| |
− | |-
| |
− | | l_ttail || top tail light (e.g. top of a curved tail light)
| |
− | |-
| |
− | | l_rind || rear indicator
| |
− | |-
| |
− | | l_find || front indicator
| |
− | |-
| |
− | | l_rsind || rear side indicator
| |
− | |-
| |
− | | l_fsind || front side indicator
| |
− | |-
| |
− | | l_rfog || rear fog light
| |
− | |-
| |
− | | l_ffog || front fog light
| |
− | |-
| |
− | | l_rev || reversing light
| |
− | |}
| |
− | | |
− | == Level of detail (LOD) and Shadow / Physics / Collision meshes ==
| |
− | | |
− | When you first start work on a mod, you can test it in LFS with only a single level of detail. That is the main graphical LOD, known as LOD1. But your mod cannot be uploaded to the website like that. It needs at least a physics or collision mesh, and finished mods should usually have a shadow mesh too.
| |
− | | |
− | Levels of detail are used to save the graphics card from doing a lot of wasted work when models are far away. For instance, when a model appears only a few pixels across, we do not need to draw that model using thousands of triangles. So levels of detail are important to keep a high frame rate when there are a lot of vehicles in the view.
| |
− | | |
− | LOD1 is drawn when the viewpoint is near to the model</br>
| |
− | LOD2 is drawn in the middle distance</br>
| |
− | LOD3 is drawn in the far distance</br>
| |
− | | |
− | In Live for Speed, LOD2 and LOD3 are not only for graphical level of detail, but also double up as shadow and collision meshes.
| |
− | | |
− | There are two possible LOD choices for a mod you upload to the website.
| |
− | | |
− | === Work in progress / unfinished / test mod - 2 levels of detail ===
| |
− | | |
− | LOD1: Detailed mesh, for close up views</br>
| |
− | LOD2: Middle distance, shadow mesh and collision box
| |
− | | |
− | In this case, the collision mesh doubles as the shadow casting mesh. For most models this approximation is too crude, because the collision mesh is very limited in the number of points and triangles. But it's fine for early testing.
| |
− | | |
− | === Completed mods usually have 3 levels of detail ===
| |
− | | |
− | LOD1: Detailed mesh, for close up views</br>
| |
− | LOD2: Middle detail mesh, for middle distance - also used for soft shadow</br>
| |
− | LOD3: Low detail mesh, for distant views - also used for collision box
| |
− | | |
− | In this case, LOD2 is drawn when the mod is in the middle distance. This saves the graphics card doing a lot of work drawing detail that you can't see and helps with frame rate. This LOD should be a good representation of the shape of your mod, so it looks good in the distance, and casts a good looking shadow. LOD3 is only used as a visual representation when the mod is very far away. Its main purpose is for collisions with other vehicles or when your mod hits a wall or rolls over.
| |
− | | |
− | === How to add an automatically created physics / collision mesh ===
| |
− | | |
− | * In the modeller, click the {{old button|+|#959595}} button to the right of {{old button|lod1|#ffd3a1}} (near the top left) to add a new LOD
| |
− | * Now select {{old button|lod2|#ffd3a1}} or {{old button|lod3|#ffd3a1}} (the newly created, empty LOD)
| |
− | * Click {{old button|auto-create collision mesh}}
| |
− | | |
− | The automatically created collision mesh is created based on the size of the existing LOD1 (high detail) mesh. This should provide basic collision physics but you will probably want to improve the shape to make it a better match for your vehicle.
| |
− | | |
− | === Assigning Multiple Configurations To LOD2 ===
| |
− | When having 2 or more configurations on your model, you might want to make sure that the shadows will correctly cast the shape of the selected configuration, that's when Configurable LOD2 comes in handy..
| |
− | | |
− | When you have done a simplified shape of the configuration that you are happy with, select its traingles and a click on {{old button|+|#959595}} to {{old button|lod2|#ffd3a1}} button
| |
− | This will now be your LOD2 of that configuration and by doing so, the ingame shadow will cast a proper shape of each different configuration.
| |
− | Make sure that the configuration triangles in {{old button|lod2|#ffd3a1}} share the same layer with the main one in {{old button|lod1|#ffd3a1}}
| |
− | | |
− | LOD3 ({{old button|lod3|#ffd3a1}}) (Collision Mesh) Can Not be Modified for different Configurations yet, it's unified for the whole model.
| |
− | | |
− | == Draw order of materials ==
| |
− | | |
− | You can see a material list in the vehicle editor {{old button|Textures}} tab. That should represent the draw order of the materials.
| |
− | | |
− | To actually change the draw order of the materials, you adjust the draw order of the cutouts in the modeller. The draw order is assigned by the order the materials are first encountered in the cutout list. The material's index is the number on the right of the 'material' column in the list of cutouts.
| |
− | | |
− | The idea is to make sure the material for the steel frame appears in the cutout list before the material for the cloth cover. For example if you selected a material with material index '2' and move it to the top of the list, then on reaching the top, it should acquire material index '1'. What was material 1 will become material 2.
| |
− | | |
− | == Draw order of individual triangles ==
| |
− | | |
− | Within materials, triangles are drawn in the order they appear in the internal list of triangles. LFS doesn't give you direct control over this list, but you can improve the draw order by clicking {{old button|magic triangle sort|#a1fafa}}. This function tries to adjust the draw order so that further away triangles are likely to be drawn first. This may be better than randomly ordered triangles, and may help with "Z fight" problems if the nearby surfaces share a material so you can't manually correct the draw order by ordering the materials.
| |
− | | |
− | == Smoothing groups ==
| |
− | | |
− | A smoothing group is a group of triangles which appears to form a smooth surface. The boundary between two different smoothing groups appears to have a sharp edge.
| |
− | | |
− | === Assigning triangles to a smoothing group ===
| |
− | | |
− | You can change the smoothing group of individual triangles in the groups view mode:
| |
− | | |
− | # Go to the [[Modeller]]. If you are in the [[Vehicle Editor]], press {{key press|E}} or click the {{old button|E - Edit Model|#a1a1ff}} button on the right hand side of the vehicle editor.
| |
− | # Select [[Modeller#Tri|{{old button|tri}} mode]] from the top menu bar.
| |
− | # Click the [[Modeller#Groups|{{old button|groups|#a1a1ff}} view mode]] button.
| |
− | # On the 3D model, select triangles whose smoothing group you want to change.
| |
− | # In the top right corner, you will see a set of [[Modeller#Groups|smoothing group buttons]]. Click one of the numbers to assign the selected triangles to that group.
| |
− | # When prompted with a confirmation dialog, click {{button|yes|light}}.
| |
− | | |
− | | |
− | <gallery mode=packed widths="150px" heights="150px">
| |
− | LFS editor groups step 1.jpg|Select tri mode and groups view mode
| |
− | LFS editor groups step 2.jpg|Select triangles
| |
− | LFS editor groups step 3.jpg|Confirm selection
| |
− | LFS editor groups step 4.jpg|New group assigned
| |
− | </gallery>
| |
− | | |
− | == Creating a skin texture ==
| |
− | | |
− | {{tip|If you don't know how to apply textures to a car in the modeller, you can follow this [https://youtu.be/_HIrlxJMWnI video tutorial about texturing].}}
| |
− | | |
− | A skin is a special texture designed to cover the paintwork of your vehicle so that other people can create their own custom paint jobs. The idea is to uniquely cover the whole paint surface of the vehicle without any part of the texture being used more than once. As a mod creator you may take on the task of creating a default skin that people can modify to use when driving your mod. Here are a few tips for designing skins.
| |
− | | |
− | [[Image:LFS Editor skin mapping.jpg|thumb|Roof and bonnet skin mapping for XR GT TURBO. In the bottom left corner, notice the buttons for linking the selected mapping with other mappings.]]
| |
− | | |
− | === Things needed ===
| |
− | | |
− | * a skin file located in data\skins folder, with a name like ABC123_NAME.jpg
| |
− | * a page of type "skin" called ABC123_NAME where ABC123 is the Skin ID of your mod and NAME is a name for the skin texture
| |
− | * multiple cutouts using that skin page, usually for each view of the car (left, right, front, back, top) - this may vary depending on the shape complexity of the car
| |
− | * mappings using those cutouts and assigned to the respective triangles of the model
| |
− | * the skin must be assigned to a car colour in Vehicle Editor - {{button|Colours}} tab
| |
− | | |
− | === Tips ===
| |
− | | |
− | * A skin must be created as 1024 or 2048 square image. It can be a blank image for start. To load it into LFS it must be saved as a JPG in your data\skins folder, with a name like ABC123_NAME.jpg where ABC123 is the Skin ID of your mod and NAME is a name for the texture (usually DEFAULT for a plain texture). To use a skin in the editor, there must be a page of type "skin" named after the skin file in data\skins.
| |
− | | |
− | * The artists who create custom skins prefer everything lined up as well as possible, so try to use the options {{old button|link with SIDE|#a1a1ff}} / {{old button|link with FRONT|#a1a1ff}} / {{old button|link with BACK|#a1a1ff}} / {{old button|link with TOP|#a1a1ff}} for the main mappings, so your mappings have the correct width.
| |
− | | |
− | * You can type in the height of the mapping, to make sure front, back, side mappings have the same height (right click on a value to edit it manually). You can also type in the right, front, up values.
| |
− | | |
− | * Try to keep the pixels of your mappings fairly square (cutout has a similar aspect ratio to the mapping). The squarer they are, the easier for your skin artists.
| |
− | | |
− | * Not *everything* needs to be skinned from a proper direction. E.g. skin artists may be quite happy with a single mapping for a wing mirror, probably from the front, that goes right through the object (so the side and top surfaces are not individually mapped). Smaller mappings don't 'link' with any other mapping.
| |
− | | |
− | * Skins on models with complex shapes may have the added complication of overlapped areas. So you should plan this in advance, where you want the MAIN top, front, side, back mappings and allow enough space for the overlapped areas to be mapped separately. You may wish to follow the general idea of one of our default skins, and change it to suit your needs.
| |
− | | |
− | === Generating a skin template ===
| |
− | | |
− | Once you have all mappings in place, there is a function to generate a skin template for your car. It takes the correct size screenshot of all assigned mappings for the skin texture, and copies that to the clipboard so you can paste it into your work-in-progress skin in your 2D graphics software.
| |
− | | |
− | Go to 'page' mode, click the skin texture page and you will see multiple buttons for exporting a skin texture:
| |
− | | |
− | * {{old button|create shaded skin texture}} - this texture is cut out exactly around the outer edges of the model, which may result in unwanted visible seams when the skin is applied on the car.
| |
− | * {{old button|black and white skin texture}} - this includes some overlaps to eliminate seams around the edges of the mappings.
| |
− | * {{old button|white background wireframe}}
| |
− | * {{old button|black background wireframe}}
| |
− | | |
− | <gallery mode=packed widths="250px" heights="250px">
| |
− | LFS Editor skin texture page.jpg|Skin texture page options in the LFS editor. Notice that it is of type "skin" in the list of pages. On the left side, there are buttons for exporting a skin texture or a wireframe mesh to the clipboard.
| |
− | LFS Editor skin exports.jpg|Automatic skin texture export features
| |
− | </gallery>
| |
− | | |
− | == Extrude and Lathe functions ==
| |
− | | |
− | To use the extrude or lathe functions, first you select a series of points in order to create a cross section that you will either extrude linearly (extrude) or rotate around a point (lathe).
| |
− | | |
− | You can see the cross section by enabling the {{old button|trace}} option in point mode, then selecting points in the correct order.
| |
− | | |
− | The trace function has two modes:
| |
− | * {{old button|incl|#a1a1ff}} - include the last selected point
| |
− | * {{old button|excl|#a1a1ff}} - don't include the last selected point
| |
− | | |
− | It can sometimes be confusing which order to select the points, and then choose 'inside' or 'outside' to get the desired effect.
| |
− | | |
− | === Extrusion ===
| |
− | | |
− | * Put your viewpoint on the side so that you will pull the extrusion towards you
| |
− | * Select the trace points in anti-clockwise direction as seen from that point
| |
− | * Create extrusion by clicking {{old button|extrude|#a1ffa1}} (and select outside, inside, etc.)
| |
− | * Pull the points towards you
| |
− | | |
− | Then you should find that your inside / outside request is respected.
| |
− | | |
− | === Lathe ===
| |
− | | |
− | * Put your view on the side where the lathe operation will initially head towards (at the start of the curve)
| |
− | * Select the trace points in anti-clockwise direction as seen from that point
| |
− | * Rotation will take place around the last point you select (which may or may not be included as part of the cross-section)
| |
− | * Go to 2D view and create lathe object by clicking {{old button|lathe|#a1ffa1}} (and select outside, inside, etc.)
| |
− | | |
− | == Moving parts of a model to a different model ==
| |
− | | |
− | This is done by saving a subobject from one mesh and loading that subobject into another mesh. In 'subob' mode, with a subobject selected, you can see light green {{old button|load|#a1ffa1}} and {{old button|save|#a1ffa1}} buttons beside the word {{old button|subobject}} at the bottom left. These will load and save subobjects with the extension '.sre' in the folder data\3dob.
| |
− | | |
− | But what if the parts you want to move are not part of a subobject? In this case you can use the 'break off' and 'merge' functions.
| |
− | | |
− | * Create a new empty subobject
| |
− | * Select the triangles in the main object that you want to move to another object
| |
− | * Click the {{old button|break off|#ffa13b}} button
| |
− | * The triangles (and mappings) are moved into the new subobject
| |
− | * Save the subobject
| |
− | * Load the mesh where you want to add the subobject
| |
− | * Add a new, empty subobject to that mesh
| |
− | * Load the saved subobject into your new empty subobject and move it to the right position
| |
− | * Optionally, click {{old button|merge into main|#ffffa1}} to merge the new subobject into the main object
| |