Frachträume werden in der .mdl ganz am Ende im Block "transportVehicle= {"... definiert.
transportVehicle = {
carrier = "AIR",
compartments = {
{
{
{capacity = 44,
cargoBay = {bbMax = { 28.51, 1.62, 7.35, },bbMin = { 20.14, -1.62, 4.95, },
cargoFormat = "",
childId = 0,
gridSize = { 4, 2, },
sizePolicy = "STRETCH_HEIGHT_SCALEY",
type = "DISCRETE", },
type = "STEEL",
},
},
},
},
Alles anzeigen
Leider ist das System etwas unübersichtlich organisiert und führt bei größeren Fahrzeugen schnell zu sehr langen und scheinbar chaotischen Auflistungen. Aber es ist nicht wirklich kompliziert, man kann es einfach nachvollziehen und muß eigentlich nur auf die richtige Setzung der Schweifklammern aufpassen.
Im Block "compartments = {..." werden die einzelnen Frachtabteile ("compartments") definiert. Jeweils einer dieser Abteile ist in dem Raum zwischen den rot markierten Klammern beschrieben. Und was da reinkommt, wie viel davon, und wo das sitzt, wird im grünen Block festgelegt.
Der Reihe nach:
Capacity = 44:
die Anzahl an Einheiten, die der Frachtraum vom jeweiligen Frachtgut enthält. Das Spiel teilt diese Zahl durch 4.
cargoBay = {bbMax = { 28.51, 1.62, 7.35, }, bbMin = { 20.14, -1.62, 4.95, },
Hier werden die Abmessungen des Frachtraums relativ zum unter "childId" definierten Teil festgelegt. Die Koordinaten sind x, y, z in Metern. Wichtig ist, daß der "bbMin"-Block korrekt ausgefüllt ist und auch tatsächlich die untere Grenze des Frachtraums definiert, denn die Kisten werden dann auf der hier festgelegen Höhe abgestellt. Wenn man statt dessen die Oberkante hier einträgt, dann stehen die Waren viel zu hoch.
cargoFormat = "",
Dieser Wert hat keine mir bekannte Einstellungsoptionen.
childId = 0,
Das ist das Teil, von dessen Ursprung aus die oben in "cargoBay" festgelegten Koordinaten berechnet werden. Es erspart viel Arbeit, wenn man die Ursprungskoordinaten auf 0, 0, 0 gesetzt hat; wenn man das aus irgendeinem Grund nicht gemacht hat, dann muß man von den absoluten Koordinaten des Frachtraums erst noch die Koordinaten des Ursprungs abziehen.
0 bezieht sich auf den Ursprung der .mdl; andere Zahlen würden die Frachträume an die entsprechenden Teile mit der angegebenen Laufnummer anhängen.
gridSize = { 4, 2, },
Hier wird das Raster festgelegt, in dem die Kisten angeordnet werden. In diesem Fall stehen 4 Reihen von je 2 nebeneinander stehenden Kisten in dem Frachtraum.
Die nächsten zwei Zeilen legen fest, wie die Ware angezeigt werden soll.
sizePolicy = "STRETCH_HEIGHT_SCALEY",
type = "DISCRETE", },
Diese zwei Zeilen füllen den oben definierten Frachtraum mit der in "gridSize" festgelegten Anzahl von Kisten und streckt/staucht sie, so daß sie genau den gewünschten Raum ausfüllen.
sizePolicy = "STRETCH",
type = "LEVEL",
ist für Schüttgut angemessen. Hier entsteht eine Plane über dem definierten Frachtraum, dessen Höhe vom Füllstand abhängt. Hier muß man ein wenig probieren, bis der optimale Höchststand erreicht ist: die Plane hat keine Seitenwände und man kann von der Seite unter sie sehen, wenn sie zu hoch steht.
type = "STEEL",
Das ist eigentlich selbsterklärend - diese Ware kann von dem Frachtraum aufgenommen werden. Möglich sind "STEEL", "GOODS", "LOGS", "COAL", "IRON_ORE", "STONE", "GRAIN", "CRUDE", "PLANKS", "PLASTIC", "OIL", "CONSTRUCTION_MATERIAL", "MACHINES", "FUEL", "TOOLS" oder "FOOD".
Wichtig ist, daß für jedes mögliche Frachtgut dieser ganze grüne Block wiederholt werden muß! Es ist nicht möglich, den Platz nur einmal zu definieren und dann alle Waren reinzustopfen.
Ein Frachtraum für Stahl und Waren sähe dann also so aus:
compartments = {
{
{
{capacity = 44,
cargoBay = {bbMax = { 28.51, 1.62, 7.35, },bbMin = { 20.14, -1.62, 4.95, },
cargoFormat = "",
childId = 0,
gridSize = { 4, 2, },
sizePolicy = "STRETCH_HEIGHT_SCALEY",
type = "DISCRETE", },
type = "STEEL",
},
},
{
{capacity = 44,
cargoBay = {bbMax = { 28.51, 1.62, 7.35, },bbMin = { 20.14, -1.62, 4.95, },
cargoFormat = "",
childId = 0,
gridSize = { 4, 2, },
sizePolicy = "STRETCH_HEIGHT_SCALEY",
type = "DISCRETE", },
type = "GOODS",
},
},
},
},
Alles anzeigen
Um einen weiteren Frachtraum zu definieren, kopiere man einfach die roten Klammern inklusive allem grünen, das dazwischen steht, und setze alles ein zweites Mal zwischen die rote und schwarze Schweifklammer am Ende ein. Wichtig ist, daß man die bbMax und bbMin wiederum für den neuen Frachtraum korrekt neu definiert.
Cargo compartments are defined at the .mdls very end in the block "transportVehicle= {"...
transportVehicle = {
carrier = "AIR",
compartments = {
{
{
{capacity = 44,
cargoBay = {bbMax = { 28.51, 1.62, 7.35, },bbMin = { 20.14, -1.62, 4.95, },
cargoFormat = "",
childId = 0,
gridSize = { 4, 2, },
sizePolicy = "STRETCH_HEIGHT_SCALEY",
type = "DISCRETE", },
type = "STEEL",
},
},
},
},
Alles anzeigen
The game uses a slightly weird system that will lead to rather long listings in case of larger vehicles. But it is not that complicated, it can be easily understood and pretty much only needs to watch out for the curled brackets and their correct placement.
Compartments are unsurprisingly defined in the block "compartments = {...". Each one of those is described between the brackets marked in red above. And what goes in there and where it is placed is defined in the green area.
Let us now look at the individual entries.
Capacity = 44:
how much goes in there. The game will divide the number entered here by 4 for all its calculations.
cargoBay = {bbMax = { 28.51, 1.62, 7.35, }, bbMin = { 20.14, -1.62, 4.95, },
...defines the space the compartment takes up relative to the coordinates of the part it is attached to in the subsequent line "childID=". Scale is metric along the x, y, z axes. Please take care to fill out the bbMin block properly, the z value needs to show the lower limit of the hold as all crates will be stacked on this level. If by error, the upper limit was to be entered, the crates would sit on top of the compartment and we don´t want that, do we?
cargoFormat = "",
This value is of no importance known to me.
childId = 0,
This defines the part the compartment is attached to. It is smart to use a part here that sits at 0, 0, 0; failing that, you will need to subtract the coordinates of the "master" origin from the coordinates defining your compartment in order to place it properly.
0 refers to the entire model; use other numbers to attach the holds to other parts.n die entsprechenden Teile mit der angegebenen Laufnummer anhängen.
gridSize = { 4, 2, },
This defines the pattern the crates are placed in. The above selection would yield four lines of two crates each sitting in the hold.
The next lines tell the game how You want the load displayed or stored in your holds.
sizePolicy = "STRETCH_HEIGHT_SCALEY",
type = "DISCRETE", },
...will fill the hold with a pattern of crates as defined under "gridSize" and stretch them so as to make them fit the space defined in the above mentioned lines.
sizePolicy = "STRETCH",
type = "LEVEL",
...will fill the hold with bulk cargo, creating a plane covering the holds top with its z position depending on the fill level. Likely, some testing will be required to get the full indication right: the plane shows no side walls and it is possible to see below it if it was to be placed too high.
type = "STEEL",
This ought to be self-explanatory. Select the required commodity as required from "STEEL", "GOODS", "LOGS", "COAL", "IRON_ORE", "STONE", "GRAIN", "CRUDE", "PLANKS", "PLASTIC", "OIL", "CONSTRUCTION_MATERIAL", "MACHINES", "FUEL", "TOOLS" or "FOOD".
Please note: it is not possible to define the volume just once and then list all the goods that go in there at once. If you want the hold to carry more than one good, you will need to repeat the green block for each of them.
A hold that carries both steel and goods would look like this:
compartments = {
{
{
{capacity = 44,
cargoBay = {bbMax = { 28.51, 1.62, 7.35, },bbMin = { 20.14, -1.62, 4.95, },
cargoFormat = "",
childId = 0,
gridSize = { 4, 2, },
sizePolicy = "STRETCH_HEIGHT_SCALEY",
type = "DISCRETE", },
type = "STEEL",
},
},
{
{capacity = 44,
cargoBay = {bbMax = { 28.51, 1.62, 7.35, },bbMin = { 20.14, -1.62, 4.95, },
cargoFormat = "",
childId = 0,
gridSize = { 4, 2, },
sizePolicy = "STRETCH_HEIGHT_SCALEY",
type = "DISCRETE", },
type = "GOODS",
},
},
},
},
Alles anzeigen
Wash, rinse and repeat as required.
If you want another hold defined, just copy the red brackets and all that sits between them and paste the contents between the lower red and black brackets. Remember to set the coordinates for bbMax and bbMin correctly for the second hold as well.
Kommentare
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
grissom
ist es möglich mit einen LKW verschiedene Waren fahren zu lassen?
DH-106
Ja. Du kannst mehrere Frachträume definieren, sowohl bei offenen als auch bei geschlossenen Fahrzeugen. Bei offenen ist nur die passende Einteilung des zur Verfügung stehenden Raums nötig, damit sich die Waren nicht überschneiden.
grissom
danke
Onkel Lu
cargoFormat = "", optische Darstellung der Ware bei offenen Fahrzeugen; kann BIG oder SMALL sein
childId = 0, hat kein Bezug zum Koordinatensystem. Es gibt die ID an - ich glaub im Mesh - an dem die Ware hängt, vergleichbar mit einer Achse.
Dies sieht man gut, bei Sattelschlepper und Hängerzügen. Bei Hängerzügen werden mind. zwei Abteile definiert mit unterschiedlichen IDs, bei dem z.B. Volvo F12
DH-106
Danke dir für die Anmerkungen.
Verstehe ich das richtig: Wenn man childId = 1 schreibt, dann bleibt der Nullpunkt des Koordinatensystems beim Nullpunkt des Modells und wird nicht auf den Ursprung des Meshes 1 bezogen?
Onkel Lu
Die Childid gibt den Punkt auf er X-Achse (Längsrichtung) an, der sich um die Z-Achse dreht (Horizontaldrehung). Bei einer falschen ID dreht sich die Ware um die Y-Achse und rotiert wie ein Straßenrad. So sind zumindest meine Erfahrungen bei den LKWs. Der Model Editor kann leider keine Bewegung anzeigen. Dazu musste ich stets das Spiel starten.
DH-106
...dem werde ich dann wohl einmal nachgehen müssen. Deine Beschreibung deckt sich durchaus mit meinem Eindruck: wenn man den Frachtraum über die ID mit einer Achse verbindet, ist es vollkommen zwingend, daß sich die Fracht auch gemeinsam mit dem Rad dreht. Das geht auch mit Personen, es sieht relativ lustig aus, wenn der Fahrer die ganze Zeit Purzelbäume schlägt.
DH-106
...so, ich habe das jetzt einmal im Spiel ausprobiert. Die ChildID gibt definitiv an, an welchem Mesh der Frachtraum angehängt ist. 0 bezieht sich auf die Position der .mdl; alle anderen Zahlen beziehen sich auf die entsprechenden .msh. Wenn sich die Fracht mit einem Rad zusammen dreht, dann liegt das daran, daß die ChildID diejenige eines Rades ist.
mediziner
Bitte in einen Deutschen und einen Englischen Lexikoneintrag teilen. Das ist sauberer
DH-106
Kann ich machen. Wo du gerade da bist: es scheint, daß die Textfarbe in Codeblöcken nicht dauerhaft zu speichern ist?