WIP BeamNG Modding Guide Project 2021

Discussion in 'Content Creation' started by Urbanmaid, Sep 27, 2021.

  1. Urbanmaid

    Urbanmaid
    Expand Collapse

    Joined:
    Jan 18, 2016
    Messages:
    910
    Hello.

    I am modder who cannot do modding because of mandatory military workout for this time. So I thought my skill will be useless in this area, but not worthy to betray on that time. So, I will make some lecture and reference of Jbeam and Json format. It is written to make a reference about Jbeam and its usage with some Example.

    Another reasons of why I am doing is my vision. I was able to think what car design I would challange for. And it can be some help who is thinking about automotive design and make their concepts to semi-real.

    https://docs.google.com/document/d/14-fxr64NmFOLxf7QNZN9cyqjoPdkBeAyDFHOJcKarKw/edit?usp=sharing

    Actually this is almost Finished in Korean but, I need to translate this into some languages to make it available in documentation. in fact I dont know how to make documents in this site. So i need some help to interpret this into some languages.

    Would you help?
     
    • Like Like x 10
  2. Agent_Y

    Agent_Y
    Expand Collapse
    Jbeam/QA support
    BeamNG Team

    Joined:
    Jul 10, 2020
    Messages:
    10,058
    This looks like a really good reference about stuff that isn't metioned in the official docs, if I knew Korean I would help for sure, but I don't so I can't help sadly
     
  3. S.Ali.M

    S.Ali.M
    Expand Collapse

    Joined:
    Jan 12, 2021
    Messages:
    1,079
    As I know your first language is English, so tell you a way to translate this tutorial:
    Open the document in Chrome.
    In the menu, click at translate.
    Screenshot_20210927-201142_Chrome.jpg

    Copy the texts and paste them in a new text file in the notepad (or any text editor app)
    Read the document and fix grammer errors
    And for the pics, @Urbanmaid should post here what is written in the pics (because google translate can't translate texts of pics) then you can translate those texts with google translate and use photoshop to replace the Korean texts with English ones
    Make them a document like @Urbanmaid document
    Upload corrected document to a site
    Post the link of it here
     
    • Like Like x 2
  4. Agent_Y

    Agent_Y
    Expand Collapse
    Jbeam/QA support
    BeamNG Team

    Joined:
    Jul 10, 2020
    Messages:
    10,058
    Actually English isn't my first language, but close, I've been learning it since like 6 years old so I'm really good at it now. Also Google Translate is very inaccurate in technical speech so it probably won't help.
     
  5. S.Ali.M

    S.Ali.M
    Expand Collapse

    Joined:
    Jan 12, 2021
    Messages:
    1,079
    Can you give it a try? Click at translate button and read the text to see it's understandable or not
     
  6. Agent_Y

    Agent_Y
    Expand Collapse
    Jbeam/QA support
    BeamNG Team

    Joined:
    Jul 10, 2020
    Messages:
    10,058
    It looks like this when I try...
    20210927_194624.jpg
     
  7. S.Ali.M

    S.Ali.M
    Expand Collapse

    Joined:
    Jan 12, 2021
    Messages:
    1,079
  8. Agent_Y

    Agent_Y
    Expand Collapse
    Jbeam/QA support
    BeamNG Team

    Joined:
    Jul 10, 2020
    Messages:
    10,058
    On PC it only translates the section names and not the text inside, that's even weirder
     
  9. S.Ali.M

    S.Ali.M
    Expand Collapse

    Joined:
    Jan 12, 2021
    Messages:
    1,079
    It looks like this on my tablet:
    Screenshot_20210927-211902_Chrome.jpg
     
  10. Agent_Y

    Agent_Y
    Expand Collapse
    Jbeam/QA support
    BeamNG Team

    Joined:
    Jul 10, 2020
    Messages:
    10,058
    Oh, then it works for you but not for me. So you have to check it I guess.
     
  11. S.Ali.M

    S.Ali.M
    Expand Collapse

    Joined:
    Jan 12, 2021
    Messages:
    1,079
    It's the translated text that I see on my tablet:

    Jbeam modding guidelines

    URBANMAID⸙


    Term Definition
    • Objects are vehicles and props used in Beamengine.
    • J-Beam is a script created to configure vehicles in the game.
    • The config is an initial configuration to have certain parts in the vehicle.
    • Json is a script used to configure basic vehicle information, config information, and material configuration information other than J-Beam.
    • A mesh is a 3D model that the user sees directly in-game within the mod folder.
    • A vanilla vehicle is a vehicle that is basically provided in Beam ENG Drive.
    • Vanilla J-Beam and vanilla json are J-Beam and json that make up the vanilla vehicle that is provided by default.
    Things to check before creating a mod
    • Be sure to know the concept of J-Beam when making a mod, or read the document organized about J-Beam .
    • First, check what kind of vehicle you want to make, and then make or obtain a model, texture, etc. suitable for that vehicle.
    • Check the body style, vehicle weight, and frame type of the vehicle you will be making, and select a vanilla vehicle that suits you. For example, in the case of the Ford Crown Victoria, the J-beam of a vehicle such as the Grand Marshal is applied, and in the case of the Volkswagen Golf, the J-beam of the Covet is applied.
    • The programs that must be installed are as follows.
    • For mesh management: plugins for importing and exporting Blender and other files
    • For Jbeam and Json management: a text editor such as Visual Studio Code
    • For texture editing: paint.net
    What is Jbeam?
    Jbeam refers to a script created to configure objects in BeamNG.drive.


    J-Beam is used as a script in the game, and its use is very diverse and extensive. In addition to simply implementing the shape of an object in the game, all properties of an object can be defined in this script. Kind of like a universal script.

    Components of Jbeam
    Some of the descriptions and reference images in this document are quoted from the official Beameng wiki and documentation .


    Elements of each J-Beam do not operate differently according to their order. However, since the description here will be explained in order of concepts with specific functions from the basic concepts of Node, beam, and coltris, be aware that there are some differences from the actual Beam Engine's J-Beam.


    The following document is a document that summarizes each element.

    Please be sure to read it.

    Elements other than J-Beam
    The following elements are elements other than J-Beam.

    Combination method as an object
    Now, up to this point, we have seen each element of J-Beam and the variables that determine it. Now, in this chapter, you will learn how to make a single J-beam object from these separated elements, and how to combine them to make a finished vehicle.


    You cannot create a jbeam object simply with an element in jbeam. In order to make one object, there must be physical elements such as hood modeling, hood-shaped node, beam, coltree, etc. In fact, if you look at J-Beam, you will see that modeling is not just defined. It can be seen that sequential chapters are loaded in one object, such as information on the J-Beam object > Slot to which J-Beam belongs > Sub-slot > Node, Beam, Coltree, Flexbody, etc.




    A simple configuration of the object has been described. By the way, please read it as fender, not hood...


    All the examples described here basically summarize most of the elements to make a vehicle. Uncommon elements may be added, so just be aware that this is a general way to create a J-Beam object.


    Except for the main J-beam, the order described here is arranged according to the difficulty of creating objects and the number of object components. There is no distinction between upper and lower slots in the J-beam object.

    main j-beam
    Think of it as the starting point of J-Beam.


    As a sub-part of the corresponding J-beam, the frame or body goes up, and the skin and additional parts are decided.


    The reason this main j-beam is important is that the glow map that determines the vehicle's lighting material is declared in the main j-beam. A J-Beam that is necessarily present in the memory is declared in the corresponding J-Beam. Because of such a characteristic, essential body slots and skin slots are defined here.


    In the script , replace carname with the name of the vehicle you want and paste it into J-Beam.

    The default slot type for a vehicle is “main”. This means that this vehicle will appear as one of the options in the main selection window, and this is the first step in adding your vehicle. Same as hello world.



    If the main J-beam is defined and the lower slot is defined in this way, the vehicle body is raised based on this main J-beam.


    After that, defining the glowmap or basic variables within the vehicle is the next problem.

    body object
    frame (_frame)
    This is an example used in body-on frame models. The body-on-frame method refers to a method of raising the vehicle body for boarding on a skeleton that goes under the body called a frame.


    Currently, it is used in most large SUVs or off-road-oriented vehicles. In the past, sedans such as Chevrolet Caprice were also manufactured using this frame, but now they are not used due to the importance of quietness and ride comfort.


    used car model

    • Bruckel Moonhawk
    • Gavril D series, H series, Roamer
    • Gavril Grand Marshal
    • Gavril T series
    • Ibishu Hopper
    • Ibishu Pigeon
    • Wentward DT40L
    Top J-Beam Slot

    (slottype)

    main j-beam

    lower j-beam slot

    (slots)

    In a nutshell, you can think of it as having a basic drivetrain (fuel tank, engine, suspension drivetrain), bumper, radiator frame, etc. as lower J-beam slots.

    • _body
    • _bumper_F
    • _bumper_R
    • _engine
    • _fuel tank
    • _radsupport
    • _suspension_F
    • _suspension_R
    • _towhitch

    body (_body)
    The body is literally the body of the vehicle.


    It is used in all vehicles, and the body-on-frame method is also used because the body is placed on top of the frame to create a boarding space. Because of this characteristic, a lot of parts go up, and it is an important part that is the basis of most body parts.


    used car model

    • All Beamengine vehicles
    Top J-Beam Slot

    (slottype)

    Monocoque vehicles have a main J-beam, and body-on-frame vehicles have a frame.

    lower j-beam slot

    (slots)

    You can think of it as having all elements as lower J-beam slots.

    • all body parts
    • All parts for the drivetrain
    • all interior parts
    • All accessory parts
    • _suspension_F
    • _suspension_R
    • _towhitch
    body structure
    To understand this, the first thing you need to know is the structure of a car. The structure of most vehicles is such that the boarding space is in the middle, and the front and rear parts are wrapped in between. These front and rear parts are called crumple zones, and damage to these parts allows passengers to safely exit even if an accident occurs.



    And the part that supports the ceiling of the vehicle is called a pillar. This pillar serves to connect the ceiling and the body, and at the same time protects the occupants from overturning of the vehicle. It also serves to connect the door of the vehicle.


    Node List and Separation
    The following is the classification of vehicle body node types by name.


    • Front crumple zone + front part of the car floor (f1, f1r, etc. f_)
    • Rear crumple zone + rear part of the car floor (r_, etc.)
    • Pillars of the car body (p_, etc.)
    • Ceiling of car body (rf_, etc.)
    • The rear fender part of the body, aka quarter panel (q_, etc.)

    The following is the classification of the vehicle body node group types.


    • Front crumple zone (+radiator frame (for non-frame body vehicles), suspension mount, engine bay)
    • Rear crumple zone (+trunk space)
    • Boarding part (+car bottom)
    • ceiling
    • Whole body (concept including crumple zone, floor, ceiling)

    All of these elements are implemented as nodes, and in order to clearly distinguish them, the name of the node and the node group are different, and a comment is used to distinguish them.

    Node resolution



    In general, the J-beam is much looser than the actual modeling resolution of the vehicle. Here, loosely woven means that the number of nodes in J-beam itself is not that large compared to the number of polygons in modeling.


    The reason is to perform the calculation of the deformation of the J-beam faster when realizing the collision of the vehicle with the J-beam. Normally, 200-350 nodes are included in one body, and the number of beams that maintain the shape of the vehicle by maintaining their distance exceeds four digits. It's not a small amount, and if you put more nodes or beams, the computation time doesn't keep up with the gameplay speed. So, it means that the resolution of the node must be at an appropriate level for such performance compromise.



    It is a node of the Gabriel D series, an actual in-game vehicle. The resolution is not that high.


    In other words, there is no need to use a node at a dense level because even if the J-beam is structured at this approximate level, the collision effect of the vehicle will be seen normally.


    The approximate formula is:


    • The distance between nodes can be made only enough to divide the radius into 3-4 equal parts in the case of a wheelhouse.
    • The lower part of the body is about 3-5 equal parts of the distance between the wheelhouses.
    • A node that crosses the width of the car body crosses the width by about 4 equal parts.
    • The node constituting the pillar connecting the body and the ceiling is about equal to the height of the side window.

    However, when creating J-beam for the purpose of directly rolling an object such as a roller, it is recommended that the distance between nodes be around 15cm.

    Intensity of beams for each part of the car body
    I mentioned the crumple zone in the structure of the car body, and the nodes are divided accordingly, so now I will explain how to differentiate between these zones.




    This is a crash test scene between the Lexus IS and the Pontiac Transport. In this scene, in the case of IS, the passenger board is almost intact, while the front crumple zone is completely broken. On the other hand, in the Pontiac Transport, the A-pillar and ceiling part of the boarding part were completely bent. In the end, IS got decent marks, while Transsport was literally criticized.


    The reason for doing this is because of the role of the crumple zone, shock absorption. It protects the safety of passengers by creating a space to absorb impact energy in a specific part of the vehicle. To implement this with a beam engine, when the node, which is the shape of the body, is ready, the strength of the beam connecting it is adjusted to adjust the strength of the crumple zone and the ceiling, and the crumple zone is realized just like a real vehicle. . In addition, even within the same crumple zone, parts are connected with materials with various strengths, so the strength should also be considered. For example, the strength of the wheelhouse part of the front crumple zone and the radiator frame part is inevitably different. It is also necessary to implement such a thing.


    • beamSpring: For the crumple zone, a smaller value is applied than the passenger's zone. In other words, less force is required to change the length of the beam, allowing the beam in the crumple zone to absorb the impact in the event of a collision.

    • beamDeform, beamDamp: This also allows the crumple zone to have a smaller value than the passenger's beam, allowing the beam to be deformed with a smaller value.

    • breakGroup: It's a good idea to separate the crumple zone and passengers. In other words, when a large impact is received in a specific part, the failure of the part installed there can be simulated. For example, if the front part of the vehicle is hit, the radiator may break down. It is a preventive measure to prevent the radiator from breaking down even if the rear part is driven.
    refNodes
    You may have said before that RefNodes is what sets the direction of the vehicle. An example of its direct use will be shown here.





    I heard the example of the vehicle directly. Among the vehicle's RefNodes, the Ref becomes the center. RefX makes a left and right standard, RefY makes a distinction between back and front, and RefZ makes a distinction between top and bottom. And the coordinates of the actual vehicle are generated here. You can think of the vehicle's camera as being aligned based on this coordinate.


    In the previous version, at the very beginning of development, there was no way to define the data itself, so camera data was arbitrarily set in the game. The camera set in that way was not located in the exact center of the vehicle, but was installed off the left side. Think of it as similar to the vehicle camera view in GTA 4.


    Fixed body parts J-beam (_bumper, _fender, etc.)
    This is an example of manufacturing body parts (bumpers, fenders, etc.) that are fixed without moving by a hinge among body parts of a vehicle.


    It is an element consisting of the simplest node, beam, and coltree, and can be used as an example to show how to create a collision region in a simple j-beam.

    Rigidfire Node


    The biggest feature of the body parts J-beam is that most of the area consists of only a flat surface. Here, the fact that it is made up of a plane does not mean that the width is zero. This means that it consists of only one face that is only oriented in one direction. Of course, since this plane is not three-dimensional, the shape of the plane in three-dimensional space may change. The reason flat paper flaps is also because there is no three-dimensional support to maintain its shape.


    To solve this problem in J-Beam, it maintains its shape by adding a node at coordinates away from the plane. A node used in this way is called a rigidfire node. If there is a rigid fire node, there is no flapping because the nodes arranged in a plane have a three-dimensional shape. Of course, in Coltree, which creates a direct collision area between nodes, the part connected to the rigid fire node is not declared, so the collision effect can be achieved only in a plane.


    The conditions of the Rigid Fire node are: 1. All of the node collision variables (collision, selfCollision), etc. must be declared as false, 2. There must be a distance from the main node composing the actual body parts, Since it is not a node, it should have no weight.

    Connection with body J-beam node




    Now that the body parts J-beam has been declared, you will also need to declare a beam that can be connected to it. You will think that it is enough to simply define all the beams connecting the node of the body j-beam and the node of the body parts j-beam.


    However, in order to produce the effect of body parts falling off when a vehicle collides, a few more definitions are required. First is "deformLimitExpansion". This value is a variable that defines the level of stretching of the beam. If any value is defined for this variable, the bumper will follow along in a situation where the vehicle has crashed and the bumper has to fall off. Unless you're doing telekinesis, you'll have to let it fall off completely. For this purpose, in the case of a beam for connecting the body and body parts, {"deformLimitExpansion":""}, is usually defined in the script describing the characteristics of the beam. By setting deformLimitExpansion to null, the length of the beam simply stretches, causing the body parts to be considered as dropped.


    Of course, if the J-beam node is additionally defined in a way that increases the height of the vehicle itself, it is not necessary to leave deformLimitExpansion as null. That way, the parts will hang on the vehicle in some way.





    An example is the carnival high limousine specification. This is an example of raising the roof by attaching parts for roof extension on top of the vehicle. J-beams should not be woven so that the roof extension falls off on these vehicles. In other words, {"deformLimitExpansion":""} in the roof part J-beam is not a script suitable for the vehicle.


    used car model

    • All Beamengine vehicles
    Top J-Beam Slot

    (slottype)

    Usually the vehicle's body (_body) object. In the case of a frame body vehicle, the bumper part has a frame (_frame) as an upper J-beam.

    lower j-beam slot

    (slots)

    for bumper

    • _foglights
    • _bumperlights, _bumpersignal
    • _licenseplate_F, _licenseplate_R
    for fender

    • _mirror_L, _mirror_R (if the fenders have side mirrors, such as Miramar)
    • _fenderflares
    In addition, all decorative elements such as trim and molding are included.

    list of defined elements

    • nodes (Rigidfire nodes must be defined)
    • beams (Beams between the Rigid Fire node and the main node constituting the body parts must be defined to maintain the shape.)
    • triangles (only connections between main nodes)
    • flexbodies
    Body parts fixed by hinges (_door, _hood, _trunk, _tailgate)
    In vehicle parts, the door leaf, hood and trunk are fixed with hinges so that they can be opened. This hinge is also implemented here. However, there is an independent element called a hinge, so instead of using it, this role is also implemented with a beam.


    Basically, the way to make it is the same as the body parts J-Beam described above. Nodes and beams are arranged, and if you want to flap because the node arrangement is flat, you can add a Rigidfire node. What sets this part apart from fixed body parts is not the node or beam itself that makes up it. It is completely identical in structure. What is actually different is the fixing method with the body J-beam.

    Connection with body J-beam node



    There are a total of 4 types of beams that connect body parts with hinges to the body.


    • Hinged beam - I think it is the strongest type of beam. Keep in mind that without this hinge beam, even the latch beam can't keep the body parts mounted. As this is the main axis forming the last hinge, the strength of the beam must be set the strongest among the four beams, but it must have an appropriate level of strength so that it can fall off a severe impact.


    In the case of the connection method, it must be designed to rotate around the axis of the node of the body parts to be added as shown in the corresponding figure. This is because it can put less strain on the body parts, and even in an actual vehicle, the hinge's rotation axis is designed closer to the body parts than to the body parts. In addition, the purpose is to prevent damage to the door itself due to a collision between the vehicle body and the door leaf.


    • Latch Beam - If the hinge beam has a role to set the axis of rotation, the latch beam serves to fix the body parts before being rotated by the axis of rotation. If this is not the case, the vehicle door will remain open. Imagine the door rattling open every time the car turns. This beam is used to solve this problem.


    This beam is used directly opposite the hinge node. It is made weaker than the hinge beam so that it does not break before the hinge beam.


    • Damping Beam - If the latch beam that holds the door or hood is broken, the corresponding part will now begin to open. However, if you open the hood or trunk, you will find that it opens to a certain extent even when it is open, and then cannot open all the way. This is because the angle of the hinge connecting it is limited so that it cannot be opened all the way. This damping beam is the beam with the role of performing it in the beam engine.


    Damping beams have zero spring level by default. Since it is a beam that only limits the distance between nodes, it does not have its own tension (beamSpring), but the damping (beamDamp) has a small value. Compared to normal beam damping, about 1/1000. This is to limit the opening angle of the hinge by making it almost insignificant if it tries to open more than that.


    • Support Beam - In this case, the reason for its existence is rather peculiar. It acts as the opposite of the damping beam, and the reason it exists is because of the physics effect simplification. Simplifying the physics effect disables Coltree's operation. That is, it means that all nodes can pass through the space between nodes. Since the collision effect of the vehicle in the Beam Engine Drive is caused by the collision of the Coltree by the node, if this is turned off, the overlap between nodes is not a problem. The effect of hitting a node on its own coltree also disappears. Imagine that the hinge beam is deactivated when that has no effect. This will cause the door to go into the car body.


    This beam serves to prevent it in advance. Also, it is possible to give a more definite limit than to put a limit because the coltree of the body and the node of the body parts, or vice versa, are conflicting even when the coltree is on. If the opening of body parts is restricted in this way, the door is completely closed in the J-beam simulation, but they may overlap in the flex body image projected by the node. Because of the simulation speed problem, the nodes are not arranged in as much detail as expected, but rather simply arranged. If you apply it as is, it will look strange on the graphic. This beam also plays a role in preventing it in advance.


    used car model

    • All Beamengine vehicles
    Top J-Beam Slot

    (slottype)

    Usually the vehicle's body (_body) object.

    lower j-beam slot

    (slots)

    door

    • _doorpanel
    • _doorglass
    • _mirror_L, _mirror_R (front door)
    Hood

    • _hoodscoop
    trunk

    • _letter
    • _licenseplate_R
    • _spoiler
    In addition, all decorative elements such as trim and molding are included.

    list of defined elements

    Only the additions are described in the fixed body parts J-beam.

    • nodes
    • beams (unlike fixed body parts, hinge beams, latch beams, etc. must be defined)
    • triangles
    • flexbodies
    Body parts without nodes and beams (_trim, _lettering, _doorpanel, _intcarpets)
    The parts dealt with this time are body parts that do not have separate nodes and beams declared.


    If the node and beam are not declared, you may be wondering how to load the flex body to be used as body parts . How to call it is surprisingly simple. It is to borrow a group of nodes in the same J-Beam in the vehicle. If there is a node group that matches any of the node groups, the flexbody overwrites the modeling on that node group, so you can use the modeling as a flexbody without using its own nodes or beams.


    The conditions for using these body parts are as follows.


    • Is the node group to be used by the flexbody defined in the list of j-beam objects set with the parts selector?
    • Is the node belonging to the node group a node group that has an appropriate location for body parts?




    First condition description. In the first case, it means that the rendering of the corresponding parts is activated only when there is a corresponding name in the list of J-Beam's activated (existing in the current config by the object) node group. In other words, if there is no name matching the node group, this part cannot be seen in-game with a message that the node cannot be found.


    In the case of the second condition, it is necessary to check whether the node fits the body parts. In other words, it is a fender trim, but the J-beam node group should not be on the door. In that case, the fender will fall off the vehicle, or even if the fender itself is not selected in the parts selector, the fender trim will float in the air, etc. Of course, people who don't care about that don't use it.


    used car model

    • All Beamengine vehicles
    Top J-Beam Slot

    (slottype)

    Usually other body parts or body objects of the vehicle.

    lower j-beam slot

    (slots)

    does not exist.

    list of defined elements

    • Only flexbodies (because the node group is taken from the nodes of other parts.)
    lights (_headlight, _taillight)



    A must have for every vehicle. Without it, you wouldn't be able to drive your car at night. There are many different types of headlights. Since all the star shapes come out, it seems necessary to weave the J-beam according to it, but to make it the simplest, you can make it with just one Rigidfire node in a rectangular shape. In fact, most of the Beam ENG Vanilla vehicles are made of J-Beam.


    Once this part also has a working function, it is good to create the possibility of disabling it. To use this, implement it by using a deformGroup to disable the corresponding spotlight when the breaktriggerbeam is triggered.


    For now, only representative shapes will be dealt with here.

    fixed headlights
    For fixed headlights, it is fairly simple to write. It is enough to attach a spotlight to the fixed body parts. This is because the headlights are also treated as body parts. Because the size is small compared to other body parts, the number of nodes is sufficient with only 5 (4 main + 1 rigid fire). Then, simply attach it to the vehicle's frame and add a spotlight to complete.

    Retractable, pop-up headlights
    All of the lights described herein have an operating part such as rotating. If so, wouldn't it be possible to implement something like a hinge to make it work? If you think so, you are right. As a method of rotating around the hinge, the headlight goes up when in use, and goes down when not in use. The problem is how to put this up and down...


    This is where hydro is used. A beam that can be lengthened or shortened.





    The simple structure is the same as the body parts fixed by a hinge. You can think of it as replacing the latch that prevents rotation due to the hinge with a hydro that implements the function to rotate around the hinge.


    On top of that, declare a spotlight and make it act like a headlight and you're done.

    tail light
    The declaration method is the same as for body parts without nodes and beams.


    Usually, it is correct to assume that the vehicle's headlights will fall off in a crash. This is because most of the structures of vehicles have a structure in which the front fender is removable, and it is considered that it does not matter even if the rear fender is not removed. For this reason, the tail lights are often left fixed to the vehicle at all times. This is because there is no need to separately define the J-beam of the tail light. However, there are exceptions where you can define nodes or beams to make them fall off for tail lights as well.

    When a light is attached to the panel


    A very famous example.


    In some cases, the panel also comes with a light. This also applies a spotlight to a general fixed object and uses glass modeling with breakTriggerBeam as a flex body, so the structure itself is the same as a general headlight.

    commonality
    Basically, a glow map is absolutely necessary to produce on and off using the texture of the light. So, the glow map is usually defined in the vehicle's main J-beam.


    Also, do not forget to define the color of the light in advance according to the definition method of the spotlight prop. Also use footnotes to distinguish them, so make sure you define which spotlight does which role.


    used car model

    retractable

    • Civetta Bolide
    • Gavril Barstow (Sport Trim)
    • Ibishu 200BX
    • Soilad Wendover (face lift, the light itself does not come up, but the light cover comes off)
    The remaining elements are used by all beamengine vehicles.

    Top J-Beam Slot

    (slottype)

    For headlight-only frame bodies, it is installed on the radiator frame, and for monocoque or backbone chassis, it is installed on the body.


    The tail lights are located on the body.

    lower j-beam slot

    (slots)

    does not exist.

    list of defined elements

    • glowmap (preferably predefined in main jbeam)
    • spotlight
    • Headlights, retractable headlights only node, beam, triangles
    • Retractable headlight limited hydros
    • breakTriggerBeam (Must be defined when producing the effect of breaking the headlight. Generally, it is defined in the beam itself in the headlight in the case of a headlight, and in the body in the case of a taillight.)
    Dashboard (_dash, _dash_lhd&_dash_rhd)



    Literally, the steering wheel, pedals, and instrument panel for driving are all included. Of course, flashing lights, shift levers, and infotainment systems are all included.


    Most cars have the steering wheel on one side, unless it's a completely unusual case like the McLaren F1. Left-hand drive vehicles are on the left and right-hand drive vehicles are on the right. The position of the dashboard camera can be moved to reflect this within the Beamengine Drive, and variables for camera movement are also supported at this time.


    In the past, this dashboard was also included in the body. So, in order to change the position of the steering wheel of the vehicle, there was the inconvenience of having to change the body altogether. However, after the Legran remastered update, the new vehicle can choose a dashboard option, which gives more freedom to choose between right-hand and left-hand drive. Now, the dashboard is also treated as an object.


    used car model

    • All Beamengine vehicles
    Top J-Beam Slot

    (slottype)

    located on the body.

    lower j-beam slot

    (slots)

    • _steer
    • _shifter
    • _navigator

    Please note that the options themselves are all different for each vehicle.

    list of defined elements

    • props (used to operate wiper levers, blinker levers, pedals, etc.)
    • camera
    Camera (internalCamera)
    Now you can see how to use the InternalCamera here.


    • Reposition the camera so that the dashboard can be seen clearly. A more efficient way to do this is to use the camera within Blender. Position the view where you think it fits best, select the camera object and then select align camera to view to move the camera. The location can then be approximated.

    • In the case of the camera's Field of View (FOV), set it so that the upper part of the dashboard's steering wheel and the instrument panel are all visible. If you don't know what I'm talking about, just look at the vanilla vehicle's point of view.

    • In the case of supporting nodes (id1-id6), the node closest to the position of the camera is set. However, it is necessary to make the camera not move in the correct position by making the camera come to the center of the 6 nodes. The order doesn't seem to matter that much.
    Turn signal lever, wiper lever, pedal (props)



    You should have explained the props in the J-Beam description. Now it's time to implement this yourself. Here are some things to keep in mind:


    • Position of reference node - It is recommended to set it according to the nearest node. Depending on the location of the nearest node, the prop also changes its location, direction, and size, so it is necessary to align the reference node with the proper node location.

    • Assigning functions and setting animating levels for props - For functions, refer to the func value example list below. A prop's animating level means that the function it receives as a variable determines how far to rotate or move the prop. It is necessary to adjust the prop by turning it to a natural level.

    • Default direction and position - In the case of the default direction, it returns based on the value of the set reference node. That is, the basic rotation direction must be changed according to the coordinate value of the reference node. In the case of the position, there will be little change since it follows the default position in the modeling. Instead, the key is to properly position the center of the modeling.
    handle (_steer)
    The handle is also treated as a kind of prop because the way it works is operated using a prop. This can also be defined and used in the same way as props.


    However, unlike other prop objects, handles support multiple handles. If you look at the vehicle inside the Beam Engine, you will see many vehicles using the same steering wheel. This is possible because the steering wheel modeling file is defined in the common folder in the vehicle. Using it as a prop can be managed by the J-beam in the vehicle. However, it is a bit difficult to get the proper position and angle of the handle as a common part, so it is better to try it several times to find the position of the handle.

    Glass window (_windshield, _glass, _backlight)
     
    • Like Like x 4
  12. Agent_Y

    Agent_Y
    Expand Collapse
    Jbeam/QA support
    BeamNG Team

    Joined:
    Jul 10, 2020
    Messages:
    10,058
    It seems like it really will be a good guide once finished! I had to learn all of this by myself before, now other people won't have to!
     
    • Like Like x 1
  13. Urbanmaid

    Urbanmaid
    Expand Collapse

    Joined:
    Jan 18, 2016
    Messages:
    910
    This is what i want yes
     
  14. Urbanmaid

    Urbanmaid
    Expand Collapse

    Joined:
    Jan 18, 2016
    Messages:
    910
    But I think I need to write a section of suspension type, wheel, and tyre Jbeam. But i don't have beamng now and it means I dont either have jbeam of tyre and wheels
    So would somebody send me vanilla tyre jbeam files and wheels?
     
  15. Agent_Y

    Agent_Y
    Expand Collapse
    Jbeam/QA support
    BeamNG Team

    Joined:
    Jul 10, 2020
    Messages:
    10,058
    Have a zip file with all common vanilla wheels, tires and hubcaps Jbeam files. Should be more than enough.
     

    Attached Files:

    • Like Like x 1
  16. Urbanmaid

    Urbanmaid
    Expand Collapse

    Joined:
    Jan 18, 2016
    Messages:
    910
    Also I have a question about some values like this. I cannot expect this what does it mean,

    • wheelSideTransitionZone
    • wheelTreadBeamSpring
    --- Post updated ---
    upload_2021-9-29_19-11-51.png
    I can say that this part is so vast to explain in one chapter so I divided
     
    • Like Like x 1
  17. Franz027

    Franz027
    Expand Collapse

    Joined:
    May 8, 2020
    Messages:
    4,064
    I won't ever stop saying "thank you!"

    You made a fantastic job for all the people who want to try make mods (me, I'd like to have a lot of free time)
     
    • Like Like x 1
  18. S.Ali.M

    S.Ali.M
    Expand Collapse

    Joined:
    Jan 12, 2021
    Messages:
    1,079
    Oh you don't have to thank me, I clicked at translate button, I did nothing else lol
    You should thank @Urbanmaid he/she is who wrote this awesome tutorial
     
    • Like Like x 2
  19. Franz027

    Franz027
    Expand Collapse

    Joined:
    May 8, 2020
    Messages:
    4,064
    Thank you Urbanmaid

    And I'll thank you all for this!
    Great work!
     
  20. Urbanmaid

    Urbanmaid
    Expand Collapse

    Joined:
    Jan 18, 2016
    Messages:
    910
    upload_2021-10-4_10-18-8.png
    I am writting controller section of my documents now
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice